Helm ಚಾರ್ಟ್ನಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ವೇರಿಯೇಬಲ್ಗಳಿಗೆ ಇರುವ Secret ಬಳಸಿ
shell ವೇರಿಯೇಬಲ್ ಕಂಟೇನರ್ ಪರಿಸರವಾಗುತ್ತದೆ ಎಂದು ಊಹಿಸುವ ಬದಲು Helm 3 Deployment ಟೆಂಪ್ಲೇಟ್ನಲ್ಲಿ Secretನಿಂದ ಸಂಪೂರ್ಣ ಪ್ರಾಕ್ಸಿ URLಗಳನ್ನು ಉಲ್ಲೇಖಿಸಿ.
release namespace ನಲ್ಲಿ ಈಗಾಗಲೇ app-outbound-proxy ಎಂಬ Secret ಇದೆ ಎಂದು ಭಾವಿಸಿ. ಅದರ http_proxy ಮತ್ತು https_proxy ಕೀಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ಗೆ ಬೇಕಾದ ಸಂಪೂರ್ಣ ಪ್ರಾಕ್ಸಿ URLಗಳಿವೆ.
Helm 3 ಚಾರ್ಟ್ values.yaml ನಲ್ಲಿ ಆ Secretನ ಹೆಸರನ್ನು ಮಾತ್ರ ಇಟ್ಟುಕೊಳ್ಳಬಹುದು:
outboundProxy:
existingSecret: app-outbound-proxy
ಉದ್ದೇಶಿತ ಕಂಟೇನರ್ನ Deployment ಟೆಂಪ್ಲೇಟ್ನಲ್ಲಿ ಕೀಗಳನ್ನು ಉಲ್ಲೇಖಿಸಿ:
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
ಇದು ಕಂಟೇನರ್-ಸ್ಪೆಕ್ನ ಒಂದು ಭಾಗ. Secret Pod ನ namespace ನಲ್ಲಿ ಇರಬೇಕು ಮತ್ತು ಉಲ್ಲೇಖಿಸಿದ ಎರಡೂ ಕೀಗಳನ್ನು ಹೊಂದಿರಬೇಕು. ಅದರ ಮೌಲ್ಯಗಳು ನಿಜವಾದ ಪ್ರಾಕ್ಸಿ ಶ್ರೋತೃದ ಪ್ರೋಟೋಕಾಲ್, ಹೋಸ್ಟ್ ಮತ್ತು ಪೋರ್ಟ್ ಬಳಸಬೇಕು. ದೃಢೀಕರಣವಿಲ್ಲದ ಸಾರ್ವಜನಿಕ ಪ್ರಾಕ್ಸಿ ಬಳಸಲು ಅನುಮತಿಸಲಾದ ಸಾರ್ವಜನಿಕ ಅಪ್ಲಿಕೇಶನ್ ವಿನಂತಿಗಳಿಗೆ, ಆ URLಗಳನ್ನು ಉಚಿತ ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿಯಲ್ಲಿ ಸೂಕ್ತ ಅಭ್ಯರ್ಥಿಯಿಂದ ನಿರ್ಮಿಸಿ; ಅಗತ್ಯವಿರುವ ನೇರ ವಿನಾಯಿತಿಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಿ.
ಚಾರ್ಟ್ ಮೌಲ್ಯವು ಹೆಸರನ್ನು ಒದಗಿಸುತ್ತದೆ; secretKeyRef ಕಂಟೇನರ್ನ ಪರಿಸರ ಮೌಲ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. helm ಚಲಾಯಿಸುವ shell ನಲ್ಲಿ HTTP_PROXY export ಮಾಡುವುದರಿಂದ ಮಾತ್ರ ಈ env ವಿಭಾಗ Pod ಟೆಂಪ್ಲೇಟ್ಗೆ ಸೇರುವುದಿಲ್ಲ.
Secret ಬದಲಾಯಿಸುವುದೂ ಜೀವನಚಕ್ರ ಬದಲಾವಣೆ
Secret ಡೇಟಾ ಬದಲಾದಾಗ ಕಂಟೇನರ್ ತನ್ನ ಪರಿಸರವನ್ನು ಹೊಸದಾಗಿಸುವುದಿಲ್ಲ. ಹೊಸದಾಗಿ ಪ್ರಾರಂಭವಾದ ಕಂಟೇನರ್ಗಳು ನವೀಕರಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ಪಡೆಯುವಂತೆ ಯೋಜಿತ ಮರುಪ್ರಾರಂಭ ಅಥವಾ rollout ವ್ಯವಸ್ಥೆ ಮಾಡಿ. ಅದೇ Secret ಹೆಸರಿನ ಅಡಿಯಲ್ಲಿ ಡೇಟಾ ಬದಲಾಯಿಸುವುದು ತಾನೇ Deployment ನ Pod ಟೆಂಪ್ಲೇಟ್ ಸಂಪಾದಿಸುವುದಿಲ್ಲ.
ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆ ಮಾಡಿದ ಪ್ರಾಕ್ಸಿ ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಬೆಂಬಲಿಸಬೇಕು. Helm ರೆಪೊಸಿಟರಿ ಪ್ರವೇಶ ಮತ್ತು ನೋಡ್ನ image pull ಈ ಕಂಟೇನರ್ ಪರಿಸರ ಸಹಾಯ ಮಾಡುವ ಮೊದಲು ಚಲಿಸುವ ಪ್ರತ್ಯೇಕ ಗ್ರಾಹಕರು.