# Argo CD > [Argo CD] is a declarative GitOps continuous delivery tool, which allows > developers to define and control deployment of Kubernetes application > resources from within their existing Git workflow. ```sh kubectl apply -k argocd kubectl apply -f argocd/applications ``` ## Components Argo CD consists of several components, some of which are not used: - [x] Application Controller - [x] Repository Service - [x] Web Server - [x] Notification Controller - [ ] ApplicationSet Controller[^1] - [ ] Dex Server[^2] [^1]: ApplicationSets are "generators" that can be used to apply applications to multiple clusters. As we only have a single cluster, it is not useful. [^2]: Argo CD includes Dex to handle authentication and authorization, but we are using Authelia instead. ## Applications *Applications* are the core resource in Argo CD. They form a collection of resources associated with a particular application deployment. They are themselves defined as Kubernetes resources (see [applications]). ## Git Webhook *Argo CD* will automatically refresh the desired state of applications whenever a changeset is pushed to the Git repository where manifests are stored. The [infra/kubernetes] repository has a Webhook configured in Gitea that notifies the Argo CD server on Git push events. [Argo CD]: https://argo-cd.readthedocs.io/ [applications]: ./applications/ [infra/kubernetes]: https://git.pyrocufflink.blue/infra/kubernetes