With Tekton pipeline builds
With Istio
curl -L https://github.com/istio/istio/releases/download/1.3.0/istio-1.3.0-osx.tar.gz | tar xz cd istio-1.3.0 for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done kubectl create -f install/kubernetes/istio-demo.yaml kubectl create namespace demo kubectl label namespace demo istio-injection=enabled kubens demo ./4_service.sh ./5_deploy_blue.sh ./5_deploy_green.sh ./5_deploy_canary.sh ./6_deploy_gateway.sh watch kubectl get pods ./poll_bgc_minikube_gateway.sh # Should be alternating across blue/green/canary kubectl create -f src/main/istio/Destination_rule_blue_green.yml kubectl replace -f src/main/istio/Virtual_service_blue.yml
# 16 cores available in worker nodes # Add the Istio & Tekton git clone https://github.com/redhat-developer-demos/guru-night cd guru-night cp setenv.example setenv.sh mkdir work edit setenv.sh ./workshopper installCatalogSources ./workshopper installServicemesh ./workshopper createServicemesh oc api-resources --api-group='networking.istio.io' # ./workshopper createUsers ./workshopper installPipelines # Add kind: ServiceMeshMemberRoll via the Operator UI into namespace istio-system
oc api-resources --api-group='tekton.dev' oc get pods -n openshift-pipelines oc new-project rhd-workshop-infra oc new-app sonatype/nexus -n rhd-workshop-infra oc get pods -n rhd-workshop-infra oc new-project one git clone https://github.com/burrsutter/blue-green-canary ./4_service.sh # Declare Resources oc create -f src/main/tekton/pipeline-resources-openshift.yml tkn res ls NAME TYPE DETAILS bgc-git-source git url: https://github.com/burrsutter/blue-green-canary bgc-image-blue image url: image-registry.openshift-image-registry.svc:5000/one/blue-green-canary:blue bgc-image-canary image url: image-registry.openshift-image-registry.svc:5000/one/blue-green-canary:canary bgc-image-green image url: image-registry.openshift-image-registry.svc:5000/one/blue-green-canary:green # Declare Tasks # yq & kubectl apply oc apply -f src/main/tekton/task-yq-deploy.yml # mvn & buildah oc apply -f src/main/tekton/task-mvn-buildah.yml oc apply -f src/main/tekton/task-mvn-buildah.yml tkn task ls NAME AGE mvn-buildah 4 seconds ago yq-deploy 28 seconds ago # Declare Pipelines oc apply -f src/main/tekton/pipeline.yml tkn pipeline ls NAME AGE LAST RUN STARTED DURATION STATUS bgc-build-deploy 5 seconds ago --- --- --- --- # Check APIResource.java for Aloha/blue https://github.com/burrsutter/blue-green-canary/blob/master/src/main/java/com/burrsutter/bluegreencanary/APIResource.java # Start the pipeline ./5_start_pipeline_blue.sh # Use list_containers.sh # Change APIResource.java for Bonjour/green ./5_start_pipeline_green.sh # Change APIResource.java for Hola/canary ./5_start_pipeline_canary.sh ./6_deploy_gateway.sh watch kubectl get pods ./poll_bgc_ocp4_gateway.sh # Should be alternating across blue/green/canary # the URL for your browser URL=$(kubectl get route istio-ingressgateway -n istio-system --output 'jsonpath={.status.ingress[].host}')/api # everybody blue kubectl replace -f src/main/istio/Virtual_service_blue.yml # everybody green kubectl replace -f src/main/istio/Virtual_service_green.yml