From 62009773a63b9a149b259135d762102aedaae2b3 Mon Sep 17 00:00:00 2001 From: Adam Dobrawy Date: Wed, 26 Jan 2022 00:33:39 +0100 Subject: [PATCH] feat(helm): Add schema of values in Helm Chart (#18161) * Add schema of values in Helm Chart * chore(helm): bump our Chart version * Fix schema values in Helm Chart * fix(helm): fix relax required parameters for postgres & redis password, apply review comments --- helm/superset/Chart.yaml | 2 +- helm/superset/values.schema.json | 569 +++++++++++++++++++++++++++++++ helm/superset/values.yaml | 2 +- 3 files changed, 571 insertions(+), 2 deletions(-) create mode 100644 helm/superset/values.schema.json diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml index 1e0b13e3db77..7424f43b1ac2 100644 --- a/helm/superset/Chart.yaml +++ b/helm/superset/Chart.yaml @@ -22,7 +22,7 @@ maintainers: - name: craig-rueda email: craig@craigrueda.com url: https://github.com/craig-rueda -version: 0.5.4 +version: 0.5.5 dependencies: - name: postgresql version: 10.2.0 diff --git a/helm/superset/values.schema.json b/helm/superset/values.schema.json new file mode 100644 index 000000000000..13e695c22645 --- /dev/null +++ b/helm/superset/values.schema.json @@ -0,0 +1,569 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "additionalProperties": false, + "properties": { + "replicaCount": { + "type": "integer" + }, + "runAsUser": { + "type": "integer" + }, + "serviceAccount": { + "type": "object", + "additionalProperties": false, + "properties": { + "create": { + "type": "boolean" + } + }, + "required": [ + "create" + ] + }, + "bootstrapScript": { + "type": "string" + }, + "configFromSecret": { + "type": "string" + }, + "envFromSecret": { + "type": "string" + }, + "envFromSecrets": { + "type": "array" + }, + "extraEnv": { + "type": "object" + }, + "extraEnvRaw": { + "type": "array" + }, + "extraSecretEnv": { + "type": "object" + }, + "extraConfigs": { + "type": "object" + }, + "extraSecrets": { + "type": "object" + }, + "extraVolumes": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.apps.v1.PodSpec/properties/volumes" + }, + "extraVolumeMounts": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.apps.v1.PodSpec/properties/volumeMounts" + }, + "configOverrides": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": { + "extend_timeout": { + "type": "string" + }, + "enable_oauth": { + "type": "string" + } + } + }, + "configOverridesFiles": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": { + "extend_timeout": { + "type": "string" + }, + "enable_oauth": { + "type": "string" + } + } + }, + "configMountPath": { + "type": "string" + }, + "extraConfigMountPath": { + "type": "string" + }, + "image": { + "type": "object", + "additionalProperties": false, + "properties": { + "repository": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "pullPolicy": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/imagePullPolicy" + } + }, + "required": [ + "repository", + "tag", + "pullPolicy" + ] + }, + "imagePullSecrets": { + "type": "array" + }, + "service": { + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.ServiceSpec/properties/type" + }, + "port": { + "type": "integer" + }, + "annotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "loadBalancerIP": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.ServiceSpec/properties/loadBalancerIP" + } + }, + "required": [ + "type", + "port" + ] + }, + "ingress": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "annotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "path": { + "type": "string" + }, + "pathType": { + "type": "string" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "tls": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "properties": { + "secretName": { + "type": "string" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "required": [ + "enabled", + "annotations", + "path", + "pathType", + "hosts", + "tls" + ] + }, + "resources": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/resources" + }, + "hostAliases": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.PodSpec/properties/hostAliases" + }, + "supersetNode": { + "type": "object", + "additionalProperties": false, + "properties": { + "command": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/command" + }, + "connections": { + "type": "object", + "additionalProperties": false, + "properties": { + "redis_host": { + "type": "string" + }, + "redis_port": { + "type": "string" + }, + "db_host": { + "type": "string" + }, + "db_port": { + "type": "string" + }, + "db_user": { + "type": "string" + }, + "db_pass": { + "type": "string" + }, + "db_name": { + "type": "string" + } + }, + "required": [ + "redis_host", + "redis_port", + "db_host", + "db_port", + "db_user", + "db_pass", + "db_name" + ] + }, + "env": { + "type": "object" + }, + "forceReload": { + "type": "boolean" + }, + "initContainers": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers" + }, + "deploymentAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + }, + "required": [ + "command", + "connections", + "env", + "forceReload" + ] + }, + "supersetWorker": { + "type": "object", + "additionalProperties": false, + "properties": { + "command": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/command" + }, + "forceReload": { + "type": "boolean" + }, + "initContainers": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers" + }, + "deploymentAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + }, + "required": [ + "command", + "forceReload" + ] + }, + "supersetCeleryBeat": { + "type": "object", + "additionalProperties": false, + "properties": { + "enabled": { + "type": "boolean" + }, + "command": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/command" + }, + "forceReload": { + "type": "boolean" + }, + "initContainers": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers" + }, + "deploymentAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + }, + "podAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + }, + "required": [ + "enabled", + "command", + "forceReload" + ] + }, + "init": { + "type": "object", + "additionalProperties": false, + "properties": { + "resources": { + "type": "object" + }, + "command": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.Container/properties/command" + }, + "enabled": { + "type": "boolean" + }, + "loadExamples": { + "type": "boolean" + }, + "createAdmin": { + "type": "boolean" + }, + "adminUser": { + "type": "object", + "additionalProperties": false, + "properties": { + "username": { + "type": "string" + }, + "firstname": { + "type": "string" + }, + "lastname": { + "type": "string" + }, + "email": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "username", + "firstname", + "lastname", + "email", + "password" + ] + }, + "initContainers": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers" + }, + "initscript": { + "type": "string" + }, + "podAnnotations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations" + } + }, + "required": [ + "resources", + "command", + "enabled", + "loadExamples", + "createAdmin", + "adminUser", + "initscript" + ] + }, + "postgresql": { + "type": "object", + "additionalProperties": true, + "properties": { + "enabled": { + "type": "boolean" + }, + "existingSecret": { + "type": [ + "string", + "null" + ] + }, + "existingSecretKey": { + "type": [ + "string", + "null" + ] + }, + "service": { + "type": "object", + "additionalProperties": true, + "properties": { + "port": { + "type": "integer" + } + }, + "required": [ + "port" + ] + }, + "postgresqlUsername": { + "type": "string" + }, + "postgresqlPassword": { + "type": "string" + }, + "postgresqlDatabase": { + "type": "string" + }, + "persistence": { + "type": "object", + "additionalProperties": true, + "properties": { + "enabled": { + "type": "boolean" + }, + "accessModes": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + } + }, + "required": [ + "enabled", + "accessModes" + ] + } + }, + "required": [ + "enabled", + "service", + "postgresqlUsername", + "postgresqlDatabase", + "persistence" + ] + }, + "redis": { + "type": "object", + "additionalProperties": true, + "properties": { + "enabled": { + "type": "boolean" + }, + "usePassword": { + "type": "boolean" + }, + "existingSecret": { + "type": [ + "string", + "null" + ] + }, + "existingSecretKey": { + "type": [ + "string", + "null" + ] + }, + "password": { + "type": "string" + }, + "master": { + "type": "object", + "additionalProperties": true, + "properties": { + "persistence": { + "type": "object", + "additionalProperties": true, + "properties": { + "enabled": { + "type": "boolean" + }, + "accessModes": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + } + }, + "required": [ + "enabled", + "accessModes" + ] + } + }, + "required": [ + "persistence" + ] + }, + "cluster": { + "type": "object", + "additionalProperties": true, + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ] + } + }, + "required": [ + "enabled", + "usePassword", + "master", + "cluster" + ] + }, + "nodeSelector": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.apps.v1.PodSpec/properties/nodeSelector" + }, + "tolerations": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json##/definitions/io.k8s.api.apps.v1.PodSpec/properties/tolerations" + }, + "affinity": { + "$ref": "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.23.0/_definitions.json#/definitions/io.k8s.api.core.v1.Affinity" + } + }, + "required": [ + "replicaCount", + "runAsUser", + "serviceAccount", + "bootstrapScript", + "configFromSecret", + "envFromSecret", + "envFromSecrets", + "extraEnv", + "extraEnvRaw", + "extraSecretEnv", + "extraConfigs", + "extraSecrets", + "extraVolumes", + "extraVolumeMounts", + "configOverrides", + "configOverridesFiles", + "configMountPath", + "extraConfigMountPath", + "image", + "imagePullSecrets", + "service", + "ingress", + "resources", + "hostAliases", + "supersetNode", + "supersetWorker", + "supersetCeleryBeat", + "init", + "postgresql", + "redis", + "nodeSelector", + "tolerations", + "affinity" + ] +} diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml index e5eb9a5b3f4f..a30323f823aa 100644 --- a/helm/superset/values.yaml +++ b/helm/superset/values.yaml @@ -149,7 +149,7 @@ configOverrides: {} # # The default user self registration role # AUTH_USER_REGISTRATION_ROLE = "Admin" # Same as above but the values are files -configOverridesFiles: +configOverridesFiles: {} # extend_timeout: extend_timeout.py # enable_oauth: enable_oauth.py