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.
510 lines
18 KiB
510 lines
18 KiB
# yaml-language-server: $schema=values.schema.json
|
|
# Default values for mlflow.
|
|
# This is a YAML-formatted file.
|
|
# Declare variables to be passed into your templates.
|
|
|
|
# -- (int) Numbers of replicas
|
|
replicaCount: 1
|
|
|
|
# -- Image of mlflow
|
|
image:
|
|
# -- The docker image repository to use
|
|
repository: paasup/mlflow
|
|
# -- The docker image pull policy
|
|
pullPolicy: IfNotPresent
|
|
# -- The docker image tag to use. Default app version
|
|
tag: "v3.11.1-oidc"
|
|
|
|
# -- mlflow init images
|
|
initImages:
|
|
# -- dbchecker init container image configuration
|
|
dbchecker:
|
|
# -- dbchecker init container image repository to use
|
|
repository: busybox
|
|
# -- dbchecker init container image pull policy
|
|
pullPolicy: IfNotPresent
|
|
# -- dbchecker init container image tag to use
|
|
tag: "1.37"
|
|
# -- mlflow-db-migration init container image configuration
|
|
mlflowDbMigration:
|
|
# -- mlflow-db-migration init container image repository to use.
|
|
repository: paasup/mlflow
|
|
# -- mlflow-db-migration init container image pull policy.
|
|
pullPolicy: IfNotPresent
|
|
# -- mlflow-db-migration init container image tag to use. Default app version
|
|
tag: "v3.11.1-oidc"
|
|
# -- ini-file-initializer init container image configuration
|
|
iniFileInitializer:
|
|
# -- ini-file-initializer init container image repository to use
|
|
repository: busybox
|
|
# -- ini-file-initializer init container image pull policy
|
|
pullPolicy: IfNotPresent
|
|
# -- ini-file-initializer init container image tag to use
|
|
tag: "1.37"
|
|
|
|
# -- This will set the deployment strategy more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
|
strategy:
|
|
type: "RollingUpdate"
|
|
rollingUpdate:
|
|
maxSurge: "100%"
|
|
maxUnavailable: 0
|
|
|
|
# -- Image pull secrets for private docker registry usages
|
|
imagePullSecrets: []
|
|
|
|
# -- String to override the default generated name
|
|
nameOverride: ""
|
|
|
|
# -- String to override the default generated fullname
|
|
fullnameOverride: ""
|
|
|
|
serviceAccount:
|
|
# -- Specifies whether a ServiceAccount should be created
|
|
create: true
|
|
|
|
# -- Automatically mount a ServiceAccount's API credentials?
|
|
automount: true
|
|
|
|
# -- Annotations to add to the service account. AWS EKS users can assign role arn from here.
|
|
# Please find more information from here:
|
|
# https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html
|
|
annotations: {}
|
|
# eks.amazonaws.com/role-arn: ""
|
|
|
|
# -- The name of the ServiceAccount to use.
|
|
# If not set and create is true, a name is generated using the fullname template
|
|
name: ""
|
|
|
|
# -- Annotations for the pod
|
|
podAnnotations: {}
|
|
|
|
# -- Extra labels for the pod
|
|
extraPodLabels: {}
|
|
|
|
# -- This is for setting Security Context to a Pod. For more information checkout: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
podSecurityContext:
|
|
fsGroup: 1001
|
|
fsGroupChangePolicy: "OnRootMismatch"
|
|
|
|
# -- This is for setting Security Context to a Container. For more information checkout: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
readOnlyRootFilesystem: false
|
|
runAsNonRoot: true
|
|
privileged: false
|
|
runAsUser: 1001
|
|
runAsGroup: 1001
|
|
|
|
# -- This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/
|
|
service:
|
|
# -- Specifies if you want to create a service
|
|
enabled: true
|
|
# -- This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
|
type: ClusterIP
|
|
# -- This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
|
|
port: 80
|
|
# -- Default Service name
|
|
name: http
|
|
# -- Default container port
|
|
containerPort: 5000
|
|
# -- Default container port name
|
|
containerPortName: mlflow
|
|
# -- Additional service annotations
|
|
annotations: {}
|
|
|
|
# -- Mlflow logging settings
|
|
log:
|
|
# -- Specifies if you want to enable mlflow logging.
|
|
enabled: true
|
|
# -- Mlflow logging level.
|
|
level: info
|
|
|
|
# -- Mlflow Usage Tracking settings. More information can be found here: https://mlflow.org/docs/latest/community/usage-tracking/
|
|
telemetry:
|
|
# -- Specifies if you want to enable collecting anonymized usage data about how core features of the platform are used.
|
|
enabled: false
|
|
|
|
# -- Mlflow database connection settings
|
|
backendStore:
|
|
# -- Specifies if you want to run database migration
|
|
databaseMigration: false
|
|
|
|
# -- Add an additional init container, which checks for database availability
|
|
databaseConnectionCheck: false
|
|
|
|
# -- Specifies the default sqlite path
|
|
defaultSqlitePath: ":memory:"
|
|
|
|
postgres:
|
|
# -- Specifies if you want to use postgres backend storage
|
|
enabled: false
|
|
# -- Postgres host address. e.g. your RDS or Azure Postgres Service endpoint
|
|
host: "" # required
|
|
# -- Postgres service port
|
|
port: 5432 # required
|
|
# -- mlflow database name created before in the postgres instance
|
|
database: "" # required
|
|
# -- postgres database user name which can access to mlflow database
|
|
user: "" # required
|
|
# -- postgres database user password which can access to mlflow database
|
|
password: "" # required
|
|
# -- postgres database connection driver. e.g.: "psycopg2"
|
|
driver: ""
|
|
|
|
mysql:
|
|
# -- Specifies if you want to use mysql backend storage
|
|
enabled: false
|
|
# -- MySQL host address. e.g. your Amazon RDS for MySQL
|
|
host: "" # required
|
|
# -- MySQL service port
|
|
port: 3306 # required
|
|
# -- mlflow database name created before in the mysql instance
|
|
database: "" # required
|
|
# -- mysql database user name which can access to mlflow database
|
|
user: "" # required
|
|
# -- mysql database user password which can access to mlflow database
|
|
password: "" # required
|
|
# -- mysql database connection driver. e.g.: "pymysql"
|
|
driver: "pymysql"
|
|
|
|
mssql:
|
|
# -- Specifies if you want to use mssql backend storage
|
|
enabled: false
|
|
# -- mssql host address
|
|
host: "" # required
|
|
# -- mssql service port
|
|
port: 1433 # required
|
|
# -- mlflow database name created before in the mssql instance
|
|
database: "" # required
|
|
# -- mssql database user name which can access to mlflow database
|
|
user: "" # required
|
|
# -- mssql database user password which can access to mlflow database
|
|
password: "" # required
|
|
# -- mssql database connection driver. e.g.: "pymssql"
|
|
driver: "pymssql"
|
|
|
|
# -- Specifies if you want to use an existing database secret.
|
|
existingDatabaseSecret:
|
|
# -- The name of the existing database secret.
|
|
name: ""
|
|
# -- The key of the username in the existing database secret.
|
|
usernameKey: "username"
|
|
# -- The key of the password in the existing database secret.
|
|
passwordKey: "password"
|
|
|
|
# -- Bitnami PostgreSQL configuration. For more information checkout: https://github.com/bitnami/charts/tree/main/bitnami/postgresql
|
|
postgresql:
|
|
# -- Enable postgresql
|
|
enabled: false
|
|
architecture: standalone
|
|
|
|
image:
|
|
repository: bitnamilegacy/postgresql
|
|
|
|
primary:
|
|
service:
|
|
ports:
|
|
postgresql: 5432
|
|
|
|
persistence:
|
|
enabled: true
|
|
existingClaim: ""
|
|
|
|
auth:
|
|
username: ""
|
|
password: ""
|
|
# -- The name of the PostgreSQL database.
|
|
database: "mlflow"
|
|
|
|
# -- Bitnami MySQL configuration. For more information checkout: https://github.com/bitnami/charts/tree/main/bitnami/mysql
|
|
mysql:
|
|
# -- Enable mysql
|
|
enabled: false
|
|
architecture: standalone
|
|
|
|
image:
|
|
repository: bitnamilegacy/mysql
|
|
|
|
primary:
|
|
service:
|
|
ports:
|
|
mysql: 3306
|
|
|
|
persistence:
|
|
enabled: true
|
|
existingClaim: ""
|
|
|
|
auth:
|
|
username: ""
|
|
password: ""
|
|
# -- The name of the MySQL database.
|
|
database: "mlflow"
|
|
|
|
# Mlflow blob storage settings
|
|
artifactRoot:
|
|
# -- Specifies if you want to enable proxied artifact storage access
|
|
proxiedArtifactStorage: false
|
|
|
|
# -- Specifies the default artifact root.
|
|
defaultArtifactRoot: "./mlruns"
|
|
|
|
# -- Specifies the default artifacts destination
|
|
defaultArtifactsDestination: "./mlartifacts"
|
|
|
|
# -- Specifies if you want to use Azure Blob Storage Mlflow Artifact Root
|
|
azureBlob:
|
|
# -- Specifies if you want to use Azure Blob Storage Mlflow Artifact Root
|
|
enabled: false
|
|
# -- Azure blob container name
|
|
container: "" # required
|
|
# -- Azure storage account name
|
|
storageAccount: "" # required
|
|
# -- Azure blob container folder. If you want to use root level, please don't set anything.
|
|
path: "" # optional
|
|
# -- Azure Cloud Connection String for the container. Only connectionString or accessKey required
|
|
connectionString: "" # connectionString or accessKey required
|
|
# -- Azure Cloud Storage Account Access Key for the container
|
|
accessKey: "" # connectionString or accessKey required. Only connectionString or accessKey required
|
|
|
|
# -- Specifies if you want to use AWS S3 Mlflow Artifact Root
|
|
s3:
|
|
# -- Specifies if you want to use AWS S3 Mlflow Artifact Root
|
|
enabled: false
|
|
# -- S3 bucket name
|
|
bucket: "" # required
|
|
# -- S3 bucket folder. If you want to use root level, please don't set anything.
|
|
path: "" # optional
|
|
# -- AWS IAM user AWS_ACCESS_KEY_ID which has attached policy for access to the S3 bucket
|
|
awsAccessKeyId: "" # (awsAccessKeyId and awsSecretAccessKey) or roleArn serviceaccount annotation required
|
|
# -- AWS IAM user AWS_SECRET_ACCESS_KEY which has attached policy for access to the S3 bucket
|
|
awsSecretAccessKey: "" # (awsAccessKeyId and awsSecretAccessKey) or roleArn serviceaccount annotation required
|
|
# -- Existing secret for AWS IAM user AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY secrets.
|
|
existingSecret:
|
|
# -- This is for setting up the AWS IAM user secrets existing secret name.
|
|
name: ""
|
|
# -- This is for setting up the key for AWS_ACCESS_KEY_ID secret. If it's set, awsAccessKeyId will be ignored.
|
|
keyOfAccessKeyId: ""
|
|
# -- This is for setting up the key for AWS_SECRET_ACCESS_KEY secret. If it's set, awsSecretAccessKey will be ignored.
|
|
keyOfSecretAccessKey: ""
|
|
|
|
# -- Specifies if you want to use Google Cloud Storage Mlflow Artifact Root
|
|
gcs:
|
|
# -- Specifies if you want to use Google Cloud Storage Mlflow Artifact Root
|
|
enabled: false
|
|
# -- Google Cloud Storage bucket name
|
|
bucket: "" # required
|
|
# -- Google Cloud Storage bucket folder. If you want to use root level, please don't set anything.
|
|
path: "" # optional
|
|
|
|
# -- Mlflow Flask Server Secret Key. Default: Will be auto generated.
|
|
flaskServerSecretKey: ""
|
|
|
|
# -- Mlflow authentication settings
|
|
auth:
|
|
# -- Specifies if you want to enable mlflow authentication. auth and ldapAuth can't be enabled at same time.
|
|
enabled: false
|
|
# -- Mlflow admin user username
|
|
adminUsername: ""
|
|
# -- Mlflow admin user password
|
|
adminPassword: ""
|
|
# -- Specifies if you want to use an existing admin credentials secret for auth. If it's set, adminUsername and adminPassword will be ignored.
|
|
existingAdminSecret:
|
|
# -- The name of the existing admin credentials secret.
|
|
name: ""
|
|
# -- The key of the admin username in the existing admin credentials secret.
|
|
usernameKey: "username"
|
|
# -- The key of the admin password in the existing admin credentials secret.
|
|
passwordKey: "password"
|
|
# -- Default permission for all users. More details: https://mlflow.org/docs/latest/auth/index.html#permissions
|
|
defaultPermission: READ
|
|
# -- Default registered authentication app name. If you want to use your custom authentication function, please look at: https://mlflow.org/docs/latest/auth/index.html#custom-authentication
|
|
appName: "basic-auth"
|
|
# -- Default authentication function
|
|
authorizationFunction: "mlflow.server.auth:authenticate_request_basic_auth"
|
|
# -- SQLite database file
|
|
sqliteFile: "basic_auth.db"
|
|
# -- SQLite database folder. Default is user home directory.
|
|
sqliteFullPath: ""
|
|
# -- Mlflow authentication INI configuration file path.
|
|
configPath: "/etc/mlflow/auth/"
|
|
# -- Mlflow authentication INI file
|
|
configFile: "basic_auth.ini"
|
|
# -- PostgreSQL based centrilised authentication database
|
|
postgres:
|
|
# -- Specifies if you want to use postgres auth backend storage
|
|
enabled: false
|
|
# -- Postgres host address. e.g. your RDS or Azure Postgres Service endpoint
|
|
host: "" # required
|
|
# -- Postgres service port
|
|
port: 5432 # required
|
|
# -- mlflow authorization database name created before in the postgres instance
|
|
database: "" # required
|
|
# -- postgres database user name which can access to mlflow authorization database
|
|
user: "" # required
|
|
# -- postgres database user password which can access to mlflow authorization database
|
|
password: "" # required
|
|
# -- postgres database connection driver. e.g.: "psycopg2"
|
|
driver: ""
|
|
# -- Specifies if you want to use an existing database secret for auth. If it's set, user and password will be ignored.
|
|
existingSecret:
|
|
# -- The name of the existing database secret.
|
|
name: ""
|
|
# -- The key of the username in the existing database secret.
|
|
usernameKey: "username"
|
|
# -- The key of the password in the existing database secret.
|
|
passwordKey: "password"
|
|
|
|
# -- Basic Authentication with LDAP backend
|
|
ldapAuth:
|
|
# -- Specifies if you want to enable mlflow LDAP authentication. auth and ldapAuth can't be enabled at same time.
|
|
enabled: false
|
|
# -- LDAP URI. e.g.: "ldap://lldap:3890/dc=mlflow,dc=test"
|
|
uri: ""
|
|
# -- TLS verification mode. Options: required, optional, none
|
|
tlsVerification: required
|
|
# -- LDAP Loopup Bind. e.g.: "uid=%s,ou=people,dc=mlflow,dc=test"
|
|
lookupBind: ""
|
|
# -- LDAP group attribute.
|
|
groupAttribute: "dn"
|
|
# -- Optional group attribute key for Active Directory users. e.g.: "attributes"
|
|
groupAttributeKey: ""
|
|
# -- LDAP base DN for the search. e.g.: "ou=groups,dc=mlflow,dc=test"
|
|
searchBaseDistinguishedName: ""
|
|
# -- LDAP query filter for search
|
|
searchFilter: "(&(objectclass=groupOfUniqueNames)(uniquemember=%s))"
|
|
# -- LDAP DN for the admin group. e.g.: "cn=test-admin,ou=groups,dc=mlflow,dc=test"
|
|
adminGroupDistinguishedName: ""
|
|
# -- LDAP DN for the user group. e.g.: "cn=test-user,ou=groups,dc=mlflow,dc=test"
|
|
userGroupDistinguishedName: ""
|
|
# -- Base64 encoded trusted CA certificate for LDAP server connection.
|
|
encodedTrustedCACertificate: ""
|
|
# -- External secret name for trusted CA certificate for LDAP server connection.
|
|
externalSecretForTrustedCACertificate: ""
|
|
|
|
# -- Autoscaling settings. Can be enabled only when backendStore is not sqlite and artifactRoot is one of blob storage systems.
|
|
autoscaling:
|
|
# -- 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/"
|
|
enabled: false
|
|
|
|
# -- The minimum number of replicas.
|
|
minReplicas: 1
|
|
|
|
# -- The maximum number of replicas.
|
|
maxReplicas: 5
|
|
|
|
# -- The metrics to use for autoscaling.
|
|
metrics:
|
|
- type: Resource
|
|
resource:
|
|
name: memory
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 80
|
|
- type: Resource
|
|
resource:
|
|
name: cpu
|
|
target:
|
|
type: Utilization
|
|
averageUtilization: 80
|
|
|
|
# -- The behavior of the autoscaler. Only supported on K8s 1.18.0 or later.
|
|
behavior: {}
|
|
|
|
# -- A map of arguments and values to pass to the `mlflow server` command. Keys must be camelcase. Helm will turn them to kebabcase style.
|
|
extraArgs: {}
|
|
# workers: TEXT
|
|
# staticPrefix: TEXT
|
|
# gunicornOpts: TEXT
|
|
# waitressOpts: TEXT
|
|
|
|
# -- A list of flags to pass to `mlflow server` command. Items must be camelcase. Helm will turn them to kebabcase style.
|
|
extraFlags: []
|
|
# serveArtifacts
|
|
# artifactsOnly
|
|
|
|
# -- Extra environment variables
|
|
extraEnvVars: {}
|
|
# MLFLOW_S3_IGNORE_TLS: true
|
|
# MLFLOW_S3_ENDPOINT_URL: http://1.2.3.4:9000
|
|
# AWS_DEFAULT_REGION: my_region
|
|
|
|
# -- Extra secrets for environment variables
|
|
extraSecretNamesForEnvFrom: []
|
|
|
|
ingress:
|
|
# -- Specifies if you want to create an ingress access
|
|
enabled: false
|
|
# -- New style ingress class name. Only possible if you use K8s 1.18.0 or later version
|
|
className: ""
|
|
# -- Additional ingress annotations
|
|
annotations: {}
|
|
hosts:
|
|
- host: chart-example.local
|
|
paths:
|
|
- path: /
|
|
# -- Ingress path type
|
|
pathType: ImplementationSpecific
|
|
# -- Ingress tls configuration for https access
|
|
tls: []
|
|
|
|
# -- 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/
|
|
resources: {}
|
|
|
|
serviceMonitor:
|
|
# -- When set true then use a ServiceMonitor to configure scraping
|
|
enabled: false
|
|
# -- When set true then use a service port. On default use a pod port.
|
|
useServicePort: false
|
|
# -- Set the namespace the ServiceMonitor should be deployed
|
|
namespace: monitoring
|
|
# -- Set how frequently Prometheus should scrape
|
|
interval: 30s
|
|
# -- Set path to mlflow telemetry-path
|
|
telemetryPath: /metrics
|
|
# -- Set labels for the ServiceMonitor, use this to define your scrape label for Prometheus Operator
|
|
labels:
|
|
release: prometheus
|
|
# -- Set timeout for scrape
|
|
timeout: 10s
|
|
# -- Set of labels to transfer on the Kubernetes Service onto the target.
|
|
targetLabels: []
|
|
# -- Set of rules to relabel your exist metric labels
|
|
metricRelabelings: []
|
|
|
|
# -- For more information checkout: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
|
|
nodeSelector: {}
|
|
|
|
# -- For more information checkout: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
|
|
tolerations: []
|
|
|
|
# -- For more information checkout: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
|
|
affinity: {}
|
|
|
|
# -- Init Containers for Mlflow Pod
|
|
initContainers: []
|
|
|
|
# -- Extra containers for the mlflow pod
|
|
extraContainers: []
|
|
|
|
# -- Extra Volumes for the pod
|
|
extraVolumes: []
|
|
|
|
# -- Extra Volume Mounts for the mlflow container
|
|
extraVolumeMounts: []
|
|
|
|
# -- Liveness probe configurations. Please look to [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes).
|
|
livenessProbe:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
timeoutSeconds: 3
|
|
failureThreshold: 5
|
|
|
|
# -- Readiness probe configurations. Please look to [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes).
|
|
readinessProbe:
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 30
|
|
timeoutSeconds: 3
|
|
failureThreshold: 5
|
|
|