Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions sweeper-chart/templates/cronjob-scale-to-one.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "sweeper.fullname" . }}-scale-to-one
spec:
schedule: {{ default "0 22 * * *" .Values.scaler.scaleToOne.schedule | quote }}
timeZone: {{ default "Europe/Rome" .Values.scaler.timeZone | quote }}
jobTemplate:
spec:
template:
spec:
serviceAccountName: {{ include "sweeper.serviceAccountName" . }}
containers:
- name: scaler
image: alpine/kubectl:latest
command:
- /bin/sh
- -c
- |
echo "Scaling {{ include "sweeper.fullname" . }} to 1 replica"
kubectl scale deployment {{ include "sweeper.fullname" . }} \
--replicas=1 \
-n {{ .Release.Namespace }}
restartPolicy: OnFailure
24 changes: 24 additions & 0 deletions sweeper-chart/templates/cronjob-scale-to-zero.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "sweeper.fullname" . }}-scale-to-zero
spec:
schedule: {{ default "0 6 * * *" .Values.scaler.scaleToZero.schedule | quote }}
timeZone: {{ default "Europe/Rome" .Values.scaler.timeZone | quote }}
jobTemplate:
spec:
template:
spec:
serviceAccountName: {{ include "sweeper.serviceAccountName" . }}
containers:
- name: scaler
image: alpine/kubectl:latest
command:
- /bin/sh
- -c
- |
echo "Scaling {{ include "sweeper.fullname" . }} to 0 replicas"
kubectl scale deployment {{ include "sweeper.fullname" . }} \
--replicas=0 \
-n {{ .Release.Namespace }}
restartPolicy: OnFailure
12 changes: 12 additions & 0 deletions sweeper-chart/templates/role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ include "sweeper.fullname" . }}-scaler
namespace: {{ .Release.Namespace }}
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get"]
- apiGroups: ["apps"]
resources: ["deployments/scale"]
verbs: ["get", "update", "patch"]
13 changes: 13 additions & 0 deletions sweeper-chart/templates/rolebinding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ include "sweeper.fullname" . }}-scaler-binding
namespace: {{ .Release.Namespace }}
subjects:
- kind: ServiceAccount
name: {{ include "sweeper.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ include "sweeper.fullname" . }}-scaler
apiGroup: rbac.authorization.k8s.io
9 changes: 8 additions & 1 deletion sweeper-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,11 @@ env:
etcd:
service:
name: eventsse-etcd
port: 2379
port: 2379

scaler:
timeZone: "Europe/Rome"
scaleToZero:
schedule: "0 6 * * *" # default: 06:00
scaleToOne:
schedule: "0 22 * * *" # default: 22:00