Skip to content

[EOS] Add the OS architecture in facts#2317

Open
lodpp wants to merge 1 commit into
napalm-automation:developfrom
lodpp:lodpp/eos_os_arch
Open

[EOS] Add the OS architecture in facts#2317
lodpp wants to merge 1 commit into
napalm-automation:developfrom
lodpp:lodpp/eos_os_arch

Conversation

@lodpp

@lodpp lodpp commented Apr 23, 2026

Copy link
Copy Markdown

Hi,

Following the issue I created here, here is a PR to add the os architecture in the EOS fact list.

Since a while now, Arista is proposing their EOS in multiple flavors. I could see at least 3 flavors in the wild: i686, x86_64 and aarch64.

My usecase was toward the EOS running on their hardware routers and switches. A given hardare may be able to run both the 32bits or 64bits ( i686 vs x86_64). The choice to use one or the other depends on hardware limitation and usage.

To help manage the software lifecycle, the OS version alone is not enough as it can run in both 32/64bits.
I want to use napalm to retrieve that data and update our source of truth, but also part of a compliance tool to validate/check drift between source of truth and the production.

This PR might might not be the best-in-class and I'm all ears on the community wisdom on how to make it better.

Here is a sample output running on 3 differents device type ( CCS-710P-16P, DCS-7280SR3K-48YC8-F and cEOS on macos arm64 (mac->linux vm->containerlab)

DCS-7280SR3K-48YC8-F running a x86_64 flavor

{
    "hostname": "sr3k-lab1",
    "fqdn": "sr3k-lab1",
    "vendor": "Arista",
    "model": "DCS-7280SR3K-48YC8-F",
    "serial_number": "ABCDEFGHIJK",
    "os_version": "4.34.3.1M-44676604.43431M",
    "os_arch": "x86_64", <<<<<<<<<<
    "uptime": 12965593.89796114,
    "interface_list": [
        "Ethernet1",
        "Ethernet2",
        "Ethernet3",
<SNIP>
        "Ethernet56/1",
        "Management1"
    ]
}

CCS-710P-16P running an i686 flavor

{
    "hostname": "c710p-lab1",
    "fqdn": "c710p-lab1",
    "vendor": "Arista",
    "model": "CCS-710P-16P",
    "serial_number": "ABCDEFGHIJK",
    "os_version": "4.33.6M-44999762.4336M",
    "os_arch": "i686", <<<<<<<<<<<<<<<
    "uptime": 6313482.917237282,
    "interface_list": [
        "Ethernet1",
<SNIP>
        "Ethernet18",
        "Vlan10"
    ]
}

cEOS running an aarch64 flavor

{
    "hostname": "ceos2",
    "fqdn": "ceos2",
    "vendor": "Arista",
    "model": "cEOSLab",
    "serial_number": "FE01F674C71D863770F88B78A2A21A52",
    "os_version": "4.34.3M-44102239.4343M",
    "os_arch": "aarch64", <<<<<<<<<
    "uptime": 14807.529143571854,
    "interface_list": [
        "Ethernet1",
        "Management0"
    ]
}

Thanks for any input/ideas/tips you can give !

++
Nico

…oth 32 and 64 bits flavor. A given hardware might be capable to run both flavor. However some hw limitation might impose to use one of the other. Getting that information from fact can help in software lifecycle.

Signed-off-by: Nicolas Piatto <nicolas.piatto@gandi.net>
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.

1 participant