Google Cloud Platform¶
A installation guide for Operator Lifecycle Manager, Argo CD Operator (Helm), Argo CD, Argo CD CLI and the Guestbook Example in Google Cloud Platform Kubernetes Engine.
Note
You have to be in the cluster-admin ClusterRole to install all prerequisites, the operator and Argo CD.
Prerequisites¶
As usual you need to have access to an up and running Kubernetes cluster.
Caution
We recommend adding a LoadBalancer to your cluster!
Operator Lifecycle Manager¶
The Operator Lifecycle Manager (OLM) extends Kubernetes to provide a declarative way to install, manage, and upgrade Kubernetes native applications (Operators) and their dependencies in a cluster, in an effective, automated and scalable way.
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/0.13.0/install.sh | bash -s 0.13.0
Operator Installation¶
It’s possible to install the operator using the Operator Lifecycle Manager or manually.
Operator Lifecycle Manager¶
This installation method installs the operator using an OLM Catalog.
kubectl apply -f guides/k8s/olm/namespace.yaml
kubectl apply -f guides/k8s/olm/catalog-source.yaml
kubectl apply -f guides/k8s/olm/operator-group.yaml
kubectl apply -f guides/k8s/olm/subscription.yaml
kubectl rollout status -w deployment/argocd-operator-helm -n argocd
Manual¶
You can install the operator from local sources without having to install an OLM Catalog.
Note
No channel subscription and automatic operator updates available with this method.
kubectl apply -f guides/k8s/manual/namespace.yaml
kubectl apply -f guides/k8s/manual/service-account.yaml
kubectl apply -f guides/k8s/manual/role.yaml
kubectl apply -f guides/k8s/manual/role-binding.yaml
kubectl apply -f guides/k8s/manual/crd.yaml
kubectl apply -f guides/k8s/manual/deployment.yaml
kubectl rollout status -w deployment/argocd-operator-helm -n argocd
Argo CD Installation¶
Install Argo CD server components and Argo CD command line interface.
Argo CD¶
Install Argo CD from the command line.
Attention
This example installation assumes you have a Load Balancer available in your GCP cluster!
Note
This operator shares all configuration values from the Argo CD Helm Chart.
kubectl apply -f examples/k8s-lb.yaml
kubectl get ArgoCDs argocd -n argocd
kubectl rollout status -w deployment/argocd-application-controller -n argocd
kubectl rollout status -w deployment/argocd-dex-server -n argocd
kubectl rollout status -w deployment/argocd-redis -n argocd
kubectl rollout status -w deployment/argocd-repo-server -n argocd
kubectl rollout status -w deployment/argocd-server -n argocd
Argo CD Ingress¶
You will find your Load Balancer IP in the section Services & Ingress
.

Hint
Now point your browser to: https://<LoadBalancer Endpoint>:443

Argo CD CLI¶
Argo CD provides a command line interface. To be in sync with your Argo CD version you can download it directly from the Argo CD installation.
Download CLI¶
curl --insecure https://<LoadBalancer Endpoint>:443/download/argocd-linux-amd64 -o argocd
Change default password¶
Following example changes the default password to Password1!
kubectl -n argocd patch secret argocd-secret \
-p '{"stringData": {
"admin.password": "$2a$10$hDj12Tw9xVmvybSahN1Y0.f9DZixxN8oybyA32Uy/eqWklFU4Mo8O",
"admin.passwordMtime": "'$(date +%FT%T%Z)'"
}}'
Login Argo CD¶
argocd login --insecure --username admin --password Password1! <LoadBalancer Endpoint port 443>
Guestbook Example¶
Now lets play and install the Guestbook Example.
New Application¶
argocd app create guestbook \
--repo https://github.com/argoproj/argocd-example-apps.git \
--path helm-guestbook \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
Sync Application¶
argocd app sync guestbook
Cleanup¶
Ants are very clean species too!
Guestbook Example¶
argocd app delete guestbook
Argo CD installation¶
The uninstallation process will remove the Argo CD installation (CR) but NOT the CRD’s. You have to remove them manually:
kubectl delete ArgoCD argocd -n argocd
kubectl delete crd appprojects.argoproj.io
kubectl delete crd applications.argoproj.io
kubectl delete crd workflowtemplates.argoproj.io
kubectl delete crd workflows.argoproj.io
Operator Lifecycle Manager installation¶
kubectl delete -f guides/k8s/olm/subscription.yaml
kubectl delete csv argocd-operator-helm.v0.0.4 -n argocd
kubectl delete crd argocds.argoproj.io
kubectl delete -f guides/k8s/olm/catalog-source.yaml
kubectl delete -f guides/k8s/olm/operator-group.yaml
kubectl delete -f guides/k8s/olm/namespace.yaml
Manual installation¶
kubectl delete -f guides/k8s/manual/deployment.yaml
kubectl delete -f guides/k8s/manual/crd.yaml
kubectl delete -f guides/k8s/manual/role-binding.yaml
kubectl delete -f guides/k8s/manual/role.yaml
kubectl delete -f guides/k8s/manual/service-account.yaml
kubectl delete -f guides/k8s/manual/namespace.yaml