Χρήση υπάρχοντος Secret για μεταβλητές διαμεσολαβητή σε διάγραμμα Helm
Ανατρέξτε σε πλήρεις διευθύνσεις URL διαμεσολαβητή από ένα Secret στο πρότυπο Deployment του Helm 3 αντί να υποθέτετε ότι μια μεταβλητή κελύφους γίνεται περιβάλλον κοντέινερ.
Ας υποθέσουμε ότι ο χώρος ονομάτων της έκδοσης έχει ήδη ένα Secret με όνομα app-outbound-proxy. Τα κλειδιά του http_proxy και https_proxy περιέχουν τις πλήρεις διευθύνσεις URL διαμεσολαβητή που χρειάζεται η εφαρμογή.
Ένα διάγραμμα Helm 3 μπορεί να κρατή μόνο το όνομα αυτού του Secret στο values.yaml:
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 και να περιέχει και τα δύο κλειδιά που αναφέρονται. Οι τιμές του πρέπει να χρησιμοποιούν το πρωτόκολλο, τον κεντρικό υπολογιστή και τη θύρα του πραγματικού ακροατή διαμεσολαβητή. Για δημόσια αιτήματα της εφαρμογής που επιτρέπεται να χρησιμοποιούν δημόσιο διαμεσολαβητή χωρίς έλεγχο ταυτότητας, χτίστε αυτές τις διευθύνσεις από αντίστοιχο υποψήφιο στη λίστα δωρεάν διαμεσολαβητών· διατηρήστε τυχόν απαιτούμενες άμεσες εξαιρέσεις.
Η τιμή του διαγράμματος παρέχει όνομα· το secretKeyRef παρέχει τις τιμές περιβάλλοντος του κοντέινερ. Η απλή εξαγωγή HTTP_PROXY στο κέλυφος που εκτελεί το helm δεν προσθέτει αυτή την ενότητα env σε πρότυπο Pod.
Η αλλαγή του Secret είναι και αλλαγή κύκλου ζωής
Ένα κοντέινερ δεν ανανεώνει το περιβάλλον του όταν αλλάζουν τα δεδομένα του Secret. Οργανώστε την προβλεπόμενη επανεκκίνηση ή το rollout ώστε τα νεοεκκινημένα κοντέινερ να λαμβάνουν ενημερωμένες τιμές. Η αλλαγή δεδομένων κάτω από το ίδιο όνομα Secret δεν επεξεργάζεται από μόνη της το πρότυπο Pod του Deployment.
Η εφαρμογή πρέπει να υποστηρίζει τις επιλεγμένες μεταβλητές περιβάλλοντος διαμεσολαβητή. Η πρόσβαση στο αποθετήριο Helm και η λήψη εικόνας στον κόμβο είναι ξεχωριστοί καταναλωτές που εκτελούνται πριν μπορέσει να βοηθήσει αυτό το περιβάλλον κοντέινερ.