With Tekton pipeline builds
With Istio
# 16 cores available in worker nodes Install Istio https://docs.openshift.com/container-platform/4.3/service_mesh/service_mesh_install/installing-ossm.html Install Tekton https://openshift.github.io/pipelines-docs/docs/0.10.5/proc_installing-pipelines-operator-in-web-console.html or https://redhat-developer-demos.github.io/tekton-tutorial/tekton-tutorial/setup.html#deploy-tekton Verify Istio Installation kubectl api-resources --api-group='networking.istio.io' kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE grafana-b67df64b6-fzqzb 2/2 Running 0 4m48s istio-citadel-79979464d-g2h6p 1/1 Running 0 9m5s istio-egressgateway-7d897695c4-bn6tz 1/1 Running 0 5m32s istio-galley-6bb46858c5-5mrvq 1/1 Running 0 7m37s istio-ingressgateway-8465bbf788-2vhcv 1/1 Running 0 5m31s istio-pilot-7cb87486f-8rlkx 2/2 Running 0 6m22s istio-policy-5fc74b8697-7gt2q 2/2 Running 0 7m11s istio-sidecar-injector-65cd4c8c6f-j27wc 1/1 Running 0 5m18s istio-telemetry-78644647c9-qr8k7 2/2 Running 0 7m10s jaeger-57776787bc-sstwj 2/2 Running 0 7m41s kiali-6d6f9cf658-299v5 1/1 Running 0 3m38s prometheus-b8bdc6b77-wgp6d 2/2 Running 0 8m44s kubectl get pods -n openshift-pipelines NAME READY STATUS RESTARTS AGE tekton-pipelines-controller-7b6648dc8d-kfnqt 1/1 Running 0 8m40s tekton-pipelines-webhook-65856dff6c-x4mbj 1/1 Running 0 8m40s tekton-triggers-controller-6bcdd9d5df-m8lnr 1/1 Running 0 8m14s tekton-triggers-webhook-5cf995778d-tqrnk 1/1 Running 0 8m11s oc new-project one # Add the project to Istio Servicemesh Member Roll kubectl create -n one src/main/istio/servicemesh-member.yaml
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 watch oc get pods -n rhd-workshop-infra git clone https://github.com/burrsutter/blue-green-canary oc project one ./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 # 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 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_bgc.sh # Use list_containers.sh ./6_deploy_gateway.sh watch kubectl get pods To get the URL for end-users UI kubectl get route istio-ingressgateway -n istio-system --output 'jsonpath={.status.ingress[].host}' ./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}')/bgc # everybody blue kubectl replace -f src/main/istio/Virtual_service_blue.yml # everybody green kubectl replace -f src/main/istio/Virtual_service_green.yml