Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Helm Chart for Cosmos Operator #430

Open
5 tasks
danbryan opened this issue Jul 24, 2024 · 3 comments
Open
5 tasks

Create Helm Chart for Cosmos Operator #430

danbryan opened this issue Jul 24, 2024 · 3 comments
Assignees

Comments

@danbryan
Copy link
Contributor

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

  • Research and Define Chart Structure

    • Review the Cosmos Operator repository to understand the necessary configurations and components.
    • Define the structure of the Helm chart, including templates, values, and Chart.yaml.
  • Create Initial Helm Chart

    • Set up the initial Helm chart directory and file structure.
    • Create Chart.yaml with metadata about the chart.
    • Create a basic values.yaml file with default configuration values.
  • Develop Templates

    • Create Kubernetes resource templates (deployment.yaml, service.yaml, etc.) in the templates directory.
    • Utilize Helm template functions to make the templates configurable via values.yaml.
    • Ensure templates cover all necessary resources for deploying the Cosmos Operator.
  • Define Values and Documentation

    • Populate values.yaml with comprehensive configuration options.
    • Document each value in the values.yaml file for user reference.
    • Create a README.md to guide users on how to install and configure the Helm chart.
  • Testing and Validation

    • Deploy the Helm chart in a test Kubernetes cluster.
    • Validate the deployment and functionality of the Cosmos Operator.
    • Fix any issues and ensure the Helm chart works as expected.

References

@danbryan danbryan self-assigned this Jul 24, 2024
@nourspace
Copy link
Member

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
Copy link

bizrad commented Aug 21, 2024

Looks like there was previously some other discussion and work done on this, linking related items.
Issue: #104
PR: #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
Copy link

bizrad commented Sep 11, 2024

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants