From c4ea45adf4b612c88be67679ec9800f0579f183f Mon Sep 17 00:00:00 2001 From: MrHadEnough Date: Mon, 6 Jan 2020 15:30:42 +0200 Subject: [PATCH 1/2] minikube version: v1.6.2 --- kubernetes/flask-deployment.yml | 38 ++++++++++++++++----- kubernetes/postgres-deployment.yml | 54 ++++++++++++++++++++---------- kubernetes/vue-deployment.yml | 28 +++++++++++++--- 3 files changed, 90 insertions(+), 30 deletions(-) diff --git a/kubernetes/flask-deployment.yml b/kubernetes/flask-deployment.yml index bfef73d..96df026 100644 --- a/kubernetes/flask-deployment.yml +++ b/kubernetes/flask-deployment.yml @@ -1,32 +1,52 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: - name: flask + creationTimestamp: null labels: name: flask + name: flask spec: + progressDeadlineSeconds: 2147483647 replicas: 1 + revisionHistoryLimit: 2147483647 + selector: + matchLabels: + app: flask + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate template: metadata: + creationTimestamp: null labels: app: flask spec: containers: - - name: flask - image: mjhea0/flask-kubernetes:latest - env: + - env: - name: FLASK_ENV - value: "development" + value: development - name: APP_SETTINGS - value: "project.config.DevelopmentConfig" + value: project.config.DevelopmentConfig - name: POSTGRES_USER valueFrom: secretKeyRef: - name: postgres-credentials key: user + name: postgres-credentials - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: - name: postgres-credentials key: password + name: postgres-credentials + image: mjhea0/flask-kubernetes:latest + imagePullPolicy: Always + name: flask + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 diff --git a/kubernetes/postgres-deployment.yml b/kubernetes/postgres-deployment.yml index 1ba36c6..4565aef 100644 --- a/kubernetes/postgres-deployment.yml +++ b/kubernetes/postgres-deployment.yml @@ -1,35 +1,55 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: - name: postgres + creationTimestamp: null labels: name: database + name: postgres spec: + progressDeadlineSeconds: 2147483647 replicas: 1 + revisionHistoryLimit: 2147483647 + selector: + matchLabels: + service: postgres + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate template: metadata: + creationTimestamp: null labels: service: postgres spec: containers: - - name: postgres + - env: + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + key: user + name: postgres-credentials + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + key: password + name: postgres-credentials image: postgres:10.4-alpine - env: - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: postgres-credentials - key: user - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: postgres-credentials - key: password + imagePullPolicy: IfNotPresent + name: postgres + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File volumeMounts: - - name: postgres-volume-mount - mountPath: /var/lib/postgresql/data + - mountPath: /var/lib/postgresql/data + name: postgres-volume-mount + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 volumes: - name: postgres-volume-mount persistentVolumeClaim: claimName: postgres-pvc - restartPolicy: Always diff --git a/kubernetes/vue-deployment.yml b/kubernetes/vue-deployment.yml index 80a1ae7..7dbb43b 100644 --- a/kubernetes/vue-deployment.yml +++ b/kubernetes/vue-deployment.yml @@ -1,17 +1,37 @@ -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: - name: vue + creationTimestamp: null labels: name: vue + name: vue spec: + progressDeadlineSeconds: 2147483647 replicas: 1 + revisionHistoryLimit: 2147483647 + selector: + matchLabels: + app: vue + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate template: metadata: + creationTimestamp: null labels: app: vue spec: containers: - - name: vue - image: mjhea0/vue-kubernetes:latest + - image: mjhea0/vue-kubernetes:latest + imagePullPolicy: Always + name: vue + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst restartPolicy: Always + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 From 71059afdc16c7e0c2c791eb7fe9ecbfb52f8a1c9 Mon Sep 17 00:00:00 2001 From: MrHadEnough Date: Mon, 6 Jan 2020 15:34:33 +0200 Subject: [PATCH 2/2] add info to readme about update kubernetes version from @jcunwin user --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index 88f86ab..c165ed2 100644 --- a/README.md +++ b/README.md @@ -164,3 +164,32 @@ $ kubectl create -f ./kubernetes/vue-service.yml ``` Try it out at [http://hello.world/](http://hello.world/). + +## Upgrading Kubernetes versions + +The original project was built using Kubernetes 1.13. +Some of the API's have been deprecated and do not work with version 1.16. + +`kubectl` can be used to convert. E.g.: + +```sh +kubectl convert -f ./kubernetes/flask-deployment.yml.yml --output-version apps/v1 +``` + +For example, the `flask-deployment.yml` went from: + +```yaml +apiVersion: extensions/v1beta1 +kind: Deployment +... +``` + +to: + +```yaml +apiVersion: apps/v1 +kind: Deployment +... +``` + +A number of new default values are added in the conversion too.