Files
yaho/notes
Nikolai Rodionov 7c2294d9df
Some checks failed
Lint / Run on Ubuntu (push) Has been cancelled
E2E Tests / Run on Ubuntu (push) Has been cancelled
Tests / Run on Ubuntu (push) Has been cancelled
Init project
2025-07-15 17:58:36 +02:00

86 lines
1.6 KiB
Plaintext

This chart is supposed to be a better alternative to all the GitOps helm managers out there.
It should follow the real helm workflow instead of trying to find some workaround.
The idea is that I need to create a helm release
```
kind: HelmRelease
metadata:
name: test
spec:
repository: https://somerepo
chart: somechart
version: someversion
```
And the controller is supposed to pull the chart and install it to the cluster
In order to make ic configurable, I need to add CRDs for handling values, like
```
kind: HelmValues
metadata:
name: test-values
data:
image:
tag: latest
```
These values should be added to the helm release
```
kind: HelmRelease
metadata:
name: test
spec:
repository: https://somerepo
chart: somechart
version: someversion
values:
- test-values
```
After syncing, the values hashsum should be put to the status like
```
kind: HelmRelease
status:
values:
test-values: SHA
```
To make sure that we are updating the chart every time, values are updated
The next CRD that should be a part of any reliable helm workflow is the diff
```
kind: HelmDiff
metadata:
name: test
spec:
release: test
context: 5
values:
- test-values-SHA # these should be added in the cluster with a different name
```
It should provide a diff and put it to the staus in a base64 format (or maybe to secrets)
After this is working, the next step would be adding support for secrets via SOPS
```
kind: HelmValues
metadata
name: test
spec:
secret: true
sopsSec:
name: sops-secret
key: .sops.yaml
templating:
enabled: false
data:
# Encrypted data
```