Skip to content

NoCloud config drive fails on Windows Server 2019/2022 #89

@rosskirkpat

Description

@rosskirkpat

We (The K8s on Windows team at SUSE Rancher) are unable to use cloudbase-init with the NoCloud metadata service due to cloudbase-init not handling underscores in the user-data.iso that is generated by go-diskfs.

When user-data.iso files are created by rancher/machine using go-diskfs, a linux host will have meta-data and user-data files in the ISO once it is mounted on a vSphere host. cloudinit handles the uppercase names using underscores: https://github.com/canonical/cloud-init/blob/main/cloudinit/cmd/query.py#L139-L205

When user-data.iso files are created by rancher/machine using go-diskfs, a Windows host will have META_DATA and USER_DATA files in the ISO once it is mounted on a vSphere host. This causes cloudbase-init to fail as it is looking for meta-data or META-DATA.

The ISO standard does not allow for - to be used in the name (see below).

10.1.1 ISO 9660 Level 1 Specification
A file name consists of a base name and an extension, separated by a full stop character ("."). 
Under ISO 9660 Level 1, the length of the base name may not exceed eight characters and the 
extension may not exceed three characters. In addition, a version number consisting of a 
semicolon and an integer must follow the file identifier. The base name and extension may only 
contain characters from the following set: the upper case alphanumeric characters (A- Z, 0-9) 
and the underscore ("_"). Collectively, these requirements are often referred to as the "8.3" ("8 
dot 3") file naming convention. These limitations exist primarily to accommodate older 
computer systems that cannot handle longer file names. 
Preferred format: BASENAME (1..8 characters) "." EXTENSION (3 characters)
Allowable format: BASENAME (1..8 characters) "." EXTENSION (1..3 characters)
Actual format 
on archive medium: BASENAME (1..8 characters) "." EXTENSION (1..3 characters) ";1

Ref:
rancher/rancher#36653
rancher/windows#155

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions