Zum Inhalt

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_monitor monitoren keine fremden Endpoints mehr
  • Endpoint Workspace-Uniqueness — Doppelte Endpoints pro Workspace werden verhindert

Artefakte

Docker Images

docker pull cargo.ayedo.cloud/polycrate/polycrate-api:0.14.0

Deployment

polycrate run polycrate-api install

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 DNSZone ist 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:

  1. Search first: Bestehendes GitLab-Projekt per Name/Path in der Org-Gruppe suchen
  2. Create if not found: Wenn kein Projekt gefunden wird → neues Projekt anlegen (leeres Repo)
  3. 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() und Agent.get_eligible_endpoints() pruefen jetzt operator_global_endpoint_monitor
  • Celery-Task agent_endpoint_association bereinigt 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)

polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install