{"id":26797790,"url":"https://github.com/kameshsampath/gitops-kickstarter","last_synced_at":"2025-10-24T00:25:18.843Z","repository":{"id":65235677,"uuid":"588858697","full_name":"kameshsampath/gitops-kickstarter","owner":"kameshsampath","description":"A set of resources, components and scripts to get started with applying GitOps principles.","archived":false,"fork":false,"pushed_at":"2023-01-24T15:40:49.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-22T20:02:51.130Z","etag":null,"topics":["argocd","gitops","gke","google-cloud","template","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kameshsampath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2023-01-14T09:01:11.000Z","updated_at":"2023-01-14T16:37:14.000Z","dependencies_parsed_at":"2023-02-13T23:00:57.178Z","dependency_job_id":null,"html_url":"https://github.com/kameshsampath/gitops-kickstarter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameshsampath%2Fgitops-kickstarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameshsampath%2Fgitops-kickstarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameshsampath%2Fgitops-kickstarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kameshsampath%2Fgitops-kickstarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kameshsampath","download_url":"https://codeload.github.com/kameshsampath/gitops-kickstarter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246230519,"owners_count":20744349,"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","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","gitops","gke","google-cloud","template","terraform"],"created_at":"2025-03-29T19:15:49.244Z","updated_at":"2025-10-24T00:25:13.811Z","avatar_url":"https://github.com/kameshsampath.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitOps Kickstarter\n\nA set of resources, components and scripts to get started with applying GitOps principles.\n\nThis kickstart repository resources that will setup the base infrastructure that is needed to get started with GitOps by deploying an ArgoCD base [App of Apps](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#app-of-apps) which deploys,\n\n- [ArgoCD](https://argo-cd.readthedocs.io/) [Image Updater](https://argocd-image-updater.readthedocs.io/en/stable/)\n- [Sigstore](https://sigstore.dev) [Policy Controller](https://github.com/sigstore/policy-controller)\n\n## Pre-requisites\n\n- [Google Cloud Account](https://cloud.google.com)\n- [Google Cloud SDK](https://cloud.google.com/sdk)\n- [gke-gcloud-auth-plugin](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke)\n- [terraform](https://terraform.build)\n- [helm](https://helm.sh)\n- [kustomize](https://kustomize.io)\n- [ko](https://ko.build/install/)\n- [direnv](https://direnv.net) **Optional**\n\n## Download Sources\n\nClone the sources and `cd` into it,\n\n```shell\ngit clone https://github.com/kameshsampath/gitops-quickstart.git \u0026\u0026 cd \"$(basename \"$_\" .git)\"\nexport GITOPS_TUTORIAL_HOME=\"$PWD\"\n```\n\n## Kubernetes Cluster\n\nRunning the following command which will setup a GKE cluster using terraform,\n\n```shell\nmake create\n```\n\n\u003e **NOTE**: The terraform will take approx ~5-10mins or even more based on your bandwidth.\n\n### ArgoCD Deployment Details\n\n#### Admin Password\n\n```shell\nterraform output -raw argocd_admin_password\n```\n\n#### ArgoCD Application URL\n\n```shell\nterraform output -raw argocd_service_url\n```\n\n### Create App of Apps\n\nRun the following command to create the ArgoCD app that house base components required to deploy other applications,\n\n```shell\nkubectl apply -f app.yaml\n```\n\n## Building  `hello-world` application\n\n```shell\ncd \"$GITOPS_TUTORIAL_HOME/work\"\nwget https://github.com/kameshsampath/go-hello-world/archive/refs/heads/main.zip\ncd \"$GITOPS_TUTORIAL_HOME/work/go-hello-world-main\"\nexport TUTORIAL_HOME=\"$PWD\"\n```\n\nAssuming `ko` is in your `.$PATH`.\n\nSet `$KO_DOCKER_REPO`,\n\n```shell\n# e.g. KO_DOCKER_REPO=docker.io/kameshsampath/go-hello-world\nexport KO_DOCKER_REPO=\u003cyour container image registry repo\u003e\n```\n\nRun the following command to build and push the hello world image to `$KO_DOCKER_REPO`,\n\n```shell\nko build --bare --platform=linux/amd64 --platform=linux/arm64 \"$TUTORIAL_HOME\"\n```\n\n## Deploy `hello-world` application\n\nEdit and update `$GITOPS_TUTORIAL_HOME/helm_vars/app-of-apps/values.yaml` and append the following helm values, allowing to deploy the `hello-world` application using ArgoCD,\n\n```yaml\n# the hello world demo application\nhelloWorld:\n  # flag to deploy hello world\n  deploy: true\n  image:\n    repo: $KO_DOCKER_REPO\n```\n\nCommit and push the values file to your fork of GitOps repo, to trigger the deployment of the `hello-world` application.\n\nIf all went well you ArgoCD dashboard should look like.\n\n![ArgoCD Dashboard](./images/argo_dashboard.png)\n\nMake changes to `$TUTORIAL_HOME/server.go`, build and push a new image to see ArgoCD synching your deployments to latest image digest.\n\n## Clean up\n\n```shell\nmake destroy\n```\n\n## Troubleshooting\n\n- [Cosigned Helm Chart - tls: no certificates configured](https://github.com/sigstore/policy-controller/issues/369)\n\n```shell\nkubectl delete leases.coordination.k8s.io -n cosign-system --all\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkameshsampath%2Fgitops-kickstarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkameshsampath%2Fgitops-kickstarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkameshsampath%2Fgitops-kickstarter/lists"}