From adde1433f7526038f8ac3cd9444a71483badda4f Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Sat, 6 Aug 2022 16:29:30 +0530 Subject: [PATCH 1/7] Initial changes for KEDA - Pod Autoscaling --- templates/models/keda-scaledObject.yaml | 28 +++++++++++++++++++++++++ templates/models/keda-secret.yaml | 5 +++++ templates/models/keda-trigger-auth.yaml | 10 +++++++++ values.yaml | 19 +++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 templates/models/keda-scaledObject.yaml create mode 100644 templates/models/keda-secret.yaml create mode 100644 templates/models/keda-trigger-auth.yaml diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml new file mode 100644 index 0000000..97f3dc6 --- /dev/null +++ b/templates/models/keda-scaledObject.yaml @@ -0,0 +1,28 @@ +{{- if .Values.models }} +{{- $fullname := include "pecan.fullname" . }} +{{- range $key, $val := .Values.models }} +{{- if .enabled }} +--- +apiVersion: keda.sh/v1alpha1 +kind: ScaledObject +metadata: + name: "{{ $fullname }}-model-{{ $key }}-scaledobject" + namespace: default +spec: + scaleTargetRef: + deploymentName: {{ $fullname }}-model-{{ $key }} + containerName: {{ $.Chart.Name }}-model-{{ $key }} + minReplicaCount: "{{ .minReplicaCount }}" + maxReplicaCount: "{{ .maxReplicaCount }}" + triggers: + - type: rabbitmq + metadata: + protocol: http + queueName: "{{ .queuename }}" + mode: QueueLength + value: {{ $fullname }}-model-{{ $key }} + authenticationRef: + name: {{ $.Values.keda.rabbitmq.name }}-triger-auth +{{- end }} +{{- end }} +{{- end }} diff --git a/templates/models/keda-secret.yaml b/templates/models/keda-secret.yaml new file mode 100644 index 0000000..6656485 --- /dev/null +++ b/templates/models/keda-secret.yaml @@ -0,0 +1,5 @@ +kind: Secret +metadata: + name: {{ .Values.keda.rabbitmq.name }}-secret +data: + host: {{ .Values.keda.rabbbitmq.host }} # base64 encoded value of connection string diff --git a/templates/models/keda-trigger-auth.yaml b/templates/models/keda-trigger-auth.yaml new file mode 100644 index 0000000..1d8ad99 --- /dev/null +++ b/templates/models/keda-trigger-auth.yaml @@ -0,0 +1,10 @@ +apiVersion: keda.sh/v1alpha1 +kind: TriggerAuthentication +metadata: + name: {{ .Values.keda.rabbitmq.name }}-triger-auth + namespace: default +spec: + secretTargetRef: + - parameter: host + name: {{ .Values.keda.rabbitmq.name }}-secret + key: {{ .Values.keda.rabbbitmq.host }} diff --git a/values.yaml b/values.yaml index 1ca2494..8e60455 100644 --- a/values.yaml +++ b/values.yaml @@ -56,22 +56,32 @@ models: enabled: true image: model-biocro-0.95 replicaCount: 1 + minReplicaCount: 1 + maxReplicaCount: 5 ed2-2-2-0: enabled: true image: model-ed2-2.2.0 replicaCount: 1 + minReplicaCount: 1 + maxReplicaCount: 5 maespa-git: enabled: true image: model-maespa-git replicaCount: 1 + minReplicaCount: 1 + maxReplicaCount: 5 sipnet-git: enabled: true image: model-sipnet-git replicaCount: 1 + minReplicaCount: 1 + maxReplicaCount: 5 sipnet-136: enabled: true image: model-sipnet-r136 replicaCount: 1 + minReplicaCount: 1 + maxReplicaCount: 5 ## ------------------------------------------------------------------------------- ## BETYDB APPLICATION @@ -346,3 +356,12 @@ affinity: {} ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity hooks: affinity: {} + +## ------------------------------------------------------------------------------- +## KEDA RabbitMQ Configuration +## ------------------------------------------------------------------------------- + +keda: + rabbitmq: + secretName: "rabbitmq" + host: "" From 9e5d2ae8fa60a57d6d2deba7b207b8aa802a011f Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Sun, 7 Aug 2022 11:29:44 +0530 Subject: [PATCH 2/7] KEDA Migration v1.4 configs to v2.7 --- templates/models/deployment.yaml | 2 +- templates/models/keda-scaledObject.yaml | 13 ++++++++----- templates/models/keda-secret.yaml | 2 +- templates/models/keda-trigger-auth.yaml | 4 ++-- values.yaml | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/templates/models/deployment.yaml b/templates/models/deployment.yaml index 49c1c45..6243445 100644 --- a/templates/models/deployment.yaml +++ b/templates/models/deployment.yaml @@ -10,7 +10,7 @@ kind: Deployment metadata: name: {{ $fullname }}-model-{{ $key }} labels: - {{ $labels | indent 4 }} +{{ $labels | indent 4 }} spec: replicas: {{ .replicaCount }} selector: diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml index 97f3dc6..3411790 100644 --- a/templates/models/keda-scaledObject.yaml +++ b/templates/models/keda-scaledObject.yaml @@ -10,10 +10,13 @@ metadata: namespace: default spec: scaleTargetRef: - deploymentName: {{ $fullname }}-model-{{ $key }} - containerName: {{ $.Chart.Name }}-model-{{ $key }} - minReplicaCount: "{{ .minReplicaCount }}" - maxReplicaCount: "{{ .maxReplicaCount }}" + apiVersion: apps/v1 + kind: Deployment + name: {{ $fullname }}-model-{{ $key }} + envSourceContainerName: {{ $.Chart.Name }}-model-{{ $key }} + minReplicaCount: {{ .minReplicaCount }} + maxReplicaCount: {{ .maxReplicaCount }} + idleReplicaCount: {{ .replicaCount }} triggers: - type: rabbitmq metadata: @@ -22,7 +25,7 @@ spec: mode: QueueLength value: {{ $fullname }}-model-{{ $key }} authenticationRef: - name: {{ $.Values.keda.rabbitmq.name }}-triger-auth + name: {{ .Release.Name }}-{{ $.Values.keda.rabbitmq.name }}-triger-auth {{- end }} {{- end }} {{- end }} diff --git a/templates/models/keda-secret.yaml b/templates/models/keda-secret.yaml index 6656485..1e2add7 100644 --- a/templates/models/keda-secret.yaml +++ b/templates/models/keda-secret.yaml @@ -1,5 +1,5 @@ kind: Secret metadata: - name: {{ .Values.keda.rabbitmq.name }}-secret + name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.secretName }}-secret data: host: {{ .Values.keda.rabbbitmq.host }} # base64 encoded value of connection string diff --git a/templates/models/keda-trigger-auth.yaml b/templates/models/keda-trigger-auth.yaml index 1d8ad99..5fdf48f 100644 --- a/templates/models/keda-trigger-auth.yaml +++ b/templates/models/keda-trigger-auth.yaml @@ -1,10 +1,10 @@ apiVersion: keda.sh/v1alpha1 kind: TriggerAuthentication metadata: - name: {{ .Values.keda.rabbitmq.name }}-triger-auth + name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.name }}-triger-auth namespace: default spec: secretTargetRef: - parameter: host - name: {{ .Values.keda.rabbitmq.name }}-secret + name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.name }}-secret key: {{ .Values.keda.rabbbitmq.host }} diff --git a/values.yaml b/values.yaml index 8e60455..b17bd25 100644 --- a/values.yaml +++ b/values.yaml @@ -364,4 +364,4 @@ hooks: keda: rabbitmq: secretName: "rabbitmq" - host: "" + host: "" ## Base64 rabbitmq host path in the form of PROTOCOL://:RABBITMQ_PASSWORD@RABBITMQ_HOST/vhost From e289f25439cd998a4ad959dec87de3cab16e0e56 Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Thu, 25 Aug 2022 16:55:24 +0530 Subject: [PATCH 3/7] KEDA integration changes --- templates/models/keda-scaledObject.yaml | 2 +- templates/models/keda-secret.yaml | 5 +++-- templates/models/keda-trigger-auth.yaml | 6 +++--- values.yaml | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml index 3411790..1d5eb34 100644 --- a/templates/models/keda-scaledObject.yaml +++ b/templates/models/keda-scaledObject.yaml @@ -25,7 +25,7 @@ spec: mode: QueueLength value: {{ $fullname }}-model-{{ $key }} authenticationRef: - name: {{ .Release.Name }}-{{ $.Values.keda.rabbitmq.name }}-triger-auth + name: {{ $.Values.keda.rabbitmq.name }}-triger-auth {{- end }} {{- end }} {{- end }} diff --git a/templates/models/keda-secret.yaml b/templates/models/keda-secret.yaml index 1e2add7..39162be 100644 --- a/templates/models/keda-secret.yaml +++ b/templates/models/keda-secret.yaml @@ -1,5 +1,6 @@ +apiVersion: v1 kind: Secret metadata: - name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.secretName }}-secret + name: {{ .Values.keda.rabbitmq.name }}-secret data: - host: {{ .Values.keda.rabbbitmq.host }} # base64 encoded value of connection string + host: {{ .Values.keda.rabbitmq.host }} # base64 encoded value of connection string diff --git a/templates/models/keda-trigger-auth.yaml b/templates/models/keda-trigger-auth.yaml index 5fdf48f..98eae7d 100644 --- a/templates/models/keda-trigger-auth.yaml +++ b/templates/models/keda-trigger-auth.yaml @@ -1,10 +1,10 @@ apiVersion: keda.sh/v1alpha1 kind: TriggerAuthentication metadata: - name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.name }}-triger-auth + name: {{ .Values.keda.rabbitmq.name }}-triger-auth namespace: default spec: secretTargetRef: - parameter: host - name: {{ .Release.Name }}-{{ .Values.keda.rabbitmq.name }}-secret - key: {{ .Values.keda.rabbbitmq.host }} + name: {{ .Values.keda.rabbitmq.name }}-secret + key: host diff --git a/values.yaml b/values.yaml index b17bd25..087d85c 100644 --- a/values.yaml +++ b/values.yaml @@ -363,5 +363,5 @@ hooks: keda: rabbitmq: - secretName: "rabbitmq" + name: "rabbitmq" host: "" ## Base64 rabbitmq host path in the form of PROTOCOL://:RABBITMQ_PASSWORD@RABBITMQ_HOST/vhost From 9efd86e19062d47964dbb7fdde51e82fc6c70add Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Thu, 25 Aug 2022 17:29:18 +0530 Subject: [PATCH 4/7] KEDA integration changes --- templates/models/keda-scaledObject.yaml | 6 +++--- values.yaml | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml index 1d5eb34..375db5b 100644 --- a/templates/models/keda-scaledObject.yaml +++ b/templates/models/keda-scaledObject.yaml @@ -16,14 +16,14 @@ spec: envSourceContainerName: {{ $.Chart.Name }}-model-{{ $key }} minReplicaCount: {{ .minReplicaCount }} maxReplicaCount: {{ .maxReplicaCount }} - idleReplicaCount: {{ .replicaCount }} + idleReplicaCount: 0 triggers: - type: rabbitmq metadata: protocol: http queueName: "{{ .queuename }}" - mode: QueueLength - value: {{ $fullname }}-model-{{ $key }} + mode: MessageRate + value: "10" authenticationRef: name: {{ $.Values.keda.rabbitmq.name }}-triger-auth {{- end }} diff --git a/values.yaml b/values.yaml index 087d85c..936e200 100644 --- a/values.yaml +++ b/values.yaml @@ -58,30 +58,35 @@ models: replicaCount: 1 minReplicaCount: 1 maxReplicaCount: 5 + queuename: BIOCRO_0.95 ed2-2-2-0: enabled: true image: model-ed2-2.2.0 replicaCount: 1 minReplicaCount: 1 maxReplicaCount: 5 + queuename: ED2_2.2.0 maespa-git: enabled: true image: model-maespa-git replicaCount: 1 minReplicaCount: 1 maxReplicaCount: 5 + queuename: MAESPA_git sipnet-git: enabled: true image: model-sipnet-git replicaCount: 1 minReplicaCount: 1 maxReplicaCount: 5 + queuename: SIPNET_git sipnet-136: enabled: true image: model-sipnet-r136 replicaCount: 1 minReplicaCount: 1 maxReplicaCount: 5 + queuename: SIPNET_r136 ## ------------------------------------------------------------------------------- ## BETYDB APPLICATION From 63308b9c59ffffb56ac8efc357c12d36f47b68b6 Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Sat, 27 Aug 2022 00:41:43 +0530 Subject: [PATCH 5/7] KEDA integration changes --- templates/models/keda-scaledObject.yaml | 3 ++- values.yaml | 15 +++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml index 375db5b..837498c 100644 --- a/templates/models/keda-scaledObject.yaml +++ b/templates/models/keda-scaledObject.yaml @@ -16,7 +16,7 @@ spec: envSourceContainerName: {{ $.Chart.Name }}-model-{{ $key }} minReplicaCount: {{ .minReplicaCount }} maxReplicaCount: {{ .maxReplicaCount }} - idleReplicaCount: 0 + idleReplicaCount: 1 triggers: - type: rabbitmq metadata: @@ -24,6 +24,7 @@ spec: queueName: "{{ .queuename }}" mode: MessageRate value: "10" + vhostName: / authenticationRef: name: {{ $.Values.keda.rabbitmq.name }}-triger-auth {{- end }} diff --git a/values.yaml b/values.yaml index 936e200..06c944a 100644 --- a/values.yaml +++ b/values.yaml @@ -56,35 +56,35 @@ models: enabled: true image: model-biocro-0.95 replicaCount: 1 - minReplicaCount: 1 + minReplicaCount: 2 maxReplicaCount: 5 queuename: BIOCRO_0.95 ed2-2-2-0: enabled: true image: model-ed2-2.2.0 replicaCount: 1 - minReplicaCount: 1 + minReplicaCount: 2 maxReplicaCount: 5 queuename: ED2_2.2.0 maespa-git: enabled: true image: model-maespa-git replicaCount: 1 - minReplicaCount: 1 + minReplicaCount: 2 maxReplicaCount: 5 queuename: MAESPA_git sipnet-git: enabled: true image: model-sipnet-git replicaCount: 1 - minReplicaCount: 1 + minReplicaCount: 2 maxReplicaCount: 5 queuename: SIPNET_git sipnet-136: enabled: true image: model-sipnet-r136 replicaCount: 1 - minReplicaCount: 1 + minReplicaCount: 2 maxReplicaCount: 5 queuename: SIPNET_r136 @@ -369,4 +369,7 @@ hooks: keda: rabbitmq: name: "rabbitmq" - host: "" ## Base64 rabbitmq host path in the form of PROTOCOL://:RABBITMQ_PASSWORD@RABBITMQ_HOST/vhost + ## Base64 rabbitmq host path in the form of PROTOCOL://:RABBITMQ_PASSWORD@RABBITMQ_HOST/vhost + ## e.g. echo -n 'http://guest:guest@pecan-rabbitmq.default:15672//' | base64 + host: aHR0cDovL2d1ZXN0Omd1ZXN0QHBlY2FuLXJhYmJpdG1xLmRlZmF1bHQ6MTU2NzIvLw== + From dfa3dc1fa06d9c26f8abe2539594e5b22e83301a Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Sat, 27 Aug 2022 00:44:31 +0530 Subject: [PATCH 6/7] KEDA integration changes --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ba3b3e3..258a376 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,10 @@ Climate change science has witnessed an explosion in the amount and types of dat ```bash $ helm repo add ncsa https://opensource.ncsa.illinois.edu/charts/ $ helm repo add bitnami https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami +$ helm repo add kedacore https://kedacore.github.io/charts +$ helm repo update $ helm dependency build +$ helm install keda kedacore/keda $ helm install pecan ncsa/pecan ``` From 871f2eb277477739db864d170ac6307aa58308d1 Mon Sep 17 00:00:00 2001 From: Sagar2366 Date: Sat, 27 Aug 2022 00:47:33 +0530 Subject: [PATCH 7/7] KEDA integration changes --- templates/models/keda-scaledObject.yaml | 1 - values.yaml | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/templates/models/keda-scaledObject.yaml b/templates/models/keda-scaledObject.yaml index 837498c..246c2a6 100644 --- a/templates/models/keda-scaledObject.yaml +++ b/templates/models/keda-scaledObject.yaml @@ -16,7 +16,6 @@ spec: envSourceContainerName: {{ $.Chart.Name }}-model-{{ $key }} minReplicaCount: {{ .minReplicaCount }} maxReplicaCount: {{ .maxReplicaCount }} - idleReplicaCount: 1 triggers: - type: rabbitmq metadata: diff --git a/values.yaml b/values.yaml index 06c944a..d39ec7e 100644 --- a/values.yaml +++ b/values.yaml @@ -56,35 +56,35 @@ models: enabled: true image: model-biocro-0.95 replicaCount: 1 - minReplicaCount: 2 + minReplicaCount: 1 maxReplicaCount: 5 queuename: BIOCRO_0.95 ed2-2-2-0: enabled: true image: model-ed2-2.2.0 replicaCount: 1 - minReplicaCount: 2 + minReplicaCount: 1 maxReplicaCount: 5 queuename: ED2_2.2.0 maespa-git: enabled: true image: model-maespa-git replicaCount: 1 - minReplicaCount: 2 + minReplicaCount: 1 maxReplicaCount: 5 queuename: MAESPA_git sipnet-git: enabled: true image: model-sipnet-git replicaCount: 1 - minReplicaCount: 2 + minReplicaCount: 1 maxReplicaCount: 5 queuename: SIPNET_git sipnet-136: enabled: true image: model-sipnet-r136 replicaCount: 1 - minReplicaCount: 2 + minReplicaCount: 1 maxReplicaCount: 5 queuename: SIPNET_r136