Unity Catalog is a universal catalog for data and AI. It offers an open source solution designed to seamlessly integrate with various clouds, data formats, and data platforms.
This chart deploys Unity Catalog on a Kubernetes cluster using the Helm package manager.
- Kubernetes 1.20+ cluster
- Helm 3.0+
- Deploys Unity Catalog server and UI
- Supports OAuth authentication: Google, Okta, Keycloak
- Supports Unity Catalog versions: 0.2.1+
To install the chart with the release name unitycatalog:
helm install unitycatalog oci://ghcr.io/sdwbgn/unitycatalog-helm/unitycatalog:0.0.2The following table lists the configurable parameters of the Unity Catalog chart and their default values.
| Parameter | Description | Default | Example |
|---|---|---|---|
storage.modelStorageRoot |
Root path for the model storage | "" |
s3://bucket/path |
storage.credentials.s3 |
S3 credentials for accessing the storage | [] |
- bucketPath: s3://my-bucket-path |
storage.credentials.adls |
ADLS credentials for accessing the storage | [] |
- storageAccountName: my-storage-account |
storage.credentials.gcs |
GCS credentials for accessing the storage | [] |
- bucketPath: gs://my-bucket-name |
auth.enabled |
Enable OAuth authentication | false |
true |
auth.users |
List of users to be created in the system | [] |
- name: user |
auth.provider |
OAuth provider Currently supported options: google, okta, keycloak |
google |
google |
auth.authorizationUrl |
OAuth authorization URL | "" |
https://accounts.google.com/o/oauth2/auth |
auth.tokenUrl |
OAuth token URL | "" |
https://oauth2.googleapis.com/token |
auth.clientSecretName |
OAuth client secret | "" |
my-client-secret |
auth.redirectPort |
OAuth redirect port | "" |
8080 |
auth.cookieTimeout |
OAuth cookie timeout | P5D |
P5D |
auth.oktaDomain |
Okta domain | "" |
example.okta.com |
auth.keycloakRealmId |
Keycloak realm ID | "" |
my-realm |
db.type |
Database type Currently supported options: file |
file |
file |
db.fileConfig.persistence.enabled |
Enable persistence for the file database | true |
false |
db.fileConfig.persistence.accessModes |
Access modes for the file database | [ "ReadWriteOnce" ] |
[ "ReadWriteOnce" ] |
db.fileConfig.persistence.size |
Size of the file database | 1Gi |
1Gi |
db.fileConfig.persistence.storageClassName |
Storage class for the file database | "" |
"" |
server.config.persistence.enabled |
Enable persistence for the server configuration | true |
false |
server.config.persistence.accessModes |
Access modes for the server configuration | [ "ReadWriteOnce" ] |
[ "ReadWriteOnce" ] |
server.config.persistence.size |
Size of the server configuration | 100Mi |
100Mi |
server.config.persistence.storageClassName |
Storage class for the server configuration | "" |
"" |
server.config.extraProperties |
Additional properties that will be added to server config | {} |
my-config.property1: my-value1 |
server.service.type |
Service type for the server | ClusterIP |
LoadBalancer |
server.service.port |
Service port for the server | 8080 |
8080 |
server.statefulset.port |
Port for the server statefulset | 8080 |
8080 |
server.statefulset.initContainer.image.repository |
Repository for the init container | bhgedigital/envsubst |
bhgedigital/envsubst |
server.statefulset.initContainer.image.pullPolicy |
Pull policy for the init container | IfNotPresent |
IfNotPresent |
server.statefulset.initContainer.image.tag |
Tag for the init container | latest |
latest |
server.statefulset.image.repository |
Repository for the server image | ghcr.io/sdwbgn/unitycatalog-helm/unitycatalog |
unitycatalog/unitycatalog |
server.statefulset.image.pullPolicy |
Pull policy for the server image | IfNotPresent |
IfNotPresent |
server.statefulset.image.tag |
Tag for the server image If not specified, appVersion from chart/Chart.yaml is used |
"" |
0.2.1 |
server.statefulset.imagePullSecrets |
Image pull secrets for the server | [] |
- name: my-secret |
server.statefulset.podAnnotations |
Annotations for the server pod | {} |
key1: value1 |
server.statefulset.podLabels |
Labels for the server pod | {} |
key1: value1 |
server.statefulset.podSecurityContext |
Security context for the server pod | {} |
fsGroup: 101 |
server.statefulset.securityContext |
Security context for the server | {} |
runAsUser: 101 |
server.statefulset.resources |
Resources for the server | {} |
requests: |
server.statefulset.livenessProbe.tcpSocket.port |
Port for the server liveness probe | api |
api |
server.statefulset.readinessProbe.tcpSocket.port |
Port for the server readiness probe | api |
api |
server.statefulset.volumes |
Volumes for the server | [] |
- name: my-volume |
server.statefulset.volumeMounts |
Volume mounts for the server | [] |
- name: my-volume |
server.statefulset.nodeSelector |
Node selector for the server | {} |
key1: value1 |
server.statefulset.tolerations |
Tolerations for the server | [] |
- key: "key1" |
server.statefulset.affinity |
Affinity for the server | {} |
nodeAffinity: |
server.createUsersJob.image.repository |
Repository for the create users job image | badouralix/curl-jq |
badouralix/curl-jq |
server.createUsersJob.image.pullPolicy |
Pull policy for the create users job image | IfNotPresent |
IfNotPresent |
server.createUsersJob.image.tag |
Tag for the create users job image | latest |
latest |
server.createUsersJob.imagePullSecrets |
Image pull secrets for the create users job | [] |
- name: my-secret |
ui.enabled |
Enable the UI | true |
false |
ui.service.type |
Service type for the UI | ClusterIP |
LoadBalancer |
ui.service.port |
Service port for the UI | 3000 |
3000 |
ui.deployment.port |
Port for the UI deployment | 3000 |
3000 |
ui.deployment.replicaCount |
Replica count for the UI deployment | 1 |
1 |
ui.deployment.initContainer.image.repository |
Repository for the init container | busybox |
busybox |
ui.deployment.initContainer.image.pullPolicy |
Pull policy for the init container | IfNotPresent |
IfNotPresent |
ui.deployment.initContainer.image.tag |
Tag for the init container | latest |
latest |
ui.deployment.image.repository |
Repository for the UI image | ghcr.io/sdwbgn/unitycatalog-helm/unitycatalog-ui |
unitycatalog/unitycatalog-ui |
ui.deployment.image.pullPolicy |
Pull policy for the UI image | IfNotPresent |
IfNotPresent |
ui.deployment.image.tag |
Tag for the UI image If not specified, appVersion from chart/Chart.yaml is used |
"" |
0.2.1 |
ui.deployment.imagePullSecrets |
Image pull secrets for the UI | [] |
- name: my-secret |
ui.deployment.podAnnotations |
Annotations for the UI pod | {} |
key1: value1 |
ui.deployment.podLabels |
Labels for the UI pod | {} |
key1: value1 |
ui.deployment.podSecurityContext |
Security context for the UI pod | {} |
fsGroup: 101 |
ui.deployment.securityContext |
Security context for the UI | {} |
runAsUser: 101 |
ui.deployment.resources |
Resources for the UI | {} |
requests: |
ui.deployment.livenessProbe.tcpSocket.port |
Port for the UI liveness probe | ui |
ui |
ui.deployment.readinessProbe.tcpSocket.port |
Port for the UI readiness probe | ui |
ui |
ui.deployment.volumes |
Volumes for the UI | [] |
- name: my-volume |
ui.deployment.volumeMounts |
Volume mounts for the UI | [] |
- name: my-volume |
ui.deployment.nodeSelector |
Node selector for the UI | {} |
key1: value1 |
ui.deployment.tolerations |
Tolerations for the UI | [] |
- key: "key1" |
ui.deployment.affinity |
Affinity for the UI | {} |
nodeAffinity: |
nameOverride |
Override the name of the chart | "" |
"mycustomname" |
fullnameOverride |
Override the full name of the chart | "" |
"mycustomfullname" |
serviceAccount.create |
Create a service account | true |
true |
serviceAccount.automount |
Automount the service account | true |
true |
serviceAccount.annotations |
Annotations for the service account | {} |
key1: value1 |
serviceAccount.name |
Name of the service account, when not set default service account used |
"" |
"mySA" |
To uninstall the unitycatalog chart:
helm uninstall unitycatalogThe command removes all the Kubernetes components associated with the chart and deletes the release. If persistent volumes are used, they are not deleted by default. To delete them, you need to manually delete the PVCs.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.