I guess it’s no surprise that work uses Argo CD, so it seemed like time to understand it a bit better. Unfortunately this book has what I have come to expect from Packt publishing — it could do with a more solid editorial pass to be honest. The English in the book is awkward, and a simple grammar pass by an experienced editor would have made a big improvement to the whole book. Worse, its clear little technical review occurred either, there is at least one case where a Kubernetes YAML field is typo’ed in the text and simply wont work as published.
As an aside, I went and looked at my technical bookshelf, and I have literally zero books from Packt that I’ve bothered to keep. I am very close to just stopping buying books published by them.
This book starts with an introduction to Kubernetes, which is a bit repetitive if you already use it. Given Kubernetes is a prerequisite for using Argo CD, it certainly seems like that will be the case for many readers. Explaining Kubernetes makes sense in the context of explaining where Argo CD fits in, but I can’t help but think there should be some level of assumed knowledge in a book like this. The book then implements a simple operator which does much of what Argo CD does — it pulls a git repo and then applies it. This is an interesting approach — it works well if your readers can read golang, and not so well if they can’t.
The book then moves on to explain Argo CD terminology and architecture before having us install Argo CD onto our Kubernetes cluster. Unfortunately the book glosses over the commands required, just listing them and not really explaining what they do. Specifically, we create a Helm application called “ch02”, but that isn’t explained at all. In fact that’s another weird thing about this book, it provides an introduction to Kubernetes but not to Helm, despite both being required knowledge for its examples. Worse, we then get to type out a big block of YAML to configure our first application, but without little details like what filename or directory structure to use to save it. Finally, we’re asked to run the argocd command line command to finish the tutorial, but we haven’t been told how to install that either.
The next chapter then installs Argo CD again, but this time using Kustomize. Oh, except the instructions don’t seem to work because they’re incompatible with current versions of Kustomize. We also spend a lot of time being told how to setup Argo CD in a high availability mode when they haven’t even really told us what Argo CD is yet or how it works.
In the end I wanted to like this book, because I wanted to learn about Argo CD, but this book failed to engage and was difficult to read. I’ll be honest, I didn’t finish it.
Application software
November 18, 2022
Build CD pipelines following GitOps principles like declarative and immutable changes stored in version control, all continuously reconciled by Argo CD, and minimize the failure of deployments.