Files
obsidian-sympozium/08-Słownik-K8s/CRD - Custom Resource Definition.md
2026-03-25 00:05:57 +01:00

2.4 KiB

CRD - Custom Resource Definition

#kubernetes #api #słownik

Co to jest?

Custom Resource Definition (CRD) to mechanizm Kubernetes pozwalający na rozszerzenie API klastra o własne typy zasobów. Po zainstalowaniu CRD, nowy typ zasobu jest traktowany przez API server identycznie jak wbudowane zasoby (Pod, Service, Deployment).

Jak działa?

1. Instalacja CRD YAML → K8s API Server rejestruje nowy typ
2. Użytkownik tworzy instancję → Zapisana w etcd jak każdy zasób
3. Controller obserwuje → Reconciliuje desired state → actual state

Przykład

# Definicja CRD
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: agentruns.sympozium.ai
spec:
  group: sympozium.ai
  versions:
    - name: v1alpha1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: agentruns
    singular: agentrun
    kind: AgentRun
# Instancja CRD (Custom Resource / CR)
apiVersion: sympozium.ai/v1alpha1
kind: AgentRun
metadata:
  name: my-run
spec:
  task: "Check cluster health"

Kluczowe koncepty

Koncept Opis
CRD Definicja typu (schemat)
CR (Custom Resource) Instancja danego typu
Controller Kod obserwujący CR i realizujący intent
Operator Controller + CRD + logika domenowa
Status subresource Oddzielny endpoint do aktualizacji statusu
Finalizer Blokuje usunięcie do czasu cleanup
Validation Schema validation (OpenAPI v3) lub webhook

Dlaczego CRD a nie ConfigMap?

CRD ConfigMap
Typowane, walidowane Dowolne dane
Status subresource Brak statusu
kubectl native (kubectl get agentruns) Wymaga custom tooling
RBAC per-resource RBAC per-configmap
Watch API (event-driven) Polling
ownerReferences (GC) Manualne zarządzanie

CRD w Sympozium

Sympozium definiuje 7 CRDs (API group: sympozium.ai/v1alpha1):

CRD Opis
SympoziumInstance Tożsamość agenta / tenant
AgentRun Pojedyncze wywołanie agenta
PersonaPack Bundle pre-konfigurowanych agentów
SkillPack Portable skills (Markdown + sidecar)
SympoziumPolicy Polityki governance
SympoziumSchedule Cron-based recurring tasks
MCPServer External MCP tool providers

Powiązane: Controller i Reconciler | Finalizer | ownerReference