Repository navigation
Document and test Git-hosted root self-configuration - #420
Merged
Merged
Conversation
|
Sorry @cooktheryan, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 3 days and 17 hours by commenting |
Reviewer's GuideThis PR documents the existing Git-hosted root self-configuration workflow and adds CI coverage using a production container, an isolated smart-HTTP Git fixture, scheduled root reloads, workload reconciliation, and preservation of the active configuration after invalid root updates; it introduces no runtime or schema changes. Sequence diagram for Git-hosted root bootstrap and self-reconfigurationsequenceDiagram
participant Git as Git HTTP fixture
participant FetchIt
participant Mount as Local config mount
participant Workloads
FetchIt->>Git: HTTP GET root YAML via FETCHIT_CONFIG_URL
Git-->>FetchIt: Root configuration from current branch
FetchIt->>Mount: configReload
FetchIt->>Workloads: Apply scheduled methods
loop Recurring self-reconfiguration
FetchIt->>Git: HTTP GET root YAML via FETCHIT_CONFIG_URL
Git-->>FetchIt: Expanded root configuration
FetchIt->>Mount: configReload
FetchIt->>Workloads: Reconcile workload methods
end
alt Invalid root update
Git-->>FetchIt: Invalid root YAML
FetchIt-->>Mount: Preserve active configuration
FetchIt-->>Workloads: Preserve active workloads
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Signed-off-by: Ryan Cook <rcook@redhat.com>
cooktheryan
force-pushed
the
feat/417-config-composition
branch
from
October 11, 2026 20:32
dd07875 to
53b4d11
Compare
Signed-off-by: Ryan Cook <rcook@redhat.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.
FetchIt already accepts a Git-hosted root YAML through
FETCHIT_CONFIG_URL, applies its independently scheduled methods, and updates its own configuration throughconfigReload. The documentation did not present that workflow as a complete per-host entry point, leaving the app-of-apps use case unclear.Add a guide with a per-host repository layout, a root referencing multiple workload repositories/methods, bootstrap without a local config, recurring self-reconfiguration, private-root authentication limits, writable mount requirements, and root/workload trust boundaries. Explicitly distinguish this existing workflow from recursive child-YAML imports and Argo CD resource handling. No new configuration schema, composition, or runtime behavior is introduced.
Add a production-image integration test to CI. A loopback-only smart HTTP Git fixture also serves the root YAML directly from its current Git branch. The test starts with an empty local mount, applies two methods, commits an expanded root that adds a third method and changes an existing workload, and verifies invalid root updates preserve the active configuration and workloads without container restart.
Validation: passed on disposable Fedora 44 EC2 with Podman 5.8.7 using the production image validated in #419 (the bootstrap/reload implementation is unchanged from main). The strict Sphinx build, shell syntax, Python compilation, and whitespace checks passed. Fixture and test resources are cleaned on exit; no test pushes to GitHub.
Addresses #417.
Summary by Sourcery
Document and continuously test Git-hosted root configuration for bootstrap and self-reconfiguration.
Enhancements:
CI:
Documentation:
Tests: