kubernetes: ändern Sie ein Geheimnis über die cli?
Wie kann ich ändern, die Werte in einem kubernetes
Geheimnis über die cli?
Ich habe das Geheimnis mit kubernetes create secret generic
, aber es scheint nicht ein Weg, um zu ändern, ein Geheimnis. Zum Beispiel zum hinzufügen eines neuen secret-Wert oder ändern Sie ein Geheimnis-Wert in es.
Ich nehme an, ich kann gehen 'low-level', und schreiben Sie die yaml-Datei und machen Sie einen kubectl edit
aber ich hoffe es gibt eine einfachere Möglichkeit.
(Ich bin mit kubernetes 1.2.x
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der direkteste (und interaktive) Weise sollte ausführen
kubectl edit secret <my secret>
. Führen Siekubectl get secrets
wenn Sie möchten, um die Liste der Geheimnisse verwaltet von Kubernetes.kubectl edit
Befehl, zeigte ich in meiner Antwort. Mirkubectl
ist ein CLI (Werkzeug); wenn Sie waren auf der Suche für etwas anderes, lasst es mich bitte wissen.echo -n "admin" | base64
und fügen Sie das Ergebnis zu Ihrem .yaml-Datei (Befehlkubectl edit
)Falls Sie lieber eine nicht-interaktive aktualisieren, ist dies eine Möglichkeit, es zu tun:
Beachten Sie, dass
YmFy
ist eine base64-codiertebar
string. Wenn Sie möchten, übergeben Sie den Wert als argumentjq
können Sie tun:Ich mich wohler mit
jq
aberyq
sollte auch die Arbeit machen, wenn Sie bevorzugen yaml-format.kubectl get secret mysecret -o json | jq --arg foo "$(echo -n bar | base64)" '.data["foo"]=$foo' | kubectl apply -f -
Als ich mich in der Notwendigkeit der Modifizierung ein Geheimnis, ich landete hier.
Hier ist der bequemste Weg, fand ich für die Bearbeitung ein (eine Zeile) Geheimnis.
Diese baut auf
kubectl edit secret <my secret>
Timo Reimann vor.kubectl edit secret <my secret>
wird (in meinem Fall) aufrufen vi.Nun bewege ich den cursor, um das Leerzeichen nach dem Doppelpunkt von dem Geheimnis, das ich Bearbeiten möchte.
Dann drücke ich
r
und[enter]
wird die base64-codierten Wert in einer eigenen Zeile.Nun betrete ich
:. ! base64 -D
die Dekodierung der aktuellen Zeile.Nachdem meine änderungen auf den Wert, geben Sie mir
:. ! base64
die codieren, um den geänderten Wert.Drücken
k
[shift]J
wird wieder die geheimen Namen und den neuen Wert.:wq
schreiben die neuen secretfile und vi zu beenden.P. S., Wenn das Geheimnis hat eine multi-line-Wert, schalten Sie Zeilennummern (
:set nu
) und, nach dem ändern der decodierte Wert, verwenden SieA,B ! base64
wo A und B sind die Zeilennummern der ersten und letzten Zeile der Wert.P. P. S ich nur auf die harte Tour gelernt, dass
base64
erhalten den text zu Kodieren, mit einer angehängten newline 🙁 Wenn dies kein Problem für Ihre Werte - Ordnung. Ansonsten meine aktuelle Lösung ist, um zu filtern diese raus:.!perl -pe chomp | base64