Files
pieced-operator-public/deploy/helm/pieced-operator/templates/crds/pieced.ch_piecedtenants.yaml

148 lines
4.8 KiB
YAML

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: piecedtenants.pieced.ch
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
spec:
group: pieced.ch
names:
kind: PiecedTenant
listKind: PiecedTenantList
plural: piecedtenants
singular: piecedtenant
shortNames:
- pt
scope: Cluster
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: {}
additionalPrinterColumns:
- name: Display Name
type: string
jsonPath: .spec.displayName
- name: Phase
type: string
jsonPath: .status.phase
- name: Namespace
type: string
jsonPath: .status.tenantNamespace
- name: Age
type: date
jsonPath: .metadata.creationTimestamp
schema:
openAPIV3Schema:
type: object
description: PiecedTenant represents a customer tenant on the PieCed IT multi-tenant platform.
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
required:
- displayName
properties:
displayName:
type: string
description: Human-readable tenant name.
packages:
type: array
description: Enabled package IDs from the catalog.
items:
type: string
agentId:
type: string
description: OpenClaw agent identifier. Defaults to "assistant".
agentName:
type: string
description: Display name of the agent. Defaults to "Assistant".
storageSize:
type: string
description: PVC size for OpenClaw workspace. Defaults to "5Gi".
workspaceFiles:
type: object
description: >
MD files seeded into the agent workspace on first boot.
Keys are filenames (SOUL.md, AGENTS.md, TOOLS.md), values are content.
Seeded once — runtime mutations persist on PVC.
additionalProperties:
type: string
channelUsers:
type: object
description: >
Maps channel names (telegram, discord, etc.) to lists of authorized
user IDs. Sets dmPolicy to "allowlist" and populates allowFrom for
each channel in the OpenClawInstance config.
additionalProperties:
type: array
items:
type: string
suspend:
type: boolean
description: Stops reconciliation without deleting resources.
status:
type: object
properties:
conditions:
type: array
items:
type: object
properties:
type:
type: string
status:
type: string
lastTransitionTime:
type: string
format: date-time
reason:
type: string
message:
type: string
required:
- type
- status
- lastTransitionTime
- reason
phase:
type: string
tenantNamespace:
type: string
litellmTeamId:
type: string
litellmKeyAlias:
type: string
enabledPackages:
type: array
items:
type: string
suspendedAt:
type: string
format: date-time
warnings:
type: array
items:
type: object
required:
- source
properties:
source:
type: string
reason:
type: string
message:
type: string
since:
type: string
format: date-time
observedGeneration:
type: integer
format: int64