Skip to content

Projects

A GlitchTipProject CR (short name gtproj) typically lives in the consuming application's namespace. The operator creates the project and a client key via the GlitchTip API, then writes the DSN into a Secret next to the CR.

apiVersion: glitchtip.ruck.io/v1alpha1
kind: GlitchTipProject
metadata:
  name: my-app
  namespace: my-app
spec:
  organizationRef:
    name: acme
    namespace: glitchtip     # cross-namespace reference to the org CR
  teamRef:
    name: backend
    namespace: glitchtip
  # teamSlug: backend        # alternative to teamRef
  platform: python-django
  secret:
    dsnKey: SENTRY_DSN
    extraDsnKeys: [GLITCHTIP_DSN]
  deletionPolicy: Delete

Spec fields

Field Type Default Notes
organizationRef ObjectRef Required. Usually in another namespace than the project.
teamRef ObjectRef Reference to a GlitchTipTeam CR. Takes precedence over teamSlug.
teamSlug string Raw team slug, an alternative to teamRef when you don't have (or want) a GlitchTipTeam CR to reference.
name string metadata.name Display name.
slug string Same caveat as organizations — see Organizations § Slugs.
platform string GlitchTip platform hint, e.g. python-django.
secret object See below.
deletionPolicy Delete | Retain Delete Delete removes the project via the API when the CR is deleted.

secret (DSN Secret)

Field Type Default Notes
secret.name string <cr-name>-glitchtip-dsn
secret.dsnKey string SENTRY_DSN Primary data key holding the DSN.
secret.extraDsnKeys []string Additional data keys written with the same DSN value (e.g. for apps expecting a different env var name).
secret.includeSecurityEndpoint bool Also write SENTRY_SECURITY_ENDPOINT when the API provides one.
secret.labels / secret.annotations map Applied to the generated Secret.

Status conditions

Type Meaning
Ready The project and its client key exist, and the DSN Secret has been written.

status also records slug, id, organizationSlug, teamSlug and keyId/secretName — useful for cross-referencing what the operator actually created in GlitchTip.