- reduce complexity
- use better tools to format the code
- add more tests
- and too many things to list here
We are rewriting for V3, so these commits are sometimes big and not
fully detailed. Of course, further work will be more documented.
We were using `yaml.Unmarshal` on basic types or inline structs. This
was not efficient and not clear to defined what we expect in labels.
We now use types to unmarshal the labels.
Only the `values` label is, at this time, parsed by GetValuesFromLabel
because this `utils` function is clearly a special case.
- changed variables that was uppercased, that's not OK for linters
- cleanup some documentation
- remove the "/" in label prefix, a function is now used to get the
complete label (`labelName()`)
- some cleanup in tpl files, and so on...
It is possible there are many things like this to fix. I made too much
complexity on searching services in deployment while the map key is
enough to get the righ deployment for a compose service.
Need to check the "same-pod" possibilities later.
If "depends_on" is set, we need to ensure that the target service has
got declared ports. It's necessary, at this time, to ensure the target
is started (with an initContainer)
As soon as Kubernetes proposes a better check, we will be able to fix
this requirement.
Make possible to declare cronTabs inside docker-compose file.
⇒ Also, add multiple compose file injection with `-c` arguments
⇒ Also, fixes “ignore depends on” for same pod
⇒ Also fixes
* fix [Be able to specify compose.yml files and its override #21](https://github.com/metal3d/katenary/issues/21)
* fix [Be able to ignore ports to expose in a katenary.io/ports list #16](https://github.com/metal3d/katenary/issues/16)
And more fixes… (later, we will use branches in a better way, that was a hard, long fix process)
Use compose-go https://github.com/compose-spec/compose-go to make Katenary parsing compose file the official way.
Add labels:
- `volume-from` (with `same-pod`) to avoid volume repetition
- `ignore` to ignore a service
- `mapenv` (replaces the `env-to-service`) to map environment to helm variable (as a template string)
- `secret-vars` declares variables as secret values
More:
- Now, environment (as secret vars) are set in values.yaml
- Ingress has got annotations in values.yaml
- Probes (liveness probe) are improved
- fixed code to optimize
- many others fixes about path, bad volume check, refactorisation, tests...
We can now manage "- A=B" format as "A: B"
Some others properties than environment may have this problem (e.g.,
command) so we will fix this later.
fix#4