Skip to content

Ansible storage validation fails on immutable OS (CoreOS/OpenShift) due to composefs root #118

@yuriylesyuk

Description

@yuriylesyuk

- name: Check available disk

cmd: "df -BG / | awk 'NR==2 {print $4}'"

uses cmd: "df -BG / | awk 'NR==2 {print $4}'"

The playbook currently uses df -BG / to validate available storage. On CoreOS, the root directory is an immutable composefs mount that reports 0GB available, even when the underlying physical disk has hundreds of gigabytes free in /var.

the validate playbook output:

`TASK [validate_hardware : Display hardware check results] ****************************************************************************************************
Friday 17 April 2026 18:11:40 +0000 (0:00:00.138) 0:00:13.297 **********
ok: [localhost] =>
msg: |-
Hardware Check Results:
=====================================================
Platform: Xeon-only

HARDWARE CHECK FAILED: Issues were found in your hardware configuration

Total Resources:
- Total CPU Cores: 512 (Required: 80)
- Total Memory: 2015.25 GB (Required: 250 GB)
- Total Storage: 0 GB (Required: 200 GB)

Per-Node Details:
- -7c: 256 cores, 1007.62 GB RAM
- -a0: 256 cores, 1007.62 GB RAM

Issues Found:
* Insufficient storage space: 0 GB available, 200 GB required

`

In reality, this is SR650 server with 1TB of storage and:

(erag-venv) ubuntu@xxxx1:~/Enterprise-RAG/deployment$ ansible kube-worker-2 -i inventory/xxxx/inventory.ini -a "df -BG /" [WARNING]: Platform linux on host kube-worker-2 is using the discovered Python interpreter at /usr/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible-core/2.17/reference_appendices/interpreter_discovery.html for more information. kube-worker-2 | CHANGED | rc=0 >> Filesystem 1G-blocks Used Available Use% Mounted on composefs 1G 1G 0G 100% /

while
(erag-venv) ubuntu@xxxx1:~/Enterprise-RAG/deployment$ ansible kube-worker-2 -i inventory/xxxx/inventory.ini -a "df -BG /var" [WARNING]: Platform linux on host kube-worker-2 is using the discovered Python interpreter at /usr/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible-core/2.17/reference_appendices/interpreter_discovery.html for more information. kube-worker-2 | CHANGED | rc=0 >> Filesystem 1G-blocks Used Available Use% Mounted on /dev/nvme0n1p4 894G 17G 877G 2% /var

For an OpenShift@CoreOS already installed, the /var is the right mount to check.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions