{"id":17926903,"url":"https://github.com/kostis-codefresh/many-appsets-demo","last_synced_at":"2026-02-27T09:09:39.676Z","repository":{"id":235773440,"uuid":"791223311","full_name":"kostis-codefresh/many-appsets-demo","owner":"kostis-codefresh","description":"Demo with multiple Argo CD ApplicationSets","archived":false,"fork":false,"pushed_at":"2024-05-17T14:36:35.000Z","size":106,"stargazers_count":71,"open_issues_count":1,"forks_count":25,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T10:45:46.840Z","etag":null,"topics":["argocd","gitops"],"latest_commit_sha":null,"homepage":"https://codefresh.io/blog/how-to-structure-your-argo-cd-repositories-using-application-sets/","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/kostis-codefresh.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-24T10:15:54.000Z","updated_at":"2025-03-28T12:45:29.000Z","dependencies_parsed_at":"2024-10-28T21:00:56.477Z","dependency_job_id":null,"html_url":"https://github.com/kostis-codefresh/many-appsets-demo","commit_stats":null,"previous_names":["kostis-codefresh/many-appsets-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kostis-codefresh/many-appsets-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostis-codefresh%2Fmany-appsets-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostis-codefresh%2Fmany-appsets-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostis-codefresh%2Fmany-appsets-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostis-codefresh%2Fmany-appsets-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kostis-codefresh","download_url":"https://codeload.github.com/kostis-codefresh/many-appsets-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostis-codefresh%2Fmany-appsets-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29889008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T08:34:21.514Z","status":"ssl_error","status_checked_at":"2026-02-27T08:32:38.035Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","gitops"],"created_at":"2024-10-28T21:00:49.567Z","updated_at":"2026-02-27T09:09:39.661Z","avatar_url":"https://github.com/kostis-codefresh.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# How to structure your Argo CD repositories using Application Sets\n\nThis is an exaple repository for Organizing your applications with Argo CD.\n\n## Best practice - Use the three level structure\n\nThe starting point should be a 3 level structure as shown in the image below\n\n![structure](docs/hierarchy-of-manifests.png)\n\nAt the lowest level we have the Kubernetes manifests that define how the application runs (category 1 of manifests). These are your Kustomize or Helm templates and they are completely self-contained, meaning that they can be deployed on their own on any cluster even without Argo CD. We have covered in detail the structure of these files in the promotion blog post. \n\nOne level above, we have the Application Set as explained in the previous section. These wrap the main Kubernetes manifests into Argo CD applications (category 2 of manifests). Notice that in most cases you only need ApplicationSets and not individual Application CRDs.\n\nLast, as an optional component you can group all your application sets in an App-of-App that will help you bootstrap a completely empty cluster with all apps. This level might not be needed if you have a different way of creating clusters (i.e. with terraform/pulumi/crossplane) and this is why it is not really essential.\n\nAnd that’s it!\n\nNotice how simple this pattern is:\n\nThere are only 3 levels of abstraction. We have seen companies that have 4 or 5 making the mental model much more complex\nEach level is completely independent of everything else. You can install the Kubernetes manifests on their own, or you can pick a specific application set or you can pick everything at the root. But it is your choice.\nHelm and Kustomize are only used once at the Kubernetes manifests and nowhere else. This makes the templating system super easy to understand\n\n![folders](docs/levels.png)\n\nRead the full blog post at https://codefresh.io/blog/how-to-structure-your-argo-cd-repositories-using-application-sets/\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostis-codefresh%2Fmany-appsets-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkostis-codefresh%2Fmany-appsets-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostis-codefresh%2Fmany-appsets-demo/lists"}