This post will guide you how to install ArgoCD on the kubernetes, along with ingress access and intergrate with third parth authorization.
What is ArgoCD
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
Install
1 2 | kubectl create namespace argocd kubectl apply - n argocd - f https: / / raw.githubusercontent.com / argoproj / argo - cd / stable / manifests / install.yaml |

Configure HTTP/HTTPS ingress for UI
Replace the value of host to a new value.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | apiVersion: extensions / v1beta1 kind: Ingress metadata: name: argocd - server - http - ingress namespace: argocd annotations: kubernetes.io / ingress. class : "nginx" nginx.ingress.kubernetes.io / force - ssl - redirect: "true" nginx.ingress.kubernetes.io / backend - protocol: "HTTP" spec: rules: - http: paths: - backend: serviceName: argocd - server servicePort: http host: argocd.example.com tls: - hosts: - argocd.gosysops.com secretName: argocd - secret # do not change, this is provided by Argo CD |
apply the HTTP yaml file
1 | kubectl apply -f argocd-http.yaml |

Configure GRPC ingress for client CLI access
same above, you need to change the value of host field.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 | apiVersion: extensions / v1beta1 kind: Ingress metadata: name: argocd - server - grpc - ingress namespace: argocd annotations: kubernetes.io / ingress. class : "nginx" nginx.ingress.kubernetes.io / backend - protocol: "GRPC" spec: rules: - http: paths: - backend: serviceName: argocd - server servicePort: https host: grpc.argocd.example.com tls: - hosts: - grpc.argocd.gosysops.com secretName: argocd - secret # do not change, this is provided by Argo CD |
apply grpc ingress
1 | kubectl apply argocd-grpc.yaml |

Configure argo-server to allow HTTP
edit argo-server deoployment to add parameters

Default Password
For ArgoCD 1.8, the initial password is autogenerated to be the pod name of the ArgoCD API server. This can be retrieved with the command:
1 | kubectl get pods -n argocd -l app.kubernetes.io /name =argocd-server -o name | cut -d '/' -f 2 |
it won’t be work sometimes, you can re-deployment argocd-server. but the simplest way is to change password with updating config map.
go to the https://www.browserling.com/tools/bcrypt to generate a new hash password.

replace the value of admin.password field and apply it
1 2 3 4 5 | kubectl -n argocd patch secret argocd-secret \ -p '{ "stringData" : { "admin.password" : "$2a$10$ejPpkdo5b52Ue5MDi2X4.OdcKzodli4OR15NuMWyAta6RyKjx6FvW" , "admin.passwordMtime" : "'$(date +%FT%T%Z)'" }}' |

Login
