Canary deployments are a great way to achieve greater stability when doing continuous deployments. By testing changes in a live environment with real users, you can deploy with greater confidence while minimizing the impact of bugs and issues on your users. In this learning activity, you will implement a simple canary deployment to a Kubernetes Cluster as part of a Jenkins Pipeline.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Set up the project and Jenkins and run an initial deployment.
To this, you will need to perform the following steps:
- Fork the sample source code repo: https://github.com/linuxacademy/cicd-pipeline-train-schedule-canary.
- Change the
DOCKER_IMAGE_NAME
at the top of the Jenkinsfile to use your docker hub username instead ofwillbla
. - Log in to the Jenkins server.
- Set up the credentials in Jenkins (GitHub access token, Docker Hub, and Kubeconfig).
- Create a project and build it from your fork.
- Add a canary stage to the pipeline and run a successful deployment.
To complete this, you will need to do the following:
- Create a deployment template for the canary deployment with a "canary" track.
- Add a canary stage to the Jenkinsfile to perform the canary deployment.
- Modify the production deploy stage to clean up the canary deployment after production deployment is approved.
- Execute the deployment in Jenkins.
Don’t hesitate to Refer to the
example-solution
branch of the sample source code repo for an example of how to do this!