Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
38 changes: 29 additions & 9 deletions kubernetes/flask-deployment.yml
Original file line number Diff line number Diff line change
@@ -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
54 changes: 37 additions & 17 deletions kubernetes/postgres-deployment.yml
Original file line number Diff line number Diff line change
@@ -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
28 changes: 24 additions & 4 deletions kubernetes/vue-deployment.yml
Original file line number Diff line number Diff line change
@@ -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