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.nameto that value (e.g.name: acme, notname: 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.slugto its real slug; the operator will find and manage it in place rather than creating a new one. kubectl get glitchtiporganizationprintsstatus.slugin theSlugcolumn — 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).