Browse Source

Add new infrastructure template and pipeline

pull/1259/head
Tim McCarthy 5 years ago
parent
commit
1fe352eb09
8 changed files with 261 additions and 3 deletions
  1. +0
    -0
      build/aro/openshift-templates/openshift-app-build-template.yml
  2. +1
    -1
      build/aro/webapp-build-artifacts.yml
  3. +1
    -1
      build/aro/webapp-container-build.yml
  4. +1
    -1
      deploy/aro/basket-api/azure-pipelines.yml
  5. +39
    -0
      deploy/aro/infrastructure/azure-pipelines.yml
  6. +142
    -0
      deploy/aro/openshift-templates/rabbitmq-image-deploy-template.yml
  7. +77
    -0
      deploy/aro/openshift-templates/secrets-deploy-template.yml
  8. +0
    -0
      deploy/aro/openshift-templates/webapp-deploy-template.yml

build/aro/openshift-app-build-template.yml → build/aro/openshift-templates/openshift-app-build-template.yml View File


+ 1
- 1
build/aro/webapp-build-artifacts.yml View File

@ -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


+ 1
- 1
build/aro/webapp-container-build.yml View File

@ -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: |


+ 1
- 1
deploy/aro/basket-api/azure-pipelines.yml View File

@ -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
- 0
deploy/aro/infrastructure/azure-pipelines.yml View 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'

+ 142
- 0
deploy/aro/openshift-templates/rabbitmq-image-deploy-template.yml View File

@ -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
- 0
deploy/aro/openshift-templates/secrets-deploy-template.yml View 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

deploy/aro/openshift-webapp-deploy-template.yml → deploy/aro/openshift-templates/webapp-deploy-template.yml View File


Loading…
Cancel
Save