Add repo_manager for local repository setup, Pulp deployment, and package/image downloads in air-gapped environments - #4886
Conversation
* telemetry repo with idrac and ldms telemetry support Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * copy telemetry input files using omnia.sh Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * deploy kafka and victoria templates Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * update kafka and victoria variables Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * telemetry credential generation Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * update condition for telemetry metrics Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * seprate secrets tempate for kafka and idrac Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> * remove ldms.json Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> --------- Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com> Signed-off-by: Narthan_S <narthan.s@dell.com>
…narthan/omnia into issue-4849-omnia-modernization
Existing Features: - Automated local repository setup and management for air-gapped environments - Pulp server deployment with HTTP/HTTPS configuration and SSL certificate generation - Parallel downloading of RPM packages, container images, and Python packages - software_config.json validation for defining required software packages - Credential management with Ansible Vault encryption for secure storage - RHEL subscription validation and repository URL configuration - Container image mirroring from Docker Hub, Quay.io, and private registries - Multi-architecture support (x86_64, aarch64) for container images - Metadata tracking for repository synchronization status - Cleanup utilities for removing outdated repositories and artifacts - local_repo_access.yml generation for compute node repository configuration - NFS-based shared storage for Pulp data persistence - Comprehensive input validation with detailed error messages - Custom Ansible callback plugin for formatted output display - Endpoint configuration for external Pulp server connections - Repository name migration for version upgrades - Retry logic and error handling for network operations - Configurable concurrency for parallel download tasks - Detailed logging with separate log files for debugging Linting Fixes: - Fix 17 YAML formatting issues (trailing spaces, missing newlines, long lines) - Fix 385+ Python style issues using autopep8 - Add comprehensive linting configuration (.ansible-lint, .pylintrc, .flake8) - Fix log_path configuration in ansible.cfg files - All playbooks pass ansible-lint and syntax-check validation Signed-off-by: Narthan_S <narthan.s@dell.com>
…ig support - Read cluster_os_type, cluster_os_version, and repo_config from software_config.json - Generate repo_status.yml at /opt/omnia/output/project_default/repo_manager/ - Create output directory if it does not exist - Quote all string values in YAML output for consistency - Fix final_status case comparison (SUCCESS vs success) in completion tasks - Update overall_status based on actual playbook execution result (success/failed) - Add repo_config parameter to generate_local_repo_access module Signed-off-by: Narthan_S <narthan.s@dell.com>
- Read cluster_os_type, cluster_os_version, and repo_config from software_config.json - Generate repo_status.yml at /opt/omnia/output/project_default/repo_manager/ - Create output directory if it does not exist - Quote all string values in YAML output for consistency - Fix final_status case comparison (SUCCESS vs success) in completion tasks - Update overall_status based on actual playbook execution result (success/failed) - Add repo_config parameter to generate_local_repo_access module Signed-off-by: Narthan_S <narthan.s@dell.com>
Signed-off-by: Narthan_S <narthan.s@dell.com>
Signed-off-by: snarthan <narthan.s@dell.com>
Signed-off-by: snarthan <narthan.s@dell.com>
Comprehensive PR Review: repo_manager (PR #4886)PR SummaryPR: dell/omnia#4886 — Add Author: snarthan | Target: Architecture AssessmentThe new What's Done Right ✅
Issues Found 🔴CRITICAL — Must Fix Before Merge1. Old
|
| Action | Path | Reason |
|---|---|---|
| DELETE | src/playbooks/local_repo/ (entire directory) |
Replaced by src/repo_manager/ |
| UPDATE | src/playbooks/upgrade/roles/upgrade_k8s/tasks/sync_local_repo.yml | Points to old local_repo/local_repo.yml |
| UPDATE | src/playbooks/upgrade/roles/upgrade_k8s/tasks/prep_sync_all_repos.yml | Points to old local_repo/local_repo.yml |
| UPDATE | src/playbooks/prepare_oim/roles/deploy_containers/common/vars/main.yml | References local_repo/local_repo.yml in user messages |
| UPDATE | src/playbooks/upgrade/roles/upgrade_k8s/tasks/preflight_checks_pulp.yml | References local_repo/local_repo.yml in error messages |
| UPDATE | src/playbooks/upgrade/roles/upgrade_k8s/vars/main.yml | References local_repo/local_repo.yml |
| UPDATE | src/playbooks/upgrade/roles/upgrade_cluster/tasks/main.yml | References local_repo/local_repo.yml in user docs |
Verdict: Needs Changes
The domain structure is well-designed. The critical blocker is the old playbooks/local_repo/ not being removed and callers not being updated. Fix the 4 critical items, the hardcoded paths, and the stale user messages before merge.
…traints - Remove old src/playbooks/local_repo/ directory and update callers - Update upgrade/prepare_oim playbooks to use repo_manager/playbooks/repo_manager.yml - Fix hardcoded /opt/omnia paths in repo_manager vars - Remove duplicate omnia_metadata_file definitions from role vars - Guard metadata loading with repo_manager_metadata_support - Add cluster_os_type, cluster_os_version, and repo_config to repo_status.yml - Generate repo_status.yml at /opt/omnia/output/project_default/repo_manager/ - Quote all string values in YAML output - Fix final_status case comparison in completion tasks - Add .gitignore for credentials, output, and logs - Update copyright year to 2026 Signed-off-by: Narthan_S <narthan.s@dell.com>
…omnia into issue-4849-omnia-modernization
- Remove old src/playbooks/local_repo/ directory and update all callers - Update upgrade/prepare_oim/utils messages and paths to repo_manager/playbooks/repo_manager.yml - Fix hardcoded /opt/omnia paths in repo_manager vars - Remove duplicate omnia_metadata_file definitions - Guard metadata loading with repo_manager_metadata_support - Add default fallback for SELinux condition variables - Add repo_config default fallback in generate_local_repo_access.yml - Replace jq dependency with python3 -m json.tool - Add .gitignore for credentials, output, and logs - Remove stale input files (local_repo_config.yml, software_config.json, user_registry_credential.yml) Signed-off-by: Narthan_S <narthan.s@dell.com>
- Remove old src/playbooks/local_repo/ directory and update all callers - Update upgrade/prepare_oim/utils messages and paths to repo_manager/playbooks/repo_manager.yml - Fix hardcoded /opt/omnia paths in repo_manager vars - Remove duplicate omnia_metadata_file definitions - Guard metadata loading with repo_manager_metadata_support - Add default fallback for SELinux condition variables - Add repo_config default fallback in generate_local_repo_access.yml - Replace jq dependency with python3 -m json.tool - Add .gitignore for credentials, output, and logs - Remove stale input files and config directory Signed-off-by: Narthan_S <narthan.s@dell.com>
816bc1b
into
dell:issue-4849-omnia-modernization
Existing Features:
Fixes [Feature request] Omnia Modernization #4849