Skip to content

fix(image_build_manager): catalog validation, registry verification, and aarch64 fixes - #5068

Merged
abhishek-sa1 merged 12 commits into
dell:issue-4849-omnia-modernizationfrom
abhishek-sa1:issue-4849-omnia-modernization
Aug 27, 2026
Merged

fix(image_build_manager): catalog validation, registry verification, and aarch64 fixes#5068
abhishek-sa1 merged 12 commits into
dell:issue-4849-omnia-modernizationfrom
abhishek-sa1:issue-4849-omnia-modernization

Conversation

@abhishek-sa1

Copy link
Copy Markdown
Collaborator

PR Description

Issues resolved by this Pull Request

Description of the Solution

Summary: This PR fixes catalog validation to only check structure (not deep referential integrity), resolves registry verification failures when catalog ID changes between builds, fixes log path references, and updates copyright year to 2026.

Changes

Catalog Validation

  • Structure-only validation: Removed deep referential integrity checks (layer→group, group→package) from catalog_validator.py. Catalogs produced by repo_manager may contain forward references or optional components that are resolved at build time by parse_catalog.py
  • Structural checks added: Validate layers have name and components fields, groups is a dictionary
  • Docs updated: Updated architecture.md and image-builder-design.md to reflect structure-only validation

Registry Verification & Log Path Fixes

  • Prefix matching: Changed registry verification from exact-name match to prefix matching (host/rhel-{group}_omnia_*) to handle catalog ID changes. When catalog is updated between builds, cached images retain old catalog IDs but verification was reconstructing names with the new ID
  • Log path glob: Changed error message log paths from hardcoded suffix to glob pattern (ls *_compute_image.log) so users find the actual log file
  • S3 artifact discovery: Added fallback prefix search when exact path fails, resolving build_status.yml entries for cached images
  • build_status.yml: Use resolved image name from S3 discovery instead of reconstructing with current (possibly stale) catalog suffix
  • regctl typo fix: Fixed /\tag ls \ in x86_64 tag check
  • YAML line-length: Fixed line-length violation in main.yml line 131

Copyright Year Update

  • Updated copyright headers from 2025 to 2026 in all yml and py files in src/image_build_manager

Lint Fixes

  • Fixed trailing spaces in various files

Files Changed

File Change Type Description
src/image_build_manager/plugins/module_utils/input_validation/validators/catalog_validator.py Modified Removed referential integrity checks, added structural checks
src/image_build_manager/roles/build_os_images/tasks/build_compute_image_x86_64.yml Modified Prefix matching for registry verification, log path glob, regctl typo fix
src/image_build_manager/roles/build_os_images/tasks/build_compute_image_aarch64.yml Modified Prefix matching for registry verification, log path glob
src/image_build_manager/roles/build_os_images/tasks/main.yml Modified S3 artifact discovery fallback, resolved image name, line-length fix
src/image_build_manager/docs/architecture.md Modified Updated catalog validation description
src/image_build_manager/docs/design/image-builder-design.md Modified Updated catalog validation description
src/image_build_manager/**/*.yml Modified Copyright year 2025 → 2026
src/image_build_manager/**/*.py Modified Copyright year 2025 → 2026

Testing

  • Verified catalog validation passes with sample catalog (ldms_group references ovis_ldms which is not defined)
  • Tested registry verification with prefix matching handles catalog ID changes
  • Verified S3 artifact discovery fallback finds images with old catalog IDs
  • Confirmed build_status.yml uses resolved image names
  • YAML line-length violation resolved

Backward Compatibility

  • No breaking changes
  • Catalog validation is less strict (structure-only), so previously failing catalogs may now pass
  • Registry verification is more permissive (prefix match), so cached builds pass verification

Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
…log ID changes

Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
Updated copyright headers from 2025 to 2026 in all yml and py files
in src/image_build_manager.

Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
@abhishek-sa1
abhishek-sa1 marked this pull request as ready for review August 27, 2026 09:31
@abhishek-sa1
abhishek-sa1 force-pushed the issue-4849-omnia-modernization branch from 9e5741c to 2205e34 Compare August 27, 2026 12:47
- Restore docs/contracts/ (input-contract.md, output-contract.md)
- Add functional_group_packages.yml sample to samples/repo_manager_output/
- Fix regctl_oim_staging_dir: remove hardcoded /opt/omnia default()
- Fix test_standalone_independence.py: correct SRC_DIR path and update
  TestRepoStructure tests to match actual source tree layout
- Fix test_validate_image_build_config.py: update for functional_groups
  removal (now functional_groups_source), support new repo_status format
  (repositories vs rpm_repos), add missing pytest import
- Fix test_functional_group_packages.py: update TestConfigConsistency
  for new config model (groups from package_groups.yml keys)
- Update README.md documentation table with contracts links

Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
@abhishek-sa1
abhishek-sa1 force-pushed the issue-4849-omnia-modernization branch from 2205e34 to eb0b04b Compare August 27, 2026 12:50
@abhishek-sa1
abhishek-sa1 merged commit e384b41 into dell:issue-4849-omnia-modernization Aug 27, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants