Skip to content

Helm Chart Reference

Reference for Minecraft Operator Helm chart values.

Installation

# Single step — CRDs are embedded and applied at startup via server-side apply
helm install minecraft-operator \
  oci://ghcr.io/lexfrei/charts/minecraft-operator \
  --namespace minecraft-operator-system \
  --create-namespace

Values

CRDs

Value Description Default
crds.manage Operator manages CRDs at startup via server-side apply true

Image

Value Description Default
image.repository Container image ghcr.io/lexfrei/minecraft-operator
image.pullPolicy Pull policy IfNotPresent
image.tag Image tag Chart appVersion
imagePullSecrets Image pull secrets []

Deployment

Value Description Default
replicaCount Number of replicas 1
nameOverride Override chart name ""
fullnameOverride Override full name ""

Service Account

Value Description Default
serviceAccount.create Create service account true
serviceAccount.automountServiceAccountToken Automount API credentials true
serviceAccount.annotations SA annotations {}
serviceAccount.name SA name override ""

Pod Configuration

Value Description Default
podAnnotations Pod annotations {}
podLabels Pod labels {}

Security Context

Value Description Default
podSecurityContext.runAsNonRoot Run as non-root true
podSecurityContext.runAsUser User ID 65534
podSecurityContext.seccompProfile.type Seccomp profile RuntimeDefault
securityContext.allowPrivilegeEscalation Privilege escalation false
securityContext.capabilities.drop Dropped capabilities ["ALL"]
securityContext.readOnlyRootFilesystem Read-only filesystem true

Resources

Value Description Default
resources.limits.cpu CPU limit 500m
resources.limits.memory Memory limit 512Mi
resources.requests.cpu CPU request 100m
resources.requests.memory Memory request 128Mi

Leader Election

Value Description Default
leaderElection.enabled Enable leader election true

Metrics

Value Description Default
metrics.enabled Enable metrics true
metrics.port Metrics port 8080
metrics.serviceMonitor.enabled Create ServiceMonitor for Prometheus Operator false
metrics.serviceMonitor.interval Scrape interval (e.g., 30s) ""
metrics.serviceMonitor.scrapeTimeout Scrape timeout (e.g., 10s) ""
metrics.serviceMonitor.labels Additional labels for ServiceMonitor {}
metrics.serviceMonitor.endpointAuth Endpoint auth config (e.g., authorization or bearerTokenFile) {}

Health Probes

Value Description Default
health.port Health probe port 8081

Web UI

Value Description Default
webui.enabled Enable Web UI true
webui.port Web UI port 8082
webui.namespace Namespace to watch "" (all)
webui.service.type Service type ClusterIP
webui.service.port Service port 8082

Web UI Ingress

Value Description Default
webui.ingress.enabled Enable Ingress false
webui.ingress.className Ingress class ""
webui.ingress.annotations Ingress annotations {}
webui.ingress.hosts Ingress hosts See below
webui.ingress.tls TLS configuration []

Web UI HTTPRoute (Gateway API)

Value Description Default
webui.httproute.enabled Enable HTTPRoute false
webui.httproute.annotations HTTPRoute annotations {}

Examples

Minimal Installation

# values.yaml
replicaCount: 1

Production Configuration

# values.yaml
replicaCount: 1

resources:
  limits:
    cpu: 1
    memory: 1Gi
  requests:
    cpu: 200m
    memory: 256Mi

leaderElection:
  enabled: true

webui:
  enabled: true
  ingress:
    enabled: true
    className: nginx
    annotations:
      cert-manager.io/cluster-issuer: letsencrypt-prod
    hosts:
      - host: minecraft-operator.example.com
        paths:
          - path: /
            pathType: Prefix
    tls:
      - secretName: minecraft-operator-tls
        hosts:
          - minecraft-operator.example.com

Web UI with Gateway API

# values.yaml
webui:
  enabled: true
  httproute:
    enabled: true
    annotations:
      external-dns.alpha.kubernetes.io/hostname: minecraft-operator.example.com

Disable CRD Management

# values.yaml
crds:
  manage: false  # Operator will NOT apply CRDs at startup (manage them externally)

When crds.manage is false, you must apply CRDs manually before starting the operator:

kubectl apply --server-side --filename internal/crdmanager/crds/

See Also