Kubernetes içerisinde deployment dosyalarımızda bazen configmap ya da secret lar kullanmamız gerekebiliyor. Bu aslında uygulamalarımızın çalışması için bir gereklilik.
Bu yüzden configmap ya da secret içerisinde .env değişkenlerini tanımlıyoruz ve hayatımıza devam ediyoruz. Bazı durumlarda bu secretların değişmesi gerekiyor. Bunu manuel olarak düzenleyebilmekt mümkün. Peki otomatize şekilde nasıl ayarlardık?
Aslında birçok şekilde yapılabilir. Örneğin bunu CI/CD sürecinde yapabiliriz;
Mevcuta build ve deploy işlemleri yapılırken;
kubectl create configmap <configmap-name> --from-env-file=.env --dry-run=client -o yaml | kubectl apply -f -
Burada sürekli .env den okuma gerekebileceği için, direkt create diyemiyoruz. Çünkü zaten var diyecek. Bu yüzden dry-run özelliği ile yaml çıktısı üretip sonrasında apply ediyoruz.
Benzer işlemi secret için de yapabiliriz.
k... create secret generic ...
Kustomization ile güncelleme
Bir başka çözüm ise kustomization yöntemi. Burada da kustomization.yaml adında dosya ile ilerleyebiliyoruz.
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
generatorOptions:
disableNameSuffixHash: true # disable hashing
configMapGenerator:
- name: <configmap-name>
envs:
- .env
Yukarıdaki dosyamızın adı kustomization.yaml olmalı. Bunu apply etmek için ise, bildiğimiz yöntemden farklı olarak
kubectl apply -k .
.env ile mevcut dizinde olduğumuzu varsayarsak, kustomization otomatik olarak algılanacak ve set ettiğimiz configmap otomatik olarak güncellenecek.
Comments are closed.