Add new infrastructure template and pipeline
This commit is contained in:
		
							parent
							
								
									565c4a481a
								
							
						
					
					
						commit
						1fe352eb09
					
				| @ -45,7 +45,7 @@ jobs: | |||||||
|   - task: CopyFiles@2 |   - task: CopyFiles@2 | ||||||
|     displayName: 'Copy OpenShift Web App Deploy Template' |     displayName: 'Copy OpenShift Web App Deploy Template' | ||||||
|     inputs: |     inputs: | ||||||
|       sourceFolder: '$(Build.SourcesDirectory)/deploy/aro' |       sourceFolder: '$(Build.SourcesDirectory)/deploy/aro/openshift-templates' | ||||||
|       contents: 'openshift-webapp-deploy-template.yml' |       contents: 'openshift-webapp-deploy-template.yml' | ||||||
|       targetFolder: $(Build.ArtifactStagingDirectory) |       targetFolder: $(Build.ArtifactStagingDirectory) | ||||||
|   - task: PublishBuildArtifacts@1 |   - task: PublishBuildArtifacts@1 | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ jobs: | |||||||
|   - task: DownloadPipelineArtifact@2 |   - task: DownloadPipelineArtifact@2 | ||||||
|     inputs: |     inputs: | ||||||
|       artifact: drop |       artifact: drop | ||||||
|   - script: 'oc process -f $(Pipeline.Workspace)/openshift-app-build-template.yml -p APPLICATION_NAME=$(AppName) | oc apply -f-' |   - script: 'oc process -f $(Pipeline.Workspace)/openshift-templates/openshift-app-build-template.yml -p APPLICATION_NAME=$(AppName) | oc apply -f-' | ||||||
|     failOnStderr: true |     failOnStderr: true | ||||||
|     displayName: 'Ensure OpenShift BuildConfig' |     displayName: 'Ensure OpenShift BuildConfig' | ||||||
|   - powershell: | |   - powershell: | | ||||||
|  | |||||||
| @ -24,6 +24,6 @@ stages: | |||||||
|         - script: 'oc project $(OpenShiftProject)' |         - script: 'oc project $(OpenShiftProject)' | ||||||
|           failOnStderr: true |           failOnStderr: true | ||||||
|           displayName: 'Set OpenShift Project Context' |           displayName: 'Set OpenShift Project Context' | ||||||
|         - script: 'oc process -f ./deploy/aro/openshift-webapp-deploy-template.yml -p APPLICATION_NAME=$(AppName) -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' |         - script: 'oc process -f ./deploy/aro/openshift-templates/webapp-deploy-template.yml -p APPLICATION_NAME=$(AppName) -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' | ||||||
|           failOnStderr: true |           failOnStderr: true | ||||||
|           displayName: 'Ensure OpenShift DeploymentConfig and Service' |           displayName: 'Ensure OpenShift DeploymentConfig and Service' | ||||||
							
								
								
									
										39
									
								
								deploy/aro/infrastructure/azure-pipelines.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								deploy/aro/infrastructure/azure-pipelines.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | |||||||
|  | variables: | ||||||
|  |   OpenShiftServiceConnection: 'OpenShift on ARO' | ||||||
|  | stages: | ||||||
|  |   - stage: development | ||||||
|  |     displayName: Development | ||||||
|  |     variables: | ||||||
|  |       OpenShiftProject: development | ||||||
|  |       SourceImageRegistryProjectName: development | ||||||
|  |       SqlHostName: mssql-server-linux.$(OpenShiftProject).svc | ||||||
|  |     jobs: | ||||||
|  |       - job: Infrastructure_Containers_Deployment | ||||||
|  |         displayName: 'Infrastructure Containers Deployment' | ||||||
|  |         variables: | ||||||
|  |           CatalogDbConnection: Server=$(SqlHostName);Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=$(SqlUsername);Password=$(SqlPassword) | ||||||
|  |           IdentityDbConnection: Server=$(SqlHostName);Database=Microsoft.eShopOnContainers.Service.IdentityDb;User Id=$(SqlUsername);Password=$(SqlPassword) | ||||||
|  |           MarketingDbConnection: Server=$(SqlHostName);Database=Microsoft.eShopOnContainers.Services.MarketingDb;User Id=$(SqlUsername);Password=$(SqlPassword) | ||||||
|  |           OrderingDbConnection: Server=$(SqlHostName);Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=$(SqlUsername);Password=$(SqlPassword) | ||||||
|  |           WebhooksDbConnection: Server=$(SqlHostName);Database=Microsoft.eShopOnContainers.Services.WebhooksDb;User Id=$(SqlUsername);Password=$(SqlPassword) | ||||||
|  |         pool:  | ||||||
|  |           vmImage: 'windows-latest' | ||||||
|  |         steps: | ||||||
|  |           - task: AzureKeyVault@1 | ||||||
|  |             displayName: 'Azure Key Vault: openshift-demo-vault' | ||||||
|  |             inputs: | ||||||
|  |               azureSubscription: 'Azure OpenShift Demo' | ||||||
|  |               KeyVaultName: 'openshift-demo-vault' | ||||||
|  |           - 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/secrets-deploy-template.yml  -p IDENTITY_DB_CONNECTION_SECRET=$(IdentityDbConnection) -p MARKETING_DB_CONNECTION_SECRET=$(MarketingDbConnection) -p ORDERING_DB_CONNECTION_SECRET=$(OrderingDbConnection) -p SQL_PASSWORD_SECRET=$(SqlPassword) -p WEBHOOKS_DB_CONNECTION_SECRET=$(WebhooksDbConnection) | oc apply -f-' | ||||||
|  |             failOnStderr: true | ||||||
|  |             displayName: 'Secrets Deployment' | ||||||
|  |           - script: 'oc process -f ./deploy/aro/openshift-templates/rabbitmq-image-deploy-template.yml -p APPLICATION_NAME=$(AppName) -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' | ||||||
|  |             failOnStderr: true | ||||||
|  |             displayName: 'RabbitMQ Deployment' | ||||||
| @ -0,0 +1,142 @@ | |||||||
|  | apiVersion: template.openshift.io/v1 | ||||||
|  | kind: Template | ||||||
|  | metadata: | ||||||
|  |   name: ${TEMPLATE_NAME} | ||||||
|  | objects: | ||||||
|  | - apiVersion: apps.openshift.io/v1 | ||||||
|  |   kind: DeploymentConfig | ||||||
|  |   metadata: | ||||||
|  |     generation: 2 | ||||||
|  |     labels: | ||||||
|  |       app: ${APPLICATION_NAME} | ||||||
|  |       template: ${TEMPLATE_NAME} | ||||||
|  |     name: ${APPLICATION_NAME} | ||||||
|  |   spec: | ||||||
|  |     replicas: 1 | ||||||
|  |     revisionHistoryLimit: 10 | ||||||
|  |     selector: | ||||||
|  |       app: ${APPLICATION_NAME} | ||||||
|  |       deploymentconfig: ${APPLICATION_NAME} | ||||||
|  |     strategy: | ||||||
|  |       activeDeadlineSeconds: 21600 | ||||||
|  |       resources: {} | ||||||
|  |       rollingParams: | ||||||
|  |         intervalSeconds: 1 | ||||||
|  |         maxSurge: 25% | ||||||
|  |         maxUnavailable: 25% | ||||||
|  |         timeoutSeconds: 600 | ||||||
|  |         updatePeriodSeconds: 1 | ||||||
|  |       type: Rolling | ||||||
|  |     template: | ||||||
|  |       metadata: | ||||||
|  |         labels: | ||||||
|  |           app: ${APPLICATION_NAME} | ||||||
|  |           deploymentconfig: ${APPLICATION_NAME} | ||||||
|  |       spec: | ||||||
|  |         containers: | ||||||
|  |           - image: ${APPLICATION_NAME}:latest | ||||||
|  |             imagePullPolicy: IfNotPresent | ||||||
|  |             name: ${APPLICATION_NAME} | ||||||
|  |             ports: | ||||||
|  |               - containerPort: 5672 | ||||||
|  |                 protocol: TCP | ||||||
|  |               - containerPort: 15671 | ||||||
|  |                 protocol: TCP | ||||||
|  |               - containerPort: 15672 | ||||||
|  |                 protocol: TCP | ||||||
|  |               - containerPort: 25672 | ||||||
|  |                 protocol: TCP | ||||||
|  |               - containerPort: 4369 | ||||||
|  |                 protocol: TCP | ||||||
|  |               - containerPort: 5671 | ||||||
|  |                 protocol: TCP | ||||||
|  |             resources: {} | ||||||
|  |             terminationMessagePath: /dev/termination-log | ||||||
|  |             terminationMessagePolicy: File | ||||||
|  |             volumeMounts: | ||||||
|  |               - mountPath: /var/lib/rabbitmq | ||||||
|  |                 name: ${APPLICATION_NAME}-volume-1 | ||||||
|  |         dnsPolicy: ClusterFirst | ||||||
|  |         restartPolicy: Always | ||||||
|  |         schedulerName: default-scheduler | ||||||
|  |         securityContext: {} | ||||||
|  |         terminationGracePeriodSeconds: 30 | ||||||
|  |         volumes: | ||||||
|  |           - emptyDir: {} | ||||||
|  |             name: ${APPLICATION_NAME}-volume-1 | ||||||
|  |     triggers: | ||||||
|  |       - type: ConfigChange | ||||||
|  |       - imageChangeParams: | ||||||
|  |           automatic: true | ||||||
|  |           containerNames: | ||||||
|  |             - ${APPLICATION_NAME} | ||||||
|  |           from: | ||||||
|  |             kind: ImageStreamTag | ||||||
|  |             name: '${APPLICATION_NAME}:3-management-alpine' | ||||||
|  |             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: 4369-tcp | ||||||
|  |       port: 4369 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 4369 | ||||||
|  |     - name: 5671-tcp | ||||||
|  |       port: 5671 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 5671 | ||||||
|  |     - name: 5672-tcp | ||||||
|  |       port: 5672 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 5672 | ||||||
|  |     - name: 15671-tcp | ||||||
|  |       port: 15671 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 15671 | ||||||
|  |     - name: 15672-tcp | ||||||
|  |       port: 15672 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 15672 | ||||||
|  |     - name: 25672-tcp | ||||||
|  |       port: 25672 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: 25672 | ||||||
|  |     selector: | ||||||
|  |       app: ${APPLICATION_NAME} | ||||||
|  |       deploymentconfig: ${APPLICATION_NAME} | ||||||
|  |     sessionAffinity: None | ||||||
|  |     type: ClusterIP | ||||||
|  |   status: | ||||||
|  |     loadBalancer: {} | ||||||
|  | - apiVersion: image.openshift.io/v1 | ||||||
|  |   kind: ImageStream | ||||||
|  |   metadata: | ||||||
|  |     labels: | ||||||
|  |       app: ${APPLICATION_NAME} | ||||||
|  |       template: ${TEMPLATE_NAME} | ||||||
|  |     name: ${APPLICATION_NAME} | ||||||
|  |   spec: | ||||||
|  |     lookupPolicy: | ||||||
|  |       local: false | ||||||
|  | parameters: | ||||||
|  | - description: The name for the application. | ||||||
|  |   displayName: Application Name | ||||||
|  |   name: APPLICATION_NAME | ||||||
|  |   required: true | ||||||
|  |   value: rabbitmq | ||||||
|  | - 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: rabbitmq-image-deploy-template | ||||||
							
								
								
									
										77
									
								
								deploy/aro/openshift-templates/secrets-deploy-template.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								deploy/aro/openshift-templates/secrets-deploy-template.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | apiVersion: template.openshift.io/v1 | ||||||
|  | kind: Template | ||||||
|  | metadata: | ||||||
|  |   name: ${TEMPLATE_NAME} | ||||||
|  | objects: | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${CATALOG_DB_CONNECTION_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: catalog-db-connection-secret | ||||||
|  |   type: Opaque | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${IDENTITY_DB_CONNECTION_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: identity-db-connection-secret | ||||||
|  |   type: Opaque | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${MARKETING_DB_CONNECTION_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: marketing-db-connection-secret | ||||||
|  |   type: Opaque | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${ORDERING_DB_CONNECTION_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: ordering-db-connection-secret | ||||||
|  |   type: Opaque | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${SQL_PASSWORD_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: sql-password--secret | ||||||
|  |   type: Opaque | ||||||
|  | - apiVersion: v1 | ||||||
|  |   kind: Secret | ||||||
|  |   stringData : | ||||||
|  |     ConnectionString: ${WEBHOOKS_DB_CONNECTION_SECRET} | ||||||
|  |   metadata: | ||||||
|  |     name: webhooks-db-connection-secret | ||||||
|  |   type: Opaque | ||||||
|  | parameters: | ||||||
|  | - description: The Catalog database connection string. | ||||||
|  |   displayName: Catalog Database Connection String | ||||||
|  |   name: CATALOG_DB_CONNECTION_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The Identity database connection string. | ||||||
|  |   displayName: Identity Database Connection String | ||||||
|  |   name: IDENTITY_DB_CONNECTION_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The Marketing database connection string. | ||||||
|  |   displayName: Marketing Database Connection String | ||||||
|  |   name: MARKETING_DB_CONNECTION_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The Ordering database connection string. | ||||||
|  |   displayName: Ordering Database Connection String | ||||||
|  |   name: ORDERING_DB_CONNECTION_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The SQL Server sa password. | ||||||
|  |   displayName: SQL Server SA password | ||||||
|  |   name: SQL_PASSWORD_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The Webhooks database connection string. | ||||||
|  |   displayName: Webhooks Database Connection String | ||||||
|  |   name: WEBHOOKS_DB_CONNECTION_SECRET | ||||||
|  |   required: true | ||||||
|  | - description: The template name. | ||||||
|  |   displayName: Template Name | ||||||
|  |   name: TEMPLATE_NAME | ||||||
|  |   required: true | ||||||
|  |   value: secrets-template | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user