What Is ArgoCD
ArgoCD is a Continuous Delivery (CD) and
GitOps tool for Kubernetes.
Think about how apps are usually deployed into Kubernetes. Someone writes a
YAML file, and then uses a 'kubectl apply' command to deploy stuff declared
in that file. But this can quickly become a problem when multiple people are
managing a Kubernetes cluster. It will be hard to track who created what,
and what changes have happened lately. But a tool like ArgoCD makes this
much more transparent and simple.
People won't create YAML files on their laptops and then push changes to
Kubernetes directly, making others wonder what might have changed last
night. Instead, everyone will work through a
Git repository. They'll all have a
common middleground, instead of working on their own files, in
isolation. And
ArgoCD can continuously synchronize Kubernetes with the states that are
defined in that repository. So it makes Kubernetes continuously
follow the state declared in that Git repository. This is
part of the reason why it's called a continuous delivery tool.
It's worth noting that this depends on how ArgoCD is configured. It can be
configured to require manual resynchronization when changes are pushed to
Git, or it can be configured to do so automatically.
For example, if John wants to create a cool deployment, he'll create a YAML
file, and then upload it to this repository. ArgoCD will notice the new file
and automatically deploy this to Kubernetes. Now Jane can take a look at the
repository, and see exactly what John did. And if Jane has a nice idea about
how to improve this deployment, she can suggest some edits to John's YAML
file. John approves them, ArgoCD notices the changes again, and immediately
resynchronizes Kubernetes with this new deployment definition.
In a nutshell, the Git repository makes it very convenient for multiple
people to collaborate on the changes they want to push to Kubernetes. And
ArgoCD synchronizes Kubernetes with the states defined in this repository,
at all times.
Features of ArgoCD
- Automates the deployments of the apps on specific environments.
- Supports multiple configuration management and templating tools such as Helm, Kustomize, and Jsonnet.
- Can manage multiple clusters at the same time.
- Can analyze health status for application resources.
- Has a web user interface that can be used to explore application activity.
- Provides Prometheus metrics to enable better monitoring.
- Integrates with different platforms such as GitHub, BitBucket, and GitLab, using webhooks.
- Plus many other features that you can check out on the product's page.
ArgoCD Playground
Setting up Kubernetes, ArgoCD, and a Git repository would take a very long
time. So we saved you the trouble and prepared an environment where
everything is provided.
The playground is pre-configured with ArgoCD and
Gitea. Gitea is a self-hosted Git service that is used to
store files in a repository - an alternative to GitHub. For ease of use, we
also provide
web user interfaces for both Gitea and ArgoCD.
Start pushing changes to your Git repository and see ArgoCD in action! We
hope you'll have a great time learning and experimenting in our
playground.
And if you don't know enough about this continuous delivery/GitOps tool, you
can check out this
course about ArgoCD to
help you out.