mik-laj commented on a change in pull request #10664:
URL: https://github.com/apache/airflow/pull/10664#discussion_r483272219
##########
File path: chart/values.schema.json
##########
@@ -0,0 +1,1250 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema",
+ "description": "Default values for airflow. Declare variables to be passed
into your templates.",
+ "type": "object",
+ "properties": {
+ "uid": {
+ "description": "User of airflow user.",
+ "type": "integer"
+ },
+ "gid": {
+ "description": "Group of airflow user.",
+ "type": "integer"
+ },
+ "airflowHome": {
+ "description": "Airflow home directory. Used for mount paths.",
+ "type": "string"
+ },
+ "defaultAirflowRepository": {
+ "description": "Default airflow repository. Overrides all the
specific images below.",
+ "type": "string"
+ },
+ "defaultAirflowTag": {
+ "description": "Default airflow tag to deploy.",
+ "type": "string"
+ },
+ "nodeSelector": {
+ "description": "Select certain nodes for airflow pods.",
+ "type": "object"
+ },
+ "affinity": {
+ "description": "Select certain nodes for airflow pods.",
+ "type": "object"
+ },
+ "tolerations": {
+ "description": "Select certain nodes for airflow pods.",
+ "type": "array"
+ },
+ "labels": {
+ "description": "Add common labels to all objects and pods defined
in this chart.",
+ "type": "object"
+ },
+ "ingress": {
+ "description": "Ingress configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable ingress resource.",
+ "type": "boolean"
+ },
+ "web": {
+ "description": "Configuration for the Ingress of the web
Service.",
+ "type": "object",
+ "properties": {
+ "annotations": {
+ "description": "Annotations for the web Ingress.",
+ "type": "object"
+ },
+ "path": {
+ "description": "The path for the web Ingress.",
+ "type": "string"
+ },
+ "host": {
+ "description": "The hostname for the web Ingress.",
+ "type": "string"
+ },
+ "tls": {
+ "description": "Configuration for web Ingress
TLS.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable TLS termination for
the web Ingress.",
+ "type": "boolean"
+ },
+ "secretName": {
+ "description": "The name of a pre-created
Secret containing a TLS private key and certificate.",
+ "type": "string"
+ }
+ }
+ },
+ "precedingPaths": {
+ "description": "HTTP paths to add to the web
Ingress before the default path.",
+ "type": "array"
+ },
+ "succeedingPaths": {
+ "description": "HTTP paths to add to the web
Ingress after the default path.",
+ "type": "array"
+ }
+ }
+ },
+ "flower": {
+ "description": "Configuration for the Ingress of the
flower Service.",
+ "type": "object",
+ "properties": {
+ "annotations": {
+ "description": "Annotations for the flower
Ingress.",
+ "type": "object"
+ },
+ "path": {
+ "description": "The path for the flower Ingress.",
+ "type": "string"
+ },
+ "host": {
+ "description": "The hostname for the flower
Ingress.",
+ "type": "string"
+ },
+ "tls": {
+ "description": "Configuration for flower Ingress
TLS.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable TLS termination for
the flower Ingress.",
+ "type": "boolean"
+ },
+ "secretName": {
+ "description": "The name of a pre-created
Secret containing a TLS private key and certificate.",
+ "type": "string"
+ }
+ }
+ },
+ "precedingPaths": {
+ "description": "HTTP paths to add to the flower
Ingress before the default path.",
+ "type": "array"
+ },
+ "succeedingPaths": {
+ "description": "HTTP paths to add to the flower
Ingress after the default path.",
+ "type": "array"
+ }
+ }
+ }
+ }
+ },
+ "networkPolicies": {
+ "description": "Network policy configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enabled network policies.",
+ "type": "boolean"
+ }
+ }
+ },
+ "airflowPodAnnotations": {
+ "description": "Extra annotations to apply to all Airflow pods.",
+ "type": "object"
+ },
+ "rbacEnabled": {
+ "description": "Enable RBAC (default on most clusters these
days).",
+ "type": "boolean"
+ },
+ "executor": {
+ "description": "Airflow executor.",
+ "type": "string",
+ "enum": ["SequentialExecutor", "LocalExecutor", "CeleryExecutor",
"KubernetesExecutor"]
+ },
+ "allowPodLaunching": {
+ "description": "If this is true and using
LocalExecutor/SequentialExecutor/KubernetesExecutor, the scheduler's service
account will have access to communicate with the api-server and launch pods. If
this is true and using the CeleryExecutor, the workers will be able to launch
pods.",
+ "type": "boolean"
+ },
+ "images": {
+ "description": "Images.",
+ "type": "object",
+ "properties": {
+ "airflow": {
+ "description": "Configuration of the airflow image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The airflow image repository.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tag": {
+ "description": "The airflow image tag.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "pullPolicy": {
+ "description": "The airflow image pull policy.",
+ "type": "string"
+ }
+ }
+ },
+ "flower": {
+ "description": "Configuration of the flower image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The flower image repository.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "tag": {
+ "description": "The flower image tag.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "pullPolicy": {
+ "description": "The flower image pull policy.",
+ "type": "string"
+ }
+ }
+ },
+ "statsd": {
+ "description": "Configuration of the statsd image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The statsd image repository.",
+ "type": "string"
+ },
+ "tag": {
+ "description": "The statsd image tag.",
+ "type": "string"
+ },
+ "pullPolicy": {
+ "description": "The statsd image pull policy.",
+ "type": "string"
+ }
+ }
+ },
+ "redis": {
+ "description": "Configuration of the redis image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The redis image repository.",
+ "type": "string"
+ },
+ "tag": {
+ "description": "The redis image tag.",
+ "type": "string"
+ },
+ "pullPolicy": {
+ "description": "The redis image pull policy.",
+ "type": "string"
+ }
+ }
+ },
+ "pgbouncer": {
+ "description": "Configuration of the pgbouncer image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The pgbouncer image repository.",
+ "type": "string"
+ },
+ "tag": {
+ "description": "The pgbouncer image tag.",
+ "type": "string"
+ },
+ "pullPolicy": {
+ "description": "The pgbouncer image pull policy.",
+ "type": "string"
+ }
+ }
+ },
+ "pgbouncerExporter": {
+ "description": "Configuration of the pgbouncerExporter
image.",
+ "type": "object",
+ "properties": {
+ "repository": {
+ "description": "The pgbouncerExporter image
repository.",
+ "type": "string"
+ },
+ "tag": {
+ "description": "The pgbouncerExporter image tag.",
+ "type": "string"
+ },
+ "pullPolicy": {
+ "description": "The pgbouncerExporter image pull
policy.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "env": {
+ "description": "Environment variables for all airflow containers.",
+ "type": "array"
+ },
+ "secret": {
+ "description": "Secrets for all airflow containers.",
+ "type": "array"
+ },
+ "data": {
+ "description": "Airflow database configuration.",
+ "type": "object",
+ "properties": {
+ "metadataSecretName": {
+ "description": "Metadata connection string secret.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "resultBackendSecretName": {
+ "description": "Result backend connection string secret.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "metadataConnection": {
+ "description": "Metadata connection configuration.",
+ "type": "object",
+ "properties": {
+ "user": {
+ "description": "The database user.",
+ "type": "string"
+ },
+ "pass": {
+ "description": "The user's password.",
+ "type": "string"
+ },
+ "host": {
+ "description": "The database host.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "port": {
+ "description": "The database port.",
+ "type": "integer"
+ },
+ "db": {
+ "description": "The name of the database.",
+ "type": "string"
+ },
+ "sslmode": {
+ "description": "The database SSL parameter.",
+ "type": "string"
+ }
+ }
+ },
+ "resultBackendConnection": {
+ "description": "Result backend connection configuration.",
+ "type": "object",
+ "properties": {
+ "user": {
+ "description": "The database user.",
+ "type": "string"
+ },
+ "pass": {
+ "description": "The database password.",
+ "type": "string"
+ },
+ "host": {
+ "description": "The database host.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "port": {
+ "description": "The database port.",
+ "type": "integer"
+ },
+ "db": {
+ "description": "The name of the database.",
+ "type": "string"
+ },
+ "sslmode": {
+ "description": "The database SSL parameter.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "fernetKey": {
+ "description": "The Fernet key used to encrypt passwords.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fernetKeySecretName": {
+ "description": "The Fernet key secret name.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "workers": {
+ "description": "Airflow Worker configuration.",
+ "type": "object",
+ "properties": {
+ "replicas": {
+ "description": "Number of airflow celery workers in
StatefulSet.",
+ "type": "integer"
+ },
+ "keda": {
+ "description": "KEDA configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Allow KEDA autoscaling.
`Persistence.enabled` must be set to false to use KEDA.",
+ "type": "boolean"
+ },
+ "namespaceLabels": {
+ "type": "object"
+ },
+ "pollingInterval": {
+ "description": "How often KEDA polls the airflow
DB to report new scale requests to the HPA.",
+ "type": "integer"
+ },
+ "cooldownPeriod": {
+ "description": "How many seconds KEDA will wait
before scaling to zero.",
+ "type": "integer"
+ },
+ "maxReplicaCount": {
+ "description": "Maximum number of workers created
by KEDA.",
+ "type": "integer"
+ }
+ }
+ },
+ "persistence": {
+ "description": "Persistence configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable persistent volumes.",
+ "type": "boolean"
+ },
+ "size": {
+ "description": "Volume size for worker
StatefulSet.",
+ "type": "string"
+ },
+ "storageClassName": {
+ "description": "If using a custom storageClass,
pass name ref to all StatefulSets here.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fixPermissions": {
+ "description": "Execute init container to chown
log directory. This is currently only needed in KinD, due to usage of
local-path provisioner.",
+ "type": "boolean"
+ }
+ }
+ },
+ "resources": {
+ "type": "object"
+ },
+ "terminationGracePeriodSeconds": {
+ "description": "Grace period for tasks to finish after
SIGTERM is sent from Kubernetes.",
+ "type": "integer"
+ },
+ "safeToEvict": {
+ "description": "This setting tells Kubernetes that it's ok
to evict when it wants to scale a node down.",
+ "type": "boolean"
+ }
+ }
+ },
+ "scheduler": {
+ "description": "Airflow scheduler settings.",
+ "type": "object",
+ "properties": {
+ "podDisruptionBudget": {
+ "description": "Scheduler pod disruption budget.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable pod disruption budget.",
+ "type": "boolean"
+ },
+ "config": {
+ "description": "Disruption budget configuration.",
+ "type": "object",
+ "properties": {
+ "maxUnavailable": {
+ "description": "Max unavailable pods for
scheduler.",
+ "type": "integer"
+ }
+ }
+ }
+ }
+ },
+ "resources": {
+ "type": "object"
+ },
+ "airflowLocalSettings": {
+ "description": "This setting can overwrite podMutation
setting.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeToEvict": {
+ "description": "This setting tells Kubernetes that its ok
to evict when it wants to scale a node down.",
+ "type": "boolean"
+ }
+ }
+ },
+ "webserver": {
+ "description": "Airflow webserver settings.",
+ "type": "object",
+ "properties": {
+ "livenessProbe": {
+ "description": "Liveness probe configuration.",
+ "type": "object",
+ "properties": {
+ "initialDelaySeconds": {
+ "description": "Webserver Liveness probe initial
delay.",
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "description": "Webserver Liveness probe timeout
seconds.",
+ "type": "integer"
+ },
+ "failureThreshold": {
+ "description": "Webserver Liveness probe failure
threshold.",
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "description": "Webserver Liveness probe period
seconds.",
+ "type": "integer"
+ }
+ }
+ },
+ "readinessProbe": {
+ "description": "Readiness probe configuration.",
+ "type": "object",
+ "properties": {
+ "initialDelaySeconds": {
+ "description": "Webserver Readiness probe initial
delay.",
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "description": "Webserver Readiness probe timeout
seconds.",
+ "type": "integer"
+ },
+ "failureThreshold": {
+ "description": "Webserver Readiness probe failure
threshold.",
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "description": "Webserver Readiness probe period
seconds.",
+ "type": "integer"
+ }
+ }
+ },
+ "replicas": {
+ "description": "How many Airflow webserver replicas should
run.",
+ "type": "integer"
+ },
+ "extraNetworkPolicies": {
+ "description": "Additional network policies as needed.",
+ "type": "array"
+ },
+ "resources": {
+ "type": "object"
+ },
+ "defaultUser": {
+ "description": "Optional default airflow user information",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable default user creation.",
+ "type": "boolean"
+ },
+ "role": {
+ "description": "Default user role.",
+ "type": "string"
+ },
+ "username": {
+ "description": "Default user username.",
+ "type": "string"
+ },
+ "email": {
+ "description": "Default user email address.",
+ "type": "string"
+ },
+ "firstName": {
+ "description": "Default user firstname.",
+ "type": "string"
+ },
+ "lastName": {
+ "description": "Default user lastname.",
+ "type": "string"
+ },
+ "password": {
+ "description": "Default user password.",
+ "type": "string"
+ }
+ }
+ },
+ "extraVolumes": {
+ "description": "Mount additional volumes into webserver.",
+ "type": "array"
+ },
+ "extraVolumeMounts": {
+ "description": "Mount additional volumes into webserver.",
+ "type": "array"
+ },
+ "webserverConfig": {
+ "description": "This will be mounted into the Airflow
Webserver as a custom `webserver_config.py`. You can bake a
`webserver_config.py` in to your image instead.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "service": {
+ "description": "Webserver service configuration.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Webserver service type.",
+ "type": "string"
+ },
+ "annotations": {
+ "description": "Annotations for the webserver
service.",
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "flower": {
+ "description": "Flower settings.",
+ "type": "object",
+ "properties": {
+ "extraNetworkPolicies": {
+ "description": "Additional network policies as needed.",
+ "type": "array"
+ },
+ "resources": {
+ "type": "object"
+ },
+ "service": {
+ "description": "Flower service configuration.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "description": "Flower service type.",
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "statsd": {
+ "description": "Statsd settings.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable statsd.",
+ "type": "boolean"
+ },
+ "extraNetworkPolicies": {
+ "description": "Additional network policies as needed.",
+ "type": "array"
+ },
+ "resources": {
+ "type": "object"
+ },
+ "service": {
+ "description": "Statsd service configuration.",
+ "type": "object",
+ "properties": {
+ "extraAnnotations": {
+ "description": "Extra annotations for the statsd
service.",
+ "type": "object"
+ }
+ }
+ }
+ }
+ },
+ "pgbouncer": {
+ "description": "Pgbouncer settings.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable pgbouncer.",
+ "type": "boolean"
+ },
+ "extraNetworkPolicies": {
+ "description": "Additional network policies as needed.",
+ "type": "array"
+ },
+ "metadataPoolSize": {
+ "description": "Metadata pool size.",
+ "type": "integer"
+ },
+ "resultBackendPoolSize": {
+ "description": "Result backend pool size.",
+ "type": "integer"
+ },
+ "maxClientConn": {
+ "description": "Maximum clients that can connect to
pgbouncer (higher = more file descriptors).",
+ "type": "integer"
+ },
+ "podDisruptionBudget": {
+ "description": "Pgbouner pod disruption budget.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enabled pod distribution budget.",
+ "type": "boolean"
+ },
+ "config": {
+ "description": "Pod distribution configuration.",
+ "type": "object",
+ "properties": {
+ "maxUnavailable": {
+ "description": "Max unavailable pods for
pgbouncer.",
+ "type": "integer"
+ }
+ }
+ }
+ }
+ },
+ "resources": {
+ "type": "object"
+ },
+ "service": {
+ "description": "Pgbouncer service configuration.",
+ "type": "object",
+ "properties": {
+ "extraAnnotations": {
+ "description": "Extra annotations for the
pgbouncer service.",
+ "type": "object"
+ }
+ }
+ },
+ "verbose": {
+ "description": "Increase pgbouncer verbosity.",
+ "type": "integer"
+ },
+ "logDisconnections": {
+ "description": "Log disconnections with reasons.",
+ "type": "integer"
+ },
+ "logConnections": {
+ "description": "Log successful logins.",
+ "type": "integer"
+ }
+ }
+ },
+ "redis": {
+ "description": "",
+ "type": "object",
+ "properties": {
+ "terminationGracePeriodSeconds": {
+ "description": "Grace period for tasks to finish after
SIGTERM is sent from Kubernetes.",
+ "type": "integer"
+ },
+ "persistence": {
+ "description": "Persistence configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable persistent volumes.",
+ "type": "boolean"
+ },
+ "size": {
+ "description": "Volume size for worker
StatefulSet.",
+ "type": "string"
+ },
+ "storageClassName": {
+ "description": "If using a custom storageClass,
pass name ref to all StatefulSets here.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ }
+ },
+ "resources": {
+ "type": "object"
+ },
+ "passwordSecretName": {
+ "description": "Redis password secret.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "brokerURLSecretName": {
+ "description": "Redis broker URL secret.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "password": {
+ "description": "If password is set, create secret with it,
else generate a new one on install.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "safeToEvict": {
+ "description": "This setting tells Kubernetes that its ok
to evict when it wants to scale a node down.",
+ "type": "boolean"
+ }
+ }
+ },
+ "registry": {
+ "description": "Auth secret for a private registry. This is used
if pulling airflow images from a private registry.",
+ "type": "object",
+ "properties": {
+ "secretName": {
+ "description": "Registry connection string secret.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "connection": {
+ "description": "Registry connection configuration.",
+ "type": "object"
+ }
+ }
+ },
+ "elasticsearch": {
+ "description": "Elasticsearch logging configuration.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable elasticsearch task logging.",
+ "type": "boolean"
+ },
+ "secretName": {
+ "description": "A secret containing the connection
string.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "connection": {
+ "description": "Elasticsearch connection configuration.",
+ "type": "object"
+ }
+ }
+ },
+ "ports": {
+ "description": "All ports used by chart.",
+ "type": "object",
+ "properties": {
+ "flowerUI": {
+ "description": "Flower UI port.",
+ "type": "integer"
+ },
+ "airflowUI": {
+ "description": "Airflow UI port.",
+ "type": "integer"
+ },
+ "workerLogs": {
+ "description": "Worker logs port.",
+ "type": "integer"
+ },
+ "redisDB": {
+ "description": "Redis port.",
+ "type": "integer"
+ },
+ "statsdIngest": {
+ "description": "Statsd ingest port.",
+ "type": "integer"
+ },
+ "statsdScrape": {
+ "description": "Statsd scrape port.",
+ "type": "integer"
+ },
+ "pgbouncer": {
+ "description": "Pgbouncer port.",
+ "type": "integer"
+ },
+ "pgbouncerScrape": {
+ "description": "Pgbouncer scrape port.",
+ "type": "integer"
+ }
+ }
+ },
+ "quotas": {
+ "description": "Define any ResourceQuotas for namespace.",
+ "type": "object"
+ },
+ "limits": {
+ "description": "Define default/max/min values for pods and
containers in namespace.",
+ "type": "array"
+ },
+ "podMutation": {
+ "description": "Settings for pod_mutation_hook",
+ "type": "object",
+ "properties": {
+ "tolerations": {
+ "description": "Tolerations provided here would be applied
using pod_mutation_hook. So any pods spun up using KubernetesExecutor or
KubernetesPodOperator will contain these tolerations.",
+ "type": "array"
+ },
+ "affinity": {
+ "description": "Pods spun up would land in the node that
matches the affinity.",
+ "type": "object"
+ }
+ }
+ },
+ "cleanup": {
+ "description": "This runs as a CronJob to cleanup old pods.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable cleanup.",
+ "type": "boolean"
+ },
+ "schedule": {
+ "description": "Cleanup schedule.",
+ "type": "string"
+ }
+ }
+ },
+ "postgresql": {
+ "description": "Configuration for postgresql subchart.",
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "description": "Enable postgresql subchart.",
+ "type": "boolean"
+ },
+ "postgresqlPassword": {
+ "description": "Postgresql password.",
+ "type": "string"
+ },
+ "postgresqlUsername": {
+ "description": "Postgresql username.",
+ "type": "string"
+ }
+ }
+ },
+ "config": {
+ "description": "Settings to go into the mounted airflow.cfg",
+ "type": "object",
+ "properties": {
+ "core": {
+ "type": "object",
+ "properties": {
+ "dags_folder": {
+ "type": "string"
+ },
+ "load_examples": {
+ "type": "string"
+ },
+ "colored_console_log": {
+ "type": "string"
+ },
+ "executor": {
+ "type": "string"
+ },
+ "remote_logging": {
+ "type": "string"
+ }
+ }
+ },
+ "api": {
+ "type": "object",
+ "properties": {
+ "auth_backend": {
+ "type": "string"
+ }
+ }
+ },
+ "logging": {
+ "type": "object",
+ "properties": {
+ "logging_level": {
+ "type": "string"
+ }
+ }
+ },
+ "webserver": {
+ "type": "object",
+ "properties": {
+ "enable_proxy_fix": {
+ "type": "string"
+ },
+ "expose_config": {
+ "type": "string"
+ },
+ "rbac": {
+ "type": "string"
+ }
+ }
+ },
+ "celery": {
+ "type": "object",
+ "properties": {
+ "default_queue": {
+ "type": "string"
+ }
+ }
+ },
+ "scheduler": {
+ "type": "object",
+ "properties": {
+ "scheduler_heartbeat_sec": {
+ "type": "integer"
+ },
+ "statsd_on": {
+ "type": "string"
+ },
+ "statsd_port": {
+ "type": "integer"
+ },
+ "statsd_prefix": {
+ "type": "string"
+ },
+ "statsd_host": {
+ "type": "string"
+ },
+ "run_duration": {
+ "type": "integer"
+ }
+ }
+ },
+ "elasticsearch": {
+ "type": "object",
+ "properties": {
+ "json_format": {
+ "type": "string"
+ },
+ "log_id_template": {
+ "type": "string"
+ }
+ }
+ },
+ "elasticsearch_configs": {
+ "type": "object",
+ "properties": {
+ "max_retries": {
+ "type": "integer"
+ },
+ "timeout": {
+ "type": "integer"
+ },
+ "retry_timeout": {
+ "type": "string"
+ }
+ }
+ },
+ "kubernetes": {
+ "type": "object",
+ "properties": {
+ "namespace": {
+ "type": "string"
+ },
+ "airflow_configmap": {
+ "type": "string"
+ },
+ "airflow_local_settings_configmap": {
+ "type": "string"
+ },
+ "worker_container_repository": {
+ "type": "string"
+ },
+ "worker_container_tag": {
+ "type": "string"
+ },
+ "worker_container_image_pull_policy": {
+ "type": "string"
+ },
+ "worker_service_account_name": {
+ "type": "string"
+ },
+ "image_pull_secrets": {
+ "type": "string"
+ },
+ "dags_in_image": {
+ "type": "string"
+ },
+ "delete_worker_pods": {
+ "type": "string"
+ },
+ "run_as_user": {
+ "type": "string"
+ },
+ "fs_group": {
+ "type": "string"
+ },
+ "git_dags_folder_mount_point": {
+ "type": "string"
+ },
+ "dags_volume_mount_point": {
+ "type": "string"
+ },
+ "dags_volume_claim": {
+ "type": "string"
+ },
+ "dags_volume_subpath": {
+ "type": "string"
+ },
+ "git_repo": {
+ "type": "string"
+ },
+ "git_branch": {
+ "type": "string"
+ },
+ "git_sync_rev": {
+ "type": "string"
+ },
+ "git_sync_depth": {
+ "type": "string"
+ },
+ "git_sync_root": {
+ "type": "string"
+ },
+ "git_sync_dest": {
+ "type": "string"
+ },
+ "git_sync_container_repository": {
+ "type": "string"
+ },
+ "git_sync_container_tag": {
+ "type": "string"
+ },
+ "git_sync_init_container_name": {
+ "type": "string"
+ },
+ "git_sync_run_as_user": {
+ "type": "string"
+ },
+ "git_ssh_known_hosts_configmap_name": {
+ "type": "string"
+ },
+ "git_ssh_key_secret_name": {
+ "type": "string"
+ },
+ "git_sync_credentials_secret": {
+ "type": "string"
+ }
+ }
+ },
+ "kubernetes_secrets": {
+ "type": "object",
+ "properties": {
Review comment:
It should be a map of string/string.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]