p5.js-web-editor/kubernetes/app.yml

112 lines
2.5 KiB
YAML

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: editor-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "web-editor-ip"
spec:
backend:
serviceName: web-editor-node
servicePort: 8000
---
apiVersion: v1
kind: Service
metadata:
name: web-editor-node
labels:
app: web-editor
spec:
# if your cluster supports it, uncomment the following to automatically create
# an external load-balanced IP for the frontend service.
# type: LoadBalancer
type: NodePort
ports:
- port: 8000
targetPort: 8000
selector:
app: web-editor
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-editor-node
spec:
selector:
matchLabels:
app: web-editor
replicas: 1
template:
metadata:
labels:
app: web-editor
spec:
containers:
- name: web-editor-app
image: index.docker.io/catarak/p5.js-web-editor:latest
# temp, just to test kubernetes
# envFrom:
# - configMapRef:
# name: web-editor-env
envFrom:
- secretRef:
name: web-editor-credentials
imagePullPolicy: Always
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 8000
readinessProbe:
httpGet:
path: /health
port: 8000
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
annotations:
name: web-editor-node
namespace: default
spec:
maxReplicas: 6
minReplicas: 1
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: web-editor-node
targetCPUUtilizationPercentage: 80
---
# cronjob for p5.js examples
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: fetch-examples-job
spec:
schedule: "0 0 * * 0"
jobTemplate:
spec:
template:
spec:
containers:
- name: fetch-examples
image: index.docker.io/catarak/p5.js-web-editor:latest
command: ["npm", "run", "fetch-examples:prod"]
restartPolicy: OnFailure
---
# cronjob for generative gestaltung p5.js examples
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: fetch-examples-gg-job
spec:
schedule: "30 0 * * 0"
jobTemplate:
spec:
template:
spec:
containers:
- name: fetch-examples-gg
image: index.docker.io/catarak/p5.js-web-editor:latest
command: ["npm", "run", "fetch-examples-gg:prod"]
restartPolicy: OnFailure