Refactored apigw applications to use a generic template

This commit is contained in:
Tim McCarthy 2020-03-02 09:20:05 -06:00
parent b3f3f923da
commit edc68959da
8 changed files with 11 additions and 360 deletions

View File

@ -121,7 +121,6 @@ parameters:
displayName: Application Name displayName: Application Name
name: APPLICATION_NAME name: APPLICATION_NAME
required: true required: true
value: mobilemarketingapigw
- description: The OpenShift project name that is hosting the image registry. - description: The OpenShift project name that is hosting the image registry.
displayName: Image Registry Project Name displayName: Image Registry Project Name
name: IMAGE_REGISTRY_PROJECT_NAME name: IMAGE_REGISTRY_PROJECT_NAME
@ -130,4 +129,4 @@ parameters:
displayName: Template Name displayName: Template Name
name: TEMPLATE_NAME name: TEMPLATE_NAME
required: true required: true
value: mobilemarketingapigw-deploy-template value: ${APPLICATION_NAME}-deploy-template

View File

@ -41,6 +41,6 @@ stages:
- script: 'oc create configmap mobilemarketingapigw --from-file=./deploy/aro/mobilemarketingapigw/envoy.yml' - script: 'oc create configmap mobilemarketingapigw --from-file=./deploy/aro/mobilemarketingapigw/envoy.yml'
failOnStderr: true failOnStderr: true
displayName: 'Create Envoy ConfigMap' displayName: 'Create Envoy ConfigMap'
- script: 'oc process -f ./deploy/aro/mobilemarketingapigw/mobilemarketingapigw-deploy-template.yml -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' - script: 'oc process -f ./deploy/aro/apigw-templates/apigw-deploy-template.yml -p APPLICATION_NAME=mobilemarketingapigw -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-'
failOnStderr: true failOnStderr: true
displayName: 'Ensure Mobile Marketing API Gateway OpenShift DeploymentConfig and Service' displayName: 'Ensure Mobile Marketing API Gateway OpenShift DeploymentConfig and Service'

View File

@ -24,10 +24,10 @@ stages:
vmImage: 'windows-latest' vmImage: 'windows-latest'
steps: steps:
- task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1 - task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1
displayName: 'Replace tokens in envoy.yaml' displayName: 'Replace tokens in envoy.yml'
inputs: inputs:
sourcePath: ./deploy/aro/mobileshoppingapigw sourcePath: ./deploy/aro/mobileshoppingapigw
filePattern: envoy.yaml filePattern: envoy.yml
- task: redhat.openshift-vsts.oc-setup-task.oc-setup@2 - task: redhat.openshift-vsts.oc-setup-task.oc-setup@2
displayName: 'Setup Openshift CLI' displayName: 'Setup Openshift CLI'
inputs: inputs:
@ -35,6 +35,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/mobileshoppingapigw/mobileshoppingapigw-deploy-template.yml -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' - script: 'oc process -f ./deploy/aro/apigw-templates/apigw-deploy-template.yml -p APPLICATION_NAME=mobileshoppingapigw -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-'
failOnStderr: true failOnStderr: true
displayName: 'Ensure Mobile Shopping API Gateway OpenShift DeploymentConfig and Service' displayName: 'Ensure Mobile Shopping API Gateway OpenShift DeploymentConfig and Service'

View File

@ -1,116 +0,0 @@
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: PATH_BASE
value: /mobileshoppingapigw
image: docker-registry.default.svc:5000/${IMAGE_REGISTRY_PROJECT_NAME}/${APPLICATION_NAME}:latest
imagePullPolicy: Always
name: ${APPLICATION_NAME}
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 8001
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
- name: 8001-tcp
port: 8001
protocol: TCP
targetPort: 8001
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
tags:
- annotations:
openshift.io/imported-from: 'envoyproxy/envoy:v1.11.1'
from:
kind: DockerImage
name: 'envoyproxy/envoy:v1.11.1'
importPolicy: {}
name: latest
referencePolicy:
type: Source
parameters:
- description: The name for the application.
displayName: Application Name
name: APPLICATION_NAME
required: true
value: mobileshoppingapigw
- 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: mobileshoppingapigw-deploy-template

View File

