Convert Figma logo to code with AI

argoproj logoargo-cd

Declarative Continuous Deployment for Kubernetes

17,684
5,385
17,684
3,454

Top Related Projects

6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Workflow Engine for Kubernetes

4,576

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

20,922

Pulumi - Infrastructure as Code in any programming language 🚀

Quick Overview

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. It automates the deployment of applications to Kubernetes clusters by monitoring Git repositories and syncing the desired state with the actual state in the cluster. Argo CD provides a user-friendly web UI, CLI, and API for managing deployments and monitoring application health.

Pros

  • Declarative and version-controlled application deployments
  • Automated sync between Git repositories and Kubernetes clusters
  • Supports multiple cluster targets and promotes multi-tenancy
  • Integrates well with existing CI/CD pipelines and Kubernetes ecosystem

Cons

  • Learning curve for teams new to GitOps and declarative deployments
  • Can be complex to set up and configure for advanced use cases
  • Limited built-in support for non-Kubernetes resources
  • May require additional tools or customizations for complete CI/CD workflows

Getting Started

To get started with Argo CD, follow these steps:

  1. Install Argo CD in your Kubernetes cluster:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  1. Access the Argo CD API server:
kubectl port-forward svc/argocd-server -n argocd 8080:443
  1. Log in using the CLI:
argocd login localhost:8080
  1. Create an application from a Git repository:
argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default
  1. Sync the application:
argocd app sync guestbook

For more detailed instructions and advanced usage, refer to the official Argo CD documentation.

Competitor Comparisons

6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Pros of Flux

  • Native GitOps support with automatic synchronization
  • Built-in Helm and Kustomize integration
  • Lightweight and less resource-intensive

Cons of Flux

  • Less mature UI and visualization tools
  • More complex initial setup and configuration
  • Limited support for multi-cluster management

Code Comparison

Argo CD application manifest:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  project: default
  source:
    repoURL: https://github.com/example/repo.git
    targetRevision: HEAD
    path: kustomize
  destination:
    server: https://kubernetes.default.svc
    namespace: myapp

Flux Kustomization manifest:

apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: myapp
  namespace: flux-system
spec:
  interval: 5m
  path: ./kustomize
  prune: true
  sourceRef:
    kind: GitRepository
    name: myapp
  targetNamespace: myapp

Both Argo CD and Flux are popular GitOps tools for Kubernetes, with Argo CD offering a more user-friendly interface and advanced features, while Flux provides a lighter, more native GitOps experience with automatic synchronization. The choice between them depends on specific project requirements and team preferences.

Workflow Engine for Kubernetes

Pros of Argo Workflows

  • Designed for complex, multi-step workflows and DAG-based pipelines
  • Supports parallel execution and resource management
  • Provides built-in artifact management and caching

Cons of Argo Workflows

  • Steeper learning curve for simple deployment scenarios
  • Requires more resources to run compared to Argo CD
  • Less focused on continuous delivery and GitOps practices

Code Comparison

Argo Workflows example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: hello-world-
spec:
  entrypoint: whalesay
  templates:
  - name: whalesay
    container:
      image: docker/whalesay
      command: [cowsay]
      args: ["hello world"]

Argo CD example:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
spec:
  project: default
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps.git
    targetRevision: HEAD
    path: guestbook
  destination:
    server: https://kubernetes.default.svc
    namespace: guestbook

While Argo Workflows focuses on defining complex workflows and task dependencies, Argo CD is centered around declarative, Git-based application deployments. Argo Workflows is better suited for data processing, machine learning pipelines, and CI/CD workflows, while Argo CD excels in GitOps-based continuous delivery and application management on Kubernetes clusters.

4,576

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

Pros of jx

  • Provides a more comprehensive CI/CD solution, including built-in Jenkins integration
  • Offers automated environment promotion and version control
  • Includes built-in support for cloud-native technologies like Kubernetes and Helm

Cons of jx

  • Steeper learning curve due to its broader feature set
  • Less focus on pure GitOps principles compared to Argo CD
  • May be overkill for simpler deployment scenarios

Code Comparison

Argo CD application definition:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    path: k8s
    repoURL: https://github.com/argoproj/argocd-example-apps.git

jx pipeline definition:

pipeline:
  agent:
    image: nodejs
  stages:
    - name: CI Build
      steps:
      - sh: npm install
      - sh: npm test
    - name: Build and Push Image
      steps:
      - sh: docker build -t myapp:${VERSION} .
      - sh: docker push myapp:${VERSION}

