Skip to content

Chart values

The values of the Helm chart deploy/helm/muster. The types and the descriptions come from its values.schema.json, which rejects a value it does not list, and the defaults from its values.yaml. Set existingSecret: the chart never generates the master keys, and rendering fails without it.

global

object · no default

Helm's global values, shared with subcharts; Muster reads none of them.

image

object

The container image of Muster.

image.repository

string · default: ghcr.io/muster-io/muster

The image repository.

image.tag

string or null · default: ""

The image tag; empty uses the appVersion of the chart.

image.pullPolicy

string (Always, Never, IfNotPresent) · default: IfNotPresent

The pull policy of the image.

imagePullSecrets

array · default: []

The Secrets for pulling the image from a private registry, as in a pod spec.

nameOverride

string · default: ""

Replaces the chart name in the names of the resources.

fullnameOverride

string · default: ""

Replaces the whole name of the resources.

replicas

integer · default: 1

The number of Muster replicas; one of them is the Leader at a time.

existingSecret

string · default: ""

The Secret that holds the master keys and, under the keys named below, the password of the bootstrap Admin and the database password or URL unless database.existingSecret names another Secret. Required: the chart never generates the master keys.

masterKeysKey

string · default: secret-keys

The key of existingSecret that holds the master keys, one per line (MUSTER_SECRET_KEYS_FILE).

database

object

The database connection.

database.host

string · default: ""

The database host (MUSTER_DATABASE_HOST); ignored when urlKey is set.

database.port

integer · default: 5432

The database port (MUSTER_DATABASE_PORT); ignored when urlKey is set.

database.name

string · default: muster

The database name (MUSTER_DATABASE_NAME); ignored when urlKey is set.

database.user

string · default: muster

The database user (MUSTER_DATABASE_USER); ignored when urlKey is set.

database.sslmode

string · default: ""

The sslmode of the database connections (MUSTER_DATABASE_SSLMODE); empty uses Muster's default, prefer.

database.existingSecret

string · default: ""

The Secret that holds the database password or URL under passwordKey or urlKey, such as the app Secret that CloudNativePG generates; empty uses existingSecret.

database.passwordKey

string · default: database-password

The key that holds the database password (MUSTER_DATABASE_PASSWORD_FILE), in database.existingSecret or, when that is empty, in existingSecret; ignored when urlKey is set.

database.urlKey

string · default: ""

The key that holds the whole connection as a URL (MUSTER_DATABASE_URL), in database.existingSecret or, when that is empty, in existingSecret; used instead of the fields above.

database.sessionHost

string · default: ""

The host of the session connection, for a pooler in transaction mode (MUSTER_DATABASE_SESSION_HOST).

database.sessionPort

integer or null · default: null

The port of the session connection (MUSTER_DATABASE_SESSION_PORT); null uses the port of the main connection.

publicURL

string · default: ""

The address of Muster for people and messengers (MUSTER_PUBLIC_URL).

ingestURL

string · default: ""

The address Alertmanager sends its notifications to (MUSTER_INGEST_URL); empty uses publicURL.

bootstrapAdmin

object

The bootstrap Admin, created at start while the Organization has no Admin.

bootstrapAdmin.email

string · default: ""

The email, also the login, of the bootstrap Admin (MUSTER_BOOTSTRAP_ADMIN_EMAIL).

bootstrapAdmin.passwordKey

string · default: ""

The key of existingSecret that holds the password of the bootstrap Admin (MUSTER_BOOTSTRAP_ADMIN_PASSWORD_FILE).

extraEnv

array · default: []

Extra environment variables of the Muster containers, as in a container spec.

resources

object · default: {}

The resource requests and limits of the Muster containers.

podSecurityContext

object · default: {"fsGroup":65532,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532,"seccompProfile":{"type":"RuntimeDefault"}}

The security context of the pods.

securityContext

object · default: {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true}

The security context of the Muster containers.

