Das Entfernen des PBS-2-Checks in #699 hat sauber reconciled und nichts bewirkt.
Nachgemessen nach dem Merge:
ConfigMap im Cluster: Web Service 1..10, Infrastructure 3, Infrastructure 4
Laufende Instanz: Web Service 1..10, Infrastructure 1, Infrastructure 3, Infrastructure 4
^^^^^^^^^^^^^^^^
Gatus liest seine Konfiguration einmal beim Start und nie wieder. Der Pod ist 26 Stunden alt.
Warum das von außen richtig aussieht
Flux meldet die Kustomization als applied, die ConfigMap stimmt mit git überein, keine Ressource ist im Fehlerzustand. Das einzige Symptom ist, dass die vom Dienst ausgelieferte Endpunktliste der im Repo widerspricht.
Das gilt in beide Richtungen: einen Check hinzuzufügen wäre genauso unsichtbar geblieben wie einen zu entfernen. Jede Gatus-Änderung seit dem Deploy vor 111 Tagen hätte einen manuellen Pod-Neustart gebraucht.
Die Fähigkeit war längst da
Reloader läuft seit 40 Tagen cluster-weit (kube-system/reloader-reloader), und elf andere Workloads tragen seine Annotation bereits — in den Namespaces apps, home-assistant, woodpecker, wordpress und authentik. Gatus hat schlicht nie eine bekommen.
Die Annotationsform für ConfigMaps ist gegen Upstream verifiziert, nicht aus dem Gedächtnis: configmap.reloader.stakater.com/reload nimmt den ConfigMap-Namen. Die elf vorhandenen sind alle secret.…, diese Variante nutzte hier noch niemand.
Preis
Der Pod startet beim Reload neu, und das Deployment nutzt Recreate wegen seines RWO-Volumes. Die Statusseite hat also bei jeder Konfigänderung eine kurze Lücke. Das ist der richtige Tausch gegen Checks, die still nicht mehr dem Repo entsprechen.
Bewusst nicht angefasst
Das Deployment verletzt PodSecurity restricted an vier Stellen (allowPrivilegeEscalation, capabilities, runAsNonRoot, seccompProfile) — sichtbar als Warnung beim Dry-Run. Das ist älter als diese Änderung und eine eigene Sache.
Nach dem Merge
Ich prüfe, dass der Pod tatsächlich neu startet und die laufende Instanz danach zwölf Endpunkte ohne Infrastructure 1 meldet. Ein Neustart von Hand kommt nicht in Frage — das würde genau den Mechanismus überspringen, den dieser PR testet.
Das Entfernen des PBS-2-Checks in #699 hat sauber reconciled und **nichts bewirkt**.
Nachgemessen nach dem Merge:
```
ConfigMap im Cluster: Web Service 1..10, Infrastructure 3, Infrastructure 4
Laufende Instanz: Web Service 1..10, Infrastructure 1, Infrastructure 3, Infrastructure 4
^^^^^^^^^^^^^^^^
```
Gatus liest seine Konfiguration **einmal beim Start** und nie wieder. Der Pod ist 26 Stunden alt.
## Warum das von außen richtig aussieht
Flux meldet die Kustomization als applied, die ConfigMap stimmt mit git überein, keine Ressource ist im Fehlerzustand. Das einzige Symptom ist, dass die vom Dienst ausgelieferte Endpunktliste der im Repo widerspricht.
Das gilt in beide Richtungen: einen Check **hinzuzufügen** wäre genauso unsichtbar geblieben wie einen zu entfernen. Jede Gatus-Änderung seit dem Deploy vor 111 Tagen hätte einen manuellen Pod-Neustart gebraucht.
## Die Fähigkeit war längst da
Reloader läuft seit 40 Tagen cluster-weit (`kube-system/reloader-reloader`), und **elf andere Workloads** tragen seine Annotation bereits — in den Namespaces `apps`, `home-assistant`, `woodpecker`, `wordpress` und `authentik`. Gatus hat schlicht nie eine bekommen.
Die Annotationsform für ConfigMaps ist **gegen Upstream verifiziert**, nicht aus dem Gedächtnis: `configmap.reloader.stakater.com/reload` nimmt den ConfigMap-Namen. Die elf vorhandenen sind alle `secret.…`, diese Variante nutzte hier noch niemand.
## Preis
Der Pod startet beim Reload neu, und das Deployment nutzt `Recreate` wegen seines RWO-Volumes. Die Statusseite hat also bei jeder Konfigänderung eine kurze Lücke. Das ist der richtige Tausch gegen Checks, die still nicht mehr dem Repo entsprechen.
## Bewusst nicht angefasst
Das Deployment verletzt PodSecurity `restricted` an vier Stellen (`allowPrivilegeEscalation`, `capabilities`, `runAsNonRoot`, `seccompProfile`) — sichtbar als Warnung beim Dry-Run. Das ist älter als diese Änderung und eine eigene Sache.
## Nach dem Merge
Ich prüfe, dass der Pod tatsächlich neu startet und die laufende Instanz danach zwölf Endpunkte ohne `Infrastructure 1` meldet. Ein Neustart von Hand kommt nicht in Frage — das würde genau den Mechanismus überspringen, den dieser PR testet.
Dropping the PBS 2 check in the previous commit reconciled cleanly and changed
nothing. The ConfigMap in the cluster no longer lists it; the running instance
still reports Infrastructure 1, because Gatus reads its config once at startup
and the pod is 26 hours old.
Nothing about that state looks wrong from the outside. Flux reports the
Kustomization applied, the ConfigMap matches git, and no resource is failing —
the only symptom is that the endpoint list served by the app disagrees with the
one in the repo. Adding a check would have been just as invisible as removing
one.
Reloader has been installed cluster-wide for 40 days and eleven other workloads
already carry its annotation, across the apps, home-assistant, woodpecker,
wordpress and authentik namespaces. Gatus was simply never given one. The
annotation form for a ConfigMap is confirmed against upstream rather than
recalled: configmap.reloader.stakater.com/reload takes the ConfigMap name.
The pod restarts on reload and the deployment uses Recreate for its RWO volume,
so the status page has a short gap whenever the config changes. That is the
correct trade against serving checks that silently no longer match the repo.
Not addressed: the deployment trips PodSecurity restricted on four counts
(allowPrivilegeEscalation, capabilities, runAsNonRoot, seccompProfile). That
predates this and is its own change.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Das Entfernen des PBS-2-Checks in #699 hat sauber reconciled und nichts bewirkt.
Nachgemessen nach dem Merge:
Gatus liest seine Konfiguration einmal beim Start und nie wieder. Der Pod ist 26 Stunden alt.
Warum das von außen richtig aussieht
Flux meldet die Kustomization als applied, die ConfigMap stimmt mit git überein, keine Ressource ist im Fehlerzustand. Das einzige Symptom ist, dass die vom Dienst ausgelieferte Endpunktliste der im Repo widerspricht.
Das gilt in beide Richtungen: einen Check hinzuzufügen wäre genauso unsichtbar geblieben wie einen zu entfernen. Jede Gatus-Änderung seit dem Deploy vor 111 Tagen hätte einen manuellen Pod-Neustart gebraucht.
Die Fähigkeit war längst da
Reloader läuft seit 40 Tagen cluster-weit (
kube-system/reloader-reloader), und elf andere Workloads tragen seine Annotation bereits — in den Namespacesapps,home-assistant,woodpecker,wordpressundauthentik. Gatus hat schlicht nie eine bekommen.Die Annotationsform für ConfigMaps ist gegen Upstream verifiziert, nicht aus dem Gedächtnis:
configmap.reloader.stakater.com/reloadnimmt den ConfigMap-Namen. Die elf vorhandenen sind allesecret.…, diese Variante nutzte hier noch niemand.Preis
Der Pod startet beim Reload neu, und das Deployment nutzt
Recreatewegen seines RWO-Volumes. Die Statusseite hat also bei jeder Konfigänderung eine kurze Lücke. Das ist der richtige Tausch gegen Checks, die still nicht mehr dem Repo entsprechen.Bewusst nicht angefasst
Das Deployment verletzt PodSecurity
restrictedan vier Stellen (allowPrivilegeEscalation,capabilities,runAsNonRoot,seccompProfile) — sichtbar als Warnung beim Dry-Run. Das ist älter als diese Änderung und eine eigene Sache.Nach dem Merge
Ich prüfe, dass der Pod tatsächlich neu startet und die laufende Instanz danach zwölf Endpunkte ohne
Infrastructure 1meldet. Ein Neustart von Hand kommt nicht in Frage — das würde genau den Mechanismus überspringen, den dieser PR testet.