Getting Began With Kubernetes-Native CI/CD Pipelines

Establishing the CI/CD pipelines for Kubernetes is complicated. Submit setup, managing the CI/CD can grow to be fairly difficult when your workforce and infrastructure develop rapidly. An environment friendly and totally automated CI/CD performs an vital position in making certain you ship your options sooner.  By leveraging CI/CD, you may assure that the applying groups ship options sooner whereas making certain finest practices for the code base. 

On this micro-blog, we’ll see how simply one can create and handle the CI/CD pipelines with Devtron, however earlier than doing that, let’s do a fast refresher on CI/CD.

What Is CI/CD?

CI stands for “Steady integration,” which is the stage the place we validate and check the modifications pushed by builders. It’s the place you run all of your check circumstances, i.e., unit and integration exams. After we now have validated and examined the codebase, we are able to construct the software program artifacts on this step; for e.g., we are able to construct a container picture, or it may be a binary executable.

CD stands for “Steady supply,” which is once you push your software program artifacts to the manufacturing/staging setting in an automatic course of. On this context, after constructing a container picture and pushing it to the container registry, we deploy the identical picture within the Kubernetes cluster with the assistance of Devtron.

What Is Kubernetes Native CI/CD?

The Kubernetes native CI/CD leverages the software program supply workflows by being a part of the Kubernetes cluster. The advantage of utilizing Kubernetes native CI/CD is that your construct step will occur inside a pod, and also you don’t must provision or join every other compute sources externally on your CI. From a safety perspective, this technique is beneficial as all of our secrets and techniques & exterior credentials are inside the cluster.

Kubernetes Native CI/CD With Devtron

While you’re managing your pipelines with YAML, it is advisable write the workflow and replace it repeatedly. Understanding YAML, inspecting the construct course of, studying totally different Linux instructions, deploying code manually, and studying Kubernetes is tough for a developer. They want one thing intuitive, easy and doesn’t require area experience. Even for those who don’t know a lot about Kubernetes, it’s best to be capable to develop, execute & set off your builds & deployments. 

That is what we are attempting to resolve utilizing Devtron. It provides you an intuitive dashboard that can assist you rapidly arrange and handle your CI/CD pipelines on Kubernetes. Let’s set up Devtron and arrange some CI/CD pipelines for our purposes.

For putting in Devtron, discuss with the set up documentation. After putting in Devtron, we’ll port-forward the Devtron service to get the dashboard URL since we’re putting in it on a neighborhood machine.

kubectl -n devtroncd port-forward service/devtron-service 8000:80 &

After this, it’s best to be capable to entry the Devtron dashboard on localhost port 8080.  

For demonstrating the CI/CD pipeline, let’s use a nodejs demo application offered by Devtron on GitHub repository.

After getting this, it is advisable set the worldwide configurations on your software. For setting world configuration discuss with the documentation

Step 1: Enabling GitOps

To allow GitOps, go to world configuration after which use any Git supplier for authentication. In our case, we now have used GitHub. It is strongly recommended to create a brand new GitHub group of all of your GitOps configs.

GitOps Configs

Step 2: Creating an Utility

Now let’s transfer forward and create our first software on Devtron. Present the App Identify i.e demo-application, assign it a venture i.e. devtron-demo after which click on on Create App.

Create App

Step 3: Including GitHub Repository and Construct Configuration

The subsequent step is so as to add the Git Repo URL of your supply code from the place it’s being hosted. If you wish to deploy an software that’s in a personal repo, discover the Git Accounts Docs.

Adding Git Repository

Now as soon as we now have arrange our repository, we have to set the construct configuration. The construct configuration is required to tug and push your container pictures. You may change the registry to make use of docker, ECR, GCR, and many others, which will be configured from container registries under Global Configurations

Now we have now built-in Buildpacks with which you’ll construct OCI-compliant container pictures straight out of your code. 

Build Configurations

If you wish to construct a platform-specific picture, then you may configure that within the superior choices in Construct Configurations.

Buildx Multi-Platform Builds

Step 4: Configuring Base Deployment Template

Base Deployment Template is the place all magic occurs. Devtron shows a fined-grained configuration, abstracting out all of the Kubernetes config complexities and packages the template in a helm chart. The deployment template consists of virtually all main configurations that might be required for a production-grade microservice, and it comes with two show choices — Fundamental (GUI Mode) & Superior (YAML Configs).