podAnnotations

object · default: {}

Extra annotations of the pods.

podLabels

object · default: {}

Extra labels of the pods.

nodeSelector

object · default: {}

The node selector of the pods.

tolerations

array · default: []

The tolerations of the pods.

affinity

object · default: {}

The affinity of the pods.

topologySpreadConstraints

array · default: []

The topology spread constraints of the pods.

priorityClassName

string · default: ""

The priority class of the pods; empty sets none.

serviceAccount

object

The service account of the pods.

serviceAccount.create

boolean · default: true

Creates the service account.

serviceAccount.name

string · default: ""

The name of the service account; empty uses the full name of the release when the chart creates it, and default otherwise.

serviceAccount.annotations

object · default: {}

Extra annotations of the service account.

serviceAccount.automountServiceAccountToken

boolean · default: false

Mounts the token of the service account into the pods; Muster does not call the Kubernetes API.

service

object

The Services of the three listeners.

service.app

object

The Service of the app listener: the UI and the API.

service.app.type

string · default: ClusterIP

The type of the Service.

service.app.port

integer · default: 8080

The port of the Service, also the container port and the listen port (MUSTER_LISTEN_APP).

service.app.annotations

object · default: {}

Extra annotations of the Service.

service.ingest

object

The Service of the ingest listener: ingestion, Heartbeats and messenger callbacks.

service.ingest.type

string · default: ClusterIP

The type of the Service.

service.ingest.port

integer · default: 8081

The port of the Service, also the container port and the listen port (MUSTER_LISTEN_INGEST).

service.ingest.annotations

object · default: {}

Extra annotations of the Service.

service.internal

object

The Service of the internal listener: the health checks and /metrics.

service.internal.type

string · default: ClusterIP

The type of the Service.

service.internal.port

integer · default: 8082

The port of the Service, also the container port and the listen port (MUSTER_LISTEN_INTERNAL).

service.internal.annotations

object · default: {}

Extra annotations of the Service.

ingress

object

The Ingresses of the app and ingest listeners; the internal listener is never exposed.

ingress.enabled

boolean · default: false

Creates the Ingresses.

ingress.className

string · default: ""

The class of the Ingresses; empty uses the cluster's default.

ingress.annotations

object · default: {}

Extra annotations of the Ingresses.

ingress.app

object · default: {"hosts":[],"tls":[]}

The hosts and tls of the Ingress of the app listener, as in an Ingress spec.

ingress.ingest

object · default: {"hosts":[],"tls":[]}

The hosts and tls of the Ingress of the ingest listener, as in an Ingress spec.

httpRoute

object

The Gateway API HTTPRoutes of the app and ingest listeners; the internal listener is never exposed.

httpRoute.enabled

boolean · default: false

Creates the HTTPRoutes.

httpRoute.parentRefs

array · default: []

The Gateways the HTTPRoutes attach to, as in an HTTPRoute spec.

httpRoute.annotations

object · default: {}

Extra annotations of the HTTPRoutes.

httpRoute.labels

object · default: {}

Extra labels of the HTTPRoutes.

httpRoute.app

object · default: {"hostnames":[]}

The hostnames of the HTTPRoute of the app listener.

httpRoute.ingest

object · default: {"hostnames":[]}

The hostnames of the HTTPRoute of the ingest listener.

serviceMonitor

object

A Prometheus Operator ServiceMonitor that scrapes /metrics on the internal listener.

serviceMonitor.enabled

boolean · default: false

Creates the ServiceMonitor.

serviceMonitor.interval

string · default: 30s

The scrape interval.

serviceMonitor.scrapeTimeout

string · default: 10s

The scrape timeout.

serviceMonitor.labels

object · default: {}

Extra labels of the ServiceMonitor, such as the one the Prometheus selects.

networkPolicy

object

A NetworkPolicy of the pods.

networkPolicy.enabled

boolean · default: false

