diff --git a/stable/locust/Chart.yaml b/stable/locust/Chart.yaml index 2e7c3e97..8775dc64 100644 --- a/stable/locust/Chart.yaml +++ b/stable/locust/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: locust -version: "0.32.2" +version: "0.32.3" appVersion: 2.32.2 home: https://github.com/locustio/locust icon: https://locust.io/static/img/logo.png diff --git a/stable/locust/README.md b/stable/locust/README.md index cde7f8ec..837c2e9b 100644 --- a/stable/locust/README.md +++ b/stable/locust/README.md @@ -1,6 +1,6 @@ # locust -![Version: 0.32.2](https://img.shields.io/badge/Version-0.32.2-informational?style=flat-square) ![AppVersion: 2.32.2](https://img.shields.io/badge/AppVersion-2.32.2-informational?style=flat-square) +![Version: 0.32.3](https://img.shields.io/badge/Version-0.32.3-informational?style=flat-square) ![AppVersion: 2.32.2](https://img.shields.io/badge/AppVersion-2.32.2-informational?style=flat-square) A chart to install Locust, a scalable load testing tool written in Python. @@ -37,7 +37,7 @@ helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/locust To install a specific version of this chart: ```console -helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/locust --version 0.32.2 +helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/locust --version 0.32.3 ``` To install the chart with the release name `my-release`: @@ -148,6 +148,10 @@ helm install my-release oci://ghcr.io/deliveryhero/helm-charts/locust -f values. | worker.hpa.minReplicas | int | `1` | | | worker.hpa.targetCPUUtilizationPercentage | int | `40` | | | worker.image | string | `""` | A custom docker image including tag | +| worker.keda.cooldownPeriod | int | `30` | | +| worker.keda.enabled | bool | `false` | | +| worker.keda.pollingInterval | int | `15` | | +| worker.keda.triggers | string | `"# https://keda.sh/docs/latest/scalers/metrics-api/\n- type: metrics-api\n metadata:\n activationTargetValue: \"0\"\n targetValue: \"50\" # Scale pods based on target users\n url: \"http://{{ template \"locust.fullname\" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ $.Values.service.port }}/stats/requests\"\n format: json\n valueLocation: 'user_count'\n"` | | | worker.logLevel | string | `"INFO"` | Log level. Can be INFO or DEBUG | | worker.nodeSelector | object | `{}` | Overwrites nodeSelector from global | | worker.pdb.enabled | bool | `false` | Whether to create a PodDisruptionBudget for the worker pods | diff --git a/stable/locust/templates/worker-keda.yaml b/stable/locust/templates/worker-keda.yaml new file mode 100644 index 00000000..d4d3566f --- /dev/null +++ b/stable/locust/templates/worker-keda.yaml @@ -0,0 +1,27 @@ +{{- if .Values.worker.keda.enabled }} +apiVersion: keda.sh/v1alpha1 +kind: ScaledObject +metadata: + name: {{ template "locust.fullname" . }} + labels: +{{ include "locust.labels" . | indent 4 }} + component: "worker" +{{- with .Values.worker.keda.annotations }} + annotations: + {{- toYaml . | nindent 4 }} +{{- end }} +spec: + scaleTargetRef: + kind: Deployment + apiVersion: apps/v1 + name: {{ template "locust.fullname" . }}-worker + pollingInterval: {{ .Values.worker.keda.pollingInterval }} + cooldownPeriod: {{ .Values.worker.keda.cooldownPeriod }} + minReplicaCount: {{ .Values.worker.hpa.minReplicas }} + maxReplicaCount: {{ .Values.worker.hpa.maxReplicas }} + fallback: + failureThreshold: {{ .Values.worker.keda.failureThreshold | default 3 }} + replicas: {{ .Values.worker.keda.fallbackReplicas | default .Values.worker.hpa.minReplicas }} + triggers: + {{- tpl .Values.worker.keda.triggers . | nindent 4}} +{{- end }} diff --git a/stable/locust/values.yaml b/stable/locust/values.yaml index c6d77224..2391450d 100644 --- a/stable/locust/values.yaml +++ b/stable/locust/values.yaml @@ -154,6 +154,20 @@ worker: minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 40 + keda: + enabled: false + pollingInterval: 15 + cooldownPeriod: 30 + # worker.keda,triggers - Allow passing required triggers to scale upon as string template for complex triggering + triggers: | + # https://keda.sh/docs/latest/scalers/metrics-api/ + - type: metrics-api + metadata: + activationTargetValue: "0" + targetValue: "50" # Scale pods based on target users + url: "http://{{ template "locust.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ $.Values.service.port }}/stats/requests" + format: json + valueLocation: 'user_count' # worker.resources -- resources for the locust worker resources: {} # limits: diff --git a/stable/node-local-dns/Chart.yaml b/stable/node-local-dns/Chart.yaml index eda3e438..1d33339a 100644 --- a/stable/node-local-dns/Chart.yaml +++ b/stable/node-local-dns/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: node-local-dns -version: 2.1.1 +version: 2.1.3 appVersion: 1.23.1 maintainers: - name: gabrieladt diff --git a/stable/node-local-dns/README.md b/stable/node-local-dns/README.md index 2c686f61..bbd555cd 100644 --- a/stable/node-local-dns/README.md +++ b/stable/node-local-dns/README.md @@ -1,6 +1,6 @@ # node-local-dns -![Version: 2.1.1](https://img.shields.io/badge/Version-2.1.1-informational?style=flat-square) ![AppVersion: 1.23.1](https://img.shields.io/badge/AppVersion-1.23.1-informational?style=flat-square) +![Version: 2.1.3](https://img.shields.io/badge/Version-2.1.3-informational?style=flat-square) ![AppVersion: 1.23.1](https://img.shields.io/badge/AppVersion-1.23.1-informational?style=flat-square) A chart to install node-local-dns. @@ -23,7 +23,7 @@ helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/node-local-d To install a specific version of this chart: ```console -helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/node-local-dns --version 2.1.1 +helm install --generate-name oci://ghcr.io/deliveryhero/helm-charts/node-local-dns --version 2.1.3 ``` To install the chart with the release name `my-release`: @@ -63,6 +63,8 @@ helm install my-release oci://ghcr.io/deliveryhero/helm-charts/node-local-dns -f | config.setupInterface | bool | `true` | | | config.setupIptables | bool | `true` | | | config.skipTeardown | bool | `false` | | +| configMapAnnotations | object | `{}` | | +| configMapLabels | object | `{}` | | | daemonsetAnnotations | object | `{}` | | | daemonsetLabels | object | `{}` | | | dashboard | object | `{"annotations":{},"enabled":false,"label":"grafana_dashboard","namespace":"kube-system"}` | https://github.com/grafana/helm-charts/blob/main/charts/grafana/README.md | @@ -88,6 +90,12 @@ helm install my-release oci://ghcr.io/deliveryhero/helm-charts/node-local-dns -f | serviceMonitor.enabled | bool | `false` | Ensure that servicemonitor is created, this will disable prometheus annotations | | serviceMonitor.metricRelabelings | list | `[]` | Metric relabel configs to apply to samples before ingestion. [Metric Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs) | | serviceMonitor.relabelings | list | `[]` | Relabel configs to apply to samples before ingestion. [Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config) | +| tolerations[0].key | string | `"CriticalAddonsOnly"` | | +| tolerations[0].operator | string | `"Exists"` | | +| tolerations[1].effect | string | `"NoExecute"` | | +| tolerations[1].operator | string | `"Exists"` | | +| tolerations[2].effect | string | `"NoSchedule"` | | +| tolerations[2].operator | string | `"Exists"` | | ## Maintainers diff --git a/stable/node-local-dns/templates/configmap.yaml b/stable/node-local-dns/templates/configmap.yaml index 11ec215c..54c137f2 100644 --- a/stable/node-local-dns/templates/configmap.yaml +++ b/stable/node-local-dns/templates/configmap.yaml @@ -3,9 +3,15 @@ kind: ConfigMap metadata: name: {{ include "node-local-dns.fullname" . }} namespace: kube-system + {{- with .Values.configMapAnnotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} labels: - addonmanager.kubernetes.io/mode: Reconcile {{- include "node-local-dns.labels" . | nindent 4 }} + {{- with .Values.configMapLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} data: Corefile: | {{- if .Values.config.customConfig -}} diff --git a/stable/node-local-dns/templates/daemonset.yaml b/stable/node-local-dns/templates/daemonset.yaml index 53551538..6450456c 100644 --- a/stable/node-local-dns/templates/daemonset.yaml +++ b/stable/node-local-dns/templates/daemonset.yaml @@ -48,12 +48,7 @@ spec: hostNetwork: {{ .Values.config.setupIptables }} dnsPolicy: Default # Don't use cluster DNS. tolerations: - - key: "CriticalAddonsOnly" - operator: "Exists" - - effect: "NoExecute" - operator: "Exists" - - effect: "NoSchedule" - operator: "Exists" + {{- toYaml .Values.tolerations | nindent 8 }} containers: - name: node-cache image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" diff --git a/stable/node-local-dns/values.yaml b/stable/node-local-dns/values.yaml index 30905567..9526fea5 100644 --- a/stable/node-local-dns/values.yaml +++ b/stable/node-local-dns/values.yaml @@ -67,6 +67,10 @@ podAnnotations: {} podLabels: {} +configMapAnnotations: {} + +configMapLabels: {} + daemonsetAnnotations: {} daemonsetLabels: {} @@ -74,7 +78,7 @@ daemonsetLabels: {} securityContext: capabilities: add: - - NET_ADMIN + - NET_ADMIN # -- https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md serviceMonitor: @@ -129,3 +133,11 @@ imagePullSecrets: [] prometheusScraping: enabled: true + +tolerations: + - key: "CriticalAddonsOnly" + operator: "Exists" + - effect: "NoExecute" + operator: "Exists" + - effect: "NoSchedule" + operator: "Exists"