Task #9565
Updated by Nico Schottelius over 3 years ago
* Basically: git push && pipeline that does the rest * Input from your experiences is appreciated h2. Choices h3. Jenkins * The "standard" * Very heavy (4GB+ memory) h3. "Buildbot":https://buildbot.net/ * Old * Static workers (easy to configure via k8s) * Seems to be fast and easy to setup h3. Gitlab * Highly integrated * Can use k8s workers, can use docker * Widely deployed * Huge and tricky to maintain h3. "GoCD":https://www.gocd.org/kubernetes/ * Recommended by the buildbot author (haaaaa??) h3. "ArgoCD":https://argoproj.github.io/argo-cd/ *and(?)* "argoflow":https://argoproj.github.io/argo-workflows/ TBD h2. Flows h3. DNS Update h4. Flow v1 * We change a zone file in git and push it somewhere * A new helm chart is being created * (maybe in between) bump the chartversion field? ** only if knot was able to run it? * The new helm chart is uploaded to the chartmuseum * The pods/services are notified about a new version ** How? *** Configmap change? *** git pull? h4. Flow v2 * The helm chart is given a git repo (+possible secret) * The pod tries reloading every minute ** if checkconf works: restart ** else: reject * A webhook in gitea might be used to trigger the DNS server instances ** Faster deploy ** Question is where to, whether we have 1 hook per cluster, etc.