CI voor armoedzaaiers. (uitgaande dat je docker-compose gebruikt i.c.m. GCP voor je container registry en GKE)
Om makkelijker een nieuwe versie naar GCP te kunnen sturen gebruiken we een script. Dit script zorgt dat
- de container wordt gemaakt (indien nodig)
- de container naar GCP wodt gekopieerd
- de betreffende service in GCP wordt herstart met de nieuwe container
deze herstart gebeurt op een "veilige" manier ("rolling update"). De services blijven dus beschikbaar.
Om dit script te installeren:
- Open de terminal en geef commando:
sudo curl https://raw.githubusercontent.com/lvansnippenburg/shellscripts/master/deploy.sh -o /usr/local/bin/deploy
Dit kopieert het shell script naar de directory /usr/local/bin - Zorg dat je het script ook uit kunt voeren:
sudo chmod 0755 /usr/local/bin/deploy
En dat zou genoeg moeten zijn. Om het script uit te voeren ga je naar de directory waar je "docker-compose.yml" bestand staat - dat is dus in principe de directory van je project. Dan geef je commando:
deploy
Het script zoekt eerst in je docker-compose.yml naar de regel:
x-deployment: naam-van-deployment
Waar 'naam-van-deployment' de deployment naam is van je workload in GKE. Vervolgens zal een build worden gedaan als je dat wilt (er komt een vraag hiervoor) en zal de container naar de Registry worden gepushed. Tenslotte wordt de deployment ge-update. That's it.
Het is ook mogelijk om meerdere "docker-compose.yml" bestanden te gebruiken, bijvoorbeeld 1 voor test en 1 voor release. In dat geval geef je de release versie de naam "docker-compose-release.yml". Om deze specifieke versie aan te roepen gebruik je dan:
deploy release
Denk er wel aan om dan de regel x-deployment: naam-van-deployment
in je YML bestand juist aan te passen zodat de niet "release" versie naar een dvelopment deployment verwijst en de "release" versie van de YML naar de productie deployment.