Helm charts vs ansible-playbook vs k8s operator in system installation

10/31/2019

I have big and complicated system for install into k8s cluster.

60 microservices and 10 helm charts installed to 5 namespaces.

Currently, we run 5 helm install/upgrade commands with a pause of 30 seconds between commands. This kind of installation provide a serious load on nodes due to pull docker images and start applications. We have a long and not clear installation time with often timeouts of components as consul, elasticsearch, and applications depend on these parts.

I would like to hear opinions about the way to change this terrible situation.

  1. Write the script that controls installation by helm charts.
  2. Write ansible-playbook run helm charts and control the installation status of components.
  3. Write ansible-playbook install components (using Jinja2 templates vs Golang templates)
  4. Write the k8s operator that installs components and control system status.
-- ozlevka
ansible
installation
kubernetes
kubernetes-helm

2 Answers

11/5/2019

There's a lot of ways of doing this. But you can use the kubernetes api directly. You can create any tech server such as Spring Boot, NodeJS, etc that controls the creation of the Kubernetes objects that you want. This way, basically, you'll be doing a customized Helm API, but the main difference is that you'll customize in your way with your needs.

-- Gabriel Dantas
Source: StackOverflow

12/13/2019

To answer my own question I have been created the desired installation that can be used to answer to quick solution for complicated installations. The solution is used ansible as an installation orchestrator and Helm as a package manager for install third party installation.

You can browse my github repo contains the code.

-- ozlevka
Source: StackOverflow