Ingress has some default values, like path and classname. We need to
ensure that values are taken or nil, and to apply them if they are not
set explicitally. Port is a sepcial case.
2 fixes:
- the first problem to resolve is that some volume names can have "-" in
the name. We now replace them by "_"
- the second problem is that k8s.io library truncates the lines and so
we cannot split the files by lines. We now "unwrap" the result.
TODO: globalize the `yaml.Marshal()` code to our own specific function
- 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...