Polycrate API 0.14.0¶
Release-Datum: 2. März 2026
Typ: Feature-Release
Highlights¶
Version 0.14.0 fuehrt Domains und DNS Management (PowerDNS) als First-Class ManagedObjects ein, erweitert Workspaces um GitLab-Projekt Auto-Create und behebt einen kritischen Bug beim Operator Global Endpoint Monitor.
- Domains — Domain-Namen als ManagedObject mit CentralNic-Registrar, Domain ↔ DNSZone Verknuepfung
- DNS Management — PowerDNS-Integration mit DNSZone und DNSRecord CRUD
- Workspace GitLab Auto-Create — Suche nach bestehendem Projekt, bei Bedarf automatische Erstellung
- Operator Global Endpoint Monitor Fix — Agents ohne
operator_global_endpoint_monitormonitoren keine fremden Endpoints mehr - Endpoint Workspace-Uniqueness — Doppelte Endpoints pro Workspace werden verhindert
Artefakte¶
Docker Images¶
Deployment¶
Neue Features¶
Domains (CentralNic Registrar)¶
Das Domain-Model repraesentiert einen verwalteten Domain-Namen als eigenstaendiges ManagedObject.
- Business-Ebene: Domain beschreibt einen FQDN, den die Organisation besitzt oder verwaltet
- DNS-Ebene: Eine
DNSZoneist die technische Entsprechung im PowerDNS-Backend - Beziehung: 1 Domain → 0..1 DNSZone (optional verknuepft)
- Registrar: Konfigurierbar ueber das
DomainRegistrar-Model (kind=centralnic), System Domain Registrar via SystemConfig
CentralNic (RRPProxy) Integration:
- StatusDomain, CheckDomain, AddDomain, ModifyDomain, DeleteDomain
- Domain-Registrierung und Portfolio-Import via Reconciliation
DNS Management (PowerDNS)¶
Plattformweiter DNS-Service auf Basis PowerDNS:
- Synchroner API-Flow — jede Mutation (Zone/Record anlegen, bearbeiten, loeschen) wird sofort an die PowerDNS-API geschrieben
- SystemConfig:
POWERDNS_API_ENDPOINT,POWERDNS_API_KEY,POWERDNS_NAMESERVERS,POWERDNS_SOA_RNAME - DNSZone: Vollstaendiges CRUD mit PowerDNS-Sync
- DNSRecord: Records in Zonen verwalten (A, AAAA, CNAME, TXT, NS, SOA, etc.)
Workspace GitLab Auto-Create¶
Workspaces mit GitLab-Integration erhalten bei der Reconciliation:
- Search first: Bestehendes GitLab-Projekt per Name/Path in der Org-Gruppe suchen
- Create if not found: Wenn kein Projekt gefunden wird → neues Projekt anlegen (leeres Repo)
- Empty repo safe: Kein Crash mehr bei leeren Repositories
Operator Rollout-Verbesserungen¶
- Rollout Percentage Bypass: Erstinstallationen und Config-Aenderungen umgehen die Batch-Pruefung
- Existing Block Stale Install: Cluster mit vorhandenem Block werden korrekt auf neue Versionen aktualisiert
Bugfixes¶
Operator Global Endpoint Monitor (CRITICAL)¶
Problem: Agents ohne operator_global_endpoint_monitor erhielten fremde Endpoints aus anderen Workspaces.
Loesung:
Agent.is_eligible_endpoint()undAgent.get_eligible_endpoints()pruefen jetztoperator_global_endpoint_monitor- Celery-Task
agent_endpoint_associationbereinigt Zuweisungen, bei denen Agents ohne Flag fremde Endpoints hatten
Endpoint Workspace-Uniqueness¶
Doppelte Endpoints innerhalb eines Workspaces werden verhindert (Migration 0074_endpoint_workspace_uniqueness).
Agent Endpoint Association Integrity¶
FK-Verletzung bei Race Condition im agent_endpoint_association Task behoben.
DNS Form Atomicity¶
DNSZoneCreateForm.save() nutzt jetzt transaction.atomic() statt manuellem Rollback.
Verbesserungen¶
UI¶
- K8sCluster Detail: Endpoint-Link und Latest Action Run
- Product & OrganizationProduct Detail: Fehlende Felder ergaenzt
- PoP-Dropdown: Provider-Name wird angezeigt
- OrganizationProduct API: Fehlender
product-Filter ergaenzt
Chore¶
- Policies-UI entfernt — Policy-Engine deaktiviert
- Reconcile Policy Deactivation — Policy-Engine aus Reconciliation entfernt
- Spectacular Schema Cleanup — OpenAPI-Schema bereinigt
- Workspace Pop-Condition: Guard auf K8sCluster-Vorhandensein
- Celery Load Cache Error: Redis-Tuning auf Infra-Ebene (korrupte JSON-Cache-Daten)
Migration¶
Django Migrations laufen automatisch beim Container-Start. Relevante Migrationen:
| App | Migration | Beschreibung |
|---|---|---|
domains | diverse | Domain, DomainRegistrar, DNSZone, DNSRecord |
endpoints | 0074 | Endpoint Workspace-Uniqueness |
polycrate-api Block¶
Block-Version: 0.8.4 (app_version: 0.14.0)