diff --git a/index.yaml b/index.yaml index 6da403560..837d77bb3 100644 --- a/index.yaml +++ b/index.yaml @@ -8521,6 +8521,26 @@ entries: urls: - https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-9225764cec1bde480b994bf4eeac6c1ff92e709d.tgz version: 1.0.0-9225764cec1bde480b994bf4eeac6c1ff92e709d + - annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/README.md + application.giantswarm.io/team: turtles + application.giantswarm.io/values-schema: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/values.schema.json + ui.giantswarm.io/logo: https://raw.githubusercontent.com/kedacore/keda/main/images/keda-logo-500x500-white.png + apiVersion: v2 + appVersion: 2.11.2 + created: "2025-01-16T06:31:07.142951394Z" + description: Event-based autoscaler for workloads on Kubernetes + digest: 6145f473c3801b52261dd83e11e03e0305ca8aadc72fa46d429d6a9da9d09eb7 + home: https://github.com/giantswarm/keda-app + icon: https://raw.githubusercontent.com/kedacore/keda/main/images/keda-logo-500x500-white.png + kubeVersion: '>=v1.25.0-0' + name: keda + sources: + - https://github.com/kedacore/keda + urls: + - https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz + version: 1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d - annotations: application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-2ddb231e9a5e4d2fbcd90b1001fc4cc2a151b583.tgz-meta/main.yaml application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-2ddb231e9a5e4d2fbcd90b1001fc4cc2a151b583.tgz-meta/README.md @@ -16446,4 +16466,4 @@ entries: urls: - https://giantswarm.github.io/giantswarm-test-catalog/zot-2.0.1-0e14abfd878d83639c1853526778e188e9110c5d.tgz version: 2.0.1-0e14abfd878d83639c1853526778e188e9110c5d -generated: "2025-01-16T06:30:46.622008249Z" +generated: "2025-01-16T06:31:07.136803673Z" diff --git a/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz new file mode 100644 index 000000000..81f07c87a Binary files /dev/null and b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz differ diff --git a/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/README.md b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/README.md new file mode 100644 index 000000000..1d68aa616 --- /dev/null +++ b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/README.md @@ -0,0 +1,63 @@ +[![CircleCI](https://circleci.com/gh/giantswarm/keda-app.svg?style=shield)](https://circleci.com/gh/giantswarm/keda-app) + +# keda chart + +Giant Swarm offers a keda App which can be installed in workload clusters. + +## Installing + +There are several ways to install this app onto a workload cluster. + +- [Using our web interface](https://docs.giantswarm.io/ui-api/web/app-platform/#installing-an-app). +- By creating an [App resource](https://docs.giantswarm.io/ui-api/management-api/crd/apps.application.giantswarm.io/) in the management cluster as explained in [Getting started with App Platform](https://docs.giantswarm.io/app-platform/getting-started/). + +## Upgrading keda version + +The content of the `helm` folder are being generated by the `make` target called `make update-chart`. + +This target uses [`vendir`](https://carvel.dev/vendir/) to fetch the helm chart contained in [the fork of the keda repository that we maintain](https://github.com/giantswarm/keda-upstream). +Currently, the state is the following: +- the `giantswarm/v2.14.x` branch on the fork contains latest upstream release `v2.14.x`, with our custom changes on top unreleased yet (TO BE 4.x) which is compatible with kubernetes 1.28 up to 1.30. +- the `giantswarm/v2.13.x` branch on the fork contains latest upstream release `v2.13.x`, with our custom changes on top unreleased yet (TO BE 3.x) which is compatible with kubernetes 1.27 up to 1.29. +- the `giantswarm/v2.12.x` branch on the fork contains latest upstream release `v2.12.x`, with our custom changes on top unreleased yet (TO BE 2.x) which is compatible with kubernetes 1.26 up to 1.28. +- the `giantswarm/v2.11.x` branch contains latest upstream release `v2.11.x`, with our custom changes on top released in keda-app 1.x which is compatible with kubernetes 1.25 up to 1.27. +- the `giantswarm/v2.10.x` branch contains latest upstream release `v2.10.x`, with our custom changes on top released in keda-app 0.x which is compatible with kubernetes 1.24 up to 1.26. + +### Major or minor version upgrade + +If you want to upgrade this keda-app to use a newer version of keda, you need to prepare our fork first. + +In `keda-upstream`: + +1. You need to create a new branch for the previous version (e.g. `giantswarm/v2.12.x` for upstream release `v2.12.x` using `git checkout v2.12.x -b giantswarm/v2.12.x`) and then `cherry-pick` our changes from `main` into it or create the release branch from main (`git checkout main -b giantswarm/v2.12.x`) +2. Update the `main branch` to reflect latest upstream changes (sync fork should suffice). +3. Apply our custom changes on top of that new branch. You can use `cherry-pick` for that. + +In `keda-app`: + +4. Run the make target `APPLICATION=keda make update-chart && helm-docs helm/keda` +5. Update schema: `helm schema-gen helm/keda/values.yaml > helm/keda/values.schema.json` +6. Create a new pull request in `keda-app` with the generated changes. +If you need further customizations, you can keep adding commits on the new `keda-upstream` branch, and re-run `APPLICATION=keda make update-chart && helm-docs helm/keda` to update the generated files. +Do not forget to review this README. +7. Merge the changes in `keda-app` once you're happy with the changes and you've tested it works in a workload cluster. +8. Release a new major version of our `keda app` + +### Patch version upgrade + +If you want to upgrade this keda-app to use a newer version of keda, you need to prepare our fork first. + +In `keda-upstream`: + +1. Go the the branch of the version you want to patch (e.g. `giantswarm/v2.10.x`). +2. Fetch latest tags from upstream: `git fetch --tags upstream` with upstream pointing to the upstream keda repository +3. Rebase the upstream tag (`git rebase -i `) + +In `keda-app`: + +4. Run the make target `APPLICATION=keda make update-chart && helm-docs helm/keda` in the correct release branch (`0.x for keda 2.10`) +5. Update schema: `helm schema-gen helm/keda/values.yaml > helm/keda/values.schema.json` +6. Create a new pull request in `keda-app` with the generated changes. +If you need further customizations, you can keep adding commits on the new `keda-upstream` branch, and re-run `APPLICATION=keda make update-chart && helm-docs helm/keda` to update the generated files. +7. Merge the changes in `keda-app` once you're happy with the changes and you've tested it works in a workload cluster. +8. Release a new major version of our `keda app` diff --git a/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/main.yaml b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/main.yaml new file mode 100644 index 000000000..83dd2277a --- /dev/null +++ b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/main.yaml @@ -0,0 +1,12 @@ +annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/README.md + application.giantswarm.io/team: turtles + application.giantswarm.io/values-schema: https://giantswarm.github.io/giantswarm-test-catalog/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/values.schema.json + ui.giantswarm.io/logo: https://raw.githubusercontent.com/kedacore/keda/main/images/keda-logo-500x500-white.png +chartApiVersion: v2 +chartFile: keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz +dateCreated: '2025-01-16T06:31:01.552581Z' +digest: 6145f473c3801b52261dd83e11e03e0305ca8aadc72fa46d429d6a9da9d09eb7 +home: https://github.com/giantswarm/keda-app +icon: https://raw.githubusercontent.com/kedacore/keda/main/images/keda-logo-500x500-white.png diff --git a/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/values.schema.json b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/values.schema.json new file mode 100644 index 000000000..be68f893a --- /dev/null +++ b/keda-1.0.0-4c6ac7cfd37af8c23552258e273b1209eedfde1d.tgz-meta/values.schema.json @@ -0,0 +1,1345 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "additionalAnnotations": { + "type": "object" + }, + "additionalLabels": { + "type": "object" + }, + "affinity": { + "type": "object", + "properties": { + "podAntiAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "type": "object", + "properties": { + "labelSelector": { + "type": "object", + "properties": { + "matchExpressions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "topologyKey": { + "type": "string" + } + } + } + } + } + } + } + }, + "asciiArt": { + "type": "boolean" + }, + "certificates": { + "type": "object", + "properties": { + "autoGenerated": { + "type": "boolean" + }, + "certManager": { + "type": "object", + "properties": { + "caSecretName": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "generateCA": { + "type": "boolean" + }, + "secretTemplate": { + "type": "object" + } + } + }, + "mountPath": { + "type": "string" + }, + "secretName": { + "type": "string" + } + } + }, + "clusterDomain": { + "type": "string" + }, + "crds": { + "type": "object", + "properties": { + "install": { + "type": "boolean" + } + } + }, + "env": { + "type": "array" + }, + "extraArgs": { + "type": "object", + "properties": { + "keda": { + "type": "object" + }, + "metricsAdapter": { + "type": "object" + } + } + }, + "extraObjects": { + "type": "array" + }, + "global": { + "type": "object", + "properties": { + "image": { + "type": "object", + "properties": { + "registry": { + "type": "string" + } + } + } + } + }, + "grpcTLSCertsSecret": { + "type": "string" + }, + "hashiCorpVaultTLS": { + "type": "string" + }, + "http": { + "type": "object", + "properties": { + "keepAlive": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "minTlsVersion": { + "type": "string" + }, + "timeout": { + "type": "integer" + } + } + }, + "image": { + "type": "object", + "properties": { + "keda": { + "type": "object", + "properties": { + "registry": { + "type": "null" + }, + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "metricsApiServer": { + "type": "object", + "properties": { + "registry": { + "type": "null" + }, + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "pullPolicy": { + "type": "string" + }, + "webhooks": { + "type": "object", + "properties": { + "registry": { + "type": "null" + }, + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + } + } + }, + "imagePullSecrets": { + "type": "array" + }, + "logging": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "level": { + "type": "integer" + } + } + }, + "operator": { + "type": "object", + "properties": { + "format": { + "type": "string" + }, + "level": { + "type": "string" + }, + "timeEncoding": { + "type": "string" + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "format": { + "type": "string" + }, + "level": { + "type": "string" + }, + "timeEncoding": { + "type": "string" + } + } + } + } + }, + "metricsServer": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "podAntiAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "type": "object", + "properties": { + "labelSelector": { + "type": "object", + "properties": { + "matchExpressions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "topologyKey": { + "type": "string" + } + } + } + } + } + } + } + }, + "dnsPolicy": { + "type": "string" + }, + "replicaCount": { + "type": "integer" + }, + "useHostNetwork": { + "type": "boolean" + } + } + }, + "networkPolicy": { + "type": "object", + "properties": { + "cilium": { + "type": "object", + "properties": { + "operator": { + "type": "object", + "properties": { + "extraEgressRules": { + "type": "array" + } + } + } + } + }, + "enabled": { + "type": "boolean" + }, + "flavor": { + "type": "string" + } + } + }, + "nodeSelector": { + "type": "object" + }, + "operator": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "podAntiAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "type": "object", + "properties": { + "labelSelector": { + "type": "object", + "properties": { + "matchExpressions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "topologyKey": { + "type": "string" + } + } + } + } + } + } + } + }, + "name": { + "type": "string" + }, + "replicaCount": { + "type": "integer" + } + } + }, + "permissions": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "restrict": { + "type": "object", + "properties": { + "secret": { + "type": "boolean" + } + } + } + } + }, + "operator": { + "type": "object", + "properties": { + "restrict": { + "type": "object", + "properties": { + "secret": { + "type": "boolean" + } + } + } + } + } + } + }, + "podAnnotations": { + "type": "object", + "properties": { + "keda": { + "type": "object" + }, + "metricsAdapter": { + "type": "object" + }, + "webhooks": { + "type": "object" + } + } + }, + "podDisruptionBudget": { + "type": "object", + "properties": { + "metricServer": { + "type": "object" + }, + "operator": { + "type": "object" + }, + "webhooks": { + "type": "object" + } + } + }, + "podIdentity": { + "type": "object", + "properties": { + "activeDirectory": { + "type": "object", + "properties": { + "identity": { + "type": "string" + } + } + }, + "aws": { + "type": "object", + "properties": { + "irsa": { + "type": "object", + "properties": { + "audience": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "roleArn": { + "type": "string" + }, + "stsRegionalEndpoints": { + "type": "string" + }, + "tokenExpiration": { + "type": "integer" + } + } + } + } + }, + "azureWorkload": { + "type": "object", + "properties": { + "clientId": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "tenantId": { + "type": "string" + }, + "tokenExpiration": { + "type": "integer" + } + } + }, + "gcp": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "gcpIAMServiceAccount": { + "type": "string" + } + } + } + } + }, + "podLabels": { + "type": "object", + "properties": { + "keda": { + "type": "object" + }, + "metricsAdapter": { + "type": "object" + }, + "webhooks": { + "type": "object" + } + } + }, + "podSecurityContext": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "fsGroup": { + "type": "integer" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + } + } + }, + "operator": { + "type": "object", + "properties": { + "fsGroup": { + "type": "integer" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "fsGroup": { + "type": "integer" + }, + "runAsGroup": { + "type": "integer" + }, + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + } + } + } + } + }, + "priorityClassName": { + "type": "string" + }, + "prometheus": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "podMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "relabelings": { + "type": "array" + }, + "scrapeTimeout": { + "type": "string" + } + } + }, + "port": { + "type": "integer" + }, + "portName": { + "type": "string" + }, + "serviceMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "string" + }, + "jobLabel": { + "type": "string" + }, + "podTargetLabels": { + "type": "array" + }, + "port": { + "type": "string" + }, + "relabelings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "replacement": { + "type": "string" + }, + "targetLabel": { + "type": "string" + } + } + } + }, + "relabellings": { + "type": "array" + }, + "scrapeTimeout": { + "type": "string" + }, + "targetLabels": { + "type": "array" + }, + "targetPort": { + "type": "string" + } + } + } + } + }, + "operator": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "podMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "relabelings": { + "type": "array" + }, + "scrapeTimeout": { + "type": "string" + } + } + }, + "port": { + "type": "integer" + }, + "prometheusRules": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "alerts": { + "type": "array" + }, + "enabled": { + "type": "boolean" + }, + "namespace": { + "type": "string" + } + } + }, + "serviceMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "string" + }, + "jobLabel": { + "type": "string" + }, + "podTargetLabels": { + "type": "array" + }, + "port": { + "type": "string" + }, + "relabelings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "replacement": { + "type": "string" + }, + "targetLabel": { + "type": "string" + } + } + } + }, + "relabellings": { + "type": "array" + }, + "scrapeTimeout": { + "type": "string" + }, + "targetLabels": { + "type": "array" + }, + "targetPort": { + "type": "string" + } + } + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "port": { + "type": "integer" + }, + "prometheusRules": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "alerts": { + "type": "array" + }, + "enabled": { + "type": "boolean" + }, + "namespace": { + "type": "string" + } + } + }, + "serviceMonitor": { + "type": "object", + "properties": { + "additionalLabels": { + "type": "object" + }, + "enabled": { + "type": "boolean" + }, + "interval": { + "type": "string" + }, + "jobLabel": { + "type": "string" + }, + "podTargetLabels": { + "type": "array" + }, + "port": { + "type": "string" + }, + "relabelings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "replacement": { + "type": "string" + }, + "targetLabel": { + "type": "string" + } + } + } + }, + "relabellings": { + "type": "array" + }, + "scrapeTimeout": { + "type": "string" + }, + "targetLabels": { + "type": "array" + }, + "targetPort": { + "type": "string" + } + } + } + } + } + } + }, + "rbac": { + "type": "object", + "properties": { + "aggregateToDefaultRoles": { + "type": "boolean" + }, + "create": { + "type": "boolean" + } + } + }, + "resources": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "cpu": { + "type": "integer" + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + } + } + }, + "operator": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "cpu": { + "type": "integer" + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + } + } + } + } + }, + "securityContext": { + "type": "object", + "properties": { + "metricServer": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object", + "properties": { + "drop": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "seccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + } + } + }, + "operator": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object", + "properties": { + "drop": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "seccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object", + "properties": { + "drop": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "readOnlyRootFilesystem": { + "type": "boolean" + }, + "seccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + } + } + } + } + }, + "service": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "portHttps": { + "type": "integer" + }, + "portHttpsTarget": { + "type": "integer" + }, + "type": { + "type": "string" + } + } + }, + "serviceAccount": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + }, + "automountServiceAccountToken": { + "type": "boolean" + }, + "create": { + "type": "boolean" + }, + "name": { + "type": "string" + } + } + }, + "tolerations": { + "type": "array" + }, + "topologySpreadConstraints": { + "type": "object", + "properties": { + "metricsServer": { + "type": "array" + }, + "operator": { + "type": "array" + }, + "webhooks": { + "type": "array" + } + } + }, + "upgradeStrategy": { + "type": "object", + "properties": { + "metricsApiServer": { + "type": "object", + "properties": { + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "integer" + }, + "maxUnavailable": { + "type": "integer" + } + } + }, + "type": { + "type": "string" + } + } + }, + "operator": { + "type": "object", + "properties": { + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "integer" + }, + "maxUnavailable": { + "type": "integer" + } + } + }, + "type": { + "type": "string" + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "rollingUpdate": { + "type": "object", + "properties": { + "maxSurge": { + "type": "integer" + }, + "maxUnavailable": { + "type": "integer" + } + } + }, + "type": { + "type": "string" + } + } + } + } + }, + "verticalPodAutoscaler": { + "type": "object", + "properties": { + "keda": { + "type": "object", + "properties": { + "cpu": { + "type": "object", + "properties": { + "maxAllowed": { + "type": "integer" + }, + "minAllowed": { + "type": "string" + } + } + }, + "enabled": { + "type": "boolean" + }, + "memory": { + "type": "object", + "properties": { + "maxAllowed": { + "type": "string" + }, + "minAllowed": { + "type": "string" + } + } + } + } + }, + "metricsApiServer": { + "type": "object", + "properties": { + "cpu": { + "type": "object", + "properties": { + "maxAllowed": { + "type": "integer" + }, + "minAllowed": { + "type": "string" + } + } + }, + "enabled": { + "type": "boolean" + }, + "memory": { + "type": "object", + "properties": { + "maxAllowed": { + "type": "string" + }, + "minAllowed": { + "type": "string" + } + } + } + } + } + } + }, + "volumes": { + "type": "object", + "properties": { + "keda": { + "type": "object", + "properties": { + "extraVolumeMounts": { + "type": "array" + }, + "extraVolumes": { + "type": "array" + } + } + }, + "metricsApiServer": { + "type": "object", + "properties": { + "extraVolumeMounts": { + "type": "array" + }, + "extraVolumes": { + "type": "array" + } + } + }, + "webhooks": { + "type": "object", + "properties": { + "extraVolumeMounts": { + "type": "array" + }, + "extraVolumes": { + "type": "array" + } + } + } + } + }, + "watchNamespace": { + "type": "string" + }, + "webhooks": { + "type": "object", + "properties": { + "affinity": { + "type": "object", + "properties": { + "podAntiAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "type": "object", + "properties": { + "labelSelector": { + "type": "object", + "properties": { + "matchExpressions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "topologyKey": { + "type": "string" + } + } + } + } + } + } + } + }, + "enabled": { + "type": "boolean" + }, + "failurePolicy": { + "type": "string" + }, + "healthProbePort": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "port": { + "type": "string" + }, + "replicaCount": { + "type": "integer" + }, + "useHostNetwork": { + "type": "boolean" + } + } + } + } +}