Materialize Operator Configuration
Configure the Materialize operator
To configure the Materialize operator, you can:
-
Use a configuration YAML file (e.g.,
values.yaml) that specifies the configuration values and then install the chart with the-fflag:# Assumes you have added the Materialize operator Helm chart repository helm install my-materialize-operator materialize/materialize-operator \ -f /path/to/your/config/values.yaml -
Specify each parameter using the
--set key=value[,key=value]argument tohelm install. For example:# Assumes you have added the Materialize operator Helm chart repository helm install my-materialize-operator materialize/materialize-operator \ --set observability.podMetrics.enabled=true
Parameters
balancerd parameters
balancerd.affinity
Default: {}
Affinity to use for balancerd pods spawned by the operator
balancerd.defaultResources.limits
Default: {"memory":"256Mi"}
Default resource limits for balancerd’s CPU and memory if not set in the Materialize CR
balancerd.defaultResources.requests
Default: {"cpu":"500m","memory":"256Mi"}
Default resources requested for balancerd’s CPU and memory if not set in the Materialize CR
balancerd.enabled
Default: true
Flag to indicate whether to create balancerd pods for the environments
balancerd.nodeSelector
Default: {}
Node selector to use for balancerd pods spawned by the operator
balancerd.tolerations
Default: {}
Tolerations to use for balancerd pods spawned by the operator
clusterd parameters
clusterd.affinity
Default: {}
Affinity to use for clusterd pods spawned by the operator
clusterd.nodeSelector
Default: {}
Node selector to use for all clusterd pods spawned by the operator
clusterd.scratchfsNodeSelector
Default: {"materialize.cloud/scratch-fs":"true"}
Additional node selector to use for clusterd pods when using an LVM scratch disk. This will be merged with the values in nodeSelector.
clusterd.swapNodeSelector
Default: {"materialize.cloud/swap":"true"}
Additional node selector to use for clusterd pods when using swap. This will be merged with the values in nodeSelector.
clusterd.tolerations
Default: {}
Tolerations to use for clusterd pods spawned by the operator
console parameters
console.affinity
Default: {}
Affinity to use for console pods spawned by the operator
console.defaultResources.limits
Default: {"memory":"256Mi"}
Default resource limits for the console’s CPU and memory if not set in the Materialize CR
console.defaultResources.requests
Default: {"cpu":"500m","memory":"256Mi"}
Default resources requested for the console’s CPU and memory if not set in the Materialize CR
console.enabled
Default: true
Flag to indicate whether to create console pods for the environments
console.imageTagMapOverride
Default: {}
Override the mapping of environmentd versions to console versions
console.nodeSelector
Default: {}
Node selector to use for console pods spawned by the operator
console.tolerations
Default: {}
Tolerations to use for console pods spawned by the operator
environmentd parameters
environmentd.affinity
Default: {}
Affinity to use for environmentd pods spawned by the operator
environmentd.defaultResources.limits
Default: {"memory":"4Gi"}
Default resource limits for environmentd’s CPU and memory if not set in the Materialize CR
environmentd.defaultResources.requests
Default: {"cpu":"1","memory":"4095Mi"}
Default resources requested for environmentd’s CPU and memory if not set in the Materialize CR
environmentd.nodeSelector
Default: {}
Node selector to use for environmentd pods spawned by the operator
environmentd.tolerations
Default: {}
Tolerations to use for environmentd pods spawned by the operator
networkPolicies parameters
networkPolicies.egress.cidrs
Default: ["0.0.0.0/0"]
CIDR blocks to allow egress to
networkPolicies.egress.enabled
Default: false
Whether to enable egress network policies to sources and sinks
networkPolicies.enabled
Default: false
Whether to enable network policies for securing communication between pods
networkPolicies.ingress.cidrs
Default: ["0.0.0.0/0"]
CIDR blocks to allow ingress from
networkPolicies.ingress.enabled
Default: false
Whether to enable ingress network policies to the SQL and HTTP interfaces on environmentd and balancerd
networkPolicies.internal.enabled
Default: false
Whether to enable network policies for internal communication between Materialize pods
observability parameters
observability.enabled
Default: true
Whether to enable observability features
observability.podMetrics.enabled
Default: false
Whether to enable the pod metrics scraper which populates the Environment Overview Monitoring tab in the web console (requires metrics-server to be installed)
observability.prometheus.scrapeAnnotations.enabled
Default: true
Whether to annotate pods with common keys used for prometheus scraping.
operator parameters
operator.additionalMaterializeCRDColumns
Default: {}
Additional columns to display when printing the Materialize CRD in table format.
operator.affinity
Default: {}
Affinity to use for the operator pod
operator.args.enableInternalStatementLogging
Default: true
operator.args.enableLicenseKeyChecks
Default: false
operator.args.startupLogFilter
Default: "INFO,mz_orchestratord=TRACE"
Log filtering settings for startup logs
operator.cloudProvider.providers.aws.accountID
Default: ""
When using AWS, accountID is required
operator.cloudProvider.providers.aws.enabled
Default: false
operator.cloudProvider.providers.aws.iam.roles.connection
Default: ""
ARN for CREATE CONNECTION feature
operator.cloudProvider.providers.aws.iam.roles.environment
Default: ""
ARN of the IAM role for environmentd
operator.cloudProvider.providers.gcp
Default: {"enabled":false}
GCP Configuration (placeholder for future use)
operator.cloudProvider.region
Default: "kind"
Common cloud provider settings
operator.cloudProvider.type
Default: "local"
Specifies cloud provider. Valid values are ‘aws’, ‘gcp’, ‘azure’ , ‘generic’, or ’local’
operator.clusters.defaultReplicationFactor.analytics
Default: 0
operator.clusters.defaultReplicationFactor.probe
Default: 0
operator.clusters.defaultReplicationFactor.support
Default: 0
operator.clusters.defaultReplicationFactor.system
Default: 0
operator.clusters.defaultSizes.analytics
Default: "25cc"
operator.clusters.defaultSizes.catalogServer
Default: "25cc"
operator.clusters.defaultSizes.default
Default: "25cc"
operator.clusters.defaultSizes.probe
Default: "mz_probe"
operator.clusters.defaultSizes.support
Default: "25cc"
operator.clusters.defaultSizes.system
Default: "25cc"
operator.clusters.swap_enabled
Default: true
Configure sizes such that the pod QoS class is not Guaranteed, as is required for swap to be enabled. Disk doesn’t make much sense with swap, as swap performs better than lgalloc, so it also gets disabled.
operator.image.pullPolicy
Default: "IfNotPresent"
Policy for pulling the image: “IfNotPresent” avoids unnecessary re-pulling of images
operator.image.repository
Default: "materialize/orchestratord"
The Docker repository for the operator image
operator.image.tag
Default: "v26.3.0"
The tag/version of the operator image to be used
operator.nodeSelector
Default: {}
Node selector to use for the operator pod
operator.resources.limits
Default: {"memory":"512Mi"}
Resource limits for the operator’s CPU and memory
operator.resources.requests
Default: {"cpu":"100m","memory":"512Mi"}
Resources requested by the operator for CPU and memory
operator.secretsController
Default: "kubernetes"
Which secrets controller to use for storing secrets. Valid values are ‘kubernetes’ and ‘aws-secrets-manager’. Setting ‘aws-secrets-manager’ requires a configured AWS cloud provider and IAM role for the environment with Secrets Manager permissions.
operator.tolerations
Default: {}
Tolerations to use for the operator pod
rbac parameters
rbac.create
Default: true
Whether to create necessary RBAC roles and bindings
schedulerName parameters
schedulerName
Default: nil
Optionally use a non-default kubernetes scheduler.
serviceAccount parameters
serviceAccount.create
Default: true
Whether to create a new service account for the operator
serviceAccount.name
Default: "orchestratord"
The name of the service account to be created
storage parameters
storage.storageClass.allowVolumeExpansion
Default: false
storage.storageClass.create
Default: false
Set to false to use an existing StorageClass instead. Refer to the Kubernetes StorageClass documentation
storage.storageClass.name
Default: ""
Name of the StorageClass to create/use: eg “openebs-lvm-instance-store-ext4”
storage.storageClass.parameters
Default: {"fsType":"ext4","storage":"lvm","volgroup":"instance-store-vg"}
Parameters for the CSI driver
storage.storageClass.provisioner
Default: ""
CSI driver to use, eg “local.csi.openebs.io”
storage.storageClass.reclaimPolicy
Default: "Delete"
storage.storageClass.volumeBindingMode
Default: "WaitForFirstConsumer"
telemetry parameters
telemetry.enabled
Default: true
telemetry.segmentApiKey
Default: "hMWi3sZ17KFMjn2sPWo9UJGpOQqiba4A"
telemetry.segmentClientSide
Default: true
tls parameters
tls.defaultCertificateSpecs
Default: {}