Mit Polycrate CLI 0.29.15 haben wir den Root Cause eines hartnäckigen Bugs behoben, bei dem Endpoints mit tls: false in der API nicht korrekt in die Kubernetes CRD übernommen wurden.
Root Cause: omitempty + default=true
Das Problem lag in der CRD-Definition des Endpoint-Typs:
// Vorher (fehlerhaft)
// +kubebuilder:default=true
TLS bool `json:"tls,omitempty"`
Bei TLS=false (Go Zero-Value für bool) wurde das Feld wegen omitempty nicht ins JSON serialisiert. Kubernetes wendete dann den CRD-Default true an - das Update wurde effektiv ignoriert.
Die Lösung
// Nachher (korrekt)
// +kubebuilder:default=false
TLS bool `json:"tls"`
Durch das Entfernen von omitempty wird false explizit als "tls": false serialisiert. Der neue Default false verhindert "Required value" Fehler bei alten CRs.
Erweitertes Endpoint-Check Logging
Zusätzlich wurden die Debug-Logs für Endpoint-Checks erweitert. Bei loglevel: 2 werden jetzt vollständige URLs und Check-Ergebnisse geloggt:
Performing endpoint check
url: http://example.com:80/
protocol: http
tls: false
Endpoint check failed
status_code: 404
error: Unexpected status code: 404
Dies erleichtert das Troubleshooting von Endpoint-Monitoring Problemen erheblich.
Breaking Change: Neue Defaults
Neue Endpoints bekommen jetzt folgende Defaults:
| Feld | Vorher | Nachher |
|---|---|---|
tls |
true |
false |
protocol |
https |
http |
Für HTTPS-Endpoints muss tls: true explizit gesetzt werden.
polycrate-operator Block
Der polycrate-operator Block wurde auf Version 0.3.30 aktualisiert:
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-operator
polycrate run polycrate-operator deploy
Wichtig: Die neuen CRDs werden automatisch installiert. Bestehende Endpoints mit falschem TLS-Wert werden beim nächsten API-Sync korrigiert.
Jetzt aktualisieren
polycrate update 0.29.15
Oder laden Sie die Binaries direkt vom PolyHub herunter.
Polycrate ist das Infrastructure-as-Code Tool von ayedo für deklaratives Multi-Cluster-Management. Mehr erfahren →