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 ofwillbla
. - 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.
- Create a Jenkins environment variable called