-
Notifications
You must be signed in to change notification settings - Fork 6
feat: add AZNFS mount helper installation #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's GuideAdds optional installation of the Azure NFS (AZNFS) mount helper via Ansible, including a new toggle variable, package list entry, and documentation. Sequence diagram for conditional AZNFS mount helper installationsequenceDiagram
actor Admin
participant AnsibleRole
participant PackageManager
participant MicrosoftRepo
participant aznfswatchdog_service
Admin->>AnsibleRole: Run_HPC_role_with_inventory_and_vars
AnsibleRole->>AnsibleRole: Read_hpc_install_aznfs_default_true
alt hpc_install_aznfs_is_true
AnsibleRole->>AnsibleRole: Set_env_AZNFS_NONINTERACTIVE_INSTALL_1
AnsibleRole->>PackageManager: Install_package_aznfs
PackageManager->>MicrosoftRepo: Fetch_aznfs_from_MS_Prod_repo
MicrosoftRepo-->>PackageManager: aznfs_rpm
PackageManager-->>AnsibleRole: Installation_result_success
AnsibleRole->>aznfswatchdog_service: Enable_and_start_via_systemd
aznfswatchdog_service-->>Admin: Service_active_running
else hpc_install_aznfs_is_false
AnsibleRole-->>Admin: Skip_AZNFS_installation_task
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey - I've found 1 issue, and left some high level feedback:
- The
Install AZNFS packagestask usesuntil: __hpc_aznfs_packages_install is successbut does not defineretriesanddelay, so the loop will run only once; consider adding explicitretries/delayvalues to make the retry behavior effective and predictable.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The `Install AZNFS packages` task uses `until: __hpc_aznfs_packages_install is success` but does not define `retries` and `delay`, so the loop will run only once; consider adding explicit `retries`/`delay` values to make the retry behavior effective and predictable.
## Individual Comments
### Comment 1
<location> `tasks/main.yml:837-846` </location>
<code_context>
+- name: Install AZNFS mount helper
+ when: hpc_install_aznfs
+ block:
+ - name: Install AZNFS packages
+ environment:
+ AZNFS_NONINTERACTIVE_INSTALL: "1"
+ package:
+ name: "{{ __hpc_aznfs_packages }}"
+ state: present
+ use: "{{ (__hpc_server_is_ostree | d(false)) |
+ ternary('ansible.posix.rhel_rpm_ostree', omit) }}"
+ register: __hpc_aznfs_packages_install
+ until: __hpc_aznfs_packages_install is success
+
- name: Tune system for HPC
</code_context>
<issue_to_address>
**issue (bug_risk):** The `until` loop is missing `retries`/`delay`, which Ansible expects when using `until`.
Ansible will fail with `'retries' is required with 'until'` if you omit `retries` (and usually `delay`). Please add appropriate values (e.g. `retries: 5`, `delay: 10`) under this task to preserve the intended retry behavior.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
5e2ff4b to
88f694d
Compare
spetrosi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need a separate variable and a separate step to install this package?
Maybe we can append it to some existing packages list and install it as a batch with other software?
There is a small issue with installing many packages with many package modules, each time Ansible generates a Python module and copies it to target node, which is just slower than installing with a single role.
And the other issue is a complexity for users with too many variables.
I understand that often we want to separate package installation into phases, just asking if here it may be appropriate to add it to some of the existing installation.
Also, how big is this package?
Hi @spetrosi I haven't found a good solution to install aznfs bundled with other packages yet. Given that aznfs is a standalone function with separate component and its size is 23.20 MB, so either keep it as separate step, or merging with hpc_tuning? The current 90-nfs-readahead.rules mentions "nfs" under the section of "hpc tuning," probably moving under hpc_tuning? But it still needs __hpc_aznfs_packages variable since no dnf package installation for hpc_tuning section. Hi @dgchinner What are your thoughts on this question? Thank you so much. |
This is an azure-specific, microsoft provided package, similar to the WALinuxAgent package which is installed as part of the IB/rdma support packages. The WALinuxAgent package is not actually IB/rdma specific functionality (it is general azure VM management infrastructure) so perhaps we should define a set of "azure packages" that we always install. This would then give us a place to list (and install) all the azure specific management functionality like the WALinuxAgent and the AZNFS helpers. As for having a separate install variable for this functionality, I don't think that is necessary here. It can be installed without causing problems for anything else and it doesn't take very long to install, so there's no real reason not to install it. |
593b3cf to
d51c4cf
Compare
Hi @dgchinner , @spetrosi Updated AZNFS and WALinuxAgent installation as azure-specific packages, could you please help to review again? Thank you so much. |
README.md
Outdated
| - **WALinuxAgent**: Azure Linux Agent manages Linux provisioning and VM interaction with the Azure Fabric Controller. | ||
|
|
||
| - **aznfs**: Azure NFS mount helper - an Azure-optimized NFS client that simplifies mounting Azure Blob Storage containers over NFS v3 and applies client-side optimizations for improved performance. The package is installed from the Microsoft Production repository with non-interactive installation mode enabled. For more information, see <https://github.com/Azure/AZNFS-mount>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The markdown linter has failed on the use '-' as the list delimiter - it wants you to use '*' instead. See:
https://github.com/linux-system-roles/hpc/actions/runs/21892239587/job/63200391071?pr=72
for details of the linter failure. Can you fix this and check that the linter passes after updating the PR?
Otherwise everything else looks fine.
38646fd to
4106cad
Compare
Add Azure specific package variable containing WALinuxAgent and aznfs Install the AZNFS mount helper package from the Microsoft Production repository with non-interactive installation mode enabled. The current latest package version is aznfs-3.0.13-1.x86_64. After installation, check systemd service aznfswatchdog status For more information, see: <https://github.com/Azure/AZNFS-mount> JIRA: RHELOPC-111 Signed-off-by: Xuemin Li <xuli@redhat.com>
4106cad to
edbe5b6
Compare
Enhancement:
Install the AZNFS mount helper package from the Microsoft Production repository with non-interactive installation mode enabled. The current latest package version is aznfs-3.0.13-1.x86_64.
For more information, see: https://github.com/Azure/AZNFS-mount
Reason:
Add AZNFS mount helper package
Result:
systemctl status aznfswatchdog
● aznfswatchdog.service - aznfs watchdog for NFSv3 mounts
Loaded: loaded (/usr/lib/systemd/system/aznfswatchdog.service; enabled; preset: disabled)
Active: active (running) since Tue 2026-02-10 05:19:29 UTC; 21min ago
Main PID: 1066 (aznfswatchdog)
Tasks: 2 (limit: 48648)
Memory: 80.5M
CPU: 7.025s
CGroup: /system.slice/aznfswatchdog.service
├─ 1066 /bin/bash /usr/sbin/aznfswatchdog
└─28600 sleep 5
systemd[1]: Started aznfs watchdog for NFSv3 mounts.
aznfswatchdog[1308]: conntrack v1.4.7 (conntrack-tools): 0 flow entries have been shown.
aznfswatchdog[7041]: AUTO_UPDATE_AZNFS is set to: 'true'
aznfswatchdog[7041]: Running auto-update...
aznfswatchdog[7041]: Retrieving distro info from /etc/os-release...
aznfswatchdog[7041]: Using 'dnf' instead of 'yum'
aznfswatchdog[7041]: aznfs is already up-to-date.
Issue Tracker Tickets (Jira or BZ if any):
JIRA: RHELOPC-111
Summary by Sourcery
Add optional installation of the Azure NFS (AZNFS) mount helper package to the HPC role, enabled by default and documented in role variables.
New Features:
Enhancements: