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

Deploy the helm charts #1014

Closed
ljupcovangelski opened this issue Feb 17, 2021 · 7 comments · Fixed by #1084
Closed

Deploy the helm charts #1014

ljupcovangelski opened this issue Feb 17, 2021 · 7 comments · Fixed by #1084

Comments

@ljupcovangelski
Copy link
Contributor

As we have the helm charts templates in our repo (for a particular version, bundled in the CLI), we would want to generate all the manifests with cli and apply them to the Kubernetes cluster.

This needs to be part of the airy create command and we would need to use some helm libraries, so that we don't depend on the helm binary.

@lucapette
Copy link
Contributor

I would also close this as there's already an issue for this?

@ljupcovangelski
Copy link
Contributor Author

I think this deserves a separate issue as it is a significant part of getting rid of the ./scripts/bootstrap.sh script.

We need to find a way to do helm template + kubectl apply or helm install directly from the go code inside the airy create command.

@lucapette
Copy link
Contributor

@ljupcovangelski I think we agreed on calling helm via a go lib from our code. The "challenge" is to fetch the helm charts from github (at the corresponding version). I do stand by the point that this is "just" part of #1017

@pascal-holy
Copy link
Contributor

The Helm way of doing this is to host a Helm Repo which is just an HTTP server that hosts an index.yaml with a description of the different charts and a zip file containing them.

It can be hosted on Github pages .

The benefit is that we can directly refer to the charts of the corresponding version in the helm install --repo --version command (or the Helm lib equivalent of it.

@lucapette
Copy link
Contributor

@pascal-airy I like that quite a bit... but I can't picture how well it plays with release cycle and mono repo. But I think we should push to figure this out as this is much more elegant than us trying to download files and do it "manually"

I think this issue should also mention treafik as we're assuming we will install it in this step (and configure it as well?)

@ljupcovangelski
Copy link
Contributor Author

This issue is indeed part of #1017. My preference would be to keep it as a separate just for better readability and discussion. But we can also merge to that one.
I consider it only for the go lib part on how do we deploy the charts and not for which charts should be added (we have a task for the traefik part in the umbrella issue)

@paulodiniz paulodiniz self-assigned this Feb 22, 2021
@chrismatix
Copy link
Contributor

chrismatix commented Feb 24, 2021

@paulodiniz and I had a discussion on how we interface with Helm:

It's harder to maintain direct interaction with Helm golang APIs, which is why we like the appeal of @ljupcovangelski's solution of using a Kubernetes job with an image that contains Helm and the correct chart version.

TODO:

  • create image containing helm and charts with Bazel (@chrismatix)
  • in the airy create create the Kubernetes job that runs helm install and translate its output back to the CLI (@paulodiniz )

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

Successfully merging a pull request may close this issue.

5 participants