1
0
mirror of https://github.com/jcwimer/wrestlingApp synced 2026-03-25 01:14:43 +00:00

Add kubernetes manifests

This commit is contained in:
2019-04-15 14:40:18 -04:00
parent e16e807b54
commit edb8885f00
7 changed files with 304 additions and 241 deletions

View File

@@ -64,8 +64,6 @@ services:
database:
caching:
restart: always
healthcheck:
test: kill -0 1
command: bundle exec bin/delayed_job -n 1 run
memcached:

View File

@@ -4,7 +4,7 @@ metadata:
name: wrestlingdev-app-ingress
spec:
rules:
- host: kube.wrestlingdev.com
- host: wrestlingdev.jqw43.platform-lab.cloud.cas.org
http:
paths:
- path: /
@@ -13,4 +13,4 @@ spec:
servicePort: 80
tls:
- hosts:
- kube.wrestlingdev.com
- wrestlingdev.jqw43.platform-lab.cloud.cas.org

View File

@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: wrestlingdev-mysql
name: wrestlingdev-mariadb
labels:
app: wrestlingdev
spec:
@@ -9,13 +9,13 @@ spec:
- port: 3306
selector:
app: wrestlingdev
tier: mysql
tier: mariadb
clusterIP: None
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wrestlingdev-mysql-pv-claim
name: wrestlingdev-mariadb-pv-claim
labels:
app: wrestlingdev
spec:
@@ -29,7 +29,7 @@ spec:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: wrestlingdev-mysql
name: wrestlingdev-mariadb
labels:
app: wrestlingdev
spec:
@@ -39,19 +39,19 @@ spec:
metadata:
labels:
app: wrestlingdev
tier: mysql
tier: mariadb
spec:
containers:
- image: mysql:5.6
name: mysql
- image: mariadb:10.3
name: mariadb
env:
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
name: mariadb
volumeMounts:
- name: wrestlingdev-mysql-persistent-storage
- name: wrestlingdev-mariadb-persistent-storage
mountPath: /var/lib/mysql
resources:
limits:
@@ -61,6 +61,6 @@ spec:
memory: "256Mi"
cpu: "0.2"
volumes:
- name: wrestlingdev-mysql-persistent-storage
- name: wrestlingdev-mariadb-persistent-storage
persistentVolumeClaim:
claimName: wrestlingdev-mysql-pv-claim
claimName: wrestlingdev-mariadb-pv-claim

View File

@@ -0,0 +1,177 @@
apiVersion: v1
kind: Service
metadata:
name: wrestlingdev-app
labels:
app: wrestlingdev
spec:
ports:
- port: 80
selector:
app: wrestlingdev
tier: frontend
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wrestlingdev-app-deployment
labels:
app: wrestlingdev
spec:
replicas: 1
selector:
matchLabels:
app: wrestlingdev
template:
metadata:
labels:
app: wrestlingdev
tier: frontend
spec:
containers:
- name: wrestlingdev-app
image: jcwimer/wrestlingdev:prod
imagePullPolicy: Always
command: ["bundle"]
args: ["exec", "passenger", "start", "-p", "80", "--max-pool-size", "3","--environment", "production"]
ports:
- containerPort: 80
env:
- name: RAILS_ENV
value: production
- name: WRESTLINGDEV_DB_NAME
value: wrestlingtourney
- name: WRESTLINGDEV_DB_USR
value: root
- name: WRESTLINGDEV_DB_PWD
value: password
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: wrestlingdev-mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
value: 2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa
- name: WRESTLINGDEV_SECRET_KEY_BASE
value: 077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "512Mi"
cpu: "0.5"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 20
periodSeconds: 10
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: wrestlingdev-app-deployment-autoscale
spec:
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: wrestlingdev-app-deployment
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
# - type: Resource
# resource:
# name: memory
# targetAverageValue: 100Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wrestlingdev-worker-deployment
labels:
app: wrestlingdev
spec:
replicas: 1
selector:
matchLabels:
app: wrestlingdev
template:
metadata:
labels:
app: wrestlingdev
tier: worker
spec:
containers:
- name: wrestlingdev-worker
image: jcwimer/wrestlingdev:prod
imagePullPolicy: Always
env:
- name: RAILS_ENV
value: production
- name: WRESTLINGDEV_DB_NAME
value: wrestlingtourney
- name: WRESTLINGDEV_DB_USR
value: root
- name: WRESTLINGDEV_DB_PWD
value: password
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: wrestlingdev-mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
value: 2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa
- name: WRESTLINGDEV_SECRET_KEY_BASE
value: 077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2
command: ["bundle"]
args: ["exec", "bin/delayed_job", "-n", "1", "run"]
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "512Mi"
cpu: "0.2"
---
apiVersion: batch/v1
kind: Job
metadata:
name: wrestlingdev-db-create-migrate
spec:
template:
spec:
containers:
- name: wrestlingdev-db-create-migrate
image: jcwimer/wrestlingdev:prod
imagePullPolicy: Always
command: ["/bin/sh","-c"]
args: ["bundle exec rake db:create; bundle exec rake db:migrate"]
env:
- name: RAILS_ENV
value: production
- name: WRESTLINGDEV_DB_NAME
value: wrestlingtourney
- name: WRESTLINGDEV_DB_USR
value: root
- name: WRESTLINGDEV_DB_PWD
value: password
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: wrestlingdev-mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
value: 2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa
- name: WRESTLINGDEV_SECRET_KEY_BASE
value: 077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2
restartPolicy: OnFailure
backoffLimit: 10

