My company is moving from an architecture of "many projects on a single webserver" to a Kubernetes cluster with multiple different hosted web applications in a single cluster.

In order to make integration of new customers easy, I want an UI to clone a 'template' code repository and give it a new life. When creating a new client from this interface, it would also create a Kubernetes deployment in a staging cluster, clone a database and possibly do other automated tasks.

I thought of rolling my own interface that would manage my Kubernetes deployments so I could tailor it exactly to the requirements, then I looked up GitLab and figured somebody was probably doing just that already.

Having never used GitLab, would it suit my use case?

Once the initial setup is done, I would actually use it for its intended purpose so I know it'll be good for that at least.

Question 2: Can I edit Kubernetes deployment configs from GitLab, such as changing replica count or RAM limit while it's running?

  • Do you currently host your code (either infra or app) in a git repository? – PrestonM Mar 14 '18 at 21:02

I would use Helm charts (you can write your own) for the CD part.

For the CI part you could install Jenkins and the kubernetes plugin using the Jenkins helm chart as well.

You can find plenty of documentation and tutorials on Helm and Jenkins on Kubenetes

  • Perhaps you could add a simple example. – 030 May 21 '18 at 6:54

One could just run kubectl apply -f <file>. When one updates an application, one could just run this command. A CI is basically able to run scripts. As GitLab is just a CI and a Git repository one could just run kubectl in a gitlab-ci.yml pipeline.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.