Helm grafiğinde proxy değişkenleri için mevcut bir Secret kullanma
Bir shell değişkeninin konteyner ortamı olacağını varsaymak yerine Helm 3 Deployment şablonunda bir Secret içindeki tam proxy URL'lerine başvurun.
Sürümün namespace'inde app-outbound-proxy adlı bir Secret olduğunu varsayalım. Bunun http_proxy ve https_proxy anahtarları uygulamanın gereksinim duyduğu tam proxy URL'lerini içerir.
Helm 3 grafiği values.yaml içinde yalnızca o Secret'ın adını tutabilir:
outboundProxy:
existingSecret: app-outbound-proxy
Hedeflenen konteynerin Deployment şablonunda anahtarlara başvurun:
env:
- name: HTTP_PROXY
valueFrom:
secretKeyRef:
name: {{ .Values.outboundProxy.existingSecret | quote }}
key: http_proxy
- name: HTTPS_PROXY
valueFrom:
secretKeyRef:
name: {{ .Values.outboundProxy.existingSecret | quote }}
key: https_proxy
Bu, konteyner belirtiminin bir parçasıdır. Secret, Pod'un namespace'inde bulunmalı ve başvurulan iki anahtarı da içermelidir. Değerleri, gerçek proxy dinleyicisinin protokolünü, konağını ve bağlantı noktasını kullanmalıdır. Kimlik doğrulaması olmayan genel bir proxy kullanımına izin verilen genel uygulama istekleri için bu URL'leri ücretsiz proxy listesindeki uygun adaydan oluşturun; gerekli doğrudan istisnaları koruyun.
Grafik değeri bir ad sağlar; secretKeyRef konteynerin ortam değerlerini sağlar. helm çalıştıran shell'de yalnızca HTTP_PROXY export etmek bu env bölümünü bir Pod şablonuna eklemez.
Secret'ı değiştirmek de bir yaşam döngüsü değişikliğidir
Secret verileri değiştiğinde konteyner ortamını yenilemez. Yeni başlatılan konteynerlerin güncellenmiş değerleri alması için amaçlanan yeniden başlatmayı veya rollout'u düzenleyin. Aynı Secret adı altındaki verileri değiştirmek, tek başına Deployment'ın Pod şablonunu düzenlemez.
Uygulama seçilen proxy ortam değişkenlerini desteklemelidir. Helm deposuna erişim ve düğümdeki image çekme, bu konteyner ortamı yardımcı olmadan önce çalışan ayrı tüketicilerdir.