Implementing Fully-Automated Deployment in a CD Pipeline

1.5 hours
  • 2 Learning Objectives

About this Hands-on Lab

Many companies that practice continuous deployment use a hands-free, fully-automated deployment model. This allows them to ship code to production with various automated tests and sanity checks built into the process, bypassing the need for human intervention. In this lesson, you will implement a basic sanity check and see a simple fully-automated deployment pipeline in action. This will give you a hands-on introduction to the concept of fully-automated deployments.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Prepare the Jenkins environment and verify your configuration with an initial deploy.

To accomplish this, you will need to do the following steps:

  • Fork the sample source code at: https://github.com/linuxacademy/cicd-pipeline-train-schedule-autodeploy
  • Change the DOCKER_IMAGE_NAME at the top of the Jenkinsfile to use your Docker Hub username instead of willbla.
  • Log in to Jenkins.
  • Add Jenkins credentials for GitHub, Docker Hub, and the Kubernetes cluster.
  • Set up automatic GitHub hook management in Jenkins.
  • Create a train-schedule project to build from your GitHub fork, and configure it to trigger automatically using a webhook.
  • Successfully run, approve, and deploy a build.
Add a smoke test with automated deployment and remove the human approval step from the pipeline, then deploy.

Do these steps to complete this:

  • Create a Jenkins environment variable called KUBE_MASTER_IP and set it to the Kubernetes master public IP.
  • Add a smoke test to verify that the canary deployment is responsive.
  • Remove the human input step from the deployment.
  • Merge the code from the new-code branch into your master branch to initiate an automated deployment.

Additional Resources

Your team is building the train-schedule app. They have put a lot of work into laying out a robust CI/CD Pipeline for the app. This Pipeline requires a final, manual, approval step before production deployment. However, the team is confident in the automation that they have built, and they want to eliminate this step.

You have been asked to remove the manual approval step and implement a basic smoke test in its place. The pipeline already includes a canary deployment to a Kubernetes cluster, so this smoke test should simply query the canary service to verify that it responds correctly. If the code passes the smoke test, the pipeline should proceed with production deployment.

To do this, you will need to do the following tasks:

Prepare the Jenkins environment and verify your configuration with an initial deploy:

  • Fork the sample source code at: https://github.com/linuxacademy/cicd-pipeline-train-schedule-autodeploy
  • Change the DOCKER_IMAGE_NAME at the top of the Jenkinsfile to use your Docker Hub username instead of willbla.
  • Log in to Jenkins.
  • Add Jenkins credentials for GitHub, Docker Hub, and the Kubernetes cluster.
  • Set up automatic GitHub hook management in Jenkins.
  • Create a train-schedule project to build from your GitHub fork, and configure it to trigger automatically using a webhook.
  • Successfully run, approve, and deploy a build.

Add a smoke test with automated deployment and remove the human approval step from the pipeline, then deploy:

  • Create a Jenkins environment variable called KUBE_MASTER_IP and set it to the Kubernetes master public IP.
  • Add a smoke test to verify that the canary deployment is responsive.
  • Remove the human input step from the deployment.
  • Merge the code from the new-code branch into your master branch to initiate an automated deployment.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?