forked from processing/p5.js-web-editor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
kubernetes_app.yml
120 lines (120 loc) · 2.8 KB
/
kubernetes_app.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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: 2
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"]
# imagePullPolicy: Always
# envFrom:
# - secretRef:
# name: web-editor-credentials
# restartPolicy: Never
# ---
# # 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"]
# imagePullPolicy: Always
# envFrom:
# - secretRef:
# name: web-editor-credentials
# restartPolicy: Never