vigil icon indicating copy to clipboard operation
vigil copied to clipboard

add fully working Helm Chart

Open dminca opened this issue 3 years ago • 13 comments

it's enough to get you started, just install it and do a port-forward to :8080 and you'll have a demo status page at your disposal

Resolves: #63

dminca avatar Sep 17 '21 10:09 dminca

there you go, added the Helm Chart push CI step as well :)

Feel free to adapt it as needed.

dminca avatar Sep 17 '21 11:09 dminca

What's this used for? Sorry, not familiar with Helm Charts.

valeriansaliou avatar Nov 05 '21 19:11 valeriansaliou

Helm is a way to package an app for deploying it on Kubernetes, you'd use a helm chart in order to benefit from the templating language and keeping all manifests DRY.

Sometimes, plain manifests are also good, but when you need to expose the app (ie. by creating a Service + Ingress) you'll realise that you need a better way to package all those manifests and serve them together.

Some use GitOps to help provision these charts in an automated way, Flux is a practical example.

dminca avatar Nov 05 '21 22:11 dminca

That's a lot of overhead and things to maintain for me just for K8S. Wouldn't it be possible to have it provided by an external repository? I'm kind of not willing to add that much files in Vigil just for K8S, given that K8S is not what all people use.

valeriansaliou avatar Nov 06 '21 13:11 valeriansaliou

Now that I think about it you're actually right, the structure of the repo's not going to contain only the app code but also other tooling for deploying it on separate platforms/environments.

Ok, I will close this PR then, but I don't know what do to next, I can just push all these into a separate repo, but not many people will be aware of its existence, so I'm not sure how to handle that.

dminca avatar Nov 06 '21 13:11 dminca

Could that be all stored in a single folder on this repo? Like a defs folder (for Helm but also any other definitions), not mixing up with the rest of the project.

valeriansaliou avatar Nov 06 '21 23:11 valeriansaliou

Ok, I will close this PR then, but I don't know what do to next, I can just push all these into a separate repo, but not many people will be aware of its existence, so I'm not sure how to handle that.

I would suggest to :

  • move the helm-chart related stuff to a dedicated project (vigil-helm-chart)
  • add link to this project in the README (Install section and/or Related projects)
  • close the PR

gbonnefille avatar Dec 02 '21 13:12 gbonnefille

This is good PR. It's sad to see this will go away. Moving to other repos could mean it will not officially supported by Vigil itself.

rhzs avatar Feb 04 '22 07:02 rhzs

I'm willing to merge this, but since I'm not using k8s I won't maintain it over time as Vigil gets updated. Also, I'd like all those files to be nested in a sub-folder, ie. not to have k8s-related resources on the side of Vigil resources at the root.

Would that be possible?

Also, note that since the configuration file model has been since updated, I guess the PR would need to be updated in accordance w/ the changes.

valeriansaliou avatar Feb 04 '22 08:02 valeriansaliou

Please, consider that a helm chart is like a Linux package. And the same you won't host ALL possible packages (Debian, RPM, Ubunutu...) the Helm Chart should be manage out of this repo. Motivations are strictly the same: people will like to deploy in a certain way, with some dependencies related to their version of Kubernetes or components already deployed...

IMHO, in regards to Kubernetes, the job of the current repo stop at providing an efficient Dockerfile.

gbonnefille avatar Feb 04 '22 08:02 gbonnefille

@gbonnefille Thanks. You'd then recommend hosting the Helm charts outside of this repository if I got you right? Such as in a vigil-extras repository?

valeriansaliou avatar Feb 04 '22 08:02 valeriansaliou

I would call it something like vigil-helmchart. I did something related but for the Tuleap software: https://github.com/CS-SI/tuleap-helmchart

We can also find a lot of examples. For Elastic: https://github.com/elastic/helm-charts For grafana: https://github.com/grafana/helm-charts For jenkins: https://github.com/jenkinsci/helm-charts

A more ambitious (naming) change would be to create a Vigil organisation on GitHub and manage manay repositories like vigil/vigil and vigil/helm-charts (and perhaps vigil/website, vigil/demo...)

gbonnefille avatar Feb 04 '22 09:02 gbonnefille

A helm chart is not "like" a linux package. It's a set of files that are part of a templating system that render manifests that are to be deployed in a cluster. Standard practice nowadays is to host them next to your software, and have pipelines that make a helm release and publish it. Also, to accomodate non Helm users, a lot of projects add Kustomize files

Motivations are strictly the same: people will like to deploy in a certain way, with some dependencies related to their version of Kubernetes or components already deployed... this comment outlines the lack of experience you have with k8s. "The certain way" is the only way - use Helm, either as a standalone CLI tool on your machine or using a controller inside the cluster that would do the same thing for you (ArgoCD, or Flux do this)

If you're looking for example of charts, build by a great community, https://github.com/k8s-at-home/charts which use a generic library chart https://github.com/k8s-at-home/library-charts.

These charts in an ideal situation would be hosted by the projects themselves but in many many cases we - k8s admins - find ourselves in these situations where there is analysis paralysis whether to start walking with the right or with the left foot.

One of the greatest examples that i give to anyone looking for a boiler plate is: https://github.com/stefanprodan/podinfo

mariusrugan avatar Jun 13 '22 06:06 mariusrugan

alright, closing this then. Thank you

dminca avatar Apr 28 '24 19:04 dminca