Giriş
Özet
1. Önce bir chart oluştururuz. Bunun için helm create komutu kullanılır. Şöyle yaparız. Detay için helm create yazısına bakabilirsiniz.
> helm create demo-chart
2. Daha sonra değişkenler düzenlenir.
3. Install işleminden önce "helm template ..." ile üretilen yaml dosyasında hata olup olmadığı kontrol edilir
4. helm install seçeneği ile proje kurulur
5. helm list ile tüm kurulumların veya helm status ile belirtilen kurulumun durumuna bakılır
6. Eğer geri almak istersek helm rollback kullanılır7. helm upgrade ile proje güncellenir
8. helm uninstall ile proje kaldırılır
How Helm is connecting to Kubernetes Cluster?
Açıklaması şöyle
Helm uses the default kubeconfig location to connect with the Kubernetes cluster. If you want to connect any other cluster for which kubeconfig is placed on another location then you need to update the following env variable$KUBECONFIG (default "~/.kube/config")apart from this variable, there are other variables as well. Please visit the documentation.
Şöyle yaparız
export KUBECONFIG=/home/id_rsa_ucd_common/okd4/foo/auth/kubeconfig
Detaylar
1. Değişkenler values.yaml dosyasına eklenir. templates dizinindeki dosyalar values.yaml dosyasındaki varsayılan değerleri kullanır. Eğer bazı değerleri values.yaml içinde vermek istemezsek veya ezmek istersek komut satırından da --set ile verilebilir. Şöyle yaparız
helm install sample-service ./sample-service --generate-name --set service.type=NodePort --set service.nodePort=31234
Helm Söz Dizimi
Örnek
Değişkenini değerine erişmek için şöyle yaparız. Yani iki tane süslü parantez arasında kullanılır{{ $.Values.myvariable }}
If
Helm - Flow Control If/Else yazısına taşıdım
with
Modifying Scope Using “with” yazısına taşıdım
range
range yazısına taşıdım
Döngü
Şöyle yaparız. {{ toYaml ($.Values.vtgate.resources) | indent 10 }} ile values.yaml dosyasındaki blok aynen kopyalanır
{{ range $cell := $.Values.availabilityZones }} - name: {{ $cell }} gateway: authentication: static: secret: name: {{ $.Values.keyspaceName }} key: users.json replicas: {{ $.Values.vtgate.replicas }} extraFlags: mysql_server_version: "8.0.13-Vitess" resources: {{ toYaml ($.Values.vtgate.resources) | indent 10 }} {{end}}
Örnek
Şöyle yaparız. Burada $. ile başlamıyor. Üzerinde yürünen blok için bilgi çekiliyor.{{- range .Values.proc.imgw }} {{- if and (not .podSpecific) (eq .protocol "TCP") }} - name: {{ .name }} protocol: {{ .protocol }} port: {{ .containerPort }} nodePort: {{ add $root.Values.farm_offset .nodePort }} targetPort: {{ .containerPort }} {{- end }}
values.yaml şöyledir
proc: ... imgw: - containerPort: 12340 name: rlwy-proc-imgw1 protocol: TCP nodePort: 30092 - containerPort: 12341 name: rlwy-proc-imgw2 protocol: TCP nodePort: 30093 - containerPort: 12342 name: rlwy-proc-imgw3 protocol: TCP nodePort: 30094 - containerPort: 12343 name: rlwy-proc-imgw4 protocol: TCP nodePort: 30095
Hiç yorum yok:
Yorum Gönder