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 Helm Apps #27

Open
marcellodesales opened this issue Mar 16, 2018 · 2 comments
Open

Deploy Helm Apps #27

marcellodesales opened this issue Mar 16, 2018 · 2 comments

Comments

@marcellodesales
Copy link

marcellodesales commented Mar 16, 2018

Requirement

  • Given a the deployment model, specify a Helm Application to be deployed.
  • "Any" application from https://hub.kubeapps.com/ should be deployed automatically.

Design

  • Specify the name of the Helm Chart to deploy
  • Identify the type of ingress instance the cluster contains
    • Use default ingress nginx
    • This provides a default ingress to the cloud provider
  • Identify if the cluster has tls secret
    • This provides HTTPS access to the service
  • Identify if the cluster has external-dns
    • This provides Route53 endpoint to the service
@0x777
Copy link
Member

0x777 commented Mar 16, 2018

Currently, gitkube simplifies this workflow

docker build -t ...
docker push ...
kubectl set-image ... 

with

git push remote master

What is your current workflow with a kubeapps application and how do you like to see it automated?

@marcellodesales
Copy link
Author

@0x777 So, kubeapps offers a way to deploy a Helm Application from a given Helm Chart Registry. Given that and your workflow, what I was thinking is that we could do the following:

git push remote branch

Still should guarantee what gitkube does already, but for Helm Apps, as follows:

  1. Identify if there's a Helm Spec
  2. Compute the actual URL of the application based on the Cluster Config + External DNS name
  • Through external dns, we get the endpoint for the cluster Cluster DNS cluster.name.com
  • With the helm settings ingress.host, we can compute the URL myapp.cluster.name.com
  1. Push the committed application to the associated Helm Chart Registry under the SHA version associated with the commit
  • Pushes to the registry with a known URL for installation
  • Add extra metadata for the branch, tag, etc
  • Final url for the app could be either myapp.cluster.name.com, for master branch, or SHA.myapp.cluster.name.com for the SHA, develop.myapp.cluster.name.com for the develop branch, etc.
  • The mapping for a gitflow mechanism should be provided in a metadata file like gitkube.yml
  1. Execute the helm install with the URL for installation above

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

2 participants