Skip to content

v3.16.0.0

Choose a tag to compare

@hdamecharla hdamecharla released this 15 Jul 04:24
· 181 commits to main since this release

Release v3.16.0.0

Overview

This release delivers substantial enhancements to NVMe support for Azure VMs, particularly on RHEL and SUSE platforms. It introduces improved Terraform automation, refined Azure Key Vault integration, and more robust deployment scripting. The update also includes critical fixes, improved error handling, and better metadata extraction. Notably, this release incorporates support for STONITH SBD fencing in RHEL clusters, expanded OS compatibility, and automation improvements for disk preparation and validation.


🚀 New Features

NVMe Support Enhancements

  • Enhanced GRUB configuration and NVMe timeout handling.
  • Streamlined preflight checks with improved debug output.
  • Improved detection of NVMe modules and reboot requirements across RHEL and SUSE.

STONITH SBD Configuration for RHEL

  • Integrated logic to support SBD-based fencing in RHEL clusters using Azure shared disks.
  • Addressed service dependencies (iscsi, iscsid, sbd) and ensured proper enablement on boot.
  • Improved cluster initialization logic and clarified configuration steps for zonal deployments using ZRS disks.
  • Documented fallback strategies and DR region reconfiguration steps for SBD devices.
  • Updated test automation logic to reflect correct node names and handle skipped test cases gracefully.

Other enhancements

  • Azure Metadata Retrieval
    • Added tasks to extract Subscription ID, Resource Group Name, and VM Name from Azure metadata.
  • Terraform Enhancements
    • Exported TF_VAR_subscription_id for improved configuration.
    • Introduced new configurations for M832 and M896 VM series.
  • SDAFWebApp Initialization
    • Bootstrapped with .NET 8.0 and essential package references.

🔧 Improvements

OS Compatibility and Automation

  • Developed cross-OS scripts to automate NVMe preparation, including initramfs updates, FS tab validation, and GRUB parameter checks.
  • Enhanced udev rules to support namespace ID (NSID) detection and LUN mapping, resolving compatibility issues on older OS versions like SUSE 15 SP3 and RHEL 8.8.
  • Introduced fallback logic to extract NSID from ID_PATH or /sys/class/block/<device>/nsid when udevadm fails to return expected values.

Deployment Scripts

  • Improved Azure login handling and environment variable management.
  • Enhanced error reporting and debug logging across scripts.
  • Streamlined control plane cleanup and variable group handling.

Key Vault Integration

  • Refined retrieval logic using Azure Graph API.
  • Improved secret existence checks and error handling.

Terraform State Management

  • Refactored state resource ID retrieval.
  • Simplified output definitions and variable assignments.

Logging and Debugging

  • Replaced echo statements with structured banners.
  • Improved traceability in secret retrieval and deployment stages.

🐞 Bug Fixes

  • Corrected key vault existence checks using user ARM ID.
  • Fixed output variable naming inconsistencies (random_identifierrandom_id).
  • Resolved GRUB configuration and NVMe timeout logic issues.
  • Addressed Terraform apply failure handling.
  • Corrected module names and region paths in SDAFUtilities.
  • Fixed string comparison syntax and removed redundant flags.

🛠 Infrastructure & Configuration

  • Provider Versions
    • Updated azurerm to 4.35.0 and azapi to 2.5.0.
  • Variable Management
    • Improved handling of unset/null variables.
    • Streamlined variable group assignments and cleanup.
  • Script Enhancements
    • Added support for MSI and ARM variables.
    • Improved script permissions and execution flow.
  • Repository Maintenance
    • Removed obsolete scripts and variables.

📄 Miscellaneous

  • Added documentation for RHEL 8.6 ambiguity.
  • Refactored modules for improved readability and maintainability.
  • Upgraded GitHub Actions and Azure SDK packages via Dependabot.