Skip to content

Feature branch sync - pub/q2_dev to pub/build_stream#4380

Merged
abhishek-sa1 merged 252 commits into
dell:pub/build_streamfrom
abhishek-sa1:pub/build_stream
May 8, 2026
Merged

Feature branch sync - pub/q2_dev to pub/build_stream#4380
abhishek-sa1 merged 252 commits into
dell:pub/build_streamfrom
abhishek-sa1:pub/build_stream

Conversation

@abhishek-sa1
Copy link
Copy Markdown
Collaborator

Feature branch sync - pub/q2_dev to pub/build_stream

priti-parate and others added 30 commits April 6, 2026 17:36
* removing input template

* Fix for pulp remote RemoteArtifacts is 0 after repo migration

Signed-off-by: pullan1 <sudha.pullalaravu@dell.com>

---------

Signed-off-by: pullan1 <sudha.pullalaravu@dell.com>
Co-authored-by: pullan1 <sudha.pullalaravu@dell.com>
Co-authored-by: snarthan <narthan.s@dell.com>
* removing input template

* Fix for pulp remote RemoteArtifacts is 0 after repo migration

Signed-off-by: pullan1 <sudha.pullalaravu@dell.com>

* Feature/ome discovery pxe mapping enhancements (dell#4245)

* feat(discovery): OME static group extraction, PXE mapping IP/SU/parent tag enhancements

ome_server_inventory.py:
- Fix static group extraction: find 'Static Groups' container by name and
  select only direct children via ParentId; avoids picking system/nested groups
- Emit module.warn() for static groups that exist but have no devices assigned
- Fix idrac_hostname: read InstrumentationName/DnsName from DeviceManagement
  ManagementType==2 entry instead of DeviceName which returns the IP address

generate_pxe_mapping.py:
- ADMIN_IP: derive from first 2 octets of admin_network.subnet + last 2 of BMC IP
- IB_IP: derive from first 2 octets of ib_network.subnet + last 2 of BMC IP
- Skip IB_IP/IB_MAC when server has no IB NIC (ib_nic_mac is empty)
- Add extract_su_from_hostname() with regex (SU[A-Z]?\d+)(?=R\d+) to parse
  Scalable Unit from BMC hostname; rejects service-tag-only hostnames (idrac-JCGT033)
  and falls back to grp0 when no SU pattern is found
- Set GROUP_NAME to extracted SU identifier (fallback: grp0)
- Post-process rows to assign PARENT_SERVICE_TAG from the
  service_kube_control_plane_x86_64 node within the same SU group
- Remove BMC_HOSTNAME from CSV headers and output rows
- Lint: remove dead try/except in calculate_admin_ip/calculate_ib_ip,
  reuse ib_mac variable, suppress broad-except pylint warning

generate_pxe_mapping.yml:
- Load network_spec.yml via include_vars
- Set admin_subnet and ib_subnet using selectattr on Networks list
- Pass both subnets as parameters to the generate_pxe_mapping module

defaults/main.yml:
- Add admin_subnet and ib_subnet default variables (empty string)

provision_validation.py:
- Comment out validate_admin_ips_against_network_spec function and its
  call site; ADMIN_IPs are now derived from subnet octets + BMC IP and
  will not necessarily fall within primary_oim_admin_ip/netmask_bits range

* refactor: rename discovery directory to provision, update network_spec.yml

- Renamed discovery/ to provision/ (git detected as rename, no content loss)
- Updated input/network_spec.yml with latest network configuration changes

* Update discovery.yml

* refactor: unify OME credentials into get_config_credentials flow

- Added ome_ip, ome_username, ome_password to omnia_credential.j2 template
- Added 'discovery' service entry to omnia_credentials in update_config/vars/main.yml
- Added 'discovery' to the hardcoded service key trigger list in fetch_credentials.yml
- Replaced custom vault logic in get_ome_credentials.yml with unified
  decrypt_include_encrypt.yml call against omnia_config_credentials.yml
- Updated ome_discovery/vars/main.yml to reference omnia_config_credentials_file
  and omnia_config_credentials_vault_key instead of the separate .vault/ paths
- Deleted .vault/ome_credentials.yml and .vault/.vault_password (no longer needed)

* chore: update copyright year from 2025 to 2026 in modified files

Updated copyright header in all ome_discovery files modified during
this feature branch:
- library/generate_pxe_mapping.py
- library/ome_server_inventory.py
- tasks/generate_pxe_mapping.yml
- tasks/get_ome_credentials.yml
- defaults/main.yml
- vars/main.yml

* fix: restore discovery_validations role missed during discovery-to-provision rename

discovery/roles/discovery_validations/ was accidentally dropped when
renaming the discovery/ directory to provision/. Add it back under
provision/roles/discovery_validations/ to resolve the PR merge conflict.

* chore: update copyright year to 2026 in provision/roles/discovery_validations files

* fix: remove duplicate discovery_validations role (provision_validations already exists)

provision/roles/provision_validations/ is the correct renamed equivalent
of discovery/roles/discovery_validations/. The discovery_validations copy
added to provision/ was redundant.

* feat: apply upstream telemetry upgrade changes from dell/omnia pub/q2_dev

- Replace kubectl command with kubernetes.core.k8s module for iDRAC StatefulSet
- Preserve existing replica count during iDRAC StatefulSet upgrade
- Add LDMS store daemon check, restart, and readiness wait tasks

* fix: quote build_stream_job_id_absent message in provision_validations vars

* feat: add discovery/roles/discovery_validations and telemetry files

- Add discovery/roles/discovery_validations/vars/main.yml with task
  definitions for validation flow
- Add discovery/roles/telemetry/tasks/apply_telemetry_on_upgrade.yml
  with upstream telemetry upgrade logic (replica preservation + LDMS store)

* fix: wrap long line in fetch_credentials.yml to satisfy yaml[line-length] lint

* refactor: move ome_ip from credentials to discovery_config.yml

- Create input/discovery_config.yml for non-credential discovery settings
  (ome_ip, future Magellan config)
- Remove ome_ip from omnia_credential.j2 and credential update vars
- Load ome_ip via include_vars from discovery_config.yml in get_ome_credentials.yml
- Add discovery_config.yml to provision_validations discovery_inputs
- Remove redundant ib_subnet/admin_subnet defaults from ome_discovery

* fix: add newline at end of ome_discovery/defaults/main.yml

* fix: override role_path to absolute path for decrypt_include_encrypt.yml

role_path resolves to ome_discovery role path, causing encrypt_files_vars.yml
to be looked up incorrectly. Override to playbook_dir dirname (/opt/omnia/omnia).

* fix: inline credential loading to avoid role_path resolution issue

role_path cannot be overridden in include_tasks vars. Replace the call to
decrypt_include_encrypt.yml with direct include_vars using stat checks for
encrypted vs unencrypted credential file handling.

* fix: skip load-failure rule in ansible-lint to avoid CI false positives

ansible-lint fails to resolve role_path relative paths during static analysis
in GitHub Actions, causing false load-failure errors for files that exist
and work at runtime.

* Update ansible.cfg

* Update ansible.cfg

* refactor: rename discovery references to provision and add discovery_config variable

- Rename discover_mapping_nodes.yml to provision_mapping_nodes.yml
- Replace "discovery" terminology with "provision" across playbooks,
  vars, READMEs, and task names in provision roles
- Add subnet as required field with IP pattern validation in network_spec schema
- Define discovery_config variable in ome_discovery vars and use it
  in get_ome_credentials.yml (consistent with provision_config pattern)
- Rename discovery_inputs to provision_inputs in validation vars
- Rename discovery_mech_mapping to provision_mech_mapping
- Update user-facing messages to reference provision.yml

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: credential rules, vault handling, GROUP_NAME validation, and discovery playbook improvements

- Add ome_username and ome_password validation rules to credential_rules.json
- Add 'discovery' tag to prepare_oim omnia_run_tags so OME credentials are prompted
- Fix vault-encrypted credential loading in get_ome_credentials.yml
  (use decrypt-include-reencrypt pattern instead of unsupported vault_password_file)
- Add include_input_dir.yml import to discovery.yml so input_project_dir is set
- Accept SU1-SU100 (case-insensitive) in addition to grp0-grp100 for GROUP_NAME
- Fix Magellan message to use list format (avoids \n in debug output)
- Remove escaped quotes from discovery usage examples

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: extend SU group name support to build_image validation and schemas

- Add build_aarch_image tag to input_file_inventory so
  build_image_aarch64.yml runs provision_config validation
  (was missing, causing no validation to run for aarch64 builds)
- Update GROUP_NAME patterns in functional_groups_config.json and
  omnia_config.json schemas to accept SU1-SU100 format alongside
  grp0-grp100
- Update INVALID_GROUP_NAME_MSG to reflect both accepted formats

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Signed-off-by: Sujit Jadhav <sujit_jadhav@dell.com>
Co-authored-by: Super User <root@testbed.omnia.test>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* Cleanup discovery roles: move library modules, remove unused roles (dell#4261)

* Cleanup discovery roles: move library modules, remove unused roles

- Move ome_server_inventory.py and generate_pxe_mapping.py from
  discovery/roles/ome_discovery/library/ to common/library/modules/
  so they are shared via the common module search path already
  configured in discovery/ansible.cfg
- Remove unused discovery/roles/telemetry/ directory
- Remove unused discovery/roles/discovery_validations/ directory
- Load discovery_config.yml at playbook level in discovery.yml
  (consistent with how build_stream_config.yml is loaded in provision.yml)
- Fix discovery_complete_msg formatting for readable Ansible output

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* Remove unused discovery_validations role

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Super User <root@testbed.omnia.test>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix for set_pxe_boot.yml when custom inventory given (dell#4260)

* Update generate_bmc_inventory.yml

Signed-off-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>

* Update pre_checks.yml

Signed-off-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>

* lint issue 

Signed-off-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>

---------

Signed-off-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>

---------

Signed-off-by: pullan1 <sudha.pullalaravu@dell.com>
Signed-off-by: Sujit Jadhav <sujit_jadhav@dell.com>
Signed-off-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>
Co-authored-by: pullan1 <sudha.pullalaravu@dell.com>
Co-authored-by: snarthan <narthan.s@dell.com>
Co-authored-by: Sujit Jadhav <sujit_jadhav@dell.com>
Co-authored-by: Super User <root@testbed.omnia.test>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: SOWJANYAJAGADISH123 <Sowjanya.Jagadish@dell.com>
Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com>
* Minimal OS-only functional group enablement for x86_64 and aarch64

* Update image_package_collector.py

* Update provision_validation.py

* Minimal OS functional group updates in provision

* Minimal OS functional group upgrade

* Fix os_* package cross-contamination and remove stale discovery templates
Powerscale telemetry with direct auth mode
Signed-off-by: priti-parate <140157516+priti-parate@users.noreply.github.com>
victoria operator and victoria log input validation
support for Victoria log input variables and input validation.
jagadeeshnv and others added 26 commits May 5, 2026 13:08
…ment (dell#4366)

1. Skip OME credential prompt when enable_bmc_discovery is false
   - Changed discovery credentials from mandatory to conditional_mandatory
     in credential utility vars (gated on enable_bmc_discovery)
   - Added set_fact in prepare_oim.yml to promote enable_bmc_discovery
     from namespaced to top-level scope before credential utility runs

2. Fix PARENT_SERVICE_TAG assignment in PXE mapping
   - Source changed from service_kube_control_plane to service_kube_node
   - Only slurm_node_aarch64 and slurm_node_x86_64 receive PARENT_SERVICE_TAG
   - All other roles (control_plane, kube_node, login, slurm_control) remain empty
ochami smd restries added after cloud-int service restart
Signed-off-by: Jagadeesh N V <39791839+jagadeeshnv@users.noreply.github.com>
Update provision_mapping_nodes.yml
remove default dns entry for ib network
Telemetry enabled flag set for creating nd executing the telemetry.sh
Feature branch sync - pub/q2_dev to pub/build_stream
@abhishek-sa1 abhishek-sa1 marked this pull request as ready for review May 7, 2026 12:26
Signed-off-by: Abhishek S A <abhishek.sa3@dell.com>
@abhishek-sa1 abhishek-sa1 merged commit a854d2b into dell:pub/build_stream May 8, 2026
3 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.