From c2220a3c0f77cc1744463620cdcf948a4874f298 Mon Sep 17 00:00:00 2001 From: Chris Kaczor Date: Thu, 25 Jul 2019 21:30:37 -0400 Subject: [PATCH] Update weather service build --- .../Service/{ => deploy}/azure-pipelines.yml | 13 +- Weather/Service/deploy/database.yaml | 68 ---------- Weather/Service/deploy/manifest.yaml | 127 ++++++++++++++++++ Weather/Service/deploy/service.yaml | 59 -------- 4 files changed, 139 insertions(+), 128 deletions(-) rename Weather/Service/{ => deploy}/azure-pipelines.yml (67%) delete mode 100644 Weather/Service/deploy/database.yaml create mode 100644 Weather/Service/deploy/manifest.yaml delete mode 100644 Weather/Service/deploy/service.yaml diff --git a/Weather/Service/azure-pipelines.yml b/Weather/Service/deploy/azure-pipelines.yml similarity index 67% rename from Weather/Service/azure-pipelines.yml rename to Weather/Service/deploy/azure-pipelines.yml index c5c2178..7a775a5 100644 --- a/Weather/Service/azure-pipelines.yml +++ b/Weather/Service/deploy/azure-pipelines.yml @@ -29,4 +29,15 @@ steps: dockerRegistryConnection: 'Docker Hub' action: 'Push an image' imageName: 'ckaczor/home-monitor-weather-service:$(Build.BuildNumber)' - includeLatestTag: true \ No newline at end of file + includeLatestTag: true + +- task: Bash@3 + inputs: + targetType: 'inline' + script: 'sed -i s/#BUILD_BUILDNUMBER#/$BUILD_BUILDNUMBER/ Weather/Service/deploy/manifest.yaml' + +- task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: 'Weather/Service/deploy/manifest.yaml' + ArtifactName: 'Manifest' + publishLocation: 'Container' \ No newline at end of file diff --git a/Weather/Service/deploy/database.yaml b/Weather/Service/deploy/database.yaml deleted file mode 100644 index 7e17ffe..0000000 --- a/Weather/Service/deploy/database.yaml +++ /dev/null @@ -1,68 +0,0 @@ ---- -kind: StatefulSet -apiVersion: apps/v1 -metadata: - name: weather-database - namespace: home-monitor - labels: - app: weather-database -spec: - replicas: 1 - selector: - matchLabels: - app: weather-database - serviceName: weather-database - template: - metadata: - labels: - app: weather-database - spec: - containers: - - name: weather-database - image: timescale/timescaledb - terminationMessagePath: "/dev/termination-log" - terminationMessagePolicy: File - imagePullPolicy: IfNotPresent - env: - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: weather-database-credentials - key: username - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: weather-database-credentials - key: password - - name: POSTGRES_DB - value: weather - volumeMounts: - - name: data - mountPath: /var/lib/postgresql/data - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst - nodeSelector: - kubernetes.io/hostname: kubernetes - schedulerName: default-scheduler - volumeClaimTemplates: - - metadata: - name: data - spec: - accessModes: [ "ReadWriteOnce" ] - storageClassName: local-path - resources: - requests: - storage: 4Gi ---- -kind: Service -apiVersion: v1 -metadata: - name: weather-database -spec: - ports: - - name: client - port: 5432 - selector: - app: weather-database - type: ClusterIP \ No newline at end of file diff --git a/Weather/Service/deploy/manifest.yaml b/Weather/Service/deploy/manifest.yaml new file mode 100644 index 0000000..53ed6c5 --- /dev/null +++ b/Weather/Service/deploy/manifest.yaml @@ -0,0 +1,127 @@ +--- +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: weather-database + namespace: home-monitor + labels: + app: weather-database +spec: + replicas: 1 + selector: + matchLabels: + app: weather-database + serviceName: weather-database + template: + metadata: + labels: + app: weather-database + spec: + containers: + - name: weather-database + image: timescale/timescaledb + terminationMessagePath: "/dev/termination-log" + terminationMessagePolicy: File + imagePullPolicy: IfNotPresent + env: + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: weather-database-credentials + key: username + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: weather-database-credentials + key: password + - name: POSTGRES_DB + value: weather + volumeMounts: + - name: data + mountPath: /var/lib/postgresql/data + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/hostname: kubernetes + schedulerName: default-scheduler + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: [ "ReadWriteOnce" ] + storageClassName: local-path + resources: + requests: + storage: 4Gi +--- +kind: Service +apiVersion: v1 +metadata: + name: weather-database +spec: + ports: + - name: client + port: 5432 + selector: + app: weather-database + type: ClusterIP +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: weather-service + namespace: home-monitor + labels: + app: weather-service +spec: + replicas: 1 + selector: + matchLabels: + app: weather-service + template: + metadata: + labels: + app: weather-service + spec: + containers: + - name: weather-service + image: ckaczor/home-monitor-weather-service:#BUILD_BUILDNUMBER# + terminationMessagePath: "/dev/termination-log" + terminationMessagePolicy: File + imagePullPolicy: Always + securityContext: + privileged: true + env: + - name: Weather__Queue__Host + value: weather-queue + - name: Weather__Queue__User + valueFrom: + secretKeyRef: + name: weather-queue-credentials + key: username + - name: Weather__Queue__Password + valueFrom: + secretKeyRef: + name: weather-queue-credentials + key: password + - name: Weather__Database__Host + value: weather-database + - name: Weather__Database__User + valueFrom: + secretKeyRef: + name: weather-database-credentials + key: username + - name: Weather__Database__Password + valueFrom: + secretKeyRef: + name: weather-database-credentials + key: password + - name: Hub__Weather + value: http://hub-service/weatherHub + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/hostname: kubernetes + schedulerName: default-scheduler \ No newline at end of file diff --git a/Weather/Service/deploy/service.yaml b/Weather/Service/deploy/service.yaml deleted file mode 100644 index 5a846ba..0000000 --- a/Weather/Service/deploy/service.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: weather-service - namespace: home-monitor - labels: - app: weather-service -spec: - replicas: 1 - selector: - matchLabels: - app: weather-service - template: - metadata: - labels: - app: weather-service - spec: - containers: - - name: weather-service - image: ckaczor/home-monitor-weather-service:latest - terminationMessagePath: "/dev/termination-log" - terminationMessagePolicy: File - imagePullPolicy: Always - securityContext: - privileged: true - env: - - name: Weather__Queue__Host - value: weather-queue - - name: Weather__Queue__User - valueFrom: - secretKeyRef: - name: weather-queue-credentials - key: username - - name: Weather__Queue__Password - valueFrom: - secretKeyRef: - name: weather-queue-credentials - key: password - - name: Weather__Database__Host - value: weather-database - - name: Weather__Database__User - valueFrom: - secretKeyRef: - name: weather-database-credentials - key: username - - name: Weather__Database__Password - valueFrom: - secretKeyRef: - name: weather-database-credentials - key: password - - name: Hub__Weather - value: http://hub-service/weatherHub - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst - nodeSelector: - kubernetes.io/hostname: kubernetes - schedulerName: default-scheduler \ No newline at end of file