Skip to content

Instantly share code, notes, and snippets.

@VerosK
Created February 12, 2019 15:52
Show Gist options
  • Save VerosK/1ad1fb58e73e50829720139930daed88 to your computer and use it in GitHub Desktop.
Save VerosK/1ad1fb58e73e50829720139930daed88 to your computer and use it in GitHub Desktop.
This is wordpress on Kubernetes
# https://d33wubrfki0l68.cloudfront.net/94cf9fb38535eaa5bfe33db5b23409841b8f7d03/654d8/blog/2017/my-blog-on-kubernetes/screenshot-dex-tweet-blog-on-kubernetes.png
---
apiVersion: v1
kind: Namespace
metadata:
name: wordpress
---
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: wordpress
data:
db_name: wordpress
db_user: wordpress
db_password: qwerty
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: db
namespace: wordpress
labels:
app_component: database
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app_component: database
template:
metadata:
labels:
app_component: database
spec:
containers:
- name: mysql
image: mysql:5.7
resources:
limits:
memory: 600Mi
requests:
cpu: 100m
memory: 100Mi
livenessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 15
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
readinessProbe:
tcpSocket:
port: 3306
initialDelaySeconds: 15
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
env:
- name: MYSQL_DATABASE
valueFrom:
configMapKeyRef:
name: config
key: db_name
- name: MYSQL_USER
valueFrom:
configMapKeyRef:
name: config
key: db_user
- name: MYSQL_PASSWORD
valueFrom:
configMapKeyRef:
name: config
key: db_password
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "1"
ports:
- containerPort: 3306
name: db
protocol: TCP
volumeDevices:
- devicePath: /var/lib/mysql
name: empty
volumes:
- name: empty
emptyDir:
sizeLimit: 100Mi
---
apiVersion: v1
kind: Service
metadata:
name: db
namespace: wordpress
spec:
selector:
app_component: database
# clusterIP: 10.11.201.254
ports:
- name: mysql
port: 3306
targetPort: 3306
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: wordpress
labels:
app_component: wordpress
spec:
replicas: 1
strategy:
type: RollingUpdate
selector:
matchLabels:
app_component: wordpress
template:
metadata:
labels:
app_component: wordpress
spec:
containers:
- name: wordpress
image: wordpress
resources:
limits:
memory: 600Mi
requests:
cpu: 100m
memory: 100Mi
livenessProbe:
httpGet:
port: 80
path: /robots.txt
initialDelaySeconds: 15
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
periodSeconds: 60
readinessProbe:
httpGet:
port: 80
path: /robots.txt
initialDelaySeconds: 15
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 30
periodSeconds: 60
env:
- name: WORDPRESS_DB_HOST
value: "$(DB_SERVICE_HOST)"
- name: WORDPRESS_DB_USER
valueFrom:
configMapKeyRef:
name: config
key: db_user
- name: WORDPRESS_DB_PASSWORD
valueFrom:
configMapKeyRef:
name: config
key: db_password
- name: WORDPRESS_DB_BNAME
valueFrom:
configMapKeyRef:
name: config
key: db_name
ports:
- containerPort: 80
name: web
---
apiVersion: v1
kind: Service
metadata:
name: web
namespace: wordpress
spec:
selector:
app_component: wordpress
# clusterIP: 10.11.201.254
ports:
- name: web
port: 80
targetPort: 80
protocol: TCP
type: NodePort
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment