From b3ad4daa4990c1c0f78d6cacb90af7809ca8fc73 Mon Sep 17 00:00:00 2001 From: Tom Kerkhove Date: Wed, 14 Apr 2021 19:27:11 +0200 Subject: [PATCH] fix: Automatically manage CRDs through Helm deployments (#141) --- .github/workflows/ci.yml | 27 ++++++- docs/index.yaml | 68 +++++++++++------- docs/keda-2.2.1.tgz | Bin 0 -> 63493 bytes keda/Chart.yaml | 2 +- keda/README.md | 5 +- ...02-crd-clustertriggerauthentications.yaml} | 4 +- .../03-crd-scaledjobs.keda.sh.yaml} | 4 +- .../04-crd-scaledobjects.keda.sh.yaml} | 4 +- ...5-crd-triggerauthentications.keda.sh.yaml} | 4 +- keda/values.yaml | 3 + samples/nginx-scaledobject.yml | 42 +++++++++++ 11 files changed, 129 insertions(+), 34 deletions(-) create mode 100644 docs/keda-2.2.1.tgz rename keda/{crds/clustertriggerauthentications.yaml => templates/02-crd-clustertriggerauthentications.yaml} (98%) rename keda/{crds/scaledjobs.keda.sh.yaml => templates/03-crd-scaledjobs.keda.sh.yaml} (99%) rename keda/{crds/scaledobjects.keda.sh.yaml => templates/04-crd-scaledobjects.keda.sh.yaml} (99%) rename keda/{crds/triggerauthentications.keda.sh.yaml => templates/05-crd-triggerauthentications.keda.sh.yaml} (98%) create mode 100644 samples/nginx-scaledobject.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c35cd59..fa373bbd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,11 +43,32 @@ jobs: - name: Install Helm chart run: helm install keda ./keda/ --namespace keda + - name: Get all CRDs + run: kubectl get crds -o wide + + - name: Verify clustertriggerauthentications.keda.sh CRD is installed + run: kubectl get crd/clustertriggerauthentications.keda.sh -o wide + + - name: Verify triggerauthentications.keda.sh CRD is installed + run: kubectl get crd/triggerauthentications.keda.sh -o wide + + - name: Verify scaledjobs.keda.sh CRD is installed + run: kubectl get crd/scaledjobs.keda.sh -o wide + + - name: Verify scaledobjects.keda.sh CRD is installed + run: kubectl get crd/scaledobjects.keda.sh -o wide + - name: Get all ScaledObjects - run: kubectl get scaledobjects + run: kubectl get scaledobjects -o wide - name: Get all ScaledJobs - run: kubectl get scaledjobs + run: kubectl get scaledjobs -o wide - name: Get all TriggerAuthentication - run: kubectl get triggerauth + run: kubectl get triggerauth -o wide + + - name: Deploy Nginx with autoscaling + run: kubectl apply -f ./samples/nginx-scaledobject.yml + + - name: Get our Nginx ScaledObject + run: kubectl get scaledobjects/nginx-autoscaling -o wide diff --git a/docs/index.yaml b/docs/index.yaml index 1aacbc8e..22d55d0d 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,27 @@ entries: keda: - apiVersion: v2 appVersion: 2.2.0 - created: "2021-03-18T20:28:17.198936+01:00" + created: "2021-04-12T13:42:39.1164993+02:00" + description: Event-based autoscaler for workloads on Kubernetes + digest: 7ec5c403d0ad315d2eb9ec0c9d73b36c0baced870f397884d467d46014f24631 + home: https://github.com/kedacore/keda + icon: https://raw.githubusercontent.com/kedacore/keda/master/images/keda-logo-500x500-white.png + maintainers: + - email: ahmels@microsoft.com + name: Ahmed ElSayed + - email: kerkhove.tom@gmail.com + name: Tom Kerkhove + - email: zroubali@redhat.com + name: Zbynek Roubalik + name: keda + sources: + - https://github.com/kedacore/keda + urls: + - https://kedacore.github.io/charts/keda-2.2.1.tgz + version: 2.2.1 + - apiVersion: v2 + appVersion: 2.2.0 + created: "2021-04-12T13:42:39.1125407+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 42b530656687cabb1408abcb137a5d7515243465b65a3a6006927987441fadc0 home: https://github.com/kedacore/keda @@ -23,7 +43,7 @@ entries: version: 2.2.0 - apiVersion: v2 appVersion: 2.1.0 - created: "2021-03-18T20:28:17.194813+01:00" + created: "2021-04-12T13:42:39.1025357+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 65e2fb98c55740251d7ffa1680ef0edeb42954576deac3856dd468473e321747 home: https://github.com/kedacore/keda @@ -43,7 +63,7 @@ entries: version: 2.1.3 - apiVersion: v2 appVersion: 2.1.0 - created: "2021-03-18T20:28:17.188975+01:00" + created: "2021-04-12T13:42:39.0945457+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: f336ab24d5ebf96d28da95a03931f2701bb44ce6bb7c30991e3ad14959e2e7e4 home: https://github.com/kedacore/keda @@ -63,7 +83,7 @@ entries: version: 2.1.2 - apiVersion: v2 appVersion: 2.1.0 - created: "2021-03-18T20:28:17.184627+01:00" + created: "2021-04-12T13:42:39.085527+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: b6e752d05797cd50ce95a96ae1b6cf8b2b87fc10c27391172beb1acd9fcb18a2 home: https://github.com/kedacore/keda @@ -83,7 +103,7 @@ entries: version: 2.1.1 - apiVersion: v2 appVersion: 2.1.0 - created: "2021-03-18T20:28:17.179904+01:00" + created: "2021-04-12T13:42:39.0765009+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 91998f9165176f972b954ef9d4077942979cb5e863bb7d76ed29c48f63533531 home: https://github.com/kedacore/keda @@ -103,7 +123,7 @@ entries: version: 2.1.0 - apiVersion: v2 appVersion: 2.0.0 - created: "2021-03-18T20:28:17.174417+01:00" + created: "2021-04-12T13:42:39.0684995+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: ce2e848f5d7a067d74feb3745da5a834cccdfaa665b5b59d43ad06baa4cdfd04 home: https://github.com/kedacore/keda @@ -123,7 +143,7 @@ entries: version: 2.0.1 - apiVersion: v1 appVersion: 2.0.0 - created: "2021-03-18T20:28:17.169688+01:00" + created: "2021-04-12T13:42:39.0565336+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: dba8b0e793085165c7d155f9393c5ff112d4714dbce0201404ceb0e67d1b2deb home: https://github.com/kedacore/keda @@ -143,7 +163,7 @@ entries: version: 2.0.0 - apiVersion: v1 appVersion: 2.0.0-rc2 - created: "2021-03-18T20:28:17.165604+01:00" + created: "2021-04-12T13:42:39.0485351+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: bad82c28c5ca1d5e69fac4bfcc7a999d5d2b2afd9b19ff6deb9a48811110eb0d home: https://github.com/kedacore/keda @@ -163,7 +183,7 @@ entries: version: 2.0.0-rc3 - apiVersion: v2 appVersion: 2.0.0-rc2 - created: "2021-03-18T20:28:17.160127+01:00" + created: "2021-04-12T13:42:39.0384985+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: a4042ba14e595a8e82c9a39d8987625b89292aa86029686a3603b724fda36ca0 home: https://github.com/kedacore/keda @@ -184,7 +204,7 @@ entries: version: 2.0.0-rc2 - apiVersion: v1 appVersion: 2.0.0-rc - created: "2021-03-18T20:28:17.156302+01:00" + created: "2021-04-12T13:42:39.0265064+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 3a952f2aaa0ea35ee4335f0b168f44fcf37c5c5ab7e9b9bba7e731c42f04ad61 home: https://github.com/kedacore/keda @@ -204,7 +224,7 @@ entries: version: 2.0.0-rc - apiVersion: v1 appVersion: 2.0.0-beta - created: "2021-03-18T20:28:17.15263+01:00" + created: "2021-04-12T13:42:39.0145005+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: fbafc7ae564c13a0eab7062667759f6e93595c97125731a27e8290574e1d570c home: https://github.com/kedacore/keda @@ -224,7 +244,7 @@ entries: version: 2.0.0-beta1.2 - apiVersion: v1 appVersion: 2.0.0-beta - created: "2021-03-18T20:28:17.146763+01:00" + created: "2021-04-12T13:42:39.0025764+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: db9e7d2423423463285f2e9d5b940a63b41d6555ba9fcab8fda0e6a757ccefa9 home: https://github.com/kedacore/keda @@ -244,7 +264,7 @@ entries: version: 2.0.0-beta1.1 - apiVersion: v1 appVersion: 2.0.0-beta - created: "2021-03-18T20:28:17.140788+01:00" + created: "2021-04-12T13:42:38.9885326+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: f0a8f0b854246ee2258ec8f10528f2811681ad2e41946dc455586f1ba9818e01 home: https://github.com/kedacore/keda @@ -264,7 +284,7 @@ entries: version: 2.0.0-beta - apiVersion: v1 appVersion: 1.5.0 - created: "2021-03-18T20:28:17.136276+01:00" + created: "2021-04-12T13:42:38.978501+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 07b15ddae4f1c40747de063100a668ac15d504cd0548eac0e1a04381fcaa3b37 home: https://github.com/kedacore/keda @@ -284,7 +304,7 @@ entries: version: 1.5.0 - apiVersion: v1 appVersion: 1.4.1 - created: "2021-03-18T20:28:17.132203+01:00" + created: "2021-04-12T13:42:38.9665421+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: f8bf80186ac3343998021a1721d06a67fdacd1dab92e4a4992620903b52004a4 home: https://github.com/kedacore/keda @@ -304,7 +324,7 @@ entries: version: 1.4.2 - apiVersion: v1 appVersion: 1.4.1 - created: "2021-03-18T20:28:17.126722+01:00" + created: "2021-04-12T13:42:38.9545363+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 97a2e5c0beff93bb71ff861da0f29d09dcf988e724784f8b7c56ac9872c37a81 home: https://github.com/kedacore/keda @@ -320,7 +340,7 @@ entries: version: 1.4.1 - apiVersion: v1 appVersion: 1.4.0 - created: "2021-03-18T20:28:17.121944+01:00" + created: "2021-04-12T13:42:38.9405304+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: 7b2b4e29f867361af87a60411b0a196416b04b2e20f4091d166263ea5195c355 home: https://github.com/kedacore/keda @@ -336,7 +356,7 @@ entries: version: 1.4.0 - apiVersion: v1 appVersion: 1.4.0 - created: "2021-03-18T20:28:17.116853+01:00" + created: "2021-04-12T13:42:38.9285182+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: a9e78b6cb2257702296d7cc28ca7acdd0b11603aef7e95dbdc7d4ddfa3f3a49c home: https://github.com/kedacore/keda @@ -352,7 +372,7 @@ entries: version: 1.3.2 - apiVersion: v1 appVersion: 1.3.0 - created: "2021-03-18T20:28:17.111367+01:00" + created: "2021-04-12T13:42:38.9165009+02:00" description: Event-based autoscaler for workloads on Kubernetes digest: e13bcb65816ed59b10b32fa6db8f61668635459d56c2d599bb3c0bcc5dcc1368 home: https://github.com/kedacore/keda @@ -368,7 +388,7 @@ entries: version: 1.3.1 - apiVersion: v1 appVersion: 1.3.0 - created: "2021-03-18T20:28:17.102855+01:00" + created: "2021-04-12T13:42:38.9035007+02:00" description: Event based autoscaler for Azure Functions deployments on Kubernetes digest: c0772458ab70bf3f019dc0b899ff444b9d7e6dcc466afd62e3f62e90eb8a24ed home: https://github.com/kedacore/keda @@ -384,7 +404,7 @@ entries: version: 1.3.0 - apiVersion: v1 appVersion: 1.2.0 - created: "2021-03-18T20:28:17.097222+01:00" + created: "2021-04-12T13:42:38.8884976+02:00" description: Event based autoscaler for Azure Functions deployments on Kubernetes digest: e041dbed2455fef34f2908594a42fc8a7f163a1f48be46c2f93dea46e36fc733 home: https://github.com/kedacore/keda @@ -400,7 +420,7 @@ entries: version: 1.2.0 - apiVersion: v1 appVersion: 1.1.0 - created: "2021-03-18T20:28:17.089852+01:00" + created: "2021-04-12T13:42:38.874498+02:00" description: Event based autoscaler for Azure Functions deployments on Kubernetes digest: c624e6620a9a6f265f51a82ee0d8267dcb2637dd3777306afbb271746234ff2d home: https://github.com/kedacore/keda @@ -416,7 +436,7 @@ entries: version: 1.1.0 - apiVersion: v1 appVersion: 1.0.0 - created: "2021-03-18T20:28:17.081675+01:00" + created: "2021-04-12T13:42:38.8634996+02:00" description: Event based autoscaler for Azure Functions deployments on Kubernetes digest: ef934588dce70d874ea69692e082b8a70ad19095090b8d4fa7b5cb69b2cecaf6 home: https://github.com/kedacore/keda @@ -430,4 +450,4 @@ entries: urls: - https://kedacore.github.io/charts/keda-1.0.0.tgz version: 1.0.0 -generated: "2021-03-18T20:28:17.070315+01:00" +generated: "2021-04-12T13:42:38.8485005+02:00" diff --git a/docs/keda-2.2.1.tgz b/docs/keda-2.2.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..33ab8c18d6b7d9601fa968388e80002c491e3b09 GIT binary patch literal 63493 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

A5e@*AK9mIA4QaeP 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 literal 0 HcmV?d00001 diff --git a/keda/Chart.yaml b/keda/Chart.yaml index 6d70ac6c..ea4799c9 100644 --- a/keda/Chart.yaml +++ b/keda/Chart.yaml @@ -4,7 +4,7 @@ description: Event-based autoscaler for workloads on Kubernetes # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 2.2.0 +version: 2.2.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. diff --git a/keda/README.md b/keda/README.md index 6a81dcf3..603ae099 100644 --- a/keda/README.md +++ b/keda/README.md @@ -57,9 +57,10 @@ their default values. | Parameter | Description | Default | |:-----------------------------------------------------------|:------------------------------------------|:------------------------------------------------| | `image.keda.repository` | Image name of KEDA operator | `ghcr.io/kedacore/keda` | -| `image.keda.tag` | Image tag of KEDA operator. Optional, given app version of Helm chart is used by default | `` | +| `image.keda.tag` | Image tag of KEDA operator. Optional, given app version of Helm chart is used by default | `` | | `image.metricsApiServer.repository` | Image name of KEDA Metrics API Server | `ghcr.io/kedacore/keda-metrics-apiserver` | -| `image.metricsApiServer.tag` | Image tag of KEDA Metrics API Server. Optional, given app version of Helm chart is used by default | `` | +| `image.metricsApiServer.tag` | Image tag of KEDA Metrics API Server. Optional, given app version of Helm chart is used by default | `` | +| `crds.install` | Defines whether the KEDA CRDs have to be installed or not. | `true` | | `watchNamespace` | Defines Kubernetes namespaces to watch to scale their workloads. Default watches all namespaces | `` | | `operator.name` | Name of the KEDA operator | `keda-operator` | | `imagePullSecrets` | Name of secret to use to pull images to use to pull Docker images | `[]` | diff --git a/keda/crds/clustertriggerauthentications.yaml b/keda/templates/02-crd-clustertriggerauthentications.yaml similarity index 98% rename from keda/crds/clustertriggerauthentications.yaml rename to keda/templates/02-crd-clustertriggerauthentications.yaml index 8876d9c9..b65604a3 100644 --- a/keda/crds/clustertriggerauthentications.yaml +++ b/keda/templates/02-crd-clustertriggerauthentications.yaml @@ -1,3 +1,4 @@ +{{- if .Values.crds.install }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -148,4 +149,5 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] \ No newline at end of file + storedVersions: [] +{{- end -}} diff --git a/keda/crds/scaledjobs.keda.sh.yaml b/keda/templates/03-crd-scaledjobs.keda.sh.yaml similarity index 99% rename from keda/crds/scaledjobs.keda.sh.yaml rename to keda/templates/03-crd-scaledjobs.keda.sh.yaml index 00bc07a9..97249dd6 100644 --- a/keda/crds/scaledjobs.keda.sh.yaml +++ b/keda/templates/03-crd-scaledjobs.keda.sh.yaml @@ -1,3 +1,4 @@ +{{- if .Values.crds.install }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -6820,4 +6821,5 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] \ No newline at end of file + storedVersions: [] +{{- end -}} diff --git a/keda/crds/scaledobjects.keda.sh.yaml b/keda/templates/04-crd-scaledobjects.keda.sh.yaml similarity index 99% rename from keda/crds/scaledobjects.keda.sh.yaml rename to keda/templates/04-crd-scaledobjects.keda.sh.yaml index 8677fa3e..913b744e 100644 --- a/keda/crds/scaledobjects.keda.sh.yaml +++ b/keda/templates/04-crd-scaledobjects.keda.sh.yaml @@ -1,3 +1,4 @@ +{{- if .Values.crds.install }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -331,4 +332,5 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] \ No newline at end of file + storedVersions: [] +{{- end -}} diff --git a/keda/crds/triggerauthentications.keda.sh.yaml b/keda/templates/05-crd-triggerauthentications.keda.sh.yaml similarity index 98% rename from keda/crds/triggerauthentications.keda.sh.yaml rename to keda/templates/05-crd-triggerauthentications.keda.sh.yaml index e11ef72f..4625ec8d 100644 --- a/keda/crds/triggerauthentications.keda.sh.yaml +++ b/keda/templates/05-crd-triggerauthentications.keda.sh.yaml @@ -1,3 +1,4 @@ +{{- if .Values.crds.install }} apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: @@ -147,4 +148,5 @@ status: kind: "" plural: "" conditions: [] - storedVersions: [] \ No newline at end of file + storedVersions: [] +{{- end -}} diff --git a/keda/values.yaml b/keda/values.yaml index 29b68b8e..3fc29dab 100644 --- a/keda/values.yaml +++ b/keda/values.yaml @@ -13,6 +13,9 @@ image: tag: pullPolicy: Always +crds: + install: true + watchNamespace: "" imagePullSecrets: [] diff --git a/samples/nginx-scaledobject.yml b/samples/nginx-scaledobject.yml new file mode 100644 index 00000000..5a63e97b --- /dev/null +++ b/samples/nginx-scaledobject.yml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: nginx + name: nginx +spec: + replicas: 1 + selector: + matchLabels: + app: nginx + strategy: {} + template: + metadata: + labels: + app: nginx + spec: + containers: + - image: nginx + name: nginx + resources: + requests: + memory: "64Mi" + cpu: "25m" + limits: + memory: "128Mi" + cpu: "50m" +--- +apiVersion: keda.sh/v1alpha1 +kind: ScaledObject +metadata: + name: nginx-autoscaling +spec: + scaleTargetRef: + name: nginx + minReplicaCount: 0 + maxReplicaCount: 5 + triggers: + - type: cpu + metadata: + type: Utilization + value: "70" \ No newline at end of file