Skip to content

Instantly share code, notes, and snippets.

@haleyrc
Created December 19, 2018 16:41
Show Gist options
  • Save haleyrc/3c648087ceeb2aa762b7a7b0efefaa3a to your computer and use it in GitHub Desktop.
Save haleyrc/3c648087ceeb2aa762b7a7b0efefaa3a to your computer and use it in GitHub Desktop.
An example blue/green deployment
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
color: blue
type: NodePort
ports:
- name: backend-port
port: 80
protocol: TCP
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: backend-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "backend-static-ip"
spec:
backend:
serviceName: backend-service
servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: backend-blue
spec:
replicas: 1
selector:
matchLabels:
app: backend
color: blue
template:
metadata:
labels:
app: backend
color: blue
spec:
containers:
- name: api
image: gcr.io/project/app:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /
port: 8080
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: backend-green
spec:
replicas: 1
selector:
matchLabels:
app: backend
color: green
template:
metadata:
labels:
app: backend
color: green
spec:
containers:
- name: api
image: gcr.io/project/app:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /
port: 8080
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment