1
0
mirror of https://github.com/jcwimer/wrestlingApp synced 2026-04-03 13:30:02 +00:00

Updated kubernetes manifests

This commit is contained in:
2019-11-20 08:42:24 -05:00
parent 5ef0d20b2f
commit 010798c8a8
8 changed files with 156 additions and 71 deletions

View File

@@ -0,0 +1,47 @@
---
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: wrestlingdev
- name: WRESTLINGDEV_DB_USR
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbusername
- name: WRESTLINGDEV_DB_PWD
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbpassword
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: devisesecretkey
- name: WRESTLINGDEV_SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: railssecretkey
restartPolicy: OnFailure
backoffLimit: 10

View File

@@ -0,0 +1,20 @@
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wrestlingdev-app-ingress-external
annotations:
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
certmanager.k8s.io/acme-challenge-type: http01
spec:
rules:
- host: wrestlingdev.com
http:
paths:
- path: /
backend:
serviceName: wrestlingdev-app
servicePort: 80
tls:
- hosts:
- wrestlingdev.com
secretName: letsencrypt-prod

View File

@@ -0,0 +1,69 @@
apiVersion: v1
kind: Service
metadata:
name: wrestlingdev-mariadb
labels:
app: wrestlingdev
spec:
ports:
- port: 3306
selector:
app: wrestlingdev
tier: mariadb
clusterIP: None
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wrestlingdev-mariadb-pv-claim
labels:
app: wrestlingdev
spec:
storageClassName: standard
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: wrestlingdev-mariadb
labels:
app: wrestlingdev
spec:
strategy:
type: Recreate
template:
metadata:
labels:
app: wrestlingdev
tier: mariadb
spec:
containers:
- image: mariadb:10.3
name: mariadb
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbpassword
ports:
- containerPort: 3306
name: mariadb
volumeMounts:
- name: wrestlingdev-mariadb-persistent-storage
mountPath: /var/lib/mysql
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "256Mi"
cpu: "0.2"
volumes:
- name: wrestlingdev-mariadb-persistent-storage
persistentVolumeClaim:
claimName: wrestlingdev-mariadb-pv-claim

View File

@@ -0,0 +1,43 @@
apiVersion: v1
kind: Service
metadata:
name: wrestlingdev-memcached
labels:
app: wrestlingdev
spec:
ports:
- port: 11211
selector:
app: wrestlingdev
tier: memcached
clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wrestlingdev-memcached-deployment
labels:
app: wrestlingdev
spec:
replicas: 1
selector:
matchLabels:
app: wrestlingdev
template:
metadata:
labels:
app: wrestlingdev
tier: memcached
spec:
containers:
- name: wrestlingdev-memcached
image: memcached
ports:
- containerPort: 11211
resources:
limits:
cpu: "0.2"
memory: "64Mi"
requests:
memory: "64Mi"
cpu: "0.1"

View File

@@ -0,0 +1,168 @@
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: 2
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: wrestlingdev
- name: WRESTLINGDEV_DB_USR
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbusername
- name: WRESTLINGDEV_DB_PWD
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbpassword
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: devisesecretkey
- name: WRESTLINGDEV_SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: railssecretkey
resources:
limits:
cpu: "0.5"
memory: "768Mi"
requests:
memory: "512Mi"
cpu: "0.5"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 180
periodSeconds: 20
timeoutSeconds: 10
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: wrestlingdev-app-deployment-autoscale
spec:
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: wrestlingdev-app-deployment
minReplicas: 2
maxReplicas: 4
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 300
# - 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: wrestlingdev
- name: WRESTLINGDEV_DB_USR
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbusername
- name: WRESTLINGDEV_DB_PWD
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: dbpassword
- name: WRESTLINGDEV_DB_PORT
value: "3306"
- name: MEMCACHIER_SERVERS
value: wrestlingdev-memcached:11211
- name: WRESTLINGDEV_DB_HOST
value: mariadb
- name: WRESTLINGDEV_DEVISE_SECRET_KEY
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: devisesecretkey
- name: WRESTLINGDEV_SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: wrestlingdev-secrets
key: railssecretkey
command: ["bundle"]
args: ["exec", "bin/delayed_job", "-n", "1", "run"]
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
memory: "512Mi"
cpu: "0.2"