Software doesn’t just happen—it’s built, tested, and launched with care and automation. That’s where CI/CD comes in: your invisible backstage crew ensuring every deployment goes off without a hitch. In this post, I’ll demystify Continuous Integration and Continuous Deployment, walk through some workflow examples I rely on (like cache-clearing and auto-tagging), and show how Argo CD helps me keep Kubernetes updates hands-free and hassle-free.
CI is the practice of automatically building and testing your application whenever changes are made. This ensures code is always in a deployable state. For example, when you push code to your GitHub repository, a CI tool like GitHub Actions can automatically:
I use GitHub Actions for CI, which allows me to define workflows in YAML files. These workflows can be triggered by events like code pushes, pull requests, or even on a schedule. Here are some key workflows I've implemented:
CD takes CI a step further by automatically deploying your application to production after passing tests. I use a tool called Argo CD, which is a Continuous Delivery (CD) tool designed for Kubernetes. It works by connecting to your GitHub repository and automatically deploying changes to your Kubernetes cluster whenever you update your manifests in the repo.
Argo CD follows the GitOps model, where your Git repository is the single source of truth for your application state. This means you can manage your Kubernetes deployments declaratively, using YAML files stored in Git.
Example workflow:
Here are the actual deployment configurations I use in my home lab setup:
Imagine building a LEGO spaceship with your friends—every time someone adds a new piece, a robot checks to make sure it still flies (that’s called CI).
If the ship passes all the tests, another robot sends it off to space automatically (that’s CD).
Greg uses smart helpers like GitHub Actions to keep the ship clean and strong, and Argo CD to launch it without anyone pressing buttons.
It’s like having a team of tireless robot builders and launchers making sure your ship is always ready for liftoff!
I served in the U.S. Army, specializing in Network Switching Systems and was attached to a Patriot Missile System Battalion. After my deployment and Honorable discharge, I went to college in Jacksonville, FL for Computer Science. I have two beautiful and very intelligent daughters. I have more than 20 years professional IT experience. This page is made to learn and have fun. If its messed up, let me know. Im still learning :)