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