strangelove-ventures / cosmos-operator

Cosmos Operator is a kubernetes operator for managing cosmos nodes
Apache License 2.0
79 stars 19 forks source link

Create Helm Chart for Cosmos Operator #430

Open danbryan opened 2 months ago

danbryan commented 2 months ago

Create Helm Chart for Cosmos Operator

Description

This issue aims to create a Helm chart for the Cosmos Operator. The Helm chart will facilitate the deployment and management of the Cosmos Operator on Kubernetes clusters.

Subtasks

References

nourspace commented 2 months ago

This might be useful as all operator kube manifests are generated using Kustomize. So unless we recreate these under helm templates (duplicate), we need to somehow run the kustomize build command as part of the helm install/upgrade cycle.

https://trstringer.com/helm-kustomize/

bizrad commented 1 month ago

Looks like there was previously some other discussion and work done on this, linking related items. Issue: https://github.com/strangelove-ventures/cosmos-operator/issues/104 PR: https://github.com/strangelove-ventures/cosmos-operator/pull/224

Also, perhaps in the short term releasing pre-built kubernetes manifests or kustomize files that can be used with tools like ArgoCD would also be a reasonable if a helm chart is a more long term project. At my company we don't allow manually applying things to our clusters with kubectl for production, so we need a more gitops friendly deployment. Currently, it appears that this means we need to build this repos manifests, then make a PR to our own repo to check in the built manifests to deploy them, which is less than ideal.

bizrad commented 1 month ago

After reading through the makefile and inspecting the repo it seems that the manifests are already prebuilt in the repo, but without the image version set. Please correct me if this is wrong, but It appears that this is the proper procedure to get manifests that can be checked into a git repo for gitops deployment.

git clone https://github.com/strangelove-ventures/cosmos-operator.git
export COSMOS_OPERATOR_VERSION=v0.22.0
git checkout tags/${COSMOS_OPERATOR_VERSION}
cd config/manager 
kustomize edit set image controller=ghcr.io/strangelove-ventures/cosmos-operator:${COSMOS_OPERATOR_VERSION}
cd ../default
kustomize build . >out.yaml

@danbryan do you see any issues with this?