@ -24,10 +24,10 @@ stages:
vmImage: 'windows-latest' vmImage: 'windows-latest'
steps: steps:
- task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1 - task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1
displayName: 'Replace tokens in envoy.yaml' displayName: 'Replace tokens in envoy.yml'
inputs: inputs:
sourcePath: ./deploy/aro/webmarketingapigw sourcePath: ./deploy/aro/webmarketingapigw
filePattern: envoy.yaml filePattern: envoy.yml
- task: redhat.openshift-vsts.oc-setup-task.oc-setup@2 - task: redhat.openshift-vsts.oc-setup-task.oc-setup@2
displayName: 'Setup Openshift CLI' displayName: 'Setup Openshift CLI'
inputs: inputs:
@ -35,6 +35,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/webmarketingapigw/webmarketingapigw-deploy-template.yml -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' - script: 'oc process -f ./deploy/aro/apigw-templates/apigw-deploy-template.yml -p APPLICATION_NAME=webmarketingapigw -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-'
failOnStderr: true failOnStderr: true
displayName: 'Ensure Web Marketing API Gateway OpenShift DeploymentConfig and Service' displayName: 'Ensure Web Marketing API Gateway OpenShift DeploymentConfig and Service'

View File

@ -1,116 +0,0 @@
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: PATH_BASE
value: /webmarketingapigw
image: docker-registry.default.svc:5000/${IMAGE_REGISTRY_PROJECT_NAME}/${APPLICATION_NAME}:latest
imagePullPolicy: Always
name: ${APPLICATION_NAME}
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 8001
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
- name: 8001-tcp
port: 8001
protocol: TCP
targetPort: 8001
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
tags:
- annotations:
openshift.io/imported-from: 'envoyproxy/envoy:v1.11.1'
from:
kind: DockerImage
name: 'envoyproxy/envoy:v1.11.1'
importPolicy: {}
name: latest
referencePolicy:
type: Source
parameters:
- description: The name for the application.
displayName: Application Name
name: APPLICATION_NAME
required: true
value: webmarketingapigw
- 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: webmarketingapigw-deploy-template

View File

@ -24,10 +24,10 @@ stages:
vmImage: 'windows-latest' vmImage: 'windows-latest'
steps: steps:
- task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1 - task: colinsalmcorner.colinsalmcorner-buildtasks.replace-tokens-task.ReplaceTokens@1
displayName: 'Replace tokens in envoy.yaml' displayName: 'Replace tokens in envoy.yml'
inputs: inputs:
sourcePath: ./deploy/aro/webshoppingapigw sourcePath: ./deploy/aro/webshoppingapigw
filePattern: envoy.yaml filePattern: envoy.yml
- task: redhat.openshift-vsts.oc-setup-task.oc-setup@2 - task: redhat.openshift-vsts.oc-setup-task.oc-setup@2
displayName: 'Setup Openshift CLI' displayName: 'Setup Openshift CLI'
inputs: inputs:
@ -35,6 +35,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/webshoppingapigw/webshoppingapigw-deploy-template.yml -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-' - script: 'oc process -f ./deploy/aro/apigw-templates/apigw-deploy-template.yml -p APPLICATION_NAME=webshoppingapigw -p IMAGE_REGISTRY_PROJECT_NAME=$(SourceImageRegistryProjectName) | oc apply -f-'
failOnStderr: true failOnStderr: true
displayName: 'Ensure Web Shopping API Gateway OpenShift DeploymentConfig and Service' displayName: 'Ensure Web Shopping API Gateway OpenShift DeploymentConfig and Service'

View File

@ -1,116 +0,0 @@
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: PATH_BASE
value: /webshoppingapigw
image: docker-registry.default.svc:5000/${IMAGE_REGISTRY_PROJECT_NAME}/${APPLICATION_NAME}:latest
imagePullPolicy: Always
name: ${APPLICATION_NAME}
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 8001
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
- name: 8001-tcp
port: 8001
protocol: TCP
targetPort: 8001
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
tags:
- annotations:
openshift.io/imported-from: 'envoyproxy/envoy:v1.11.1'
from:
kind: DockerImage
name: 'envoyproxy/envoy:v1.11.1'
importPolicy: {}
name: latest
referencePolicy:
type: Source
parameters:
- description: The name for the application.
displayName: Application Name
name: APPLICATION_NAME
required: true
value: webshoppingapigw
- 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: webshoppingapigw-deploy-template