Puncte:2

Cum să încărcați configurația dintr-un fișier de proprietăți folosind kustomize?

drapel cn

Am încercat să folosesc kustomize pentru a încărca fișierul de proprietăți ca configurație.

Pentru asta, am creat un set de mostre ca în github legătură.

Cu fișiere de bază:

#Customize construirea bazei
apiVersion: v1
date:
  config: |-
    dbport=1234
    dcname=sfsdf
    dbssl=fals
    locktime=300
    domainuser=
fel: ConfigMap
metadate:
  etichete:
    proprietar: sara
  nume: database-configmap
---
apiVersion: apps/v1
fel: Desfăşurare
metadate:
  etichete:
    aplicație: nginx
    proprietar: sara
  nume: nginx
specificație:
  replici: 1
  selector:
    matchLabels:
      aplicație: nginx
      proprietar: sara
  șablon:
    metadate:
      etichete:
        aplicație: nginx
        proprietar: sara
    specificație:
      containere:
      - imagine: nginx
        nume: nginx

Cu fișier extern:

#kustomize fișierul de compilare
apiVersion: v1
date:
  config: "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
fel: ConfigMap
metadate:
  etichete:
    env: dev
    proprietar: sara
  nume: dev-database-configmap
---
apiVersion: apps/v1
fel: Desfăşurare
metadate:
  etichete:
    aplicație: nginx
    env: dev
    proprietar: sara
  nume: dev-nginx
specificație:
  replici: 1
  selector:
    matchLabels:
      aplicație: nginx
      env: dev
      proprietar: sara
  șablon:
    metadate:
      etichete:
        aplicație: nginx
        env: dev
        proprietar: sara
    specificație:
      containere:
      - imagine: nginx
        nume: nginx

Dacă observați configurația | este eliminat și, de asemenea, înlocuit cu \r\n ca un singur şir. Cum se remediază această aliniere?

drapel in
Ei bine, caracterele `\r` deoparte, acele două forme sunt identice; citatul scalar `: |` pentru este doar pentru consum uman -- în momentul în care intră în cluster, acesta are forma `config: "whatever\nwhatever-else\n"` așa cum va afișa `yaml2json` pentru ambele forme , sau, desigur, cum se materializează de fapt într-un Pod
Puncte:0
drapel in

Postând acest lucru ca wiki comunitar, nu ezitați să editați și să extindeți.


După cum a menționat @mdaniel în cometariu:

Ei bine, caracterele \r deoparte, acele două forme sunt identice; cel : | citarea scalară pentru este doar pentru consumul uman - până la momentul respectiv intră în cluster este de forma config: „orice\nwhatever-else\n”, așa cum va afișa yaml2json pentru ambele forme sau, desigur, cum se materializează de fapt într-un Pod

Puteți verifica acest lucru obținând detaliile configurației din clusterul kubernetes json și vezi că acestea sunt stocate în același mod (cu excepția celor suplimentare \r care este menționat mai sus):

$ kubectl obține cm database-configmap -o json
{
    "apiVersion": "v1",
    "date": {
        "config": "dbport=1234\ndcname=sfsdf\ndbssl=false\nlocktime=300\ndomainuser="
    },
    "kind": "ConfigMap",
    ...

și

$ kubectl obține cm dev-database-configmap -o json
{
    "apiVersion": "v1",
    "date": {
        "config": "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
    },
    "kind": "ConfigMap",
    ...

Există un răspuns pe StackOverflow care arată în scurt timp diferența dintre \n , \r și \r\n.

Wytrzymały Wiktor avatar
drapel it
Salut @SaraJune. Acesta [răspunde la întrebarea dvs.](https://stackoverflow.com/help/someone-answers)?

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.