deploy/platform/kubernetes/templates/feature-event/scaler.yaml (90 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # {{- if .Values.features.event.enabled }} --- # @feature: event; a cron job to mimic the restart of Pods kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: event-role namespace: {{ .Values.sampleServices.namespace }} rules: - apiGroups: - "" - extensions - apps resources: - "*" verbs: - "*" --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: event-role-binding namespace: {{ .Values.sampleServices.namespace }} subjects: - kind: ServiceAccount name: event-scaler-sa roleRef: kind: Role name: event-role apiGroup: "" --- apiVersion: v1 kind: ServiceAccount metadata: name: event-scaler-sa namespace: {{ .Values.sampleServices.namespace }} --- {{- if .Values.sampleServices.scaller.enabled }} apiVersion: batch/v1 kind: CronJob metadata: name: event-scale-up namespace: {{ .Values.sampleServices.namespace }} spec: schedule: "0 * * * *" successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 1 jobTemplate: spec: template: metadata: annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: event-scaler-sa containers: - name: event-scaler image: bitnami/kubectl:1.20.12 command: - sh - -c - kubectl -n {{ .Values.sampleServices.namespace }} scale deployment songs-deployment gateway-deployment app-deployment --replicas=2 restartPolicy: Never --- apiVersion: batch/v1 kind: CronJob metadata: name: event-scale-down namespace: {{ .Values.sampleServices.namespace }} spec: schedule: "30 * * * *" successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 1 jobTemplate: spec: template: metadata: annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: event-scaler-sa containers: - name: event-scaler image: bitnami/kubectl:1.20.12 command: - sh - -c - kubectl -n {{ .Values.sampleServices.namespace }} scale deployment songs-deployment gateway-deployment app-deployment --replicas=1 restartPolicy: Never {{- end }} {{- end }}