Skip to content

Configuration

Helm chart values

charts/glitchtip-operator configures the operator's own Deployment (not the GlitchTip instances it manages — see GlitchTip Instances for those).

Value Default Notes
image.repository ghcr.io/ruckc/glitchtip-operator
image.tag "" Defaults to the chart's appVersion.
image.pullPolicy IfNotPresent
imagePullSecrets []
logLevel info,kube=warn RUST_LOG filter for the operator process.
replicas 1
resources.requests cpu: 50m, memory: 64Mi
resources.limits memory: 256Mi
serviceAccount.create true
serviceAccount.name "" Defaults to the release's fullname.
serviceAccount.annotations {}
rbac.create true See RBAC below — the operator needs cluster-scoped permissions.
podLabels / podAnnotations {}
nodeSelector / tolerations / affinity Standard scheduling knobs.

RBAC

The operator watches its CRDs cluster-wide and writes DSN Secrets into arbitrary application namespaces, so it runs under a ClusterRole/ ClusterRoleBinding (rbac.create: true, the default) rather than a namespaced Role. It needs:

  • Full lifecycle on glitchtip.ruck.io resources (including /status and /finalizers subresources).
  • Create/patch/delete on pgop's clusters, roles and databases (pgop.ruck.io).
  • Create/patch/delete on Secrets and Services (core), Deployments (apps), Jobs (batch), and HTTPRoutes (gateway.networking.k8s.io) — the last only actually used when an instance sets spec.route.enabled.
  • create/patch on Events.

If you need to run with a reduced permission set (e.g. restricting to specific namespaces), start from charts/glitchtip-operator/templates/rbac.yaml.

Running locally

For development against a kind cluster (see Contributing):

RUST_LOG=info cargo run

The operator uses the ambient kubeconfig (or in-cluster config when run as a Pod) via kube-rs's standard client discovery — no additional flags or config files.