While looking into using tools like ArgoCD or Flux, we realized that the current reckoner template command could be used to generate a set of manifests that are monitored by a gitops tool. There are several things that might make that process easier:
- Provide the ability to run something along the lines of https://github.com/latchmihay/k8s-yaml-splitter or https://github.com/patrickdappollonio/kubectl-slice to spit out yaml manifests of each resource, rather than one giant manifest
- Output the manifests to a specific directory structure. Something like
manifests/<RELEASE NAME> - This would ideally be configurable
- Output the application CRD for tools like ArgoCD
- Automatically disable the rendering of tests in helm charts
- Convert helm hooks to argocd hooks
- Potentially add metadata, such as a label, that would indicate the helm repository and the chart, as well as the fact that reckoner rendered the manifests
Some pitfalls/gotchas to watch out for:
- Secrets management. This is likely something that we don't necessarily need to worry about, but something to be aware of
- Decide how to handle namespace creation. Currently reckoner does this for us. Maybe we create namespace manifests that have all the labels/annotations that reckoner would have added?
- Watch out for charts that detect capabilities. Maybe we can pass in some apiversions?
- Handling deletion of manifests. If a manifest has been removed, how do we know?
- Handling list items (like in the prometheus-operator chart)
- Handling reckoner hooks - Maybe convert to argocd hooks?
Helm template flags that will need to be passed:
--skip-tests
--no-hooks
--include-crds
While looking into using tools like ArgoCD or Flux, we realized that the current
reckoner templatecommand could be used to generate a set of manifests that are monitored by a gitops tool. There are several things that might make that process easier:manifests/<RELEASE NAME>- This would ideally be configurableSome pitfalls/gotchas to watch out for:
Helm template flags that will need to be passed: