Add new infrastructure template and pipeline
This commit is contained in:
		
							parent
							
								
									565c4a481a
								
							
						
					
					
						commit
						1fe352eb09
					
				| @ -45,7 +45,7 @@ jobs: | ||||
|   - task: CopyFiles@2 | ||||
|     displayName: 'Copy OpenShift Web App Deploy Template' | ||||
|     inputs: | ||||
|       sourceFolder: '$(Build.SourcesDirectory)/deploy/aro' | ||||
|       sourceFolder: '$(Build.SourcesDirectory)/deploy/aro/openshift-templates' | ||||
|       contents: 'openshift-webapp-deploy-template.yml' | ||||
|       targetFolder: $(Build.ArtifactStagingDirectory) | ||||
|   - task: PublishBuildArtifacts@1 | ||||
|  | ||||
| @ -19,7 +19,7 @@ jobs: | ||||
|   - task: DownloadPipelineArtifact@2 | ||||
|     inputs: | ||||
|       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 | ||||
|     displayName: 'Ensure OpenShift BuildConfig' | ||||
|   - powershell: | | ||||
|  | ||||
| @ -24,6 +24,6 @@ stages: | ||||
|         - script: 'oc project $(OpenShiftProject)' | ||||
|           failOnStderr: true | ||||
|           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 | ||||
|           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