Files
Marco Verleun 7ec71d6feb first commit
2022-12-09 15:19:59 +01:00
..
2022-12-09 15:19:59 +01:00
2022-12-09 15:19:59 +01:00
2022-12-09 15:19:59 +01:00
2022-12-09 15:19:59 +01:00
2022-12-09 15:19:59 +01:00

= Charts

Deze repo is bedoeld om applications te deployen op het VI cluster op IT en OT. Er wordt gebruik gemaakt van ArgoCD!footnote[https://argo-cd.readthedocs.io/en/stable/]

== ArgoCD

ArgoCDis een declaratieve GitOps tool voor Kubernetes. Met behulp van ArgoCD wordt gezorgd dat de staat van het Kubernetes cluster wordt gewaarborgd in Git. Git is dus leidend en altijd de bron van waarheid.
Zo geven we aan in Git dat ArgoCD alle Helm charts uit dit project moet uitrollen in de `cursus` namespace. Wanneer vervolgens iets of iemand een resource (per ongeluk) van het cluster verwijderd of wijzigt, dan bemerkt ArgoCD dit direct en zorgt er (eventueel automatisch) voor dat dit ongedaan kan worden gemaakt.

Een ander voordeel van ArgoCD is dat het een duidelijk overzicht biedt van de actuele applicaties, en hun revisies. Het is ook mogelijk om van een applicatie terug te springen naar een eerdere revisie.

De user interface is te bereiken op: https://argocd.apps.ocp4-vi.alliander.local/applications

== Repo opzet

Deze repo is alsvolgt opgezet:

- De `apps` map bevat alle projecten in hun eigen subdirectory met daarin de verschillende Helm charts die we op het cluster wensen uit te rollen met bijbehorende `values.yaml` per namespace
- De `apps` map bevat tevens de `app-of-apps` in het bestand `Chart.yaml` en zijn `values.yaml` een overkoepelende ArgoCD applicatie die alle configuratie bevat van wat en waar alles moet worden uitgerold.

== Een nieuwe deployment toevoegen

Een nieuwe deployment toevoegen gebeurt in twee stappen:

* Maak een nieuwe helm chart structuur voor nieuwe deployment in de `apps` map, bijvoorbeeld met de volgende commando's.
[,shell]
----
  $ cd apps
  $ helm create new-app
----
* Voeg deze map toe aan de app of apps door de file `apps/app-of-apps/values-it` en/of `apps/app-of-apps/values-ot` aan te passen.


== Testen
Je kunt de templating van de hele repo testen met:

[,shell]
----
$ cd apps/cursus-application-1
$ helm template -f vi-it/values-dev.yaml .
----

Een losse app testen, bijvoorbeeld `cursus-application-1` voor de dev namespace:

[,shell]
----
$ cd `apps/cursus-application-1`
$ helm template -f vi-it/values-dev.yaml .
----