From 3bf626a11e9d72575714f1468c16169c323f2a60 Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Mon, 24 Feb 2020 11:14:13 -0800 Subject: [PATCH] Added Web Status deploy template and deploy pipeline --- .../aro/azure-devops-templates/variables.yml | 10 +- .../webstatus-deploy-template.yml | 144 ++++++++++++++++++ deploy/aro/webstatus/azure-pipelines.yml | 35 +++++ 3 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 deploy/aro/openshift-templates/webstatus-deploy-template.yml create mode 100644 deploy/aro/webstatus/azure-pipelines.yml diff --git a/deploy/aro/azure-devops-templates/variables.yml b/deploy/aro/azure-devops-templates/variables.yml index f04066aa4..e738a1bab 100644 --- a/deploy/aro/azure-devops-templates/variables.yml +++ b/deploy/aro/azure-devops-templates/variables.yml @@ -32,6 +32,12 @@ variables: OrderingApiUrl: http://$(OrderingApiHostName):8080 OrderingApiGrpcUrl: http://$(OrderingApiHostName):8081 OrderingApiHc: $(OrderingApiUrl)/hc + OrderingSignalRHubHostName: orderingsignalrhub.$(OpenShiftProject).svc + OrderingSignalRHubUrl: http://$(OrderingSignalRHubHostName):8080 + OrderingSignalRHubHc: $(OrderingSignalRHubUrl)/hc + OrderingBackgroundTasksHostName: orderingbackgroundtasks.$(OpenShiftProject).svc + OrderingBackgroundTasksUrl: http://$(OrderingBackgroundTasksHostName):8080 + OrderingBackgroundTasksHc: $(OrderingBackgroundTasksUrl)/hc PaymentApiHostName: paymentapi.$(OpenShiftProject).svc PaymentApiUrl: http://$(PaymentApiHostName):8080 PaymentApiGrpcUrl: http://$(PaymentApiHostName):8081 @@ -47,4 +53,6 @@ variables: WebhooksWebClientHostName: webhookclient.$(OpenShiftProject).svc WebhooksWebClientUrl: http://$(WebhooksWebClientHostName):8080 WebSpaUrl: https://eshop-spa$(EnvironmentName) - WebMvcUrl: https://$(PublicHostName) \ No newline at end of file + WebSpaHc: $(WebSpaUrl)/hc + WebMvcUrl: https://$(PublicHostName) + WebMvcHc: $(WebMvcUrl)/hc \ No newline at end of file diff --git a/deploy/aro/openshift-templates/webstatus-deploy-template.yml b/deploy/aro/openshift-templates/webstatus-deploy-template.yml new file mode 100644 index 000000000..5c33feb64 --- /dev/null +++ b/deploy/aro/openshift-templates/webstatus-deploy-template.yml @@ -0,0 +1,144 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: ${TEMPLATE_NAME} +objects: +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + labels: + app: ${APPLICATION_NAME} + template: ${TEMPLATE_NAME} + name: ${APPLICATION_NAME} + spec: + replicas: 1 + selector: + app: ${APPLICATION_NAME} + deploymentconfig: ${APPLICATION_NAME} + strategy: + type: Rolling + revisionHistoryLimit: 2 + template: + metadata: + labels: + app: ${APPLICATION_NAME} + deploymentconfig: ${APPLICATION_NAME} + spec: + containers: + - env: + - name: HealthChecksUI__HealthChecks__0__Name + value: WebMVC HTTP Check + - name: HealthChecksUI__HealthChecks__0__Uri + value: ${WEB_MVC_HC_URL} + - name: HealthChecksUI__HealthChecks__1__Name + value: WebSPA HTTP Check + - name: HealthChecksUI__HealthChecks__1__Uri + value: ${WEB_SPA_HC_URL} + - name: HealthChecksUI__HealthChecks__2__Name + value: Web Shopping Aggregator GW HTTP Check + - name: HealthChecksUI__HealthChecks__2__Uri + value: ${WEB_SHOPPING_AGGREGATOR_HC_URL} + - name: HealthChecksUI__HealthChecks__3__Name + value: Mobile Shopping Aggregator HTTP Check + - name: HealthChecksUI__HealthChecks__3__Uri + value: ${MOBILE_SHOPPING_AGGREGATOR_HC_URL} + - name: HealthChecksUI__HealthChecks__4__Name + value: Ordering HTTP Check + - name: HealthChecksUI__HealthChecks__4__Uri + value: ${ORDERING_API_HC_URL} + - name: HealthChecksUI__HealthChecks__5__Name + value: Basket HTTP Check + - name: HealthChecksUI__HealthChecks__5__Uri + value: ${BASKET_API_HC_URL} + - name: HealthChecksUI__HealthChecks__6__Name + value: Catalog HTTP Check + - name: HealthChecksUI__HealthChecks__6__Uri + value: ${CATALOG_API_HC_URL} + - name: HealthChecksUI__HealthChecks__7__Name + value: Identity HTTP Check + - name: HealthChecksUI__HealthChecks__7__Uri + value: ${IDENTITY_API_HC_URL} + - name: HealthChecksUI__HealthChecks__8__Name + value: Marketing HTTP Check + - name: HealthChecksUI__HealthChecks__8__Uri + value: ${MARKETING_API_HC_URL} + - name: HealthChecksUI__HealthChecks__9__Name + value: Locations HTTP Check + - name: HealthChecksUI__HealthChecks__9__Uri + value: ${LOCATIONS_API_HC_URL} + - name: HealthChecksUI__HealthChecks__10__Name + value: Payments HTTP Check + - name: HealthChecksUI__HealthChecks__10__Uri + value: ${PAYMENT_API_HC_URL} + - name: HealthChecksUI__HealthChecks__11__Name + value: Ordering SignalRHub HTTP Check + - name: HealthChecksUI__HealthChecks__11__Uri + value: ${ORDERING_SIGNALR_HUB_HC_URL} + - name: HealthChecksUI__HealthChecks__12__Name + value: Ordering HTTP Background Check + - name: HealthChecksUI__HealthChecks__12__Uri + value: ${ORDERING_BACKGROUND_TASKS_HC_URL} + image: docker-registry.default.svc:5000/${IMAGE_REGISTRY_PROJECT_NAME}/${APPLICATION_NAME}:latest + imagePullPolicy: Always + name: ${APPLICATION_NAME} + ports: + - containerPort: 8080 + protocol: TCP + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 + triggers: + - type: ConfigChange + - imageChangeParams: + automatic: true + containerNames: + - ${APPLICATION_NAME} + from: + kind: ImageStreamTag + name: ${APPLICATION_NAME}:latest + namespace: ${IMAGE_REGISTRY_PROJECT_NAME} + type: ImageChange +- apiVersion: v1 + kind: Service + metadata: + labels: + app: ${APPLICATION_NAME} + template: ${TEMPLATE_NAME} + name: ${APPLICATION_NAME} + spec: + ports: + - name: 8080-tcp + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: ${APPLICATION_NAME} + deploymentconfig: ${APPLICATION_NAME} + sessionAffinity: None + type: ClusterIP + status: + loadBalancer: {} +parameters: +- description: The name for the application. + displayName: Application Name + name: APPLICATION_NAME + required: true + value: webstatus +- description: The OpenShift project name that is hosting the image registry. + displayName: Image Registry Project Name + name: IMAGE_REGISTRY_PROJECT_NAME + required: true +- description: The template name. + displayName: Template Name + name: TEMPLATE_NAME + required: true + value: webstatus-deploy-template +- description: The cluster internal URL of the Basket API endpoint + displayName: Basket API URL + name: BASKET_API_URL + required: true \ No newline at end of file diff --git a/deploy/aro/webstatus/azure-pipelines.yml b/deploy/aro/webstatus/azure-pipelines.yml new file mode 100644 index 000000000..c2bb4b8db --- /dev/null +++ b/deploy/aro/webstatus/azure-pipelines.yml @@ -0,0 +1,35 @@ +variables: + OpenShiftServiceConnection: 'OpenShift on ARO' +trigger: + branches: + include: + - master + - dev + paths: + include: + - deploy/aro/webstatus/* + - deploy/aro/openshift-templates/* +stages: + - stage: development + displayName: Development + variables: + OpenShiftProject: development + SourceImageRegistryProjectName: development + jobs: + - job: WebStatusDeployment + displayName: 'Web Status Deployment' + variables: + - template: ../azure-devops-templates/variables.yml + pool: + vmImage: 'windows-latest' + steps: + - task: redhat.openshift-vsts.oc-setup-task.oc-setup@2 + displayName: 'Setup Openshift CLI' + inputs: + openshiftService: $(OpenShiftServiceConnection) + - script: 'oc project $(OpenShiftProject)' + failOnStderr: true + displayName: 'Set OpenShift Project Context' + - script: 'oc process -f ./deploy/aro/openshift-templates/webstatus-deploy-template.yml -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) -p WEB_MVC_HC_URL=$(WebMvcHc) -p WEB_SPA_HC_URL=$(WebSpaHc) -p WEB_SHOPPING_AGGREGATOR_HC_URL=$(WebShoppingAggregatorHc) -p MOBILE_SHOPPING_AGGREGATOR_HC_URL=$(MobileShoppingAggregatorHc) -p ORDERING_API_HC_URL=$(OrderingApiHc) -p BASKET_API_HC_URL=$(BasketApiHc) -p CATALOG_API_HC_URL=$(CatalogApiHc) -p IDENTITY_API_HC_URL=$(IdentityApiHc) -p MARKETING_API_HC_URL=$(MarketingApiHc) -p LOCATIONS_API_HC_URL=$(LocationsApiHc) -p PAYMENT_API_HC_URL=$(PaymentApiHc) -p ORDERING_SIGNALR_HUB_HC_URL=$(OrderingSignalRHubHc) -p ORDERING_BACKGROUND_TASKS_HC_URL=$(OrderingBackgroundTasksHc) | oc apply -f-' + failOnStderr: true + displayName: 'Ensure Web Status OpenShift DeploymentConfig and Service' \ No newline at end of file