View File

@@ -1,113 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: wrestlingdev-app
labels:
app: wrestlingdev
spec:
ports:
- port: 80
selector:
app: wrestlingdev
tier: frontend
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wrestlingdev-app-deployment
labels:
app: wrestlingdev
spec:
replicas: 3
selector:
matchLabels:
app: wrestlingdev
template:
metadata:
labels:
app: wrestlingdev
tier: frontend
spec:
containers:
- name: wrestlingdev-app
image: jcwimer/wrestlingdev:prod
imagePullPolicy: Always
ports:
- containerPort: 80
env:
- name: RAILS_ENV
value: production
- name: WRESTLINGDEV_DB_NAME
value: wrestlingtourneyprod
- name: WRESTLINGDEV_DB_USR
value: root
- name: WRESTLINGDEV_DB_PWD
value: password
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: wrestlingdev-mysql
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
value: 2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa
- name: WRESTLINGDEV_SECRET_KEY_BASE
value: 077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "512Mi"
cpu: "0.2"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wrestlingdev-worker-deployment
labels:
app: wrestlingdev
spec:
replicas: 1
selector:
matchLabels:
app: wrestlingdev
template:
metadata:
labels:
app: wrestlingdev
tier: worker
spec:
containers:
- name: wrestlingdev-worker
image: jcwimer/wrestlingdev:prod
imagePullPolicy: Always
env:
- name: RAILS_ENV
value: production
- name: WRESTLINGDEV_DB_NAME
value: wrestlingtourneyprod
- name: WRESTLINGDEV_DB_USR
value: root
- name: WRESTLINGDEV_DB_PWD
value: password
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTDEV_DB_HOST
value: wrestlingdev-mysql
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
value: 2f29d49db6704377ba263f7cb9db085b386bcb301c0cd501126a674686ab1a109754071165b08cd72af03cec4642a4dd04361c994462254dd5d85e9594e8b9aa
- name: WRESTLINGDEV_SECRET_KEY_BASE
value: 077cdbef5c2ccf22543fb17a67339f234306b7fa2e1e4463d851c444c10a5611829a2290b253da78339427f131571fac9a42c83d960b2d25ecc10a4a0a7ce1a2
command: ["bundle"]
args: ["exec", "bin/delayed_job", "-n", "1", "run"]
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "512Mi"
cpu: "0.2"

View File

@@ -51,6 +51,7 @@ EXPOSE 443
# Tini solves the zombie PID problem
ENTRYPOINT ["/tini", "--"]
CMD bundle exec puma -w 3 -t 5:5 -b 'tcp://0.0.0.0:80' -e production
CMD bundle exec passenger start --max-pool-size 3 --environment production -p 80
#CMD bundle exec puma -w 3 -t 5:5 -b 'tcp://0.0.0.0:80' -e production
#CMD bundle exec puma -w 3 -t 5:5 -b 'ssl://0.0.0.0:443?key=/ssl/server.key&verify_mode=none&cert=/ssl/server.crt' -e production
#CMD bundle exec passenger start --max-pool-size 3 --environment production --ssl --ssl-certificate /ssl/server.crt --ssl-certificate-key /ssl/server.key