reckoner icon indicating copy to clipboard operation
reckoner copied to clipboard

Add enhancements to easily output manifests for GitOps

Open sudermanjr opened this issue 3 years ago • 4 comments

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

sudermanjr avatar Nov 22 '21 20:11 sudermanjr

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.

jpelletier1 avatar Dec 16 '21 13:12 jpelletier1

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.

lucasreed avatar Dec 16 '21 15:12 lucasreed

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.

jpelletier1 avatar Dec 16 '21 17:12 jpelletier1