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.

Relaterade artiklar