Deployment of ArgoCD to EKS

DevOps & Cloud Engineer — building scalable, automated, and intelligent systems. Developer of sorts | Automator | Innovator
ArgoCD is responsible for the CD pipeline, and this deploys our applications to the eks.
Steps involved:
- updating kubeconfig to our eks endpoint, we use the following command:
aws eks update-kubeconfig --region region-code --name my-cluster
//in our case it is:
aws eks update-kubeconfig --region us-east-1 --name develop-bkstage
This will make sure that our kubectl points to our deployed eks cluster
Now we begin setting up our ArgoCD deployment for kubernetes. We already updated our kubeconfig in the first step so now we can perform the following commands:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
This will deploy argocd to the cluster, we can check the running pods by kubectl get pods -n argocd , you will see image-updater or updater-image make sure to delete this pod once after ArgoCD UI setup for ArgoCD Image Updater to work properly
Port forward the argocd server when it is running with:
kubectl port-forward svc/argocd-server -n argocd 8080:443We will have to install argocd cli into our system to retrieve as well as change our password.
brew install argocd
argocd admin initial-password -n argocd This will give us an initial password which we will use to login and change the password.
argocd login localhost:8080
argocd account update-password Here, we will be prompted to use the old password and then enter a new password. Use devops123 as the new password, for this example!
We have successfully changed the password through CLI and now we can use argocd properly with the UI.
Go to
localhost:8080and login withadmin,devops123In the ArgoCD UI, go to Settings → Repositories and Connect to the
application-opsrepository. Usehttps,git, enter your GitHubusernameand your GitHub token aspassword

Once the repository is connected, we are ready to add Apps to ArgoCD, in our case the first app will be Backstage.
Click on New App, then “Edit as YAML” and use the following YAML:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: backstage
annotations:
argocd-image-updater.argoproj.io/image-list: >-
bkstage/devimg=<ecr repository>/bkstage/devimg
argocd-image-updater.argoproj.io/backstage.update-strategy: semver
argocd-image-updater.argoproj.io/backstage.semver: '>0.0.0'
argocd-image-updater.argoproj.io/write-back-method: git
spec:
destination:
name: ''
namespace: backstage
server: https://kubernetes.default.svc
source:
path: backstage_nginx_secrets_manager
repoURL: https://github.com/myorg/application-ops
targetRevision: HEAD
sources: []
project: default
syncPolicy:
automated:
prune: false
selfHeal: false
Here, repoURL is the URL to our application-ops, backstage_nginx_secrets_manager is the folder that has the manifests of our Backstage in the repo.
The annotations tell the ArgoCD image updater which ECR to refer and the update strategy, where (git) it must write the update back to.
Once everything is setup, we can Create the App and our Backstage should be “Progressing” to “Healthy” after a few seconds. Incase, some error has occurred, you have to dig into the backstage namespace and check logs, describe the pods in there.
This marks the deployment of backstage to our cluster and it should also be accessible at our domain, if configured!






