Använd en befintlig Secret för proxyvariabler i ett Helm-diagram
Referera till fullständiga proxy-URL:er från en Secret i Helm 3 Deployment-mallen i stället för att anta att en shellvariabel blir containerns miljö.
Anta att utgivningens namespace redan har en Secret med namnet app-outbound-proxy. Dess nycklar http_proxy och https_proxy innehåller de fullständiga proxy-URL:er som applikationen behöver.
Ett Helm 3-diagram kan bara behålla namnet på den Secret i values.yaml:
outboundProxy:
existingSecret: app-outbound-proxy
I den avsedda containerns Deployment-mall, referera till nycklarna:
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
Detta är ett fragment av containerspecifikationen. Secret måste finnas i Podens namespace och innehålla båda de refererade nycklarna. Dess värden måste använda den faktiska proxy-lyssnarens protokoll, värd och port. För offentliga applikationsförfrågningar som tillåts använda en offentlig proxy utan autentisering, bygg dessa URL:er från en lämplig kandidat i listan över gratis proxyservrar; behåll alla nödvändiga direkta undantag.
Diagramvärdet ger ett namn; secretKeyRef ger containerns miljövärden. Att bara exportera HTTP_PROXY i skalet som kör helm lägger inte till detta env-avsnitt i en Pod-mall.
Att ändra Secret är också en livscykeländring
En container uppdaterar inte sin miljö när Secret-data ändras. Ordna den avsedda omstarten eller rollouten så att nystartade containrar får uppdaterade värden. Att ändra data under samma Secret-namn redigerar inte i sig Deploymentens Pod-mall.
Applikationen måste stödja de valda proxy-miljövariablerna. Åtkomst till Helm-förrådet och nodens image-hämtning är separata konsumenter som körs innan denna containermiljö kan hjälpa.