Kubernetes CI/CD with CircleCI and ArgoCD

Kubernetes CI/CD with CircleCI and ArgoCD

CircleCI runs through the CI workflow steps (i.e. security audit, linting, testing, etc). A Docker container is created and pushed to a container registry (e.g. Docker Hub, GCR, ECR). Kubernetes manifests are generated and committed to a separate repo that ArgoCD monitors.

An end-to-end setup for declaratively deploying applications to Kubernetes using GitOps principles.

Image for post

One of the top DevOps trends in recent years has been the adoption of GitOps to manage Infrastructure as Code (IaC) and cloud-native applications on Kubernetes. GitOps was first introduced by WeaveWorks as a way to declaratively configure and manage infrastructure and application via Git. While GitOps is an opinionated approach to the CI/CD process, but the underlying ideas behind IaC and the convergence properties of Kubernetes mesh well with GitOps. In this post, we will look at a demo setup of an end-to-end CI/CD pipeline and discuss some important considerations based on your team size, roles, and needs.

Note: This guide uses CircleCI and ArgoCD, but the tools can be interchanged to establish a GitOps-driven CI/CD pipeline (e.g. JenkinsX, Spinnaker)

End-to-End CI/CD Architecture

At a high-level, the CI/CD pipeline will cover the following steps:

  1. Developer commits code to a Git repo (e.g. Github/Bitbucket/Gitlab).

  2. CircleCI runs through the CI workflow steps (i.e. security audit, linting, testing, etc).

  3. A Docker container is created and pushed to a container registry (e.g. Docker Hub, GCR, ECR).

  4. Kubernetes manifests are generated and committed to a separate repo that ArgoCD monitors.

  5. ArgoCD detects changes and deploys the new application/infrastructure to the configured Kubernetes clusters.

    Image for post

coding ci-cd-pipeline kubernetes software-engineering gitops

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

50+ Useful Kubernetes Tools for 2020 - Part 2

Our original Kubernetes tool list was so popular that we've curated another great list of tools to help you improve your functionality with the platform.

How To Setup a CI/CD Pipeline With Kubernetes 2020 - DZone DevOps

This article gives direction to getting your CI/CD pipeline up and running on the Kubernetes cluster by the GitLab CICD pipeline.

Creating CI/CD Pipeline With Gitlab and DigitalOcean Managed Kubernetes

Developer advocates from DigitalOcean and Axelerant discuss DigitalOcean Managed Kubernetes (DOKS) and Gitlab CI/CD pipelines, and demo how to integrate Gitlab with DOKS.

Software Developer vs Software Engineer — Differences: Bogus or Real?

In this article, see if there are any differences between software developers and software engineers. What you’re about to read mostly revolves around my personal thoughts, deductions, and offbeat imagination. If you have different sentiments, add them in the comment section, and let’s dispute! So, today’s topic…

Serverless CI/CD on the AWS Cloud

To set up a serverless CI/CD pipeline in your AWS environments, there are several key services that you need to use. Find out more here.