Ich weiß, ich weiß... keine sensiblen Daten im Repo. Aber mal ehrlich - es ist manchmal echt kacke es nicht zu tun. Auch ist es so, dass man ja vielleicht auch seine sensiblen Daten versionieren will/muss. Und überhaupt - wenn ich meine sensiblen Daten viellicht regelmäßig ändere - wie sensibel sind sie dann?
Jedenfalls bin ich der Meinung, dass man sich ordentlich was vor macht - immerhin geht der Trend dahin seine Secrets in Jenkins/GitHub/Gitlab zu hinterlegen oder gar einen KMS zu nutzen - damit wird es dann schon ziemlich absurd.
Ich finde jedenfalls, dass es für einen genialen Workflow durchaus gute Gründe gibt, manche Daten auch im Git zu hinterlegen. Aber natürlich verschlüsselt.
Mozilla SOPS wurde genau für diesen Zweck entwickelt und es ermöglicht einen wahnsinnigen Fundus an möglichen Umsetzungen.
SOPS steht für Secrets OPerationS, ist im grunde nur eine einzelne Binary (wie alles coole heute so) und arbeitet mit verschiedenen Schnittstellen zusammen. Ich konzentriere mich hier auf eine Umsetzung mit Azure KeyVault als Schlüssellieferanten. Zum einen weil ich es grade unter den Fingern habe, zum anderen weil ich die Vorstellung mag mit dem OnBoarding eines Benutzers gleich alles im Sack zu haben.
Wie man sich die Grundlagen zurecht installiert, ist ganz gut auf der Seite beschrieben. Ich gehe hier von einem Windows System aus, da es in den meisten dicken Firmen standard ist. Ist aber auch egal, man muss nur das Tool zur Hand haben, dann sollte es auch so gehen.
Anschließend fangen wir schon das Verschlüseln an:
# Datei verschlüsseln und eine neue erzeugen
sops --encrypt --azure-kv https://$KEYID .\UNSICHERE-Datei.yaml > .\SICHERE-Datei.yaml
Um eine Datei zu verschlüsseln und direkt die Datei umzuschreiben, kann man diesen Befehl ausführen:
# Datei verschlüsseln und direkt die Datei umschreiben
sops --encrypt --azure-kv https://$KEYID --in-place .\UNSICHERE-Datei.yam
Und voilà! Du hast jetzt eine verschlüsselte Datei im Git-Repository, die du ohne Bedenken teilen und versionieren kannst. Natürlich gibt es noch weitere Optionen und Möglichkeiten mit SOPS, aber das sollte dir einen guten Einstieg geben.
Wir alle kennen das Problem mit dem man sich rumschlagen muss, wenn man sich mit der Verwaltung von Infrastruktur beschäftigt. Das ständige hin und her von verschiedenen Tools und Konfigurationsdateien kann echt nervig sein. Aber keine Sorge, ich habe hier ein paar Tools für euch, die euch das Leben leichter machen können.
Erstens haben wir Terragrunt, ein Tool, das die Verwaltung von Terraform-Projekten erleichtert. Terragrunt ermöglicht es uns, Terraform-Konfigurationsdateien in einzelne Module zu unterteilen und automatisch zu verwalten, was den Arbeitsablauf deutlich verbessert.
Als nächstes haben wir Terraformer, ein Tool, das es uns ermöglicht, bereits bestehende Cloud-Infrastrukturressourcen in Terraform-Konfigurationsdateien umzuwandeln. Das ist super praktisch, wenn ihr eure bereits vorhandene Infrastruktur in einer Terraform-Konfiguration verwalten möchtet, ohne alles von Grund auf neu zu erstellen.
Drittens haben wir Terraform-docs, ein Tool, das es uns ermöglicht, unsere Terraform-Konfigurationsdateien automatisch zu dokumentieren. Damit sparen wir uns eine Menge Zeit und Mühe, wenn es darum geht, unsere Konfigurationsdateien sauber und gut strukturiert zu halten.
Und zu guter Letzt haben wir hcl2json, ein Tool, das uns hilft, unsere HCL (HashiCorp Configuration Language)-Dateien in JSON-Dateien umzuwandeln. Das ist praktisch, wenn wir unsere HCL-Dateien in anderen Tools verwenden möchten, die nur JSON-Dateien unterstützen.
Wenn du mit Kubernetes-Clustern arbeitest, weißt du wahrscheinlich, wie frustrierend es sein kann, die Kontrolle über dein System zu behalten. Aber keine Sorge, es gibt Tools, die dir das Leben leichter machen können!
Kubeval ist ein Tool, das deine Kubernetes-Konfiguration prüft, bevor du sie deployst. Es hilft dir, potenzielle Probleme im Voraus zu erkennen und Stress zu vermeiden. Es ist ein einfaches und effektives Werkzeug für alle, die Kubernetes benutzen.
Kube-capacity ist ein nützliches Tool für die Verwaltung von Kubernetes-Clustern. Es hilft dir, den Speicherbedarf deiner Pods und Nodes zu analysieren, damit du besser planen und sicherstellen kannst, dass dein Cluster immer genug Kapazität hat.
Es gibt noch weitere Tools, die dir bei der Verwaltung von Kubernetes-Clustern helfen können. Hier sind zwei weitere nützliche Tools:
Es gibt noch viele weitere Tools, die dir bei der Verwaltung von Kubernetes-Clustern helfen können, wie zum Beispiel: