Skip to main content

Organization Domain

The Organization domain manages teams and groups within the Control Plane. It is responsible for onboarding teams and automatically provisioning the resources they need to start working with the platform.

Custom Resources​

Group​

Group is the Schema for the groups API.

Group: organization.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

GroupSpec​

Appears in: Group

GroupSpec defines the desired state of Group.

FieldTypeDefaultValidation
descriptionstring—Required, minLength: 1
displayNamestring—Required, minLength: 1

GroupStatus​

Appears in: Group

GroupStatus defines the observed state of Group.

FieldTypeDefaultValidation
conditionsCondition[]—Optional

Condition​

Appears in: GroupStatus, TeamStatus

FieldTypeDefaultValidation
lastTransitionTimestring—Required, Format: date-time
messagestring—Required, maxLength: 32768
observedGenerationinteger—Optional, Format: int64, minimum: 0
reasonstring—Required, minLength: 1, maxLength: 1024, pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
statusstring—Required, Enum: True \| False \| Unknown
typestring—Required, maxLength: 316, pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

Team​

Team is the Schema for the teams API.

Group: organization.cp.ei.telekom.de · Version: v1 · Scope: Namespaced

TeamSpec​

Appears in: Team

TeamSpec defines the desired state of Team.

FieldTypeDefaultValidation
categorystringCustomerRequired, Enum: Customer \| Infrastructure
descriptionstring—Optional, maxLength: 256
displayNamestring—Optional
emailstring—Required, Format: email, minLength: 1
groupstring—Required, minLength: 1, pattern: ^[a-z0-9]+(-?[a-z0-9]+)*$
membersMembers[]—Required, minItems: 1, maxItems: 200
namestring—Required, minLength: 1, pattern: ^[a-z0-9]+(-?[a-z0-9]+)*$
secretstring—Optional
teamTokenstring—Optional

Members​

Appears in: TeamSpec

Members is the members of the team

FieldTypeDefaultValidation
emailstring—Required, Format: email, minLength: 1, maxLength: 320
namestring—Required, minLength: 1, maxLength: 100

TeamStatus​

Appears in: Team

TeamStatus defines the observed state of Team.

FieldTypeDefaultValidation
conditionsCondition[]—Optional
gatewayConsumerRefObjectRef—Optional
identityClientRefObjectRef—Optional
namespacestring—Required
notificationChannelRefObjectRef—Optional
notificationsRefmap<string, object>—Optional
teamTokenstring—Optional

ObjectRef​

Appears in: TeamStatus

ObjectRef is a reference to a Kubernetes object It is similar to types.NamespacedName but has the required json tags for serialization

FieldTypeDefaultValidation
namestring—Required
namespacestring—Required
uidstring—Optional

Auto-Provisioning​

When a Team is created, the Organization operator automatically provisions:

  • A dedicated namespace — {environment}--{group}--{team}
  • An Identity Client — for authenticating with the platform
  • A Gateway Consumer — for accessing APIs through the gateway
  • A Notification Channel — for receiving platform notifications
  • A Team Token — for CLI authentication with Rover-CTL

Domain Interactions​

  • Identity domain — Creates identity clients for each team.
  • Gateway domain — Creates gateway consumers for each team.
  • Notification domain — Creates notification channels and sends lifecycle notifications (onboarding, token rotation, member changes).
  • Secret Manager — Handles credential storage and rotation for team tokens.