fix: repoint component images and consumer paths to this project
What does this MR do?
Every hard-coded image reference for the analyzer and deployer containers,
and every README example of how to include this component, pointed at
gl-demo-ultimate-britchie2/uncle-sam/stig-analyzer -- the maintainer's
original demo namespace, not this project.
The images are publicly pullable -- that's the actual defect, not a 404.
An anonymous registry JWT (pull scope, no login) gets HTTP 200 on that
namespace's stig-analyzer manifest; a negative control (a nonexistent
repository path under the same namespace) returns 404, confirming the
method. So consumers were never erroring on the container pull -- they were
silently running images this project does not own, cannot rebuild, and
controls no retention or cleanup policy for. The two projects build their
images independently (separate .gitlab-ci.yml, separate pipelines), so
nothing guarantees the demo namespace's images track this project's code.
The byte-size delta between the two templates is only indirect evidence of
that: the repository-files API shows the demo namespace's
templates/stig-compliance-analysis.yml at 40504 bytes versus this
project's 27019 bytes -- a template that has already materially diverged.
Separately, and by a different resolution mechanism (git ref, not registry
pull), every README include: component: snippet used
$CI_SERVER_FQDN/$CI_PROJECT_PATH/stig-compliance-analysis@1.0.7.
$CI_PROJECT_PATH resolves to the consuming project at include time, not
this one, so the snippet is "content not found" for any consumer copying it
as-is. @1.0.7 also matches no ref here (tags are v-prefixed,
v1.0.0-v1.0.6 only), and the Versioning section's @~1 example is a
CI/CD Catalog-only ref format this project can't serve
(cicd_catalog_enabled is false, zero Releases). The GKG smoke-test
snippet hard-coded the demo namespace directly instead.
Two smaller residuals of the same class: the README's "Specific version"
example set image_tag: v1.0.7 (a git tag from the upstream demo project,
never an image tag here -- 404-verified against this registry), and both
the README's Inputs table and the component template's own image_tag
input description listed v1.0.0 as an example value, which is equally
nonexistent as an image tag.
Fixes
- Container images -- repointed to this project's own registry
(confirmed present via the registry API):
templates/stig-compliance-analysis.yml-- all siximage:lines.stig_tools/generate_batch_pipeline.py-- the two images baked into the dynamically generated child pipeline used by the defaultparallel_mode.README.md-- the documented "Image Path" under Technical Details.
- Component-include paths -- repointed every snippet to the literal path
(
gitlab-com/public-sector/stig-analyzer) pinned at@master, since no tag yet carries this fix. Rewrote the Versioning section into one coherent note and called out tagging a new release as explicit follow-up work (recommending any existing tag today would point consumers back at the demo-namespace images). - Non-existent example image tags -- README "Specific version" example
now uses a commit-sha tag (
8a58c74b) with a note that the registry carrieslatestplus commit-sha tags only, until a release is cut. The README Inputs table and the template'simage_taginput description both now readlatest/commit-sha (dropped thev1.0.0example). STIGMAN_DEPLOYMENT.md-- the IAM trust-policy example hard-coded the demo namespace's project path in the OIDCsubcondition. That value must be the consumer's own project path (their pipeline is what requests the token), not this project's, so it is now a placeholder (<YOUR_GROUP>/<YOUR_PROJECT>).- CHANGELOG.md -- corrected a pre-existing
### Documentationnote in the same[Unreleased]section that still described the old@1.0.3/@~1/@mainscheme this MR removes; left as-is it would have shipped self-contradicting release notes (release_to_catalogpublishesCHANGELOG.mdverbatim).
Verification
- Registry API (
GET /projects/:id/registry/repositories?tags=1forgitlab-com/public-sector/stig-analyzer) confirms bothstig-analyzerandstig-analyzer-deployerexist withlatestplus two commit-sha tags (8a58c74b,f767e70b) -- matching every corrected reference. - Anonymous-JWT pull check against the old demo-namespace path (with a nonexistent-repo negative control) confirms those images are public, which is why this went unnoticed rather than erroring.
- Direct manifest probe of
image_tag: v1.0.7andv1.0.0against this project's registry returns 404 -- confirming those were never valid image tags here. - Template byte-size comparison (repository-files API) confirms the demo namespace's template has diverged from this project's (40504 vs 27019 bytes); the two projects' independent build pipelines mean no image-level guarantee follows from that number, only the direction of the risk.
- No CI job in this pipeline exercises the template's
image:references directly -- the test jobs build and run$CI_REGISTRY_IMAGEimages, not the component template's hard-coded paths -- so this verification was done via the registry API rather than a pipeline run; a template lint/self-include job is future work.
Related issues
None filed yet -- follow-ups named here: tag a release from this project; add CI coverage that exercises the template's image references.
Documentation updates
README.md: "Image Path" (Technical Details), the GKG smoke-testinclude:snippet, all Quick Start / Usage Exampleinclude:snippets, the "Specific version" example'simage_tag, the Inputs table, and the Versioning section (rewritten into one example plus one merged note on why no tag or@~1is usable yet).templates/stig-compliance-analysis.yml: theimage_taginput description dropped the nonexistentv1.0.0example.STIGMAN_DEPLOYMENT.md: IAM trust-policysubcondition is now a consumer placeholder instead of this project's own path.
CHANGELOG.md updated
Yes -- new ### Fixed - Registry namespace mismatch entry added under
[Unreleased], and the pre-existing ### Documentation note in the same
section was corrected to match (it described a versioning scheme this MR
removes).
- README.md updated (if applicable)
- CHANGELOG.md updated
- Security documentation updated (if applicable) -- STIGMAN_DEPLOYMENT.md's IAM trust-policy example corrected
- Usage examples added (for new features) -- N/A, no new features; existing examples fixed, not added
- Pipeline passes -- not yet run (branch not pushed)