Marmot is an open-source data catalog that helps teams discover, understand, and govern their data assets. It's designed for modern data ecosystems where data flows through multiple systems, formats, and teams.
helm repo add marmotdata https://marmotdata.github.io/charts
helm repo updatehelm install marmot marmotdata/marmotPort-forward to access the dashboard:
kubectl port-forward svc/marmot 8080:8080Open http://localhost:8080 in your browser.
The default username and password is admin:admin. Change this after your first login.
Marmot requires PostgreSQL. Choose one of the following options:
Connect Marmot to your existing PostgreSQL database:
config:
database:
host: postgres.example.com
port: 5432
user: marmot
passwordSecretRef:
name: marmot-db-secret
key: password
name: marmot
sslmode: requireFor development and testing, enable the embedded PostgreSQL:
helm install marmot marmotdata/marmot \
--set postgresql.enabled=trueFor production Kubernetes deployments, CloudNativePG provides a robust PostgreSQL operator with automatic failover, read replicas and connection pooling.
- Install the CloudNativePG operator:
kubectl apply --server-side -f \
https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-1.25.1.yaml- Configure and install Marmot with CNPG:
# values.yaml
cnpg:
enabled: true
instances: 3
password: "your-secure-password"
parameters:
shared_buffers: "256MB"
work_mem: "64MB"
effective_cache_size: "1GB"
persistence:
size: "10Gi"
pooler:
enabled: true
instances: 2
poolMode: "transaction"helm install marmot marmotdata/marmot -f values.yaml- Verify the cluster is ready:
kubectl get clusters
kubectl get pods -l cnpg.io/cluster=marmot-cnpgAll pods should show Running status with the primary indicated by the -1 suffix.
Marmot encrypts sensitive pipeline credentials. You must configure an encryption key.
The Helm chart can auto-generate an encryption key for you (enabled by default):
config:
server:
autoGenerateEncryptionKey: trueBack Up Your Key: If the generated secret is deleted, you'll lose access to encrypted credentials. Back it up immediately after installation.
Retrieve the auto-generated key:
kubectl get secret <release-name>-marmot-encryption-key \
-o jsonpath='{.data.encryption-key}' | base64 -d- Generate an encryption key:
marmot generate-encryption-key
# or
openssl rand -base64 32- Create a Kubernetes secret:
kubectl create secret generic marmot-encryption \
--from-literal=encryption-key="your-generated-key"- Configure the Helm chart:
config:
server:
autoGenerateEncryptionKey: false
encryptionKeySecretRef:
name: marmot-encryption
key: encryption-keyFor all available configuration options, view the chart's defaults:
helm show values marmotdata/marmotOr browse the values.yaml on GitHub.