Repository navigation
feat: answer the gitops-api team's open asks - #445
Merged
Merged
Conversation
Two instances can now share one config-plane cluster. --watch-namespaces (Helm: controllerManager.watchNamespaces) confines the manager's cache to the listed namespaces, so an instance reconciles the namespaced kinds there only. A ClusterWatchRule is cluster-scoped, so every instance sees it: the one serving its GitTarget's namespace reconciles it, and the others write nothing to it, status included. A rule re-pointed out of the served namespaces is dropped from the store. The Namespace informer is narrowed by its name label, so a label change elsewhere enqueues nothing, and ConfigMaps are also cached in the controller's own namespace for the install-level known_hosts ConfigMap. The chart scopes the admission webhook to the same namespaces. Empty, the default, serves every namespace as before. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
claimed_resource_reconciled_total{applier_kind, claim_namespace,
claim_name} counts a held Kustomization resumed, or a held Application's
automated sync switched on, by somebody else. The ClaimedResourceReconciled
Event said so already, but the API server folds identical Events and
expires them, so it made a poor alarm.
The Flux guide's troubleshooting table gains the common cause of a
recurring one: a controller that writes the Kustomization's whole spec
without spec.suspend, which SuspendOwnedElsewhere cannot report.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…lizer A terminating object's removal is credited to its deletion, never to the write at its version. That write can be a finalizer cleared by an UPDATE as well as a PATCH, and its fact can be filed before or after the deletion's; pin all four. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 59 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Reverts 6c4f389. Partitioning one cluster between two instances by namespace removes only two of the four costs the ask lists: the CRDs and the ClusterRole stay shared, so the instances keep one upgrade cadence and one RBAC posture. It is not the HA mechanism either, and it adds a second tenancy model beside one instance serving many namespaces through grants. The team is not blocked: one shared instance works. The asks doc records #28 as deferred and why; the restart cost behind it belongs to the durable pending writes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #444.
Answers the gitops-api team's open asks that are small enough for one PR (
docs/future/gitops-api-open-asks.md).claimed_resource_reconciled_total(ask #31)This counter is labelled
{applier_kind, claim_namespace, claim_name}. It counts every apply an applier claim did not start: a heldKustomizationresumed, or a heldApplication's automated sync switched on. TheClaimedResourceReconciledEvent already said this, but the API server folds identical Events together and expires them.Documented in
interpreting-metrics.md, with a suggested alert, and in both applier guides.Troubleshooting row (ask #32)
The Flux guide gets a troubleshooting row for a recurring
ClaimedResourceReconciled. The cause is a controller that writes theKustomization's whole spec withoutspec.suspend, whichSuspendOwnedElsewherecannot report.Deleter attribution (ask #23)
New fact-index tests pin that a terminating object's removal names its deleter. They cover a finalizer cleared by an UPDATE as well as a PATCH, with the controller's fact filed before or after the deletion's. #431's fix holds.
Not changed
internal/yamlstyle), and a test fails on a second one. The asks doc and the TODO drop it.OperationUnresolvedappearing on three objects is readiness projection, not three separate records.sentis never counted for an apply that wasn't needed.Testing
task lintpasses.task testpasses, with coverage at 80.1% against a baseline of 80.2% (tolerance 0.5%).TestFactIndex_AFinalizerClearedByAControllerNamesTheDeleter🤖 Generated with Claude Code