liveBook · Manning

Argo

As explained in Platform Engineering on Kubernetes

Argo CD is a declarative continuous delivery tool that synchronizes application and infrastructure configuration from Git repositories to Kubernetes clusters.

Argo CD implements GitOps for Kubernetes environment pipelines. It watches Git configuration and applies it to live clusters, making Git the source of truth instead of relying on manual changes to a cluster. It can report when an application is unhealthy or a cluster is out of sync. section 4.2

A service pipeline builds and publishes an artifact; Argo CD handles the separate job of deploying released artifacts into an environment. Environment configuration can live in its own repository, branch or directory. One Argo CD installation can manage environments across multiple clusters. section 4.2 section 4.2.2

To create a staging application in the Argo CD user interface:

  • Select New App, name the application, choose a project and decide whether Argo CD should create its namespace. section 4.2.1
  • Set the configuration repository, revision and path. For a staging example, use a fork of https://github.com/salaboy/platforms-on-k8s/ and its chapter-4/argo-cd/staging/ directory. section 4.2.1
  • Choose the destination cluster and namespace, then supply any installation-specific Helm parameters. The staging example targets the cluster running Argo CD and uses the staging namespace. section 4.2.1

Promote or undo a service release

After a service pipeline publishes a tagged release, submit a pull request changing its version in the environment configuration. Review and merge the change for Argo CD to sync it to staging. If the release causes problems, revert the configuration commit; a simple version downgrade might omit configuration changes needed by the older service. section 4.2.2 section 4.5

Figure 4.10 Argo CD will sync environments, configurations from Git to live clusters

The diagram shows Git repositories supplying configuration to environments on live clusters, including environments managed across different clusters. section 4.2

Keep access to live namespaces restricted with Kubernetes RBAC so developers do not accidentally bypass the Git workflow. Check application health and sync status after configuration changes; these signals help reveal failed deployments and configuration drift. section 4.2.1 section 4.2 section 4.5

How Platform Engineering on Kubernetes covers it

How deep it goes
Walks through application creation and a release-change workflow, including repository selection, destination, Helm parameters and rollback.
Examples
Uses a staging configuration directory, Argo CD application settings and a frontend release pull request.
What it assumes
Assumes a Kubernetes cluster running Argo CD, available service artifacts and an environment configuration repository.
What you can do after
Operate/configure Argo CD to sync a staging environment and change or revert deployed service versions through Git.
How it connects
Links GitOps, environment pipelines, service pipelines, Kubernetes RBAC, Helm and configuration drift.

Also explained in

Compare how 4 books explain Argo →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Platform Engineering on Kubernetes. The section links point to the parts of the book it draws on.