<> = argocd = * https://argoproj.github.io/cd/ * https://github.com/argoproj/argocd-example-apps.git * https://github.com/argoproj/argocd-example-apps/tree/master/guestbook * https://github.com/argoproj/argocd-example-apps/tree/master/helm-guestbook * https://en.wikipedia.org/wiki/DevOps#GitOps Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. {{{#!highlight sh sudo service k3s start kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml # Use the --insecure flag on all Argo CD CLI operations in this guide. # Install argocd CLI curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64 sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd rm argocd-linux-amd64 argocd version kubectl port-forward svc/argocd-server -n argocd 8080:443 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml # get initial password argocd admin initial-password -n argocd --insecure argocd login localhost:8080 --insecure # Username: admin # Password: # 'admin:login' logged in successfully # Context 'localhost:8080' updated argocd account update-password --insecure --server localhost:8080 # *** Enter password of currently logged in user (admin): # *** Enter new password for user admin: # *** Confirm new password for user admin: # Password updated # Context 'localhost:8080' updated sudo kubectl config set-context --current --namespace=argocd argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default --insecure application 'guestbook' created # Syncing via CLI argocd app get guestbook --insecure argocd app sync guestbook --insecure kubectl get pods --namespace default # NAME READY STATUS RESTARTS AGE # guestbook-ui-754d46fbf6-fq787 1/1 Running 0 9m35s kubectl get services --namespace default # NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE # guestbook-ui ClusterIP 10.43.64.157 80/TCP 10m kubectl get deployments --namespace default # NAME READY UP-TO-DATE AVAILABLE AGE # guestbook-ui 1/1 1 1 11m argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default --insecure # application 'helm-guestbook' created argocd app get helm-guestbook --insecure argocd app sync helm-guestbook --insecure kubectl exec -it guestbook-ui-754d46fbf6-fq787 --namespace default -- bash kubectl port-forward svc/guestbook-ui -n argocd 8081:80 --namespace default curl localhost:8081 kubectl get deployments --namespace default kubectl expose deployment guestbook-ui --port=8082 --target-port=80 --type=ClusterIP --namespace default # Syncing via CLI argocd app get guestbook --insecure argocd app sync guestbook --insecure }}}