Creates a NetworkPolicy that allows incoming traffic to the three listener ports only.

podDisruptionBudget

object

A PodDisruptionBudget of the pods.

podDisruptionBudget.enabled

boolean · default: false

Creates the PodDisruptionBudget.

podDisruptionBudget.maxUnavailable

integer or string · default: 1

The number or percentage of pods that may be unavailable at a time.

alerting

object

The chart's alert rules about Muster itself, for the Prometheus Operator and the VictoriaMetrics Operator; send the critical ones through an Alertmanager route that bypasses Muster.

alerting.runbookBaseURL

string · default: https://muster-io.github.io/muster

The documentation site the runbook_url of every rule points into: this URL, then the major.minor of the appVersion (latest for a development build), operations/runbooks/ and the name of the rule. Muster gets it too, as MUSTER_RUNBOOK_BASE_URL, for the runbook_url of its Internal alerts; set it here, not through extraEnv, so that the rules and the Internal alerts point into the same site.

alerting.jobSelector

string · default: ""

The label matchers that select Muster's series, part of every series selector of every rule, such as job="muster"; empty selects the job named after the chart, or after nameOverride when it is set, which is the job the ServiceMonitor scrapes into.

alerting.prometheusRule

object

A Prometheus Operator PrometheusRule with the rules.

alerting.prometheusRule.enabled

boolean · default: false

Creates the PrometheusRule.

alerting.prometheusRule.labels

object · default: {}

Extra labels of the PrometheusRule, such as the one the Prometheus selects rules by.

alerting.vmRule

object

A VictoriaMetrics Operator VMRule with the same rules.

alerting.vmRule.enabled

boolean · default: false

Creates the VMRule.

alerting.vmRule.labels

object · default: {}

Extra labels of the VMRule, such as the one the VMAlert selects rules by.

alerting.rules

object

Each rule: whether it is rendered, how long its condition holds before it fires (for) and its thresholds and windows.

alerting.rules.MusterDown

object

A scrape target of Muster is down (critical).

alerting.rules.MusterDown.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterDown.for

string · default: 2m

How long the target is down before the rule fires.

alerting.rules.MusterNoLeader

object

No replica is the Leader (critical).

alerting.rules.MusterNoLeader.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterNoLeader.for

string · default: 2m

How long no replica leads before the rule fires.

alerting.rules.MusterDeliveryFailing

object

A Destination has queued deliveries and no successful delivery (critical).

alerting.rules.MusterDeliveryFailing.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterDeliveryFailing.for

string · default: 5m

How long the condition holds before the rule fires.

alerting.rules.MusterDeliveryFailing.window

string · default: 10m

How far back a successful delivery counts.

alerting.rules.MusterDestinationBroken

object

A Destination is Broken (critical).

alerting.rules.MusterDestinationBroken.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterDestinationBroken.for

string · default: 5m

How long the Destination is Broken before the rule fires.

alerting.rules.MusterHeartbeatLost

object

An Integration is Heartbeat lost (critical).

alerting.rules.MusterHeartbeatLost.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterHeartbeatLost.for

string · default: 1m

How long the Integration is Heartbeat lost before the rule fires.

alerting.rules.MusterDeliverySlow

object

The 95th percentile of delivery latency is above its objective (warning).

alerting.rules.MusterDeliverySlow.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterDeliverySlow.for

string · default: 15m

How long delivery is slow before the rule fires.

alerting.rules.MusterDeliverySlow.seconds

number · default: 5

The latency objective in seconds.

alerting.rules.MusterDeliverySlow.window

string · default: 15m

The window of the latency percentile.

alerting.rules.MusterDeliveryQueueGrowing

object

A delivery queue is large and keeps growing (warning).

alerting.rules.MusterDeliveryQueueGrowing.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterDeliveryQueueGrowing.for

string · default: 15m

How long the queue keeps growing before the rule fires.

