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.
 
 
 
 
 
 

683 lines
20 KiB

# Default values for OpenMetadata.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
# Overrides the openmetadata config file with the help of Environment Variables
# Below are defaults as per openmetadata-dependencies Helm Chart Values
openmetadata:
config:
upgradeMigrationConfigs:
debug: false
# You can pass the additional argument flags to the openmetadata-ops.sh migrate command
# Example if you want to force migration runs, use additionalArgs: "--force"
additionalArgs: ""
deployPipelinesConfig:
enabled: true
debug: false
additionalArgs: ""
reindexConfig:
enabled: true
debug: false
# You can pass the additional argument flags to the openmetadata-ops.sh reindex command
additionalArgs: ""
# Values can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL
logLevel: INFO
clusterName: openmetadata
openmetadata:
host: "0.0.0.0"
port: 8585
adminPort: 8586
maxThreads: 50
minThreads: 10
idleThreadTimeout: "1 minute"
elasticsearch:
enabled: true
host: opensearch
searchType: opensearch
port: 9200
scheme: http
clusterAlias: ""
# Value in Bytes
payLoadSize: 10485760
connectionTimeoutSecs: 5
socketTimeoutSecs: 60
batchSize: 100
searchIndexMappingLanguage: "EN"
keepAliveTimeoutSecs: 600
trustStore:
enabled: false
path: ""
password:
secretRef: "elasticsearch-truststore-secrets"
secretKey: "openmetadata-elasticsearch-truststore-password"
auth:
enabled: false
username: "elasticsearch"
password:
secretRef: elasticsearch-secrets
secretKey: openmetadata-elasticsearch-password
database:
enabled: true
host: mysql
port: 3306
driverClass: com.mysql.cj.jdbc.Driver
dbScheme: mysql
databaseName: openmetadata_db
auth:
username: openmetadata_user
password:
secretRef: mysql-secrets
secretKey: openmetadata-mysql-password
dbParams: "allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC"
maxSize: 50
minSize: 10
initialSize: 10
checkConnectionWhileIdle: true
checkConnectionOnBorrow: true
evictionInterval: 5 minutes
minIdleTime: 1 minute
pipelineServiceClientConfig:
enabled: true
# Pipeline service client type - choose between "airflow" or "k8s"
type: "airflow"
# Common configurations for all pipeline service clients
# This will be the api endpoint url of OpenMetadata Server
metadataApiEndpoint: http://openmetadata:8585/api
# Airflow configuration (used when type: "airflow")
airflow:
className: "org.openmetadata.service.clients.pipeline.airflow.AirflowRESTClient"
# endpoint url for airflow (updated for Apache Airflow chart compatibility)
apiEndpoint: http://openmetadata-dependencies-api-server:8080
# possible values are "no-ssl", "ignore", "validate"
verifySsl: "no-ssl"
hostIp: ""
ingestionIpInfoEnabled: false
# healthCheckInterval in seconds
healthCheckInterval: 300
# local path in Airflow Pod
sslCertificatePath: "/no/path"
auth:
enabled: true
username: admin
password:
secretRef: airflow-secrets
secretKey: openmetadata-airflow-password
trustStorePath: ""
trustStorePassword:
secretRef: ""
secretKey: ""
# Kubernetes Jobs configuration (used when type: "k8s")
k8s:
className: "org.openmetadata.service.clients.pipeline.k8s.K8sPipelineClient"
# Container image for ingestion jobs
ingestionImage: "docker.getcollate.io/openmetadata/ingestion-base:latest"
# Image pull policy
imagePullPolicy: "IfNotPresent"
# Image pull secrets (comma-separated)
imagePullSecrets: ""
# Service account name for ingestion jobs
serviceAccountName: "openmetadata-ingestion"
# Time to keep completed jobs (seconds)
ttlSecondsAfterFinished: 86400
# Maximum job runtime (seconds)
activeDeadlineSeconds: 7200
# Maximum retry attempts
backoffLimit: 3
# Job history limits
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
# Node selector (comma-separated key=value pairs)
nodeSelector: ""
# Pod security context
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
runAsNonRoot: true
# Resource limits and requests
resources:
limits:
cpu: "2"
memory: "4Gi"
requests:
cpu: "500m"
memory: "1Gi"
# Pod annotations (comma-separated key=value pairs)
podAnnotations: ""
# Extra environment variables (list of key:value pairs)
extraEnvVars: []
# Enable failure diagnostics
enableFailureDiagnostics: true
# Use OMJob operator for guaranteed exit handler execution
# Requires omjobOperator.enabled: true
useOMJobOperator: false
# RBAC configuration
rbac:
# Set to false if RBAC is managed externally
enabled: true
authorizer:
enabled: true
className: "org.openmetadata.service.security.DefaultAuthorizer"
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
initialAdmins:
- "admin"
allowedEmailRegistrationDomains:
- "all"
principalDomain: "open-metadata.org"
allowedDomains: []
enforcePrincipalDomain: false
enableSecureSocketConnection: false
useRolesFromProvider: false
authentication:
enabled: true
clientType: public
provider: "basic"
publicKeys:
- "http://openmetadata:8585/api/v1/system/config/jwks"
authority: "https://accounts.google.com"
clientId: ""
callbackUrl: ""
responseType: id_token
jwtPrincipalClaims:
- "email"
- "preferred_username"
- "sub"
jwtPrincipalClaimsMapping: []
# jwtPrincipalClaimsMapping:
# - username:sub
# - email:email
enableSelfSignup: true
oidcConfiguration:
enabled: false
oidcType: ""
clientId:
secretRef: oidc-secrets
secretKey: openmetadata-oidc-client-id
clientSecret:
secretRef: oidc-secrets
secretKey: openmetadata-oidc-client-secret
scope: "openid email profile"
discoveryUri: ""
useNonce: true
preferredJwsAlgorithm: RS256
responseType: code
promptType: "consent"
disablePkce: true
callbackUrl: http://openmetadata:8585/callback
serverUrl: http://openmetadata:8585
clientAuthenticationMethod: client_secret_post
tenant: ""
maxClockSkew: ""
tokenValidity: "3600"
customParams: '{}'
maxAge: "0"
# 7 days
sessionExpiry: "604800"
ldapConfiguration:
host: localhost
port: 10636
dnAdminPrincipal: "cn=admin,dc=example,dc=com"
dnAdminPassword:
secretRef: ldap-admin-secret
secretKey: openmetadata-ldap-secret
userBaseDN: "ou=people,dc=example,dc=com"
mailAttributeName: email
maxPoolSize: 3
sslEnabled: false
groupBaseDN: ""
roleAdminName: ""
allAttributeName: ""
usernameAttributeName: ""
groupAttributeName: ""
groupAttributeValue: ""
groupMemberAttributeName: ""
authRolesMapping: ""
authReassignRoles: []
# Possible values are CustomTrustStore, HostName, JVMDefault, TrustAll
truststoreConfigType: TrustAll
trustStoreConfig:
customTrustManagerConfig:
trustStoreFilePath: ""
trustStoreFilePassword:
secretRef: ""
secretKey: ""
trustStoreFileFormat: ""
verifyHostname: true
examineValidityDates: true
hostNameConfig:
allowWildCards: false
acceptableHostNames: []
jvmDefaultConfig:
verifyHostname: true
trustAllConfig:
examineValidityDates: true
saml:
debugMode: false
idp:
entityId: ""
ssoLoginUrl: ""
idpX509Certificate:
secretRef: ""
secretKey: ""
authorityUrl: "http://openmetadata:8585/api/v1/saml/login"
nameId: "urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress"
sp:
entityId: "http://openmetadata:8585/api/v1/saml/metadata"
acs: "http://openmetadata:8585/api/v1/saml/acs"
spX509Certificate:
secretRef: ""
secretKey: ""
spPrivateKey:
secretRef: ""
secretKey: ""
callback: "http://openmetadata:8585/saml/callback"
security:
strictMode: false
validateXml: false
tokenValidity: 3600
sendEncryptedNameId: false
sendSignedAuthRequest: false
signSpMetadata: false
wantMessagesSigned: false
wantAssertionsSigned: false
wantAssertionEncrypted: false
keyStoreFilePath: ""
keyStoreAlias:
secretRef: ""
secretKey: ""
keyStorePassword:
secretRef: ""
secretKey: ""
jwtTokenConfiguration:
enabled: true
# File Path on Airflow Container
rsapublicKeyFilePath: "./conf/public_key.der"
# File Path on Airflow Container
rsaprivateKeyFilePath: "./conf/private_key.der"
jwtissuer: "open-metadata.org"
keyId: "Gb389a-9f76-gdjs-a92j-0242bk94356"
fernetkey:
value: "jJ/9sz0g0OHxsfxOoSfdFdmk3ysNmPRnH3TUAbz3IHA="
secretRef: ""
secretKey: ""
eventMonitor:
enabled: true
# Possible values are prometheus and cloudwatch
type: prometheus
batchSize: 10
pathPattern:
- "/api/v1/tables/*"
- "/api/v1/health-check"
# For value p99=0.99, p90=0.90, p50=0.50 etc.
latency: []
# - "p99=0.99"
# - "p90=0.90"
# - "p50=0.50"
secretsManager:
enabled: true
# Possible values are db, aws, aws-ssm, managed-aws, managed-aws-ssm, in-memory, managed-azure-kv, azure-kv, gcp
provider: db
# Define the secret key ID as /<prefix>/<clusterName>/<key> for AWS
# Define the secret key ID as <prefix>-<clusterName>-<key> for Azure
prefix: ""
# Add tags to the created resource, e.g., in AWS. Format is `[key1:value1,key2:value2,...]`
tags: []
additionalParameters:
enabled: false
region: ""
# For AWS
accessKeyId:
secretRef: ""
secretKey: ""
secretAccessKey:
secretRef: ""
secretKey: ""
# accessKeyId:
# secretRef: aws-access-key-secret
# secretKey: aws-key-secret
# secretAccessKey:
# secretRef: aws-secret-access-key-secret
# secretKey: aws-key-secret
# For Azure
clientId:
secretRef: ""
secretKey: ""
clientSecret:
secretRef: ""
secretKey: ""
tenantId:
secretRef: ""
secretKey: ""
vaultName:
secretRef: ""
secretKey: ""
# clientId:
# secretRef: azure-client-id-secret
# secretKey: azure-key-secret
# clientSecret:
# secretRef: azure-client-secret
# secretKey: azure-key-secret
# tenantId:
# secretRef: azure-tenant-id-secret
# secretKey: azure-key-secret
# vaultName:
# secretRef: azure-vault-name-secret
# secretKey: azure-key-secret
# For GCP
projectId:
secretRef: ""
secretKey: ""
# projectId:
# secretRef: gcp-project-id-secret
# secretKey: gcp-key-secret
# You can create Kubernetes secrets from AWS Credentials with the below command
# kubectl create secret generic aws-key-secret \
# --from-literal=aws-access-key-secret=<access_key_id_value> \
# --from-literal=aws-secret-access-key-secret=<access_key_secret_value>
web:
enabled: true
uriPath: "/api"
hsts:
enabled: false
maxAge: "365 days"
includeSubDomains: "true"
preload: "true"
frameOptions:
enabled: false
option: "SAMEORIGIN"
origin: ""
contentTypeOptions:
enabled: false
xssProtection:
enabled: false
onXss: true
block: true
csp:
enabled: false
policy: "default-src 'self'"
reportOnlyPolicy: ""
referrerPolicy:
enabled: false
option: "SAME_ORIGIN"
permissionPolicy:
enabled: false
option: ""
cacheControl: ""
pragma: ""
rdf:
enabled: false
baseUri: "https://open-metadata.org/"
storageType: "FUSEKI"
remoteEndpoint: "http://localhost:3030/openmetadata"
username: ""
password:
secretRef: ""
secretKey: ""
dataset: "openmetadata"
networkPolicy:
# If networkPolicy is true, following values can be set
# for ingress on port 8585 and 8586
enabled: false
# Example Google SSO Auth Config
# authorizer:
# className: "org.openmetadata.service.security.DefaultAuthorizer"
# containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
# initialAdmins:
# - "suresh"
# principalDomain: "open-metadata.org"
# authentication:
# provider: "google"
# publicKeys:
# - "https://www.googleapis.com/oauth2/v3/certs"
# authority: "https://accounts.google.com"
# clientId: "<client_id>"
# callbackUrl: "<callback_url>"
image:
repository: docker.getcollate.io/openmetadata/server
# Overrides the image tag whose default is the chart appVersion.
tag: ""
pullPolicy: "Always"
sidecars: []
# - name: "busybox"
# image: "busybox:1.34.1"
# imagePullPolicy: "Always"
# command: ["ls"]
# args: ["-latr", "/usr/share"]
# env:
# - name: DEMO
# value: "DEMO"
# volumeMounts:
# - name: extras
# mountPath: /usr/share/extras
# readOnly: true
imagePullSecrets: []
nameOverride: ""
fullnameOverride: "openmetadata"
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
automountServiceAccountToken: true
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 100
service:
type: ClusterIP
port: 8585
adminPort: 8586
annotations: {}
# Service monitor for Prometheus metrics
serviceMonitor:
enabled: false
interval: 30s
annotations: {}
labels: {}
ingress:
enabled: false
className: ""
annotations: {}
# kubernetes.io/tls-acme: "true"
hosts:
- host: open-metadata.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
# - secretName: tls-open-metadata.local
# hosts:
# - open-metadata.local
# OpenShift Route — use instead of ingress when deploying on OpenShift.
# Requires route.openshift.io/v1 API (available on all OpenShift clusters).
route:
enabled: false
# host is optional. When omitted, OpenShift auto-assigns a hostname under
# the cluster's default subdomain (e.g. openmetadata-openmetadata.apps.<cluster>).
host: ""
annotations: {}
wildcardPolicy: None
tls:
enabled: true
# termination controls where TLS is terminated:
# edge — TLS terminated at the router; traffic to the pod is plain HTTP (recommended)
# reencrypt — TLS terminated at the router and re-encrypted to the pod
# passthrough — TLS passed through to the pod unchanged (pod must serve TLS)
termination: edge
# insecureEdgeTerminationPolicy controls HTTP traffic when termination is edge or reencrypt:
# Redirect — redirect HTTP to HTTPS (recommended)
# Allow — serve both HTTP and HTTPS
# None — drop HTTP traffic
insecureEdgeTerminationPolicy: Redirect
extraEnvs: []
# - name: MY_ENVIRONMENT_VAR
# value: the_value_goes_here
envFrom: []
# - secretRef:
# name: secret_containing_config
extraVolumes: []
# - name: extras
# emptyDir: {}
extraVolumeMounts: []
# - name: extras
# mountPath: /usr/share/extras
# readOnly: true
# Provision for InitContainers to be running after the `run-db-migration` InitContainer
extraInitContainers: []
# Provision for InitContainers to be running before the `run-db-migration` InitContainer
preMigrateInitContainers: []
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube.The resources configuration is required to enable autoscaling.
# To specify resources, uncomment the following lines, adjust them as necessary, and remove
# the curly braces after 'resources:'.
# limits:
# cpu: 1
# memory: 2048Mi
# requests:
# cpu: 500m
# memory: 1024Mi
startingDeadlineSeconds: 100
# Test connection pod configuration
testConnection:
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube.
# To specify resources, uncomment the following lines, adjust them as necessary, and remove
# the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 50m
# memory: 64Mi
nodeSelector: {}
tolerations: []
affinity: {}
livenessProbe:
initialDelaySeconds: 60
periodSeconds: 30
failureThreshold: 5
httpGet:
path: /api/v1/system/health
port: http
readinessProbe:
initialDelaySeconds: 60
periodSeconds: 30
failureThreshold: 5
httpGet:
path: /api/v1/system/health
port: http
startupProbe:
periodSeconds: 60
failureThreshold: 5
successThreshold: 1
httpGet:
path: /healthcheck
port: http-admin
podDisruptionBudget:
enabled: false
config:
maxUnavailable: "1"
minAvailable: "1"
commonLabels: {}
deploymentAnnotations: {}
podAnnotations: {}
# Prerequisites for enabling Horizontal Pod Autoscaler (HPA):
# 1. Install metrics-server (https://github.com/kubernetes-sigs/metrics-server)
# 2. Define resource request and limits for the pods
hpa:
enabled: false
apiVersion: autoscaling/v2
minReplicas: 1
maxReplicas: 5
behavior: {}
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
# OMJob Operator Configuration
# This installs the CRD and operator for guaranteed exit handler execution
omjobOperator:
enabled: false # Set to true to install OMJob CRD and operator
# Image configuration
image:
repository: docker.getcollate.io/openmetadata/omjob-operator
tag: "1.12.0-SNAPSHOT"
pullPolicy: IfNotPresent
# Resource configuration
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"
# Environment variables
env:
logLevel: "INFO"
reconciliationThreads: "5"
healthCheckPort: "8080"
metricsPort: "8081"
# Polling interval in seconds - how often the operator checks pod status
pollingIntervalSeconds: "10"
# Requeue delay in seconds - delay when requeueing after errors
requeueDelaySeconds: "30"
# Namespace watching configuration:
# - "ALL" = watch all namespaces (less secure, high resource usage)
# - "namespace1,namespace2" = watch specific namespaces (recommended)
# - Leave empty for operator's own namespace only
watchNamespaces: ""