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

[Request] Helm chart for the operator #901

Closed
grzesuav opened this issue Jun 27, 2024 · 10 comments · Fixed by #903
Closed

[Request] Helm chart for the operator #901

grzesuav opened this issue Jun 27, 2024 · 10 comments · Fixed by #903
Labels
feat New feature or request needs-triage Needs thorough attention from code reviewers

Comments

@grzesuav
Copy link

Describe the feature

Hi, I would like to install operator using helm chart - can you provide one ? Or is there any already existing

Anything other information?

N/A

@grzesuav grzesuav added feat New feature or request needs-triage Needs thorough attention from code reviewers labels Jun 27, 2024
@andrewazores
Copy link
Member

There is no such thing existing, we have either the Operator or the Helm Chart available. Can you describe what your requirements are that you want the Operator functionality but installable via Helm Chart? Maybe there is another way to accomplish what you need.

@grzesuav
Copy link
Author

I wanted to install operator via helm as I do not use OLM - like Prometheus operator have helm chart or manifest for its installation. I did not notice any manifest to setup cryostat operator as well.

My use case is simple, wanted to explore how much easier it would be to install cryostat via CRD however I do not see a way to install operator via helm of kubectl apply

@tthvo
Copy link
Member

tthvo commented Jun 27, 2024

I wanted to install operator via helm as I do not use OLM - like Prometheus operator have helm chart or manifest for its installation. I did not notice any manifest to setup cryostat operator as well.

I don't think we have any existing helm chart to install the operator in your case. Though, it seems common enough for some attention. I don't know how hard it is or and the plan for it. Any ideas @ebaron @andrewazores ?

My use case is simple, wanted to explore how much easier it would be to install cryostat via CRD however I do not see a way to install operator via helm of kubectl apply

If you are looking for a single yaml file to use with kubectl apply. There is a Make target deploy (i.e. run make deploy) that builds all necessary resources into a single k8s yaml and kubectl apply it. You can also build the yaml yourself with kustomize: kubectl kustomize config/default. Note: the namespace is default to: cryostat-operator-system. Though, this requires you to checkout the source code.

Maybe nice to distribute a "bundle.yaml" for each release that contains the all necessary resources?

@andrewazores
Copy link
Member

There are no current plans for such a "helm chart to install the operator". It could be something we investigate, but adding yet another way to install and configure everything seems like it would be a relatively heavy maintenance burden on top of all the rest of the work to develop features and things. It could maybe be something we maintain on a best-effort basis upstream if someone provides it to begin with.

Distributing a bundle.yaml seems simple enough and just uses existing Operator tooling, so I can see that being a pretty realistic goal. We could just have a release action that generates this YAML bundle and publishes it somewhere.

@tthvo
Copy link
Member

tthvo commented Jun 27, 2024

Distributing a bundle.yaml seems simple enough and just uses existing Operator tooling, so I can see that being a pretty realistic goal. We could just have a release action that generates this YAML bundle and publishes it somewhere.

Looks related to #144

It could maybe be something we maintain on a best-effort basis upstream if someone provides it to begin with.

Right, I was also thinking of having support for upstream only.

@andrewazores
Copy link
Member

I think #144 got left by the wayside because our Helm chart came into existence not too long after too. That along with getting the Operator published on OperatorHub achieved the original goal there of a "one-click install", since at the time the only installation method available was to clone the git repo and use the Makefile.

@tthvo
Copy link
Member

tthvo commented Jun 27, 2024

Ah make sense! I think it would be nice to solve #144 too to cover above case of "one-click install" with helm/static file. It's pretty common on upstream k8s. For example, cert-manager, nginx, aws acks, and even OLM itself, all distribute a static yaml for use with kubectl apply.

For static field, the only problem I am seeing though is the namespace of resources. Some have annotations that reference "namespace/resource-name", which would be hard to support unless namespace is hard-coded.

@tthvo
Copy link
Member

tthvo commented Jun 27, 2024

It could maybe be something we maintain on a best-effort basis upstream if someone provides it to begin with.

https://github.com/arttor/helmify. This looks promising. It might be possible to generate helm chart from static manifest.

@tthvo
Copy link
Member

tthvo commented Jun 27, 2024

If you are looking for a single yaml file to use with kubectl apply. There is a Make target deploy (i.e. run make deploy) that builds all necessary resources into a single k8s yaml and kubectl apply it. You can also build the yaml yourself with kustomize: kubectl kustomize config/default. Note: the namespace is default to: cryostat-operator-system. Though, this requires you to checkout the source code.

@grzesuav Seems like you can avoid cloning the repo to get a static manifest. Again, the namespace is hard-coded to cryostat-operator-system.

# Replace ref with any version tag or branch
kubectl kustomize https://github.com/cryostatio/cryostat-operator.git/config/default?ref=v2.4.0

@grzesuav
Copy link
Author

Thanks for the comments, I named the issue Helm chart as wasn't aware there is a static manifest or kustomize here, thanks for the pointers !

Re. helming the static manigest, I use sth like

kubectl kustomize ./kustomize | kubectl slice --output-dir ./helm/argocd/templates/base

however this helmify look like doing better job, will try it out.

One last thing, if you can add to README or to the documentation that there is static manifes/kustomize, it would be great !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat New feature or request needs-triage Needs thorough attention from code reviewers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants