Manchmal ist eine Lösung einfacher als man denkt. Ich habe zuletzt terragrunt evaluiert, weil ich nach einer Möglichkeit gesucht habe um einen ganzen Hintern von Umgebungen möglichst elegant zu beschreiben und Code von Konfiguration zu trennen.
Terragrunt jedoch zeigte mir relativ schnell den Mittelfinger, als ich eine größere Umgebung damit aufziehen wollte und diverse Module etc einzubinden versuchte:
│ fatal: '$GIT_DIR' too big
Klingt nach einem einfach zu lösenden Problem - dachte ich - und stelle gleich mal das olle Windows Git auf Long-Filenames um:
git config --system core.longpaths true
War aber nicht des Rätzels Lösung. Ich dachte mir: "das kann doch nicht euer ernst sein." und macht einen Github Issue auf. Es war ihr ernst. Durch die interne Struktur von Terragrunt bildet es ellenlange Dateipfade und unter Windows ist das immer doof. Daher gibt es sogar einen entsprechenden Paramter/Variable dazu.
Naja, es geht jedenfalls, wenn man seine Umgebungsvariable so umbiegt.
$env:TERRAGRUNT_DOWNLOAD="C:\Temp"
Ich bereite mich mal wieder für eine Prüfung vor. Dieses Mal darf es Cloud sein. Azure - umgenau zu sein. Den Anfang macht die AZ-104 Prüfung. Wer dazu ein wenig freien Content sucht, der kann sich ja mal dieses Video rein ziehen.
Wer seinen Arbeitsalltag in einer Flut von Abhängigkeiten verbringt die aus fremden Hängen fließen, dann kommt es schon mal vor, dass man auf eine Änderung reagieren und etwas neustarten muss.
Wenn ihr wisst, wovon ich rede, dann arbeitet ihr vermutlich auch mit Kubernetes und habt die Aufgabe Pods über ein geändertes secret zu informieren.
Da ich auf solche Aufgaben keine Lust habe, suche ich mir eine weitere Abhängigkeit die das für mich übernimmt - ich bin ja modern.
In meinem Fall geht es darum, dass ich in einem KeyVault ein Secret ändern will und das daraus gemountete Kubernetes Secret aktualisiert wird und eben die Pods, die dieses Secret nutzen bitte automatisch neu starten - klar, oder?
Hier kommt der reloader zum Einsatz:
Einfach installiert mit Hilfe von
kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml
kann ich dann ein Deployment einfach mit einer weiteren Annotation ausstatten und der Drops ist gelutscht: Das damit verbundene Deployment wird dann gemäß der Konfiguration mit einem roleout restart angepasst.