alerting.rules.MusterDeliveryQueueGrowing.size

integer · default: 100

The number of waiting deliveries above which a queue counts as large.

alerting.rules.MusterDeliveryQueueGrowing.window

string · default: 15m

The window over which the queue's growth is measured.

alerting.rules.MusterIngestBacklog

object

Processing falls behind ingestion (warning).

alerting.rules.MusterIngestBacklog.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterIngestBacklog.for

string · default: 5m

How long processing falls behind before the rule fires.

alerting.rules.MusterIngestBacklog.backlog

integer · default: 1000

The number of waiting Stored Snapshots above which the rule fires.

alerting.rules.MusterIngestBacklog.delaySeconds

number · default: 60

The 95th percentile of the processing delay, in seconds, above which the rule fires.

alerting.rules.MusterIngestBacklog.window

string · default: 5m

The window of the processing delay percentile.

alerting.rules.MusterIngestRejected

object

Oversized or unauthorized ingestion requests arrived (warning).

alerting.rules.MusterIngestRejected.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterIngestRejected.for

string · default: 0m

How long the condition holds before the rule fires.

alerting.rules.MusterIngestRejected.unauthorized

integer · default: 10

The number of unauthorized requests of an Integration within the window above which the rule fires; any oversized request fires it.

alerting.rules.MusterIngestRejected.window

string · default: 15m

The window in which rejected requests count.

alerting.rules.MusterTemplateError

object

Templates failed to render (warning).

alerting.rules.MusterTemplateError.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterTemplateError.for

string · default: 0m

How long the condition holds before the rule fires.

alerting.rules.MusterTemplateError.window

string · default: 15m

The window in which template errors count.

alerting.rules.MusterClockSkew

object

A replica's clock is off (warning).

alerting.rules.MusterClockSkew.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterClockSkew.for

string · default: 5m

How long the clock is off before the rule fires.

alerting.rules.MusterClockSkew.seconds

number · default: 2

The clock skew against the database, in seconds, above which the rule fires.

alerting.rules.MusterLoginFailures

object

A burst of failed sign-ins (warning).

alerting.rules.MusterLoginFailures.enabled

boolean · default: true

Renders the rule.

alerting.rules.MusterLoginFailures.for

string · default: 0m

How long the condition holds before the rule fires.

alerting.rules.MusterLoginFailures.failures

integer · default: 20

The number of failed sign-ins of one method within the window above which the rule fires.

alerting.rules.MusterLoginFailures.window

string · default: 10m

The window in which failed sign-ins count.

dashboard

object

The "Muster" Grafana dashboard.

dashboard.configMap

object

A ConfigMap with the dashboard for the Grafana sidecar, under the key muster.json.

dashboard.configMap.enabled

boolean · default: false

Creates the ConfigMap.

dashboard.configMap.labels

object · default: {"grafana_dashboard":"1"}

Labels of the ConfigMap besides the chart's; the Grafana sidecar finds dashboards by grafana_dashboard: "1" by default.

dashboard.configMap.annotations

object · default: {}

Annotations of the ConfigMap, such as the sidecar's folder annotation.

dashboard.grafanaDashboard

object

A Grafana Operator GrafanaDashboard that imports the dashboard from the ConfigMap; it needs dashboard.configMap.enabled.

dashboard.grafanaDashboard.enabled

boolean · default: false

Creates the GrafanaDashboard; rendering fails without dashboard.configMap.enabled.

dashboard.grafanaDashboard.instanceSelector

object · default: {"matchLabels":{"dashboards":"grafana"}}

The label selector of the Grafana instances that import the dashboard, as in a GrafanaDashboard spec.

dashboard.grafanaDashboard.folder

string · default: ""

The Grafana folder of the dashboard; empty leaves it to the operator.

dashboard.grafanaDashboard.allowCrossNamespaceImport

boolean · default: false

Lets Grafana instances in other namespaces import the dashboard.