Implementation:MaterializeInc Materialize Helm Operator Values
| Knowledge Sources | |
|---|---|
| Domains | Kubernetes, Infrastructure, Configuration |
| Last Updated | 2026-02-08 00:00 GMT |
Overview
Default Helm chart values for the Materialize Kubernetes operator (orchestratord), defining the complete configuration for deploying and managing Materialize environments on Kubernetes.
Description
This values.yaml file configures the Materialize Kubernetes operator Helm chart. It specifies the operator container image and startup arguments, cloud provider settings (AWS, GCP, Azure, generic, local), cluster sizing tiers ranging from mz_probe (0.1 CPU) through 6400cc (62 CPUs, multi-replica), default resource allocations for all Materialize components (environmentd, clusterd, balancerd, console), RBAC and service account creation, observability and telemetry settings, network policy rules, TLS certificate specifications, and persistent storage class configuration. The sizing tiers define workers, CPU limits, memory limits, disk limits, and credits-per-hour billing rates.
Usage
Operators and platform engineers use this file as the base configuration when deploying Materialize via helm install or helm upgrade. Values can be overridden at install time with -f custom-values.yaml or --set flags. Developers modify this file when changing default cluster sizes, adding new component configurations, or updating the operator image version.
Code Reference
Source Location
- Repository: MaterializeInc_Materialize
- File: misc/helm-charts/operator/values.yaml
Signature
operator:
image:
repository: materialize/orchestratord
tag: v26.10.1
pullPolicy: IfNotPresent
args:
startupLogFilter: "INFO,mz_orchestratord=TRACE"
enableInternalStatementLogging: true
cloudProvider:
type: "local" # aws | gcp | azure | generic | local
region: "kind"
clusters:
swap_enabled: true
sizes:
mz_probe: { workers: 1, cpu_limit: 0.1, memory_limit: "776MiB" }
25cc: { workers: 1, cpu_limit: 0.5, memory_limit: "3881MiB" }
50cc: { workers: 1, cpu_limit: 1, memory_limit: "7762MiB" }
100cc: { workers: 2, cpu_limit: 2, memory_limit: "15525MiB" }
200cc: { workers: 4, cpu_limit: 4, memory_limit: "31050MiB" }
# ... up to 6400cc (62 CPUs, scale: 2)
defaultSizes:
default: 25cc
system: 25cc
probe: mz_probe
environmentd:
defaultResources:
limits: { memory: "4Gi" }
requests: { cpu: "1", memory: "4095Mi" }
clusterd:
nodeSelector: {}
scratchfsNodeSelector: { "materialize.cloud/scratch-fs": "true" }
swapNodeSelector: { "materialize.cloud/swap": "true" }
balancerd:
enabled: true
defaultResources:
limits: { memory: "256Mi" }
requests: { cpu: "500m", memory: "256Mi" }
console:
enabled: true
rbac:
create: true
serviceAccount:
create: true
name: "orchestratord"
observability:
enabled: true
networkPolicies:
enabled: false
storage:
storageClass:
create: false
Import
# Install the Materialize operator with default values
helm install materialize misc/helm-charts/operator/
# Install with custom overrides
helm install materialize misc/helm-charts/operator/ \
-f my-custom-values.yaml \
--set operator.cloudProvider.type=aws
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| operator.image.repository | String | Yes | Docker image repository for the orchestratord operator |
| operator.image.tag | String | Yes | Image tag/version to deploy (e.g., "v26.10.1") |
| operator.cloudProvider.type | String | Yes | Cloud provider target: "aws", "gcp", "azure", "generic", or "local" |
| operator.cloudProvider.region | String | Yes | Cloud region or local cluster name (e.g., "kind", "us-east-1") |
| operator.clusters.sizes | Map | Yes | Named cluster size tiers with workers, CPU, memory, disk, and billing rates |
| operator.clusters.defaultSizes | Map | Yes | Default size assignments for system, probe, support, and user clusters |
| environmentd.defaultResources | Map | No | Default CPU/memory resource requests and limits for environmentd pods |
| operator.secretsController | String | No | Secrets backend: "kubernetes" or "aws-secrets-manager" |
| networkPolicies.enabled | Boolean | No | Whether to create Kubernetes NetworkPolicy resources |
| storage.storageClass.create | Boolean | No | Whether to create a new StorageClass resource |
Outputs
| Name | Type | Description |
|---|---|---|
| Kubernetes manifests | YAML | Rendered Helm templates producing Deployment, Service, RBAC, CRD, and other Kubernetes resources |
| Operator pod | Kubernetes Pod | Running orchestratord container that manages Materialize environment lifecycle |
| Materialize CRD | CustomResourceDefinition | Kubernetes CRD for declaring Materialize environments |
Usage Examples
# Override values for an AWS production deployment (custom-values.yaml)
operator:
image:
tag: v26.10.1
cloudProvider:
type: "aws"
region: "us-east-1"
providers:
aws:
enabled: true
accountID: "123456789012"
iam:
roles:
environment: "arn:aws:iam::123456789012:role/mz-env"
connection: "arn:aws:iam::123456789012:role/mz-conn"
secretsController: aws-secrets-manager
environmentd:
defaultResources:
limits:
memory: "8Gi"
requests:
cpu: "2"
memory: "8191Mi"
networkPolicies:
enabled: true
internal:
enabled: true
ingress:
enabled: true
cidrs:
- 10.0.0.0/8