Work in progress
Overview
Usiamo un meccanismo di CI/CD per cui:
- Esiste un git repo (xxx) unico sia per la parte controller che per la parte compute con 2 branch:
- Il branch 'main' viene usato nella cloud di produzione (environment 'production' di puppet)
- Il branch 'testing' viene usato nella cloud di test (environment 'testing' di puppet
- Il codice puppet che viene usato sta in cld-config. ma non si deve MAI modificare i sorgenti puppet direttamente su cld-config
- Modifiche al codice vanno implementate come pull request lavorando sulla propria postazione di lavoro. Una volta che sono approvate (e quindi mergiate nel branch main/testing) queste vengono automaticamente "scaricate" in cld-config
Setup iniziale dell'ambiente sulla propria postazione di lavoro
Installazione git-crypt
Va installato git-crypt
Per i sistemi RHEL compliant esiste in EPEL (quindi 'yum install git-crypt')
Se non c'e' il pacchetto per la propria distribuzione, si puo' installare da sorgente (serve gcc-c++ e openssl-devel):
git clone https://github.com/AGWA/git-crypt.git make make install PREFIX=/usr/local
Download del repo git
mkdir ~/Workdir cd ~/Workdir git clone https://github.com/CloudPadovana/puppet_epoxy.git
Scaricare la chiave per il crypting dei file params.pp
Scarico da cld-config il file /var/puppet/KeyRepoEpoxyTesting e copiarlo ad esempio in ~/Workdir
Modifica del codice per la cloud di test
Mi accerto che la copia locale del mio repo (branch testing) sia aggiornata:
$ cd ~/Workdir/puppet_epoxy/ $ git checkout testing branch 'testing' set up to track 'origin/testing'. Switched to a new branch 'testing' $ git pull Already up to date.
Se serve modificare anche un file params.pp, farne prima il decrypt (decrypt che avviene solo locamente: sul repo i file restano cryptati):
git crypt unlock ~/Workdir/KeyRepoEpoxyTesting
A questo punto creo un nuovo branch e qua ci faccio le modifiche che committo e pusho:
git checkout -b <nome-del-branch> # fai modifiche git add <files modificati> git commit -m "Messaggio" <files modificati> git push origin <nome-del-branch>
Creo la pull request:
Vado in: https://github.com/CloudPadovana → Pull requests
Dovrebbe appparire un bottone "Compare & Pull Request" con il nome del branch: cliccaci
Come base specifica il branch 'testing'. In compare deve esserci il nome del branch creato
Metti una breve descrizione e clicca su "Create pull request"