Scrivere un file yaml dinamico

di il
2 risposte

Scrivere un file yaml dinamico

Ho un file con molte righe e con estensione .yaml che vi mostro qui di seguito:

version: "3.9"
services:
 traefik:
   ...
   command:
     ... etc...
     - --certificatesresolvers.leresolver.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
     ... etc...
   volumes:
     ... etc...
   ports:
     ... etc...
   labels:
     ... etc...

Dentro ‘command’ le righe di codice sono precedute dai seguenti trattini e dai seguenti spazi:

     - --

In alcuni casi ho bisogno di scrivere nel file yaml la riga seguente:

     - --certificatesresolvers.leresolver.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory

in altri casi invece di ometterla.

La mia idea è stata questa (cambio 1 con 2 nel file .sh a seconda dei casi e poi copio tutto nella shel di Linux):

File .sh

SERVER="1"
if [ "$SERVER" = "1" ]; then
    export CERTIFICATO=certificatesresolvers.leresolver.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
elif [ "$SERVER" = "2" ]; then
    export CERTIFICATO=
else
    echo "Scelta effettuata non corretta!"
fi

File .yaml

- --${CERTIFICATE}

Purtroppo il file yaml prodotto non è corretto e non so perché.

Quali altre opzioni disponibili ho per risolvere il mio problema?

Vorrei evitare di usare due file yaml che differiscono solo per una riga per una lunga serie di ragioni che non sto qui a spiegare.

Grazie

2 Risposte

  • Re: Scrivere un file yaml dinamico

    23/12/2022 - iBaffiPro ha scritto:


    File .sh

    SERVER="1"
    if [ "$SERVER" = "1" ]; then
        export CERTIFICATO=certificatesresolvers.leresolver.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
    elif [ "$SERVER" = "2" ]; then
        export CERTIFICATO=
    else
        echo "Scelta effettuata non corretta!"
    fi

    Scusa ma, nel codice sopra, perché hai scritto nella prima riga SERVER senza il prefisso “$”?

    E' corretto che sia così?

  • Re: Scrivere un file yaml dinamico

    Si, è corretto, per assegnare una variabile bisogna omettere il $, per leggere il contenuto di una variabile bisogna mettere il $.

Devi accedere o registrarti per scrivere nel forum
2 risposte