Skip to content

Organizations

A GlitchTipOrganization CR (short name gtorg) manages an organization inside a GlitchTip instance through its REST API.

apiVersion: glitchtip.ruck.io/v1alpha1
kind: GlitchTipOrganization
metadata:
  name: acme
  namespace: glitchtip
spec:
  instanceRef:
    name: glitchtip          # namespace defaults to this CR's namespace
  name: Acme Corp
  deletionPolicy: Delete

Spec fields

Field Type Default Notes
instanceRef ObjectRef Required. The GlitchTip instance CR this organization belongs to.
name string metadata.name Display name sent to GlitchTip.
slug string Only used to adopt a pre-existing organization by slug (see below) — it has no effect on the slug of a newly-created one.
deletionPolicy Delete | Retain Delete Delete removes the organization via the API when the CR is deleted.

Slugs are assigned by GlitchTip, not requested

GlitchTip's organization API only ever accepts name on create; it always derives the slug from it server-side (e.g. "Acme Corp""acme-corp") and silently ignores any client-supplied slug — this has been true across every GlitchTip version the operator has been tested against.

The operator handles this by treating spec.slug (falling back to metadata.name) purely as the lookup key for an initial "does this already exist" check, then recording whatever slug GlitchTip actually assigned into status.slug once the organization exists. status.slug takes precedence on every subsequent reconcile, so this is self-healing: teams and projects that reference the organization CR resolve the real slug through its status, not through any assumption about what the slug "should" be.

Practical implications:

  • If you want the slug to match a specific value, set spec.name to that value (e.g. name: acme, not name: Acme Corp) — GlitchTip's own slugification of a name with no spaces/punctuation is generally a no-op.
  • To adopt an organization that already exists in GlitchTip, set spec.slug to its real slug; the operator will find and manage it in place rather than creating a new one.
  • kubectl get glitchtiporganization prints status.slug in the Slug column — that's always the authoritative value.

Status conditions

Type Meaning
Ready The organization exists in GlitchTip and its display name matches spec.name/metadata.name.

Ready=False reasons: InstanceNotFound, WaitingForInstance (the GlitchTip instance's API isn't validated yet).