Î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:
- configurați harta de configurare cu utilizatorul și parola în text clar REZULTAT: LUCRĂRI
postmap -q someuser@localhost mysql:./virtual_mailbox.cf
- 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.
- 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ă