{"id":13644934,"url":"https://github.com/argoproj/applicationset","last_synced_at":"2025-04-21T10:35:02.505Z","repository":{"id":37740986,"uuid":"261403263","full_name":"argoproj/applicationset","owner":"argoproj","description":"The ApplicationSet controller manages multiple Argo CD Applications as a single ApplicationSet unit, supporting deployments to large numbers of clusters, deployments of large monorepos, and enabling secure Application self-service.","archived":true,"fork":false,"pushed_at":"2024-07-15T18:06:39.000Z","size":1712,"stargazers_count":585,"open_issues_count":144,"forks_count":280,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-12-26T17:02:29.619Z","etag":null,"topics":["argo-cd"],"latest_commit_sha":null,"homepage":"https://argocd-applicationset.readthedocs.io/","language":"Go","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/argoproj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2020-05-05T08:41:36.000Z","updated_at":"2024-12-09T19:49:36.000Z","dependencies_parsed_at":"2023-10-13T04:57:03.708Z","dependency_job_id":"fdd3fc5d-5bf1-44ab-9723-14fd0df27bce","html_url":"https://github.com/argoproj/applicationset","commit_stats":{"total_commits":196,"total_committers":57,"mean_commits":3.43859649122807,"dds":0.6326530612244898,"last_synced_commit":"5d1cf79fc64b3099e0fa6907639f8024fe4ed055"},"previous_names":["argoproj-labs/applicationset"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argoproj%2Fapplicationset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argoproj%2Fapplicationset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argoproj%2Fapplicationset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/argoproj%2Fapplicationset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/argoproj","download_url":"https://codeload.github.com/argoproj/applicationset/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250041027,"owners_count":21365203,"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":["argo-cd"],"created_at":"2024-08-02T01:02:20.028Z","updated_at":"2025-04-21T10:34:57.489Z","avatar_url":"https://github.com/argoproj.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Argo CD ApplicationSet Controller \n\n## :warning: This project code has been moved to the main Argo CD repository\n\nThis repository is no longer active. ApplicationSet has been merged with Argo CD and will be released along with it. Further development will happen in [Argo CD](https://github.com/argoproj/argo-cd).\n\nThe ApplicationSet controller is a Kubernetes controller that adds support for a new custom `ApplicationSet` CustomResourceDefinition (CRD). This controller/CRD enables both automation and greater flexibility when managing Argo CD Applications across a large number of clusters and within monorepos, plus it makes self-service usage possible on multitenant Kubernetes clusters.\n\nThe ApplicationSet controller provides the ability:\n- To deploy Argo CD Applications to multiple Kubernetes clusters at once\n- To deploy multiple Argo CD applications from a single monorepo\n- Allows unprivileged cluster users (those without access to the Argo CD namespace) to deploy Argo CD applications without the need to involve cluster administrators in enabling the destination clusters/namespaces\n- Best of all, all these features are controlled by only a single instance of an ApplicationSet custom resource, which means no more juggling of multiple Argo CD Application resources to target those multiple clusters/repos!\n\nUnlike with an Argo CD Application resource, which deploys resources from a single Git repository to a single destination cluster/namespace, ApplicationSet uses templated automation to create, modify, and manage multiple Argo CD applications at once. \n\nIf you are loving Argo CD and want to use ApplicationSet's automation and templating to take your usage to the next level, give the ApplicationSet controller a shot!\n\n## Example Spec:\n\n```yaml\n# This is an example of a typical ApplicationSet which uses the cluster generator.\n# An ApplicationSet is comprised with two stanzas:\n#  - spec.generator - producer of a list of values supplied as arguments to an app template\n#  - spec.template - an application template, which has been parameterized\napiVersion: argoproj.io/v1alpha1\nkind: ApplicationSet\nmetadata:\n  name: guestbook\nspec:\n  generators:\n  - clusters: {} # This is a generator, specifically, a cluster generator.\n  template: \n    # This is a template Argo CD Application, but with support for parameter substitution.\n    metadata:\n      name: '{{name}}-guestbook'\n    spec:\n      project: \"default\"\n      source:\n        repoURL: https://github.com/argoproj/argocd-example-apps/\n        targetRevision: HEAD\n        path: guestbook\n      destination:\n        server: '{{server}}'\n        namespace: guestbook\n```\n\nThe Cluster generator generates parameters, which are substituted into `{{parameter name}}` values within the `template:` section of the `ApplicationSet` resource. In this example, the cluster generates `name` and `server` parameters (containing the name and API URL for the target cluster), which are then substituted into the template's `{{name}}` and `{{server}}` values, respectively.\n\nThe parameter generation via multiple sources (cluster, list, git repos), and the use of those values within Argo CD Application templates, is a powerful combination. Learn more about [generators and template](https://argocd-applicationset.readthedocs.io/en/stable/), the [Cluster generator and various other ApplicationSet generators](https://argocd-applicationset.readthedocs.io/en/stable/Generators/), and more, from the ApplicationSet documentation.\n\n\n## Documentation\n\nTake a look at our introductory blog post, [Introducing the ApplicationSet Controller for Argo CD](https://blog.argoproj.io/introducing-the-applicationset-controller-for-argo-cd-982e28b62dc5).\n\nCheck out [the complete documentation](https://argocd-applicationset.readthedocs.io/) for a complete introduction, how to setup and run the ApplicationSet controller, how it interacts with Argo CD, generators, templates, use cases, and more.\n\n## Community\n\nThe ApplicationSet controller is a community-driven project. You can reach the Argo CD ApplicationSet community and developers via the following channels:\n- Q \u0026 A : [Github Discussions](https://github.com/argoproj/applicationset/discussions)\n- Chat : [The #argo-cd-appset Slack channel](https://argoproj.github.io/community/join-slack)\n\nWe'd love to have you join us!\n\n## Development builds\n\nDevelopment builds can be installed by running the following command:\n```\nkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/applicationset/master/manifests/install.yaml\n```\nCommits to the `master` branch will automatically push new container images to the container registry used by this install, and see this link for automatically updated [documentation for these builds](https://argocd-applicationset.readthedocs.io/en/master/). See [Development builds](https://argocd-applicationset.readthedocs.io/en/master/Getting-Started/) for more details.\n\n\n## Development\n\nLearn more about how to [setup a development environment, build the ApplicationSet controller, and run the unit/E2E tests](https://argocd-applicationset.readthedocs.io/en/latest/Development/).\n\nOur end goal is to provide a formal solution to replace the [app-of-apps](https://argoproj.github.io/argo-cd/operator-manual/cluster-bootstrapping/) pattern. You can learn more about the founding principles of the ApplicationSet controller from [the original design doc](https://docs.google.com/document/d/1juWGr20FQaJmuuTIS8mBFmWWDU422M_FQMuhp5c1jt4/edit?usp=sharing).\n\nThis project will initially be maintained separately from Argo CD, in order to allow quick iteration\nof the spec and implementation, without tying it to Argo CD releases. No promises of backwards\ncompatibility are made, at least until merging into Argo CD proper.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fargoproj%2Fapplicationset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fargoproj%2Fapplicationset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fargoproj%2Fapplicationset/lists"}