Gunakan Secret sedia ada untuk pemboleh ubah proksi dalam carta Helm
Rujuk URL proksi lengkap daripada Secret dalam templat Deployment Helm 3 dan bukannya menganggap pemboleh ubah shell menjadi persekitaran kontena.
Katakan namespace keluaran sudah mempunyai Secret bernama app-outbound-proxy. Kunci http_proxy dan https_proxy-nya mengandungi URL proksi lengkap yang diperlukan aplikasi.
Carta Helm 3 boleh menyimpan hanya nama Secret itu dalam values.yaml:
outboundProxy:
existingSecret: app-outbound-proxy
Dalam templat Deployment kontena yang dimaksudkan, 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 ialah serpihan spesifikasi kontena. Secret mesti wujud dalam namespace Pod dan mengandungi kedua-dua kunci yang dirujuk. Nilainya mesti menggunakan protokol, hos dan port pendengar proksi sebenar. Bagi permintaan awam aplikasi yang dibenarkan menggunakan proksi awam tanpa pengesahan, bina URL itu daripada calon yang sepadan dalam senarai proksi percuma; kekalkan sebarang pengecualian langsung yang diperlukan.
Nilai carta membekalkan nama; secretKeyRef membekalkan nilai persekitaran kontena. Mengeksport HTTP_PROXY dalam shell yang menjalankan helm sahaja tidak menambah bahagian env ini pada templat Pod.
Menukar Secret juga perubahan kitaran hayat
Kontena tidak menyegarkan persekitarannya apabila data Secret berubah. Atur mula semula atau rollout yang dimaksudkan supaya kontena yang baru dimulakan menerima nilai yang dikemas kini. Menukar data di bawah nama Secret yang sama tidak dengan sendirinya menyunting templat Pod Deployment.
Aplikasi mesti menyokong pemboleh ubah persekitaran proksi yang dipilih. Akses repositori Helm dan tarikan imej pada nod ialah pengguna berasingan yang berjalan sebelum persekitaran kontena ini dapat membantu.