Wrote and deployed a tool (Heidrun) to ease application deployments to Kubernetes at a customer's.
Heidrun's front is written in React, the back is written in js, with node. It uses Gitlab's API to fetch the projects and their version (branches and tags), Hashicorp Vault api to fetch the environment names and configuration, LDAP for authentication and Vault's policies for authorization management. The deployment pipelines it creates are spawned as Kubernetes Jobs with initContainers for things such as fetching the sources and variable substitution and a final container for the actual helm upgrade or kubectl apply.
Though Heidrun is plugged into Gitlab's CI to run whenever needed, it also allows for manual application deployments through the use of a form where the operator is asked to select the project name, version and targeted environment from a list.
Heidrun's front is written in React, the back is written in js, with node. It uses Gitlab's API to fetch the projects and their version (branches and tags), Hashicorp Vault api to fetch the environment names and configuration, LDAP for authentication and Vault's policies for authorization management. The deployment pipelines it creates are spawned as Kubernetes Jobs with initContainers for things such as fetching the sources and variable substitution and a final container for the actual helm upgrade or kubectl apply.
Though Heidrun is plugged into Gitlab's CI to run whenever needed, it also allows for manual application deployments through the use of a form where the operator is asked to select the project name, version and targeted environment from a list.