Deployment Template GUI Mode

You may configure ContainerPort, set Requests & Limits on your deployment, present Surroundings Variables, and many others. There’s additionally a complicated choice from which you will get the detailed YAML configurations that Devtron will use throughout deployment and overwrite the identical. Right here’s a glimpse of how the deployment template seems to be. 

Base Deployment Template

You may configure Horizontal Pod Autoscaling, Ingress, Safety Context, Keda Autoscaling, Quantity Mountsand lots of extra Kubernetes configurations simply with just a few tweaks within the predefined template. With Devtron’s deployment template, you don’t have to fret about writings tons of YAML file on your Kubernetes configurations.

Step 5: Creating and Triggering a CI/CD Pipeline

After getting configured the deployment template, you might be able to construct your CI/CD Workflow. Allow us to go forward and configure steady integration. To know extra about other ways of making pipelines, be at liberty to read workflow editor documentation. On this instance, we’ll construct & deploy from Devtron Dashb

Workflow Editor - Build & Deploy from Devtron

Now, let’s create our CI Construct Pipeline and configure the pipeline particulars. In CI pipeline, you may configure vulnerabilities scanning, pre/ submit construct levels, give the supply sort i.e, Department Mounted, Regex, Pull Request or Tag Creation for constructing pictures, and much more.

Build Stage - CI Pipeline

Now after the creating construct pipeline, let’s create the Deployment Pipeline. Use the + icon on the identical web page so as to add your deployment pipeline. With Devtron, you may create as many pipelines as you need, be it sequential pipelines or deploy to a number of environments from the identical construct. 

In Deployment Pipeline you may configure pre/ submit deployment levels, out-of-the-box integrations of deployment methods i.e., Rolling, Recreate, Blue-Inexperienced, and Canary. It additionally means that you can select totally different deployment methods for various environments in the identical software. The default deployment technique is Rolling as you may see within the beneath picture.

On this weblog, we’ll proceed with Blue-Inexperienced deployment technique. You may try the deployment technique configurations and make modifications relying in your use case. This configuration change is an software for all different deployment methods.

Blue-Green Deployment Strategy

After configuring the CI & CD pipelines, right here’s what all the pipeline seems to be like. We are able to create a number of workflows with totally different configs for various environments and construct sorts in the identical software. 

Is not it attention-grabbing!!

Build & Deploy Workflow

Now that pipelines are created, we have to set off our pipelines and for that we now have to go to the Construct & Deploy part.

To construct a picture, click on on Choose Materials -> Choose the Commit for which you wish to construct -> Click on on Begin Construct

Start Build

As soon as the construct is initiated, we are able to test the logs of the construct course of and when the construct is profitable then we are able to confirm the picture constructed within the artifacts part. It additionally means that you can test the earlier builds, and all obligatory audit data required within the dashboard as you may see within the picture beneath.

Build History for CI Pipeline

Let’s set off the deployment pipeline. After the construct pipeline is profitable, there can be an choice to choose picture in Construct & Deploy web page. Choose the picture after which click on on Deploy. We are able to additionally test the commit and safety particulars towards which deployment is being initiated. As soon as deployment is began, Devtron provides you particulars of all levels together with K8s Configurations towards every deployment. In CD pipelines as nicely, we get all of the audit data concerning the deployment as you may see within the picture beneath.

Deployment History for CD Pipeline

Step 6: App Particulars 

As soon as your software is deployed, you may view detailed details about your software within the App Particulars. All of the health-related details about your workloads and software metrics will be simply monitored from App Particulars tab.

After the applying is efficiently deployed, it provides you a 360-degree view of all data concerning the applying and means that you can carry out totally different pod operations comparable to view logs, exec into terminal, test manifests, occasions and in addition comes with Logs Analyzer that permits grep on multi-container logs. It additionally exhibits all of the Kubernetes sources related to specific purposes in a grouped method that comes very useful for debugging and observability.

App Details of deployed application


On this weblog, we now have discovered about Kubernetes CI/CD and the way simply it may be arrange utilizing Devtron in simply 3 minutes with all one of the best practices and GitOps. One of many foremost advantages of a fast Kubernetes CI/CD setup is that it could actually pace up the entire launch course of by automating your construct and repeatedly testing the codebase. Builders don’t must construct and check manually. A quick, dependable, and environment friendly Kubernetes CI/CD will result in higher merchandise and happier customers.