In this demo, we will illustrate how to use Rafay GitOps pipelines to enable zero downtime canary deployments by using an Ingress Controller to direct client traffic.
The demo application contains two simple webserver applications, one serving "coffee", the other "tea", and is based on the nginxinc/ingress-demo container image. To build the application container images, follow the steps listed below:
-
Clone the repo.
[user@host] git clone https://github.com/matt-rafay/canary-demo.git
-
Navigate to the
build
directory and run thebuild.sh
shell script.[user@host] cd canary-demo/build [user@host] ./build.sh Usage: build.sh [required] [optional] Required: --registry example: registry.example.com Optional: --push push image to repository --repo-prefix example: demo-app (e.g. demo-app-coffee and demo-app-tea)
Provide the registry name using the
--registry
flag.Optionally provide a repo prefix name by using the
--repo-prefix
flag (if no prefix name is specified, the default container image names aredemo-app-coffee
anddemo-app-tea
).Use the
--push
flag to have the script automatically push the container images to your registry.[user@host] ./build.sh --registry registry.example.com --repo-prefix canary --push