Book Image

Argo CD in Practice

By : Liviu Costea, Spiros Economakis
Book Image

Argo CD in Practice

By: Liviu Costea, Spiros Economakis

Overview of this book

GitOps follows the practices of infrastructure as code (IaC), allowing developers to use their day-to-day tools and practices such as source control and pull requests to manage apps. With this book, you’ll understand how to apply GitOps bootstrap clusters in a repeatable manner, build CD pipelines for cloud-native apps running on Kubernetes, and minimize the failure of deployments. You’ll start by installing Argo CD in a cluster, setting up user access using single sign-on, performing declarative configuration changes, and enabling observability and disaster recovery. Once you have a production-ready setup of Argo CD, you’ll explore how CD pipelines can be built using the pull method, how that increases security, and how the reconciliation process occurs when multi-cluster scenarios are involved. Next, you’ll go through the common troubleshooting scenarios, from installation to day-to-day operations, and learn how performance can be improved. Later, you’ll explore the tools that can be used to parse the YAML you write for deploying apps. You can then check if it is valid for new versions of Kubernetes, verify if it has any security or compliance misconfigurations, and that it follows the best practices for cloud-native apps running on Kubernetes. By the end of this book, you’ll be able to build a real-world CD pipeline using Argo CD.
Table of Contents (15 chapters)
1
Part 1: The Fundamentals of GitOps and Argo CD
4
Part 2: Argo CD as a Site Reliability Engineer
7
Part 3: Argo CD in Production

What this book covers

Chapter 1, GitOps and Kubernetes, explores how Kubernetes made it possible to introduce the GitOps concept. We will discover its declarative APIs, and see how we can apply resources from files, folders, and, in the end, Git repositories.

Chapter 2, Getting Started with Argo CD, explores the core concepts of Argo CD and its architectural overview and goes through the necessary vocabulary you need to know in order to be able to deep dive into the tool.

Chapter 3, Operating Argo CD, covers installing Argo CD using HA manifests, going through some of the most meaningful configuration options, preparing for disaster recovery, and discovering some relevant metrics being exposed.

Chapter 4, Access Control, discovers how to set up user access and the options for connecting via the CLI, web UI, or a CI/CD pipeline. It goes into detail about RBAC and SSO and the different options to configure them.

Chapter 5, Argo CD Bootstrap K8s Cluster, shows how we can create a Kubernetes cluster using infrastructure as code and then set up the required applications with Argo CD, identifying the security challenges you will encounter when deploying the applications.

Chapter 6, Designing Argo CD Delivery Pipelines, continues (based on the infrastructure setup of the previous chapter) to demonstrate real deployment strategies, including dealing with secrets and getting familiarized with Argo Rollouts.

Chapter 7, Troubleshooting Argo CD, addresses some of the issues you will most likely encounter during installation and your day-to-day work and also takes a look at ways to improve Argo CD performance.

Chapter 8, YAML and Kubernetes Manifests (Parsing and Verification), looks at the tools we can use to validate the YAML manifests we will write, to verify them with the common best practices, check against Kubernetes schemas, or even perform your own extended validations written in Rego.

Chapter 9, Future and Conclusion, deals with the GitOps engine and kubernetes-sigs/cli-utils, how it was factored out from Argo CD or the K8s community, and what the teams are trying to achieve with them – having a set of libraries to provide a set of basic GitOps features.