Skip to main content

ServicePrincipal

A non-human identity (client credentials) for pipelines, maintenance and collectors.

Spec​

FieldTypeRequiredDefaultDescriptionConstraints
spec.audiencesarray of stringNo["trino","lakekeeper"]What the principal's tokens are valid for; at least one, both engines by default (trino for SQL, lakekeeper for stardelt.spark() in a notebook).min 1, max 2
spec.existingSecretRefobject (nullable)NoOnly with an external identity provider: the Secret that holds the app registration's credentials.
spec.existingSecretRef.namestringYesmin 1, max 253; pattern ^[a-z0-9]([-a-z0-9.]*[a-z0-9])?$
spec.ownerGroupstringYesThe group whose members may use the principal. Members never read its credentials.min 1, max 64; pattern ^[A-Za-z0-9][A-Za-z0-9._-]*$
spec.purposestringNopipelineWhat a service principal is for. It decides nothing by itself (grants do); it makes the intent visible in kubectl get and in Nova.pipeline, maintenance, collector

Status​

FieldTypeRequiredDefaultDescriptionConstraints
status.clientIdstring (nullable)No
status.conditionsarray of objectNo[]
status.conditions[].lastTransitionTimestring (nullable)No
status.conditions[].messagestring (nullable)No
status.conditions[].observedGenerationinteger (nullable)Noformat int64
status.conditions[].reasonstring (nullable)No
status.conditions[].statusstringYes
status.conditions[].typestringYes
status.observedGenerationinteger (nullable)Noformat int64
status.readybooleanNofalseTrue when the client exists (or the referenced Secret is valid) and the Secret is written.
status.secretNamestring (nullable)No

Validation rules​

  • each audience may appear once