Contents
argocd
https://github.com/argoproj/argocd-example-apps/tree/master/guestbook
https://github.com/argoproj/argocd-example-apps/tree/master/helm-guestbook
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
1 sudo service k3s start
2 kubectl create namespace argocd
3 kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
4 # Use the --insecure flag on all Argo CD CLI operations in this guide.
5
6 # Install argocd CLI
7 curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
8 sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
9 rm argocd-linux-amd64
10 argocd version
11
12 kubectl port-forward svc/argocd-server -n argocd 8080:443
13
14 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
15 # get initial password
16 argocd admin initial-password -n argocd --insecure
17
18 argocd login localhost:8080 --insecure
19 # Username: admin
20 # Password:
21 # 'admin:login' logged in successfully
22 # Context 'localhost:8080' updated
23
24
25 argocd account update-password --insecure --server localhost:8080
26 # *** Enter password of currently logged in user (admin):
27 # *** Enter new password for user admin:
28 # *** Confirm new password for user admin:
29 # Password updated
30 # Context 'localhost:8080' updated
31
32 sudo kubectl config set-context --current --namespace=argocd
33
34 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
35 application 'guestbook' created
36
37 # Syncing via CLI
38 argocd app get guestbook --insecure
39 argocd app sync guestbook --insecure
40
41 kubectl get pods --namespace default
42 # NAME READY STATUS RESTARTS AGE
43 # guestbook-ui-754d46fbf6-fq787 1/1 Running 0 9m35s
44 kubectl get services --namespace default
45 # NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
46 # guestbook-ui ClusterIP 10.43.64.157 <none> 80/TCP 10m
47 kubectl get deployments --namespace default
48 # NAME READY UP-TO-DATE AVAILABLE AGE
49 # guestbook-ui 1/1 1 1 11m
50
51 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
52 # application 'helm-guestbook' created
53 argocd app get helm-guestbook --insecure
54 argocd app sync helm-guestbook --insecure
55
56 kubectl exec -it guestbook-ui-754d46fbf6-fq787 --namespace default -- bash
57 kubectl port-forward svc/guestbook-ui -n argocd 8081:80 --namespace default
58 curl localhost:8081
59
60 kubectl get deployments --namespace default
61
62 kubectl expose deployment guestbook-ui --port=8082 --target-port=80 --type=ClusterIP --namespace default
63
64 # Syncing via CLI
65 argocd app get guestbook --insecure
66 argocd app sync guestbook --insecure