Replies: 1 comment
-
We solved this by bundling our CDK8s code into an ORAS OCI artifact, and then a custom Argo CD config management plugin that pulls down the OCI artifact, runs synth with env vars passed in from the Argo CD application object, and then returns the manifests back to Argo CD. Working great. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We're looking to leverage CDK8s. One thing that really appeals to us is the fact that it supports importing helm charts and also CRDs, since we can pair it up with e.g. Azure Service Operator and manage k8s infrastructure and Azure infrastructure in one place. This is something we are prototyping at the moment.
One question that I have is how to go about managing versions. For example, with helm, I can just bundle both the custom resources (for Azure Service Operator) and the k8s resources in one helm chart and then deploy them with Argo CD and have my cloud infra and my k8s infra upgrade together between application versions. We have numerous clusters that we manage, each with different variable inputs, and helm lets us more easily manage different values for different environments. With CDK8s, I can't seem to figure out how to version it. I know I can have a pipeline that invokes cdk8s and use environment variables as part of the synth/deploy process, but this doesn't solve our needs in that our various clusters / environments have different versions of our applications running in them, with different k8s infra and Azure infra dependencies. Helm versions made these changes (and upgrade flows) easy to manage, and provided lifecycle hooks to run DB migrations etc. With CDK8s, I would really prefer to avoid managing numerous git branches (we went down that path before -- it was not scalable nor fun!).
What has been brought up before, e.g., if CDK8s has a way to export a helm chart (which is not trivial, since programmatically many things can happen based on the inputs), or generating a "static" chart off the cdk8s manifest outputs, or using chartify to generate a chart (which doesn't seem to support custom resources?), but my question is more along the lines of what are people doing to manage multiple versions and environments with cdk8s?
Beta Was this translation helpful? Give feedback.
All reactions