Saya telah membuat rahasia menggunakan
kubectl create secret generic production-tls \
--from-file=./tls.key \
--from-file=./tls.crt
Jika saya ingin memperbarui nilai - bagaimana saya bisa melakukan ini?
kubernetes
kubectl
Chris Stryczynski
sumber
sumber
--save-config
kepadakubectl create secret
untuk menghindari peringatan CLI.kubectl create secret tls my-domain-tls --namespace=default --key=./tls.key --cert=./tls.crt --dry-run -o yaml | kubectl apply -f -
Sertifikat dalam teks biasa.Anda dapat menghapus dan segera membuat ulang rahasianya:
Saya meletakkan perintah ini dalam skrip, pada panggilan pertama Anda mendapat peringatan tentang (belum) rahasia yang ada, tetapi ini berfungsi.
sumber
apply
lebih masuk akal, terima kasih!--namespace=kube-system
Alternatifnya, Anda juga dapat menggunakan
jq
s=
or|=
operator untuk memperbarui rahasia dengan cepat.Meskipun mungkin tidak seelegan atau sesederhana
kubectl create secret generic --dry-run
pendekatannya, secara teknis, pendekatan ini benar-benar memperbarui nilai daripada menghapus / membuatnya kembali. Anda juga akan membutuhkanjq
danbase64
(atauopenssl enc -base64
) perintah yang tersedia,tr
adalah utilitas Linux yang tersedia secara umum untuk memotong baris baru yang tertinggal.Lihat di sini untuk detail lebih lanjut tentang
jq
operator pembaruan|=
.sumber
Karena saya tidak dapat membalas jawaban Devy di atas, yang saya suka karena ini akan mempertahankan Kepemilikan di mana menghapus dan membuat ulang berpotensi kehilangan informasi tambahan dalam catatan. Saya menambahkan ini untuk orang-orang baru yang mungkin tidak segera memahami mengapa variabel mereka tidak diinterpolasi.
Hal ini membuat saya mencoba menggunakan metode 'patch' dari kubectl, yang sepertinya juga berfungsi.
Terima kasih Devy atas jawaban yang paling sesuai dengan kebutuhan saya.
sumber
Untuk kasus yang lebih spesifik, Anda mungkin perlu menentukan namespace Anda bahwa sertifikat perlu diperbarui dan menghapus yang lama.
sumber
Hanya untuk memperluas jawaban ini saya menemukan bahwa menambahkan '--ignore-not-found' ke penghapusan membantu CICD kami karena tidak akan salah jika rahasianya tidak ada, itu hanya akan melanjutkan dan membuatnya:
sumber
Saya telah menggunakan yang ini dan itu bekerja dengan sangat baik:
docker-server = https://index.docker.io/v1/ (untuk DockerHub)
Untuk detail selengkapnya: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line
sumber