Repository for dip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
service-catalog/manifests/helm/mlflow/1.9.0/values.schema.json

2430 lines
77 KiB

{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"affinity": {
"additionalProperties": true,
"description": "For more information checkout: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity",
"required": [],
"title": "affinity",
"type": "object"
},
"artifactRoot": {
"additionalProperties": false,
"properties": {
"defaultArtifactRoot": {
"default": "./mlruns",
"description": "Specifies the default artifact root.",
"required": [],
"title": "defaultArtifactRoot",
"type": "string"
},
"defaultArtifactsDestination": {
"default": "./mlartifacts",
"description": "Specifies the default artifacts destination",
"required": [],
"title": "defaultArtifactsDestination",
"type": "string"
},
"azureBlob": {
"additionalProperties": false,
"properties": {
"accessKey": {
"default": "",
"description": "Azure Cloud Storage Account Access Key for the container",
"required": [],
"title": "accessKey",
"type": "string"
},
"connectionString": {
"default": "",
"description": "Azure Cloud Connection String for the container. Only connectionString or accessKey required",
"required": [],
"title": "connectionString",
"type": "string"
},
"container": {
"default": "",
"description": "Azure blob container name",
"required": [],
"title": "container",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use Azure Blob Storage Mlflow Artifact Root",
"required": [],
"title": "enabled",
"type": "boolean"
},
"path": {
"default": "",
"description": "Azure blob container folder. If you want to use root level, please don't set anything.",
"required": [],
"title": "path",
"type": "string"
},
"storageAccount": {
"default": "",
"description": "Azure storage account name",
"required": [],
"title": "storageAccount",
"type": "string"
}
},
"required": [
"enabled",
"container",
"storageAccount",
"path",
"connectionString",
"accessKey"
],
"title": "azureBlob",
"type": "object"
},
"gcs": {
"additionalProperties": false,
"properties": {
"bucket": {
"default": "",
"description": "Google Cloud Storage bucket name",
"required": [],
"title": "bucket",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use Google Cloud Storage Mlflow Artifact Root",
"required": [],
"title": "enabled",
"type": "boolean"
},
"path": {
"default": "",
"description": "Google Cloud Storage bucket folder. If you want to use root level, please don't set anything.",
"required": [],
"title": "path",
"type": "string"
}
},
"required": ["enabled", "bucket", "path"],
"title": "gcs",
"type": "object"
},
"proxiedArtifactStorage": {
"default": false,
"description": "Specifies if you want to enable proxied artifact storage access",
"required": [],
"title": "proxiedArtifactStorage",
"type": "boolean"
},
"s3": {
"additionalProperties": false,
"properties": {
"awsAccessKeyId": {
"default": "",
"description": "AWS IAM user AWS_ACCESS_KEY_ID which has attached policy for access to the S3 bucket",
"required": [],
"title": "awsAccessKeyId",
"type": "string"
},
"awsSecretAccessKey": {
"default": "",
"description": "AWS IAM user AWS_SECRET_ACCESS_KEY which has attached policy for access to the S3 bucket",
"required": [],
"title": "awsSecretAccessKey",
"type": "string"
},
"existingSecret": {
"additionalProperties": false,
"type": "object",
"description": "Existing secret for AWS IAM user AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY secrets.",
"properties": {
"name": {
"default": "",
"description": "This is for setting up the AWS IAM user secrets existing secret name.",
"required": [],
"title": "name",
"type": "string"
},
"keyOfAccessKeyId": {
"default": "",
"description": "This is for setting up the key for AWS_ACCESS_KEY_ID secret. If it's set, awsAccessKeyId will be ignored.",
"required": [],
"title": "keyOfAccessKeyId",
"type": "string"
},
"keyOfSecretAccessKey": {
"default": "",
"description": "This is for setting up the key for AWS_SECRET_ACCESS_KEY secret. If it's set, awsSecretAccessKey will be ignored.",
"required": [],
"title": "keyOfSecretAccessKey",
"type": "string"
}
},
"required": [
"name",
"keyOfAccessKeyId",
"keyOfSecretAccessKey"
]
},
"bucket": {
"default": "",
"description": "S3 bucket name",
"required": [],
"title": "bucket",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use AWS S3 Mlflow Artifact Root",
"required": [],
"title": "enabled",
"type": "boolean"
},
"path": {
"default": "",
"description": "S3 bucket folder. If you want to use root level, please don't set anything.",
"required": [],
"title": "path",
"type": "string"
}
},
"required": [
"enabled",
"bucket",
"path",
"awsAccessKeyId",
"awsSecretAccessKey",
"existingSecret"
],
"title": "s3",
"type": "object"
}
},
"required": ["proxiedArtifactStorage", "defaultArtifactRoot", "defaultArtifactsDestination", "azureBlob", "s3", "gcs"],
"title": "artifactRoot",
"type": "object"
},
"backendStore": {
"additionalProperties": false,
"properties": {
"defaultSqlitePath": {
"default": ":memory:",
"description": "Specifies the default sqlite path",
"required": [],
"title": "defaultSqlitePath",
"type": "string"
},
"databaseConnectionCheck": {
"default": false,
"description": "Add an additional init container, which checks for database availability",
"required": [],
"title": "databaseConnectionCheck",
"type": "boolean"
},
"databaseMigration": {
"default": false,
"description": "Specifies if you want to run database migration",
"required": [],
"title": "databaseMigration",
"type": "boolean"
},
"mysql": {
"additionalProperties": false,
"properties": {
"database": {
"default": "",
"description": "mlflow database name created before in the mysql instance",
"required": [],
"title": "database",
"type": "string"
},
"driver": {
"default": "pymysql",
"description": "mysql database connection driver. e.g.: \"pymysql\"",
"required": [],
"title": "driver",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use mysql backend storage",
"required": [],
"title": "enabled",
"type": "boolean"
},
"host": {
"default": "",
"description": "MySQL host address. e.g. your Amazon RDS for MySQL",
"required": [],
"title": "host",
"type": "string"
},
"password": {
"default": "",
"description": "mysql database user password which can access to mlflow database",
"required": [],
"title": "password",
"type": "string"
},
"port": {
"default": 3306,
"description": "MySQL service port",
"required": [],
"title": "port",
"type": "integer"
},
"user": {
"default": "",
"description": "mysql database user name which can access to mlflow database",
"required": [],
"title": "user",
"type": "string"
}
},
"required": [
"enabled",
"host",
"port",
"database",
"user",
"password",
"driver"
],
"title": "mysql",
"type": "object"
},
"postgres": {
"additionalProperties": false,
"properties": {
"database": {
"default": "",
"description": "mlflow database name created before in the postgres instance",
"required": [],
"title": "database",
"type": "string"
},
"driver": {
"default": "",
"description": "postgres database connection driver. e.g.: \"psycopg2\"",
"required": [],
"title": "driver",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use postgres backend storage",
"required": [],
"title": "enabled",
"type": "boolean"
},
"host": {
"default": "",
"description": "Postgres host address. e.g. your RDS or Azure Postgres Service endpoint",
"required": [],
"title": "host",
"type": "string"
},
"password": {
"default": "",
"description": "postgres database user password which can access to mlflow database",
"required": [],
"title": "password",
"type": "string"
},
"port": {
"default": 5432,
"description": "Postgres service port",
"required": [],
"title": "port",
"type": "integer"
},
"user": {
"default": "",
"description": "postgres database user name which can access to mlflow database",
"required": [],
"title": "user",
"type": "string"
}
},
"required": [
"enabled",
"host",
"port",
"database",
"user",
"password",
"driver"
],
"title": "postgres",
"type": "object"
},
"mssql": {
"additionalProperties": false,
"properties": {
"database": {
"default": "",
"description": "mlflow database name created before in the mssql instance",
"required": [],
"title": "database",
"type": "string"
},
"driver": {
"default": "pymssql",
"description": "mssql database connection driver. e.g.: \"pymssql\"",
"required": [],
"title": "driver",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to use mssql backend storage",
"required": [],
"title": "enabled",
"type": "boolean"
},
"host": {
"default": "",
"description": "mssql host address",
"required": [],
"title": "host",
"type": "string"
},
"password": {
"default": "",
"description": "mssql database user password which can access to mlflow database",
"required": [],
"title": "password",
"type": "string"
},
"port": {
"default": 1433,
"description": "mssql service port",
"required": [],
"title": "port",
"type": "integer"
},
"user": {
"default": "",
"description": "mssql database user name which can access to mlflow database",
"required": [],
"title": "user",
"type": "string"
}
},
"required": [
"enabled",
"host",
"port",
"database",
"user",
"password",
"driver"
],
"title": "mssql",
"type": "object"
},
"existingDatabaseSecret": {
"additionalProperties": false,
"type": "object",
"description": "Specifies if you want to use an existing database secret.",
"properties": {
"name": {
"default": "",
"description": "The name of the existing database secret.",
"required": [],
"title": "name",
"type": "string"
},
"usernameKey": {
"default": "username",
"description": "The key of the username in the existing database secret.",
"required": [],
"title": "usernameKey",
"type": "string"
},
"passwordKey": {
"default": "password",
"description": "The key of the password in the existing database secret.",
"required": [],
"title": "passwordKey",
"type": "string"
}
},
"required": ["name", "usernameKey", "passwordKey"],
"title": "existingDatabaseSecret"
}
},
"required": [
"databaseMigration",
"databaseConnectionCheck",
"defaultSqlitePath",
"postgres",
"mysql",
"existingDatabaseSecret"
],
"title": "backendStore",
"type": "object"
},
"postgresql": {
"additionalProperties": true,
"description": "Bitnami PostgreSQL configuration",
"properties": {
"architecture": {
"default": "standalone",
"required": [],
"title": "architecture",
"type": "string"
},
"auth": {
"additionalProperties": true,
"properties": {
"database": {
"default": "mlflow",
"description": "The name of the PostgreSQL database.",
"required": [],
"title": "database",
"type": "string"
},
"password": {
"default": "",
"required": [],
"title": "password",
"type": "string"
},
"username": {
"default": "",
"required": [],
"title": "username",
"type": "string"
}
},
"required": ["username", "password", "database"],
"title": "auth",
"type": "object"
},
"enabled": {
"default": false,
"description": "Enable postgresql",
"required": [],
"title": "enabled",
"type": "boolean"
},
"primary": {
"additionalProperties": true,
"properties": {
"persistence": {
"additionalProperties": true,
"properties": {
"enabled": {
"default": true,
"required": [],
"title": "enabled",
"type": "boolean"
},
"existingClaim": {
"default": "",
"required": [],
"title": "existingClaim",
"type": "string"
}
},
"required": ["enabled", "existingClaim"],
"title": "persistence",
"type": "object"
},
"service": {
"additionalProperties": true,
"properties": {
"ports": {
"additionalProperties": true,
"properties": {
"postgresql": {
"default": 5432,
"required": [],
"title": "postgresql",
"type": "integer"
}
},
"required": ["postgresql"],
"title": "ports",
"type": "object"
}
},
"required": ["ports"],
"title": "service",
"type": "object"
}
},
"required": ["service", "persistence"],
"title": "primary",
"type": "object"
}
},
"required": ["enabled", "architecture", "primary", "auth"],
"title": "postgresql",
"type": "object"
},
"mysql": {
"additionalProperties": true,
"description": "Bitnami MySQL configuration",
"properties": {
"architecture": {
"default": "standalone",
"required": [],
"title": "architecture",
"type": "string"
},
"auth": {
"additionalProperties": true,
"properties": {
"database": {
"default": "mlflow",
"description": "The name of the MySQL database.",
"required": [],
"title": "database",
"type": "string"
},
"password": {
"default": "",
"required": [],
"title": "password",
"type": "string"
},
"username": {
"default": "",
"required": [],
"title": "username",
"type": "string"
}
},
"required": ["username", "password", "database"],
"title": "auth",
"type": "object"
},
"enabled": {
"default": false,
"description": "Enable mysql",
"required": [],
"title": "enabled",
"type": "boolean"
},
"primary": {
"additionalProperties": true,
"properties": {
"persistence": {
"additionalProperties": true,
"properties": {
"enabled": {
"default": true,
"required": [],
"title": "enabled",
"type": "boolean"
},
"existingClaim": {
"default": "",
"required": [],
"title": "existingClaim",
"type": "string"
}
},
"required": ["enabled", "existingClaim"],
"title": "persistence",
"type": "object"
},
"service": {
"additionalProperties": true,
"properties": {
"ports": {
"additionalProperties": true,
"properties": {
"mysql": {
"default": 3306,
"required": [],
"title": "mysql",
"type": "integer"
}
},
"required": ["mysql"],
"title": "ports",
"type": "object"
}
},
"required": ["ports"],
"title": "service",
"type": "object"
}
},
"required": ["service", "persistence"],
"title": "primary",
"type": "object"
}
},
"required": ["enabled", "architecture", "primary", "auth"],
"title": "mysql",
"type": "object"
},
"extraArgs": {
"additionalProperties": true,
"description": "A map of arguments and values to pass to the `mlflow server` command. Keys must be camelcase. Helm will turn them to kebabcase style.",
"properties": {
"workers": {
"default": "4",
"required": [],
"title": "workers",
"type": "string"
},
"staticPrefix": {
"default": "/mlflow",
"required": [],
"title": "staticPrefix",
"type": "string"
},
"gunicornOpts": {
"default": "",
"required": [],
"title": "gunicornOpts",
"type": "string"
},
"waitressOpts": {
"default": "",
"required": [],
"title": "waitressOpts",
"type": "string"
}
},
"required": [],
"title": "extraArgs",
"type": "object"
},
"extraContainers": {
"description": "Extra containers for the mlflow pod",
"items": {
"required": []
},
"required": [],
"title": "extraContainers",
"type": "array"
},
"extraEnvVars": {
"additionalProperties": true,
"description": "Extra environment variables",
"properties": {
"MLFLOW_S3_IGNORE_TLS": {
"default": "true",
"required": [],
"title": "MLFLOW_S3_IGNORE_TLS",
"type": ["boolean", "string"]
},
"MLFLOW_S3_UPLOAD_EXTRA_ARGS": {
"default": "{\"ServerSideEncryption\": \"aws:kms\", \"SSEKMSKeyId\": \"1234\"}",
"required": [],
"title": "MLFLOW_S3_UPLOAD_EXTRA_ARGS",
"type": ["object", "string"]
},
"AWS_DEFAULT_REGION": {
"default": "us-east-1",
"required": [],
"title": "AWS_DEFAULT_REGION",
"type": "string"
},
"MLFLOW_S3_ENDPOINT_URL": {
"default": "http://1.2.3.4:9000",
"required": [],
"title": "MLFLOW_S3_ENDPOINT_URL",
"type": "string"
},
"AWS_CA_BUNDLE": {
"default": "/some/ca/bundle.pem",
"required": [],
"title": "AWS_CA_BUNDLE",
"type": "string"
},
"MLFLOW_GCS_DEFAULT_TIMEOUT": {
"default": "60",
"description": "Sets the standard timeout for transfer operations in seconds (Default: 60). Use -1 for indefinite timeout.",
"required": [],
"title": "MLFLOW_GCS_DEFAULT_TIMEOUT",
"type": "string"
},
"MLFLOW_GCS_UPLOAD_CHUNK_SIZE": {
"default": "104857600",
"description": "Sets the standard upload chunk size for bigger files in bytes (Default: 104857600 ≙ 100MiB), must be multiple of 256 KB.",
"required": [],
"title": "MLFLOW_GCS_UPLOAD_CHUNK_SIZE",
"type": "string"
},
"MLFLOW_GCS_DOWNLOAD_CHUNK_SIZE": {
"default": "104857600",
"description": "Sets the standard download chunk size for bigger files in bytes (Default: 104857600 ≙ 100MiB), must be multiple of 256 K",
"required": [],
"title": "MLFLOW_GCS_DOWNLOAD_CHUNK_SIZE",
"type": "string"
}
},
"required": [],
"title": "extraEnvVars",
"type": "object"
},
"extraFlags": {
"description": "A list of flags to pass to `mlflow server` command\nItems must be camelcase. Helm will turn them to kebabcase style.",
"items": {
"required": []
},
"required": [],
"title": "extraFlags",
"type": "array"
},
"extraSecretNamesForEnvFrom": {
"description": "Extra secrets for environment variables",
"items": {
"required": []
},
"required": [],
"title": "extraSecretNamesForEnvFrom",
"type": "array"
},
"extraVolumeMounts": {
"description": "Extra Volume Mounts for the mlflow container",
"items": {
"required": []
},
"required": [],
"title": "extraVolumeMounts",
"type": "array"
},
"extraVolumes": {
"description": "Extra Volumes for the pod",
"items": {
"required": []
},
"required": [],
"title": "extraVolumes",
"type": "array"
},
"fullnameOverride": {
"default": "",
"description": "String to override the default generated fullname",
"required": [],
"title": "fullnameOverride",
"type": "string"
},
"global": {
"additionalProperties": true,
"description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.",
"required": [],
"title": "global",
"type": "object"
},
"image": {
"additionalProperties": false,
"description": "Image of mlflow",
"properties": {
"pullPolicy": {
"default": "IfNotPresent",
"description": "The docker image pull policy",
"required": [],
"title": "pullPolicy",
"type": "string",
"enum": ["IfNotPresent", "Never", "Always"]
},
"repository": {
"default": "burakince/mlflow",
"description": "The docker image repository to use",
"required": [],
"title": "repository",
"type": "string"
},
"tag": {
"default": "",
"description": "The docker image tag to use. Default app version",
"required": [],
"title": "tag",
"type": "string"
}
},
"required": ["repository", "pullPolicy", "tag"],
"title": "image",
"type": "object"
},
"initImages": {
"additionalProperties": false,
"description": "mlflow init images",
"properties": {
"dbchecker": {
"additionalProperties": false,
"description": "dbchecker init container image configuration",
"properties": {
"repository": {
"default": "busybox",
"description": "dbchecker init container image repository to use",
"required": [],
"title": "repository",
"type": "string"
},
"pullPolicy": {
"default": "IfNotPresent",
"description": "dbchecker init container image pull policy",
"required": [],
"title": "pullPolicy",
"type": "string",
"enum": ["IfNotPresent", "Never", "Always"]
},
"tag": {
"default": "1.32",
"description": "dbchecker init container image tag to use",
"required": [],
"title": "tag",
"type": "string"
}
},
"required": ["repository", "pullPolicy", "tag"],
"title": "dbchecker",
"type": "object"
},
"mlflowDbMigration": {
"additionalProperties": false,
"description": "mlflow-db-migration init container image configuration",
"properties": {
"repository": {
"default": "burakince/mlflow",
"description": "mlflow-db-migration init container image repository to use",
"required": [],
"title": "repository",
"type": "string"
},
"pullPolicy": {
"default": "IfNotPresent",
"description": "mlflow-db-migration init container image pull policy",
"required": [],
"title": "pullPolicy",
"type": "string",
"enum": ["IfNotPresent", "Never", "Always"]
},
"tag": {
"default": "",
"description": "mlflow-db-migration init container image tag to use. Default app version",
"required": [],
"title": "tag",
"type": "string"
}
},
"required": ["repository", "pullPolicy", "tag"],
"title": "mlflowDbMigration",
"type": "object"
},
"iniFileInitializer": {
"additionalProperties": false,
"description": "ini-file-initializer init container image configuration",
"properties": {
"repository": {
"default": "busybox",
"description": "ini-file-initializer init container image repository to use",
"required": [],
"title": "repository",
"type": "string"
},
"pullPolicy": {
"default": "IfNotPresent",
"description": "ini-file-initializer init container image pull policy",
"required": [],
"title": "pullPolicy",
"type": "string",
"enum": ["IfNotPresent", "Never", "Always"]
},
"tag": {
"default": "1.32",
"description": "ini-file-initializer init container image tag to use",
"required": [],
"title": "tag",
"type": "string"
}
},
"required": ["repository", "pullPolicy", "tag"],
"title": "iniFileInitializer",
"type": "object"
}
},
"required": ["dbchecker", "mlflowDbMigration", "iniFileInitializer"],
"title": "initImages",
"type": "object"
},
"imagePullSecrets": {
"description": "Image pull secrets for private docker registry usages",
"items": {
"required": []
},
"required": [],
"title": "imagePullSecrets",
"type": "array"
},
"ingress": {
"additionalProperties": false,
"properties": {
"annotations": {
"additionalProperties": true,
"description": "Additional ingress annotations",
"required": [],
"title": "annotations",
"type": "object"
},
"className": {
"default": "",
"description": "New style ingress class name. Only possible if you use K8s 1.18.0 or later version",
"required": [],
"title": "className",
"type": "string"
},
"enabled": {
"default": false,
"description": "Specifies if you want to create an ingress access",
"required": [],
"title": "enabled",
"type": "boolean"
},
"hosts": {
"description": "kubernetes.io/ingress.class: nginx\nkubernetes.io/tls-acme: \"true\"",
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"host": {
"default": "chart-example.local",
"required": [],
"title": "host",
"type": "string"
},
"paths": {
"items": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"path": {
"default": "/",
"required": [],
"title": "path",
"type": "string"
},
"pathType": {
"default": "ImplementationSpecific",
"description": "Ingress path type",
"required": [],
"title": "pathType",
"type": "string"
}
},
"required": ["path", "pathType"],
"type": "object"
}
],
"required": []
},
"required": [],
"title": "paths",
"type": "array"
}
},
"required": ["host", "paths"],
"type": "object"
}
],
"required": []
},
"required": [],
"title": "hosts",
"type": "array"
},
"tls": {
"description": "Ingress tls configuration for https access",
"items": {
"required": []
},
"required": [],
"title": "tls",
"type": "array"
}
},
"required": ["enabled", "className", "annotations", "hosts", "tls"],
"title": "ingress",
"type": "object"
},
"initContainers": {
"description": "Init Containers for Mlflow Pod",
"items": {
"required": []
},
"required": [],
"title": "initContainers",
"type": "array"
},
"livenessProbe": {
"additionalProperties": true,
"description": "Liveness probe configurations. Please look to [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes).",
"properties": {
"failureThreshold": {
"default": 5,
"required": [],
"title": "failureThreshold",
"type": "integer"
},
"initialDelaySeconds": {
"default": 10,
"required": [],
"title": "initialDelaySeconds",
"type": "integer"
},
"periodSeconds": {
"default": 30,
"required": [],
"title": "periodSeconds",
"type": "integer"
},
"timeoutSeconds": {
"default": 3,
"required": [],
"title": "timeoutSeconds",
"type": "integer"
}
},
"required": [],
"title": "livenessProbe",
"type": "object"
},
"nameOverride": {
"default": "",
"description": "String to override the default generated name",
"required": [],
"title": "nameOverride",
"type": "string"
},
"nodeSelector": {
"additionalProperties": true,
"description": "Set the node selector for the pod.",
"required": [],
"title": "nodeSelector",
"type": "object"
},
"podAnnotations": {
"additionalProperties": true,
"description": "Annotations for the pod",
"required": [],
"title": "podAnnotations",
"type": "object"
},
"extraPodLabels": {
"additionalProperties": true,
"description": "Extra labels for the pod",
"required": [],
"title": "extraPodLabels",
"type": "object"
},
"podSecurityContext": {
"additionalProperties": true,
"description": "Security context for all pod",
"properties": {
"runAsUser": {
"default": 1000,
"required": [],
"title": "runAsUser",
"type": "integer"
},
"runAsGroup": {
"default": 3000,
"required": [],
"title": "runAsGroup",
"type": "integer"
},
"fsGroup": {
"default": 2000,
"required": [],
"title": "fsGroup",
"type": "integer"
},
"supplementalGroups": {
"items": {
"required": []
},
"required": [],
"title": "runAsUser",
"type": "array"
},
"fsGroupChangePolicy": {
"default": "OnRootMismatch",
"required": [],
"title": "fsGroupChangePolicy",
"type": "string",
"enum": ["OnRootMismatch", "Always"]
}
},
"required": [],
"title": "podSecurityContext",
"type": "object"
},
"readinessProbe": {
"additionalProperties": true,
"description": "Readiness probe configurations. Please look to [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes).",
"properties": {
"failureThreshold": {
"default": 5,
"required": [],
"title": "failureThreshold",
"type": "integer"
},
"initialDelaySeconds": {
"default": 10,
"required": [],
"title": "initialDelaySeconds",
"type": "integer"
},
"periodSeconds": {
"default": 30,
"required": [],
"title": "periodSeconds",
"type": "integer"
},
"timeoutSeconds": {
"default": 3,
"required": [],
"title": "timeoutSeconds",
"type": "integer"
}
},
"required": [],
"title": "readinessProbe",
"type": "object"
},
"replicaCount": {
"default": 1,
"description": "Numbers of replicas",
"required": [],
"title": "replicaCount",
"type": "integer"
},
"resources": {
"additionalProperties": true,
"description": "This block is for setting up the resource management for the pod more information can be found here: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"properties": {
"limits": {
"additionalProperties": true,
"properties": {
"cpu": {
"default": "500m",
"required": [],
"title": "cpu",
"type": "string"
},
"memory": {
"default": "2Gi",
"required": [],
"title": "memory",
"type": "string"
}
},
"required": [],
"title": "limits",
"type": "object"
},
"requests": {
"additionalProperties": true,
"properties": {
"cpu": {
"default": "200m",
"required": [],
"title": "cpu",
"type": "string"
},
"memory": {
"default": "1Gi",
"required": [],
"title": "memory",
"type": "string"
}
},
"required": [],
"title": "requests",
"type": "object"
}
},
"required": [],
"title": "resources",
"type": "object"
},
"securityContext": {
"additionalProperties": true,
"description": "Security context for the mlflow container",
"properties": {
"allowPrivilegeEscalation": {
"default": false,
"required": [],
"title": "allowPrivilegeEscalation",
"type": "boolean"
},
"readOnlyRootFilesystem": {
"default": true,
"required": [],
"title": "readOnlyRootFilesystem",
"type": "boolean"
},
"runAsNonRoot": {
"default": true,
"required": [],
"title": "runAsNonRoot",
"type": "boolean"
},
"runAsUser": {
"default": 1000,
"required": [],
"title": "runAsUser",
"type": "integer"
},
"capabilities": {
"additionalProperties": true,
"properties": {
"drop": {
"items": {
"required": []
},
"required": [],
"title": "drop",
"type": "array"
},
"add": {
"items": {
"required": []
},
"required": [],
"title": "add",
"type": "array"
}
},
"required": [],
"title": "capabilities",
"type": "object"
}
},
"required": [],
"title": "securityContext",
"type": "object"
},
"service": {
"additionalProperties": false,
"properties": {
"enabled": {
"default": true,
"description": "Specifies if you want to create a service",
"required": [],
"title": "enabled",
"type": "boolean"
},
"annotations": {
"additionalProperties": true,
"description": "Additional service annotations",
"required": [],
"title": "annotations",
"type": "object"
},
"name": {
"default": "http",
"description": "Default Service name",
"required": [],
"title": "name",
"type": "string"
},
"port": {
"default": 5000,
"description": "Default Service port",
"required": [],
"title": "port",
"type": "integer"
},
"containerPort": {
"default": 5000,
"description": "Default container port",
"required": [],
"title": "containerPort",
"type": "integer"
},
"containerPortName": {
"default": "mlflow",
"description": "Default container port name",
"required": [],
"title": "containerPortName",
"type": "string"
},
"type": {
"default": "ClusterIP",
"description": "Specifies what type of Service should be created",
"required": [],
"title": "type",
"type": "string"
}
},
"required": ["enabled", "type", "port", "containerPort", "name", "containerPortName", "annotations"],
"title": "service",
"type": "object"
},
"log": {
"additionalProperties": true,
"description": "Mlflow logging settings",
"properties": {
"enabled": {
"default": true,
"description": "Specifies if you want to enable mlflow logging",
"required": [],
"title": "enabled",
"type": "boolean"
},
"level": {
"default": "info",
"description": "Mlflow logging level",
"required": [],
"title": "level",
"enum": ["debug", "info", "warning", "error", "critical"],
"type": "string"
}
},
"required": ["enabled", "level"],
"title": "log",
"type": "object"
},
"telemetry": {
"additionalProperties": false,
"type": "object",
"description": "Mlflow Usage Tracking settings. More information can be found here: https://mlflow.org/docs/latest/community/usage-tracking/",
"properties": {
"enabled": {
"default": false,
"description": "Specifies if you want to enable collecting anonymized usage data about how core features of the platform are used.",
"required": [],
"title": "enabled",
"type": "boolean"
}
},
"required": ["enabled"],
"title": "telemetry"
},
"serviceAccount": {
"additionalProperties": false,
"properties": {
"annotations": {
"additionalProperties": true,
"description": "Annotations to add to the service account. AWS EKS users can assign role arn from here.\nPlease find more information from here:\nhttps://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html",
"required": [],
"title": "annotations",
"type": "object"
},
"automount": {
"default": true,
"description": "Automatically mount a ServiceAccount's API credentials?",
"required": [],
"title": "automount",
"type": "boolean"
},
"create": {
"default": true,
"description": "Specifies whether a ServiceAccount should be created",
"required": [],
"title": "create",
"type": "boolean"
},
"name": {
"default": "",
"description": "The name of the ServiceAccount to use.\nIf not set and create is true, a name is generated using the fullname template",
"required": [],
"title": "name",
"type": "string"
}
},
"required": ["create", "automount", "annotations", "name"],
"title": "serviceAccount",
"type": "object"
},
"serviceMonitor": {
"additionalProperties": false,
"properties": {
"enabled": {
"default": false,
"description": "When set true then use a ServiceMonitor to configure scraping",
"required": [],
"title": "enabled",
"type": "boolean"
},
"interval": {
"default": "30s",
"description": "Set how frequently Prometheus should scrape",
"required": [],
"title": "interval",
"type": "string"
},
"labels": {
"additionalProperties": true,
"description": "Set labels for the ServiceMonitor, use this to define your scrape label for Prometheus Operator",
"properties": {
"release": {
"default": "prometheus",
"required": [],
"title": "release",
"type": "string"
}
},
"required": [],
"title": "labels",
"type": "object"
},
"metricRelabelings": {
"description": "Set of rules to relabel your exist metric labels",
"items": {
"required": []
},
"required": [],
"title": "metricRelabelings",
"type": "array"
},
"namespace": {
"default": "monitoring",
"description": "Set the namespace the ServiceMonitor should be deployed",
"required": [],
"title": "namespace",
"type": "string"
},
"targetLabels": {
"description": "Set of labels to transfer on the Kubernetes Service onto the target.",
"items": {
"required": []
},
"required": [],
"title": "targetLabels",
"type": "array"
},
"telemetryPath": {
"default": "/metrics",
"description": "Set path to mlflow telemetry-path",
"required": [],
"title": "telemetryPath",
"type": "string"
},
"timeout": {
"default": "10s",
"description": "Set timeout for scrape",
"required": [],
"title": "timeout",
"type": "string"
},
"useServicePort": {
"default": false,
"description": "When set true then use a service port. On default use a pod port.",
"required": [],
"title": "useServicePort",
"type": "boolean"
}
},
"required": [
"enabled",
"useServicePort",
"namespace",
"interval",
"telemetryPath",
"labels",
"timeout",
"targetLabels",
"metricRelabelings"
],
"title": "serviceMonitor",
"type": "object"
},
"strategy": {
"additionalProperties": true,
"description": "This will set the deployment strategy more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy",
"properties": {
"type": {
"default": "RollingUpdate",
"required": [],
"title": "type",
"type": "string",
"enum": ["RollingUpdate", "Recreate"]
}
},
"required": ["type"],
"title": "strategy",
"type": "object"
},
"tolerations": {
"description": "Set the tolerations for the pod.",
"items": {
"required": []
},
"required": [],
"title": "tolerations",
"type": "array"
},
"flaskServerSecretKey": {
"default": "",
"description": "Mlflow flask server secret key",
"required": [],
"title": "flaskServerSecretKey",
"type": "string"
},
"auth": {
"additionalProperties": false,
"description": "Mlflow authentication settings",
"properties": {
"enabled": {
"default": "false",
"required": [],
"title": "enabled",
"type": "boolean"
},
"adminUsername": {
"default": "",
"required": [],
"title": "adminUsername",
"type": "string"
},
"adminPassword": {
"default": "",
"required": [],
"title": "adminPassword",
"type": "string"
},
"existingAdminSecret": {
"additionalProperties": false,
"type": "object",
"description": "Specifies if you want to use an existing admin credentials secret for auth. If it's set, adminUsername and adminPassword will be ignored.",
"properties": {
"name": {
"default": "",
"description": "The name of the existing admin credentials secret.",
"required": [],
"title": "name",
"type": "string"
},
"usernameKey": {
"default": "username",
"description": "The key of the admin username in the existing admin credentials secret.",
"required": [],
"title": "usernameKey",
"type": "string"
},
"passwordKey": {
"default": "password",
"description": "The key of the admin password in the existing admin credentials secret.",
"required": [],
"title": "passwordKey",
"type": "string"
}
},
"required": ["name", "usernameKey", "passwordKey"],
"title": "existingAdminSecret"
},
"defaultPermission": {
"default": "READ",
"required": [],
"title": "defaultPermission",
"type": "string",
"enum": ["READ", "EDIT", "MANAGE", "NO_PERMISSIONS"]
},
"appName": {
"default": "basic-auth",
"required": [],
"title": "appName",
"type": "string"
},
"authorizationFunction": {
"default": "mlflow.server.auth:authenticate_request_basic_auth",
"required": [],
"title": "authorizationFunction",
"type": "string"
},
"sqliteFile": {
"default": "basic_auth.db",
"required": [],
"title": "sqliteFile",
"type": "string"
},
"sqliteFullPath": {
"default": "",
"required": [],
"title": "sqliteFullPath",
"type": "string"
},
"configPath": {
"default": "/etc/mlflow/",
"required": [],
"title": "configPath",
"type": "string"
},
"configFile": {
"default": "basic_auth.ini",
"required": [],
"title": "configFile",
"type": "string"
},
"postgres": {
"additionalProperties": false,
"description": "PostgreSQL based centrilised authentication database",
"properties": {
"enabled": {
"default": "false",
"required": [],
"title": "enabled",
"type": "boolean"
},
"host": {
"default": "",
"required": [],
"title": "host",
"type": "string"
},
"port": {
"default": 5432,
"required": [],
"title": "port",
"type": "integer"
},
"database": {
"default": "",
"required": [],
"title": "database",
"type": "string"
},
"user": {
"default": "",
"required": [],
"title": "user",
"type": "string"
},
"password": {
"default": "",
"required": [],
"title": "password",
"type": "string"
},
"driver": {
"default": "",
"required": [],
"title": "driver",
"type": "string"
},
"existingSecret": {
"additionalProperties": false,
"type": "object",
"description": "Specifies if you want to use an existing database secret for auth. If it's set, user and password will be ignored.",
"properties": {
"name": {
"default": "",
"description": "The name of the existing database secret.",
"required": [],
"title": "name",
"type": "string"
},
"usernameKey": {
"default": "username",
"description": "The key of the username in the existing database secret.",
"required": [],
"title": "usernameKey",
"type": "string"
},
"passwordKey": {
"default": "password",
"description": "The key of the password in the existing database secret.",
"required": [],
"title": "passwordKey",
"type": "string"
}
},
"required": ["name", "usernameKey", "passwordKey"],
"title": "existingSecret"
}
},
"required": [
"enabled",
"host",
"port",
"database",
"user",
"password",
"driver",
"existingSecret"
],
"title": "postgres",
"type": "object"
}
},
"required": [
"enabled",
"adminUsername",
"adminPassword",
"existingAdminSecret",
"defaultPermission",
"appName",
"authorizationFunction",
"sqliteFile",
"sqliteFullPath",
"configPath",
"configFile",
"postgres"
],
"title": "auth",
"type": "object"
},
"ldapAuth": {
"additionalProperties": false,
"description": "Mlflow Basic Authentication with LDAP backend settings",
"properties": {
"enabled": {
"default": "false",
"required": [],
"title": "enabled",
"type": "boolean"
},
"uri": {
"default": "",
"description": "LDAP URI. e.g.: ldap://lldap:3890/dc=mlflow,dc=test",
"required": [],
"title": "uri",
"type": "string"
},
"tlsVerification": {
"default": "required",
"description": "TLS verification mode. Options: required, optional, none",
"required": [],
"title": "tlsVerification",
"type": "string",
"enum": ["required", "optional", "none"]
},
"lookupBind": {
"default": "",
"description": "LDAP Loopup Bind. e.g.: uid=%s,ou=people,dc=mlflow,dc=test",
"required": [],
"title": "lookupBind",
"type": "string"
},
"groupAttribute": {
"default": "dn",
"description": "LDAP group attribute",
"required": [],
"title": "groupAttribute",
"type": "string"
},
"groupAttributeKey": {
"default": "",
"description": "Optional group attribute key for Active Directory users. e.g.: attributes",
"required": [],
"title": "groupAttributeKey",
"type": "string"
},
"searchBaseDistinguishedName": {
"default": "",
"description": "LDAP base DN for the search. e.g.: ou=groups,dc=mlflow,dc=test",
"required": [],
"title": "searchBaseDistinguishedName",
"type": "string"
},
"searchFilter": {
"default": "(&(objectclass=groupOfUniqueNames)(uniquemember=%s))",
"description": "LDAP query filter for search",
"required": [],
"title": "searchFilter",
"type": "string"
},
"adminGroupDistinguishedName": {
"default": "",
"description": "LDAP DN for the admin group. e.g.: cn=test-admin,ou=groups,dc=mlflow,dc=test",
"required": [],
"title": "adminGroupDistinguishedName",
"type": "string"
},
"userGroupDistinguishedName": {
"default": "",
"description": "LDAP DN for the user group. e.g.: cn=test-user,ou=groups,dc=mlflow,dc=test",
"required": [],
"title": "userGroupDistinguishedName",
"type": "string"
},
"encodedTrustedCACertificate": {
"default": "",
"description": "Base64 encoded trusted CA certificate for LDAP server connection.",
"required": [],
"title": "encodedTrustedCACertificate",
"type": "string"
},
"externalSecretForTrustedCACertificate": {
"default": "",
"description": "External secret name for trusted CA certificate for LDAP server connection.",
"required": [],
"title": "externalSecretForTrustedCACertificate",
"type": "string"
}
},
"required": [
"enabled",
"uri",
"tlsVerification",
"lookupBind",
"groupAttribute",
"groupAttributeKey",
"searchBaseDistinguishedName",
"searchFilter",
"adminGroupDistinguishedName",
"userGroupDistinguishedName"
],
"title": "ldapAuth",
"type": "object"
},
"autoscaling": {
"additionalProperties": false,
"description": "Autoscaling settings. Can be enabled only when backendStore is not sqlite and artifactRoot is one of blob storage systems.",
"properties": {
"enabled": {
"default": false,
"description": "If true, the number of replicas will be automatically scaled based on default metrics. On default, it will scale based on CPU and memory. For more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/",
"required": [],
"title": "enabled",
"type": "boolean"
},
"minReplicas": {
"default": 1,
"description": "The minimum number of replicas.",
"required": [],
"title": "minReplicas",
"type": "integer"
},
"maxReplicas": {
"default": 5,
"description": "The maximum number of replicas.",
"required": [],
"title": "maxReplicas",
"type": "integer"
},
"metrics": {
"type": "array",
"minItems": 1,
"description": "The metrics to use for autoscaling.",
"items": {
"type": "object",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["Resource", "Pods", "Object", "External"]
}
},
"oneOf": [
{
"properties": {
"type": { "const": "Resource" },
"resource": {
"type": "object",
"required": ["name", "target"],
"properties": {
"name": {
"type": "string",
"enum": ["cpu", "memory"]
},
"target": {
"type": "object",
"required": ["type"],
"properties": {
"type": {
"type": "string",
"enum": ["Utilization", "AverageValue", "Value"]
},
"averageUtilization": { "type": "integer", "minimum": 0 },
"averageValue": { "type": "string" },
"value": { "type": "string" }
},
"if": { "properties": { "type": { "const": "Utilization" } } },
"then": { "required": ["averageUtilization"] },
"else": {
"if": { "properties": { "type": { "const": "AverageValue" } } },
"then": { "required": ["averageValue"] },
"else": { "required": ["value"] }
}
}
}
}
},
"required": ["resource"]
},
{
"properties": {
"type": { "const": "Pods" },
"pods": {
"type": "object",
"required": ["metric", "target"],
"properties": {
"metric": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"selector": {
"type": "object",
"properties": {
"matchLabels": { "type": "object" },
"matchExpressions": {
"type": "array",
"items": {
"type": "object",
"required": ["key", "operator"],
"properties": {
"key": { "type": "string" },
"operator": { "type": "string" },
"values": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}
}
},
"target": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "type": "string", "enum": ["AverageValue", "Value"] },
"averageValue": { "type": "string" },
"value": { "type": "string" }
},
"if": { "properties": { "type": { "const": "AverageValue" } } },
"then": { "required": ["averageValue"] },
"else": { "required": ["value"] }
}
}
}
},
"required": ["pods"]
},
{
"properties": {
"type": { "const": "Object" },
"object": {
"type": "object",
"required": ["metric", "describedObject", "target"],
"properties": {
"metric": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"selector": {
"type": "object",
"properties": {
"matchLabels": { "type": "object" },
"matchExpressions": {
"type": "array",
"items": {
"type": "object",
"required": ["key", "operator"],
"properties": {
"key": { "type": "string" },
"operator": { "type": "string" },
"values": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}
}
},
"describedObject": {
"type": "object",
"required": ["apiVersion", "kind", "name"],
"properties": {
"apiVersion": { "type": "string" },
"kind": { "type": "string" },
"name": { "type": "string" }
}
},
"target": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "type": "string", "enum": ["Value", "AverageValue"] },
"value": { "type": "string" },
"averageValue": { "type": "string" }
},
"if": { "properties": { "type": { "const": "Value" } } },
"then": { "required": ["value"] },
"else": { "required": ["averageValue"] }
}
}
}
},
"required": ["object"]
},
{
"properties": {
"type": { "const": "External" },
"external": {
"type": "object",
"required": ["metric", "target"],
"properties": {
"metric": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"selector": {
"type": "object",
"properties": {
"matchLabels": { "type": "object" },
"matchExpressions": {
"type": "array",
"items": {
"type": "object",
"required": ["key", "operator"],
"properties": {
"key": { "type": "string" },
"operator": { "type": "string" },
"values": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}
}
},
"target": {
"type": "object",
"required": ["type"],
"properties": {
"type": { "type": "string", "enum": ["Value", "AverageValue"] },
"value": { "type": "string" },
"averageValue": { "type": "string" }
},
"if": { "properties": { "type": { "const": "Value" } } },
"then": { "required": ["value"] },
"else": { "required": ["averageValue"] }
}
}
}
},
"required": ["external"]
}
]
}
},
"behavior": {
"type": "object",
"description": "The behavior of the autoscaler. Only supported on K8s 1.18.0 or later.",
"properties": {
"scaleUp": {
"type": "object",
"description": "The behavior of the autoscaler when scaling up.",
"properties": {
"stabilizationWindowSeconds": {
"type": "integer",
"minimum": 0,
"description": "Time in seconds to wait before scaling up again (default: 0)"
},
"policies": {
"type": "array",
"items": {
"type": "object",
"minItems": 1,
"required": ["type", "value", "periodSeconds"],
"properties": {
"type": {
"type": "string",
"enum": ["Pods", "Percent"],
"description": "Type of scaling policy: Pods (fixed number) or Percent (percentage of current replicas)"
},
"value": {
"type": "integer",
"minimum": 0,
"description": "The value to scale by (number of pods or percentage)"
},
"periodSeconds": {
"type": "integer",
"minimum": 1,
"description": "Time in seconds over which the policy is evaluated"
}
},
"additionalProperties": false
},
"description": "List of scaling policies for scale-up"
},
"selectPolicy": {
"type": "string",
"enum": ["Max", "Min", "Disabled"],
"description": "Policy to select among multiple policies: Max (default), Min, or Disabled"
}
},
"additionalProperties": false
},
"scaleDown": {
"type": "object",
"description": "The behavior of the autoscaler when scaling down.",
"properties": {
"stabilizationWindowSeconds": {
"type": "integer",
"minimum": 0,
"description": "Time in seconds to wait before scaling down again (default: 300)"
},
"policies": {
"type": "array",
"items": {
"type": "object",
"minItems": 1,
"required": ["type", "value", "periodSeconds"],
"properties": {
"type": {
"type": "string",
"enum": ["Pods", "Percent"],
"description": "Type of scaling policy: Pods (fixed number) or Percent (percentage of current replicas)"
},
"value": {
"type": "integer",
"minimum": 0,
"description": "The value to scale by (number of pods or percentage)"
},
"periodSeconds": {
"type": "integer",
"minimum": 1,
"description": "Time in seconds over which the policy is evaluated"
}
},
"additionalProperties": false
},
"description": "List of scaling policies for scale-down"
},
"selectPolicy": {
"type": "string",
"enum": ["Max", "Min", "Disabled"],
"description": "Policy to select among multiple policies: Max (default), Min, or Disabled"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": ["enabled", "minReplicas", "maxReplicas", "metrics", "behavior"],
"title": "autoscaling",
"type": "object"
}
},
"required": [
"replicaCount",
"image",
"initImages",
"strategy",
"imagePullSecrets",
"nameOverride",
"fullnameOverride",
"serviceAccount",
"podAnnotations",
"extraPodLabels",
"podSecurityContext",
"securityContext",
"service",
"log",
"telemetry",
"backendStore",
"postgresql",
"mysql",
"artifactRoot",
"extraArgs",
"extraFlags",
"extraEnvVars",
"extraSecretNamesForEnvFrom",
"ingress",
"resources",
"serviceMonitor",
"nodeSelector",
"tolerations",
"affinity",
"initContainers",
"extraContainers",
"extraVolumes",
"extraVolumeMounts",
"livenessProbe",
"readinessProbe",
"flaskServerSecretKey",
"auth",
"ldapAuth",
"autoscaling"
],
"allOf": [
{
"not": {
"properties": {
"auth": {
"properties": {
"enabled": {
"const": true
}
}
},
"ldapAuth": {
"properties": {
"enabled": {
"const": true
}
}
}
}
}
},
{
"description": "Ensures only one of backendStore.postgres.enabled, backendStore.mysql.enabled, postgresql.enabled can be true, or mysql.enabled can be true",
"if": {
"properties": {
"backendStore": {
"properties": {
"postgres": {
"properties": {
"enabled": { "const": true }
}
}
}
}
},
"required": ["backendStore"]
},
"then": {
"properties": {
"backendStore": {
"properties": {
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
}
},
"postgresql": {
"properties": {
"enabled": { "const": false }
}
},
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
},
"required": ["backendStore", "postgresql", "mysql"]
}
},
{
"if": {
"properties": {
"backendStore": {
"properties": {
"mysql": {
"properties": {
"enabled": { "const": true }
}
}
}
}
},
"required": ["backendStore"]
},
"then": {
"properties": {
"backendStore": {
"properties": {
"postgres": {
"properties": {
"enabled": { "const": false }
}
}
}
},
"postgresql": {
"properties": {
"enabled": { "const": false }
}
},
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
},
"required": ["backendStore", "postgresql", "mysql"]
}
},
{
"if": {
"properties": {
"postgresql": {
"properties": {
"enabled": { "const": true }
}
}
},
"required": ["postgresql"]
},
"then": {
"properties": {
"backendStore": {
"properties": {
"postgres": {
"properties": {
"enabled": { "const": false }
}
},
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
}
},
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
},
"required": ["backendStore", "mysql"]
}
},
{
"if": {
"properties": {
"mysql": {
"properties": {
"enabled": { "const": true }
}
}
},
"required": ["mysql"]
},
"then": {
"properties": {
"backendStore": {
"properties": {
"postgres": {
"properties": {
"enabled": { "const": false }
}
},
"mysql": {
"properties": {
"enabled": { "const": false }
}
}
}
},
"postgresql": {
"properties": {
"enabled": { "const": false }
}
}
},
"required": ["backendStore", "postgresql"]
}
}
],
"type": "object"
}