Conversation
Contributor
|
✅ Fix pushed: Fixed the CI failure by adding trailing newlines to |
Contributor
|
⏸️ CI Auto-Fix paused A user commit was detected after an automated fix. CI auto-fix is now paused To resume CI auto-fix, use the |
Resolve merge conflicts between PR branch and master: - Accept master versions for CI/config/code files (newer, more complete) - Keep PR's unique files (maintenance-runner, ADR-0002, maintenance.rs) - Fix libs/operator/src/kanidm/mod.rs: add maintenance module import - Fix libs/operator/src/kanidm/restore.rs: remove duplicate, use master's directory-based module structure - Fix Cargo.toml: add maintenance-runner to workspace members - Fix libs/operator/src/kanidm/reconcile/mod.rs: make is_replication_enabled pub(crate) for maintenance module access - Fix cmd/maintenance-runner/src/main.rs: rename shadowed test function - Fix docs/plans/maintenance-operations-design.md: merge both sides' content - Run cargo fmt for formatting
Contributor
|
Merge conflict resolution complete. Here's a summary: Changes made:
Pushed: |
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.
Summary
Relates to #950.
This PR records the proposed architecture for Kanidm database maintenance and turns the existing maintenance design document into a concrete implementation plan.
The main decision is to preserve HA by treating maintenance as a rolling per-replica offline operation, rather than reusing restore's full-topology quiesce/PVC Job workflow.
Architecture
KanidmMaintenanceone-shot resource;Important safety boundary
Kubernetes cannot provide exactly-once execution if a node dies in the middle of
kanidmd database <operation>. The implementation plan therefore makes interruption/retry qualification of each Kanidm maintenance command Phase 0.Verifyshould be straightforward.Reindexmust pass kill/reopen/retry tests before production enablement.Vacuumremains out unless it independently passes the same safety gate.If an operation is not safe after arbitrary interruption, the plan is to leave it unsupported or require an upstream Kanidm primitive—not compensate with a more complicated Kubernetes workflow.
Implementation plan
The revised plan breaks work into reviewable phases:
AllReplicasmaintenance;Estimated production-grade effort is roughly 9-14 engineering days if the upstream command-safety spike is positive.
Scope intentionally excluded
maxUnavailable > 1;Files
docs/adr/0002-rolling-kanidm-database-maintenance.mddocs/plans/maintenance-operations-design.md