Puncte:0

container postfix kubernetes - configurarea secretului criptat, configurația configurației pentru o conexiune db de succes

drapel in

Încerc să rulez postfix ca container în k8s. Pornește containerul (inclusiv svc-urile), dar hărțile și secretele mele de configurare nu vor să joace frumos. Am incercat urmatoarele:

  1. configurați harta de configurare cu utilizatorul și parola în text clar REZULTAT: LUCRĂRI postmap -q someuser@localhost mysql:./virtual_mailbox.cf
  2. Criptați parola și numele de utilizator cu base64 (conform instrucțiunilor k8s), citiți aceste valori criptate în variabilele de mediu ale containerului (envFrom:- secretRef: nume: postfix-db-access), încercați să vă conectați la baza de date cu hartă poștală Pentru acest scenariu, harta de configurare arată astfel:
  1 apiVersion: v1
  2 fel: ConfigMap
  3 metadate:
  4 nume: postfix-db-configs
  5 spatiu de nume: server de mail
  6 date:
  7 virtual_mailbox.cf: |
  8 utilizator=$(echo ${POSTFIX_USER} | base64 -d)
  9 parola=$(echo ${POSTFIX_PASS} | base64 -d)
 10 hosts=database.default.svc.cluster.local
 11 dbname=postfix
 12 query=SELECT mail FROM generic_map WHERE local_mail='%s' AND active=1;

REZULTAT: EŞUCĂ. Utilizatorul „$(echo ${POSTFIX_USER} | base64 -d)” nu are acces la baza de date.

  1. Stocați numele de utilizator și parola pentru utilizatorul postfix în text clar în secret, astfel:
  1 apiVersion: v1
  2 fel: Secret
  3 metadate:
  4 nume: postfix-db-access
  5 spatiu de nume: server de mail
  6 tip: Opac
  7 șir de date:
  8 POSTFIX_USER: PostfixUser
  9 POSTFIX_PASS: somePassword

și linia corespunzătoare din harta de configurare

    utilizator=$(echo ${POSTFIX_USER})

REZULTAT: EŞUCĂ cu utilizatorul „echo ${POSTFIX_USER}) nu are acces la baza de date”. Solicitarea nu procesează variabila de mediu, care este setată corect.

Conectarea la baza de date și interogarea funcționează bine cu comanda mysql -h database.default.svc.cluster.local -u postfix -p -e 'use postfix;SELECT mail FROM generic_map WHERE local_mail='someuser@localhost' AND active=1;. Obțin toate rezultatele de care am nevoie și de care aștept.

Întrebarea este: cum configurez secretul și harta de configurare, astfel încât acest proces să funcționeze și să stabilească conexiunea la baza de date conform intenției?

umbră reală

drapel in
Se pare că tratați `$(echo ${POSTFIX_USER} | base64 -d)` ca și cum ar exista un script shell care rulează ConfigMaps, dar nu este 100% adevărat. Dacă aveți nevoie ca acesta să fie preprocesat înainte de utilizare, veți dori un `initContainer:` și un `emptyDir:{}` sau alt volum „partajat” între initContainer și containerul dvs. principal
realShadow avatar
drapel in
@mdaniel multumesc. Voi face un container init pentru a configura aceste fișiere. Asta are sens acum.
Puncte:1
drapel tr

Acesta este un răspuns wiki comunității postat pentru o mai bună vizibilitate. Simțiți-vă liber să-l extindeți.

Soluție posibilă de la @mdaniel:

Pentru a utiliza valori preprocesate pentru POSTFIX_USER, POSTFIX_PASS și etc., puteți folosi un container init cu Volum, pe care containerul init și containerul de aplicație îl partajează.

Mai multe informații sunt disponibile pe site-ul Kubernetes

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.