reckoner
reckoner copied to clipboard
Add enhancements to easily output manifests for GitOps
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
Is this a realistic scenario for someone using this enhancement?
- As a DevOps lead for a development team at BigCo, I need to get my app deployed to the company's multi-tenant cluster. I decide to use Reckoner to enable a GitOps approach for the namespaces I am responsible for.
Is this a realistic scenario for someone using this enhancement?
- As a DevOps lead for a development team at BigCo, I need to get my app deployed to the company's multi-tenant cluster. I decide to use Reckoner to enable a GitOps approach for the namespaces I am responsible for.
👋 Hey @jpelletier1, yes I think so assuming this person will use a tool we plan to support here. We are targeting Argo-specific stuff here first, but would certainly entertain other tools to add support for later.
That's great, thanks Luke!
Reason why I ask: We're looking to enable Insights to be more developer-friendly. For example, giving developers an easy way to get metrics, logs, cost, state about their apps from a single location. I could see reckoner being a nice OSS way to make it easy for developers to get their apps deployed, and then leverage Insights as a way to collect/gather all the info they need about their apps.
At least, that's the vision :) Having Reckoner used at the beginning stages of that process could be neat.