Kubernetes ArgoCD
Environments Based On Pull Requests (PRs): Using Argo CD To Apply GitOps Principles On Previews
Делаю:
12.02.2021
https://www.youtube.com/watch?v=cpAaI8p4R60
Original Gist
https://gist.github.com/vfarcic/808108069f709572f1bc372c65f6b5c0
// Инсталляция kyml
$ curl -Lo kyml https://github.com/frigus02/kyml/releases/download/v20190906/kyml_20190906_linux_amd64 && chmod +x kyml && sudo mv kyml /usr/local/bin/
$ export INGRESS_HOST=$(minikube --profile my-profile ip)
$ echo ${INGRESS_HOST}
192.168.49.2
$ cd ~/tmp
$ git clone https://github.com/vfarcic/argocd-previews
$ cd argocd-previews/
$ cat preview.yaml
$ export PR_ID=1
$ export REPO=devops-toolkit
$ export APP_ID=pr-$REPO-$PR_ID
$ export IMAGE_TAG=2.6.2
$ export HOSTNAME=$APP_ID.$INGRESS_HOST.xip.io
$ cat preview.yaml \
| kyml tmpl -e REPO -e APP_ID -e IMAGE_TAG -e HOSTNAME \
| tee helm/templates/$APP_ID.yaml
$ vi apps.yaml
Меняю Repo
repoURL:·https://github.com/vfarcic/argocd-previews.git
на свой.
И создаю repo у себя на github.
$ kubectl apply --filename project.yaml
$ kubectl apply --filename apps.yaml
$ argocd app sync previews
$ kubectl get namespaces
$ kubectl --namespace $APP_ID \
get pods
Открылось по адресу:
http://pr-devops-toolkit-1.192.168.49.2.xip.io/
$ export PR_ID=1
$ export REPO=devops-paradox
$ export APP_ID=pr-$REPO-$PR_ID
$ export IMAGE_TAG=1.71
$ export HOSTNAME=$APP_ID.$INGRESS_HOST.xip.io
$ cat preview.yaml \
| kyml tmpl -e REPO -e APP_ID -e IMAGE_TAG -e HOSTNAME \
| tee helm/templates/$APP_ID.yaml
$ git add .
$ git commit -m "$APP_ID"
$ git push
$ argocd app sync previews
$ kubectl --namespace $APP_ID \
get pods
Открыло по адресу:
http://pr-devops-paradox-1.192.168.49.2.xip.io/
$ export PR_ID=2
$ export REPO=devops-toolkit
$ export APP_ID=pr-$REPO-$PR_ID
$ export IMAGE_TAG=2.9.9
$ export HOSTNAME=$APP_ID.$INGRESS_HOST.xip.io
$ cat preview.yaml \
| kyml tmpl -e REPO -e APP_ID -e IMAGE_TAG -e HOSTNAME \
| tee helm/templates/$APP_ID.yaml
$ git add .
$ git commit -m "$APP_ID"
$ git push
$ argocd app sync previews
http://pr-devops-toolkit-2.192.168.49.2.xip.io/
$ rm helm/templates/pr-devops-toolkit-1.yaml
$ git add .
$ git commit -m "$APP_ID"
$ git push
$ argocd app sync previews