{"id":29675873,"url":"https://github.com/dharmendrakariya/argocd-demo","last_synced_at":"2025-07-22T23:38:57.600Z","repository":{"id":44642844,"uuid":"385930279","full_name":"dharmendrakariya/argocd-demo","owner":"dharmendrakariya","description":"Complete CI and GitOps way CD Demo with ArgoCD.","archived":false,"fork":false,"pushed_at":"2022-02-02T16:49:08.000Z","size":27,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-03-05T04:07:35.935Z","etag":null,"topics":["argocd","ci-cd","gitops","helm","k8s","kubernetes"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dharmendrakariya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-14T12:20:42.000Z","updated_at":"2022-04-27T08:46:17.000Z","dependencies_parsed_at":"2022-09-13T19:00:53.357Z","dependency_job_id":null,"html_url":"https://github.com/dharmendrakariya/argocd-demo","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/dharmendrakariya/argocd-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dharmendrakariya%2Fargocd-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dharmendrakariya%2Fargocd-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dharmendrakariya%2Fargocd-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dharmendrakariya%2Fargocd-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dharmendrakariya","download_url":"https://codeload.github.com/dharmendrakariya/argocd-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dharmendrakariya%2Fargocd-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266591233,"owners_count":23953082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argocd","ci-cd","gitops","helm","k8s","kubernetes"],"created_at":"2025-07-22T23:38:57.061Z","updated_at":"2025-07-22T23:38:57.574Z","avatar_url":"https://github.com/dharmendrakariya.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## This document depicts the complete CI/CD workflow.\n\nTools we are using here are ```CiecleCI``` as a ```CI``` to build the docker image and push it to the DockerHub and ```ArgoCD``` as ```CD``` to deploy application in k8s Cluster.\n\n\n#### Fisrt Part:\n\n- We have [circleci-demo](https://github.com/dharmendrakariya/circleci-demo) named repo where we are having application code and Dockerfile\n\n- on every commit on master triggers the Circle CI and builds the docker image with semver like 1.0.$(circle_build_number)\n\n#### Second Part:\n\n- We are having [helm-chart](https://github.com/dharmendrakariya/helm-charts) repo and we are storing our chart here.\n\n    - How to create helm-chart repo in github is different topic, but you can refer the official [documentation](https://helm.sh/docs/howto/chart_releaser_action/). its very simple with the github actions.\n\n    - The chart we are using is ```demo7```\n\n#### Third Part: \n\n- We are having [argo-cd](https://github.com/dharmendrakariya/argocd-demo) repo where we are storing helm release (in ```hook``` branch) to get it synced in our cluster.\n\n    \n    - First, To install argocd in your cluster follow official [documentation](https://argo-cd.readthedocs.io/en/stable/getting_started/).\n\n    - After that you can create ingress resource for your deployed argocd\n\n    You can use below template, store it in ```argo-ingress.yaml``` and apply with ```kubectl apply -f argo-ingress.yaml```\n\n    ```\n    apiVersion: networking.k8s.io/v1\n    kind: Ingress\n    metadata:\n    annotations:\n        kubernetes.io/ingress.class: nginx\n        nginx.ingress.kubernetes.io/force-ssl-redirect: \"true\"\n        nginx.ingress.kubernetes.io/backend-protocol: \"HTTPS\"\n    name: argocd-server-ingress\n    namespace: argocd\n    spec:\n    rules:\n    - host: argo.yourDomain.xyz\n        http:\n        paths:\n        - backend:\n            service:\n                name: argocd-server\n                port:\n                name: https\n            path: /\n            pathType: Prefix\n    ```\n\n    You would be able to see the ingress in ```argocd``` namespace.\n\n    make the dns entry and try to access it, how to retrieve argo password is given in above mentioned official documentation.\n\n#### Fourth Part:\n\n- Create a application in argocd dashboard with given attributes.\n\n    - We will be installing helm chart with the subchart deploymenr method, us can refer [this](https://cloud.redhat.com/blog/continuous-delivery-with-helm-and-argo-cd) document. \n\n    Refer argo-cd repo, hook branch, I have stored the manifests which will be working as a subchart deployment method.\n\n    repo url: https://github.com/dharmendrakariya/argocd-demo\n\n    branch: hook\n\n#### Fifth Part:\n\n- Install argocd-image-updater with [this](https://argocd-image-updater.readthedocs.io/en/stable/install/start/#apply-the-installation-manifests) crds\n\n    We will take help from [this](https://www.padok.fr/en/blog/argocd-image-updater) doc for auto image update feature.\n\n    Things we need to consider first here, is secret ```Git credentials``` with PAT and if you have private registry then ```Image Registry credentials``` as well.\n\n    I will name my git credentials secret ```argo-secret``` and it will be under argocd namespace, we will use it in our annotations\n\n    Then we need to add the required annotations in our deployed application, mind here we are using helm chart so check out ```The Helm Umbrella Charts``` section.\n\n    Note: to get the deployed application manifest, we can get this by using below commands.\n\n    - ``` kc get app -n argocd circle-app -oyaml \u003e annotated-app.yaml ```\n    \n    I have deployed app with circle-app name in ui.\n\n    - then add the below annotations.\n\n        ```\n        argocd-image-updater.argoproj.io/demo7.helm.image-name: demo7.image.name\n        argocd-image-updater.argoproj.io/demo7.helm.image-tag: demo7.image.tag\n        argocd-image-updater.argoproj.io/image-list: demo7=dharmendrakariya/circle-app\n        argocd-image-updater.argoproj.io/write-back-method: git:secret:argocd/argo-secret\n        ```\n\n    - again apply the modified annotated-app.yaml with given command\n\n        ```kc apply -f annotated-app.yaml```\n\n#### Sixth Part:\n\n\n- Go to ```circleci-demo``` repo, update the index.html, it will trigger the ci, and check the circleci dashboard or imageRepository(in my case dockerHub), it will push the updated image.  \n\n- Check the ```argo-cd``` repo, you should see the commit with the updated image after couple of minutes. something like below commit\n\n    ``` argocd-image-updater build: automatic update of circle-app ```\n\n- Check the ```argo.yourDomain.xyz ``` to see if that gets synced with the newly commited changes, similarly go through the cluster, wait for five minutes, and watch out for the newly deployed application.\n\n    the commit should be there, only after new commit it will deploy the updated manifest.\n\n- Bye-Bye\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdharmendrakariya%2Fargocd-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdharmendrakariya%2Fargocd-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdharmendrakariya%2Fargocd-demo/lists"}