How do I update my application running in my users' clusters?

8/11/2019

I'm building a cluster visualization tool for Kubernetes that runs inside users' clusters.

My goal is to make this tool freely available. The most obvious way to distribute it is to tell people to kubectl apply -f www.ourgithub/our-configs.yaml, which pulls our images and voila.

That's all fine. Now the problem is how do we push updates?

I've considered these options but none seem very good:

  • Using something like https://github.com/chartmuseum/helm-push

  • Having the apps themselves check for updates and "restart" themselves (i.e imagePullPolicy=always scale to 0)

  • Having users download an executable on their machines that periodically checks for updates

I want to be able to push updates reliably so I want to make sure I'm using the most robust method there is.

What is the best practice for this?

-- Xavier Millot
kubernetes
kubernetes-helm

1 Answer

8/11/2019

Separate CI/CD pipeline for building and testing docker images and separate pipeline for deploying.

Your pipeline should deploy an application in a version that's is already running on the environment, deploy a new one, run e2e tests to verify everything is correct and then push a new version to the desired cluster.

-- FL3SH
Source: StackOverflow