Both tools aim to simplify and automate the deployment process, but jx offers a more comprehensive solution with built-in CI capabilities, while Argo CD focuses primarily on GitOps-based CD. The choice between them depends on specific project requirements and team preferences.

20,922

Pulumi - Infrastructure as Code in any programming language 🚀

Pros of Pulumi

  • Supports multiple programming languages (Python, TypeScript, Go, etc.) for infrastructure as code
  • Offers a unified approach for managing cloud resources across various providers
  • Provides strong type checking and IDE support for infrastructure code

Cons of Pulumi

  • Steeper learning curve for those unfamiliar with programming languages
  • Requires more setup and configuration compared to Argo CD's GitOps approach
  • May have higher resource usage due to running full programming runtimes

Code Comparison

Pulumi (TypeScript):

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const bucket = new aws.s3.Bucket("my-bucket");
export const bucketName = bucket.id;

Argo CD (YAML):

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  source:
    path: k8s
    repoURL: https://github.com/example/repo.git
    targetRevision: HEAD

While Pulumi uses programming languages to define infrastructure, Argo CD relies on YAML configurations for GitOps-based deployments. Pulumi offers more flexibility in resource definition, while Argo CD focuses on Kubernetes-specific deployments and continuous delivery.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Releases: Release Version Artifact HUB SLSA 3

Code: Integration tests codecov CII Best Practices OpenSSF Scorecard

Social: Twitter Follow Slack LinkedIn

Argo CD - Declarative Continuous Delivery for Kubernetes

What is Argo CD?

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

Argo CD UI

Argo CD Demo

Why Argo CD?

  1. Application definitions, configurations, and environments should be declarative and version controlled.
  2. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

Who uses Argo CD?

Official Argo CD user list

Documentation

To learn more about Argo CD go to the complete documentation. Check live demo at https://cd.apps.argoproj.io/.

Community

Contribution, Discussion and Support

You can reach the Argo CD community and developers via the following channels:

Participation in the Argo CD project is governed by the CNCF Code of Conduct

Blogs and Presentations

  1. Awesome-Argo: A Curated List of Awesome Projects and Resources Related to Argo
  2. Unveil the Secret Ingredients of Continuous Delivery at Enterprise Scale with Argo CD
  3. GitOps Without Pipelines With ArgoCD Image Updater
  4. Combining Argo CD (GitOps), Crossplane (Control Plane), And KubeVela (OAM)
  5. How to Apply GitOps to Everything - Combining Argo CD and Crossplane
  6. Couchbase - How To Run a Database Cluster in Kubernetes Using Argo CD
  7. Automation of Everything - How To Combine Argo Events, Workflows & Pipelines, CD, and Rollouts
  8. Environments Based On Pull Requests (PRs): Using Argo CD To Apply GitOps Principles On Previews
  9. Argo CD: Applying GitOps Principles To Manage Production Environment In Kubernetes
  10. Creating Temporary Preview Environments Based On Pull Requests With Argo CD And Codefresh
  11. Tutorial: Everything You Need To Become A GitOps Ninja 90m tutorial on GitOps and Argo CD.
  12. Comparison of Argo CD, Spinnaker, Jenkins X, and Tekton
  13. Simplify and Automate Deployments Using GitOps with IBM Multicloud Manager 3.1.2
  14. GitOps for Kubeflow using Argo CD
  15. GitOps Toolsets on Kubernetes with CircleCI and Argo CD
  16. CI/CD in Light Speed with K8s and Argo CD
  17. Machine Learning as Code. Among other things, describes how Kubeflow uses Argo CD to implement GitOPs for ML
  18. Argo CD - GitOps Continuous Delivery for Kubernetes
  19. Introduction to Argo CD : Kubernetes DevOps CI/CD
  20. GitOps Deployment and Kubernetes - using Argo CD
  21. Deploy Argo CD with Ingress and TLS in Three Steps: No YAML Yak Shaving Required
  22. GitOps Continuous Delivery with Argo and Codefresh
  23. Stay up to date with Argo CD and Renovate
  24. Setting up Argo CD with Helm
  25. Applied GitOps with Argo CD
  26. Solving configuration drift using GitOps with Argo CD
  27. Decentralized GitOps over environments
  28. Getting Started with ArgoCD for GitOps Deployments
  29. Using Argo CD & Datree for Stable Kubernetes CI/CD Deployments
  30. How to create Argo CD Applications Automatically using ApplicationSet? "Automation of GitOps"
  31. Progressive Delivery with Service Mesh – Argo Rollouts with Istio