Commit Graph

136 Commits

Author SHA1 Message Date
metal3d 9fcce059e5 fix(doc): Fixing method name in comment 2025-06-26 23:18:11 +02:00
metal3d b143f743ef feat(chore): Add tests and use "any" instead of "inteface" 2025-06-04 15:17:26 +02:00
metal3d a8341a9b44 feat(tests): .Close() can be "unchecked" 2025-06-04 14:41:53 +02:00
metal3d def5d097a4 feat(tests): Fixing linter problems
Using golangci-lint
2025-06-04 14:29:13 +02:00
metal3d b5f62d43af fix(test): Fix non constant string format
Go 1.24 made several changes about formatting messages:
https://tip.golang.org/doc/go1.24#vet

These changes make tests (and vet) craching.

The fix is to use a string format and give error message as argument.
2025-06-04 09:46:13 +02:00
metal3d 9220dc3278 fix(test): Fix bad test
We were failing if the test is OK...
2025-06-04 09:24:33 +02:00
metal3d 9ef961ae7c issue(107): Really drop ignored services
It's, at this time, not needed to keep the ignored services inside the
project. Maybe later someone will ask to keep env variables, or
something like this... But at this time, it's a source of bug like #107.
2025-01-19 23:38:17 +01:00
metal3d fe6663f9f4 issue(106): Fix service names with dashes
See #106, I need to add a test on "same-pod" label.
2025-01-19 23:24:09 +01:00
metal3d 41a4292939 chore(test): enhance error handling and avoid repetitions 2024-12-17 18:22:45 +01:00
metal3d 17b6ea51af fix(doc): Bad variable name in secrets 2024-12-05 07:23:58 +01:00
metal3d 5c939383be chore(tls): Add secretName to the values
The seret name for TLS wasn't editable, it may be useful to change it
when we generate TLS certificates for specific installation.
2024-12-05 06:43:43 +01:00
metal3d e574a2e2a8 chore(errors): Better error management
We must remove all "Fatal" calls and use errors instead, to be returned
and managed globally.
This is the first step, but it is, at this time, a real problem. Tests
are complicated without this.
2024-12-03 14:37:13 +01:00
metal3d eb760d4299 test(subdir): Add globally mount binary files 2024-12-03 14:03:36 +01:00
metal3d d458cdbd73 chore(configmap): Manage binary data in configMap
We should be now able to detect and manage binary files to be injected
in configMaps
2024-12-03 13:50:58 +01:00
metal3d bb1354e228 doc(refacto): Rewrite label types, and format table
- I prefer using Go types, more explicit in my humble opinion
- The markdown table wasn't well-formed
2024-11-26 23:42:39 +01:00
metal3d 9f1f6c7e78 test(version): cover the version function 2024-11-26 17:53:43 +01:00
metal3d 441be30720 chore(version): Get the version following how katenary is installed 2024-11-26 16:47:37 +01:00
metal3d 3b4dade699 chore(label): new label "values-from"
This labels allow to use some environment variables from another service
and use the configMap / secret instead of the original value. This is
useful to avoid duplication of values for several variables.
2024-11-26 16:11:12 +01:00
metal3d 4f0298c0a9 test(utils): Add some tests 2024-11-26 16:09:12 +01:00
metal3d ad16005091 test(schema): Add test on ingress 2024-11-25 12:10:41 +01:00
metal3d 41a0dc58a5 chore(typo): fix some typos 2024-11-25 12:00:04 +01:00
metal3d dc34d32c5c test(secrets): add tests 2024-11-25 11:54:38 +01:00
metal3d 36984e3825 chore(clean): remove unused functions 2024-11-25 11:54:18 +01:00
metal3d 046410a5ec chore(refacto): use utils package 2024-11-25 11:54:00 +01:00
metal3d 827b5bc830 test(values): add map-env and exchange volumes tests 2024-11-22 16:23:00 +01:00
metal3d 8aee6d9983 fix(nil): The service can not exist 2024-11-22 16:11:55 +01:00
metal3d 7b890df1c5 fix(schema): Use ingress default values
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.
2024-11-22 15:55:59 +01:00
metal3d 91fc0fd9f0 fix(doc): missed a new line 2024-11-22 14:58:43 +01:00
metal3d 1a1d2b5ee8 fix(configmap): do not write env var in file CM
File CM are configmap to store "static" data (file content), do not set
environment variables inside.
2024-11-22 14:55:42 +01:00
metal3d 95f3abfa74 feat(volume): add "exchange volumes"
This volumes are "emptyDir" and can have init command. For example, in a
"same-pod", it allow the user to copy data from image to a directory
that is mounted on others pods.
2024-11-22 14:54:36 +01:00
metal3d 3b51f41716 chore(names): Fix resource name
Use an utility function to fix some names
2024-11-21 11:12:38 +01:00
metal3d 3f63375b60 refacto(labels): use external files
Files are more readable as external. Use "go:embed" to inject them.
2024-11-21 11:08:55 +01:00
metal3d 8c97937b44 test(schema): Add tests 2024-11-21 11:08:09 +01:00
metal3d 96f843630a chore(misc): make the code more readable here 2024-11-21 11:04:19 +01:00
metal3d 48f6045cd3 fix(same-pod): environnment and volume mapping
We must ensure that the volume is owned by the container.
The environmment configMap wasn't bound.
2024-11-21 11:03:10 +01:00
metal3d af8dabba85 fix(secrets): Wrapping values is unecessary
It seems that go-compose now escape the string
2024-11-18 17:42:21 +01:00
metal3d cc1019b5a8 chore(refacto): fix secret and use katenary schema
- add possibility to use a katenary.yaml file to setup values
- fix secret generation
2024-11-18 17:12:12 +01:00
metal3d 7b5e45131c doc(fix): fixes the main-app documentation
There were a problem, sentence was truncated
2024-11-09 14:19:56 +01:00
metal3d b09316b416 refactor(yaml): globalize fixups
The ToK8SYaml() function makes the job, it's now simpler to manage fixes
2024-11-09 14:18:27 +01:00
metal3d 9b392a1f64 Fix problem on getting tls mapping
The types were not compatible to get TLS activation
2024-11-08 16:55:18 +01:00
metal3d 9358076a36 chore(ingress): Allow tls activation 2024-11-08 15:51:36 +01:00
metal3d dd63bb6343 chore(fixes): Unwrap yaml before converting and fix volume name variable
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
2024-11-08 13:11:14 +01:00
metal3d 2d33367422 chore(optim): manage space in struct
Warning given by sonarlint, saves a few bytes.
2024-10-24 17:24:36 +02:00
metal3d d72f371c59 fix(generation): fix the volume var/path name
Underscores are forbidden by Kubernetes (should be a valid URL string),
we replace "_" by "-" in names, and we leave the values file using the
original name. So a volume named "foo_bar" in compose file, is
registered as "foo_bar" in the values file, but "foo-bar" is used as
volume name in deployments, volume claims, ...
2024-10-24 17:23:26 +02:00
metal3d db168c91c9 fix(generation): use tpl in note for hostnames
The value in hostname in values file can be a templated string. So, we
should execute the content.
2024-10-24 17:21:04 +02:00
metal3d d31993953b fix(doc): livenessProbe and readinessProbe must be set
In the health-check label, we now need to specify the kind of check to
do - in the expected form from Kubernetes specification.
2024-10-23 16:32:50 +02:00
metal3d 63c6d5d0ef chore(format): moved import
Formatter changed the import order
2024-10-23 16:20:29 +02:00
metal3d 164a617869 fix(values): Remove tplString in environment directive
We badly set a "tpl string" in values.yaml file for "values" labels set
in compose.yaml file.
2024-10-23 16:17:01 +02:00
metal3d 533e1422d0 Sonar complience
Use valid names and factorize some constants checks
2024-10-18 09:36:55 +02:00
metal3d 918f1b845b Fix problems and adding functionnalities
Many fixes and enhancements:

- Add icon option
- Add env file managment
- Ordering compose parsing options
- Fix path with underscores
- Fix image and tag discovery
- Better documentation for labels
2024-10-18 09:36:54 +02:00