Menggunakan Secret yang sudah ada untuk variabel proxy di chart Helm
Rujuk URL proxy lengkap dari Secret di templat Deployment Helm 3 alih-alih menganggap variabel shell menjadi lingkungan kontainer.
Misalkan namespace rilis sudah memiliki Secret bernama app-outbound-proxy. Kunci http_proxy dan https_proxy-nya berisi URL proxy lengkap yang dibutuhkan aplikasi.
Chart Helm 3 dapat menyimpan hanya nama Secret itu di values.yaml:
outboundProxy:
existingSecret: app-outbound-proxy
Di templat Deployment kontainer yang dimaksud, rujuk kuncinya:
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
Ini adalah fragmen spesifikasi kontainer. Secret harus ada di namespace Pod dan memuat kedua kunci yang dirujuk. Nilainya harus memakai protokol, host, dan port pendengar proxy yang sebenarnya. Untuk permintaan publik aplikasi yang diizinkan memakai proxy publik tanpa autentikasi, bangun URL tersebut dari kandidat yang sesuai di daftar proxy gratis; pertahankan pengecualian langsung yang diperlukan.
Nilai chart memasok nama; secretKeyRef memasok nilai lingkungan kontainer. Sekadar mengekspor HTTP_PROXY di shell yang menjalankan helm tidak menambahkan bagian env ini ke templat Pod.
Mengubah Secret juga perubahan siklus hidup
Kontainer tidak menyegarkan lingkungannya saat data Secret berubah. Atur restart atau rollout yang dimaksud agar kontainer yang baru dijalankan menerima nilai yang diperbarui. Mengubah data dengan nama Secret yang sama tidak dengan sendirinya menyunting templat Pod Deployment.
Aplikasi harus mendukung variabel lingkungan proxy yang dipilih. Akses repositori Helm dan penarikan image di node adalah konsumen terpisah yang berjalan sebelum lingkungan kontainer ini dapat membantu.