From 894f8796aed4c20e348428a77d7fb9e0d2ae7e52 Mon Sep 17 00:00:00 2001 From: Chris Kaczor Date: Sun, 6 Oct 2019 08:43:37 -0400 Subject: [PATCH] Initial deployment config --- Display/deploy/azure-pipelines.yml | 43 ++++++++++++++++++++ Display/deploy/manifest.yaml | 65 ++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 Display/deploy/azure-pipelines.yml create mode 100644 Display/deploy/manifest.yaml diff --git a/Display/deploy/azure-pipelines.yml b/Display/deploy/azure-pipelines.yml new file mode 100644 index 0000000..a661765 --- /dev/null +++ b/Display/deploy/azure-pipelines.yml @@ -0,0 +1,43 @@ +name: $(Rev:r) + +trigger: + batch: 'true' + branches: + include: + - master + paths: + include: + - Display + +pool: + name: Hosted Ubuntu 1604 + +steps: +- task: Docker@0 + displayName: 'Build an image' + inputs: + containerregistrytype: 'Container Registry' + dockerRegistryConnection: 'Docker Hub' + dockerFile: 'Display/Dockerfile' + imageName: 'ckaczor/home-monitor-display:$(Build.BuildNumber)' + includeLatestTag: true + +- task: Docker@0 + displayName: 'Push an image' + inputs: + containerregistrytype: 'Container Registry' + dockerRegistryConnection: 'Docker Hub' + action: 'Push an image' + imageName: 'ckaczor/home-monitor-display:$(Build.BuildNumber)' + includeLatestTag: true + +- task: Bash@3 + inputs: + targetType: 'inline' + script: 'sed -i s/#BUILD_BUILDNUMBER#/$BUILD_BUILDNUMBER/ Display/deploy/manifest.yaml' + +- task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: 'Display/deploy/manifest.yaml' + ArtifactName: 'Manifest' + publishLocation: 'Container' diff --git a/Display/deploy/manifest.yaml b/Display/deploy/manifest.yaml new file mode 100644 index 0000000..6e33593 --- /dev/null +++ b/Display/deploy/manifest.yaml @@ -0,0 +1,65 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: display + namespace: home-monitor + labels: + app: display +spec: + replicas: 1 + selector: + matchLabels: + app: display + template: + metadata: + labels: + app: display + spec: + containers: + - name: display + image: ckaczor/home-monitor-display:#BUILD_BUILDNUMBER# + terminationMessagePath: "/dev/termination-log" + terminationMessagePolicy: File + imagePullPolicy: Always + securityContext: + privileged: true + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/hostname: kubernetes + schedulerName: default-scheduler +--- +kind: Service +apiVersion: v1 +metadata: + name: display +spec: + ports: + - name: client + port: 80 + selector: + app: display + type: ClusterIP +--- +kind: Ingress +apiVersion: extensions/v1beta1 +metadata: + name: hub + namespace: home-monitor + annotations: + kubernetes.io/ingress.class: traefik + nginx.ingress.kubernetes.io/affinity: cookie + nginx.ingress.kubernetes.io/session-cookie-hash: sha1 + nginx.ingress.kubernetes.io/session-cookie-name: REALTIMESERVERID + nginx.ingress.kubernetes.io/ssl-redirect: 'false' + traefik.frontend.rule.type: PathPrefixStrip +spec: + rules: + - http: + paths: + - path: "/" + backend: + serviceName: display + servicePort: 80