/dd-rancheros-cloud-config

A trivial cloud-config server for RancherOS iPXE, driven by metadata from Dimension Data CloudControl

Primary LanguageGoMIT LicenseMIT

cloud-config server for Dimension Data CloudControl and RancherOS

A simple implementation of a server to return customised cloud-config.yml (to drive RancherOS installation via iPXE) for servers in CloudControl.

It's functional, but should be considered a work in progress; feel free to create an issue if you have questions or would like to contribute.

Works on Linux and OSX, but not Windows.

Note that it won't (currently) handle the case where the iPXE server is attached to multiple VLANs (but the design could easily be extended to handle this).

Configuration

dd-rancheros-cc.yml:

mcp:
  user: "my_user"
  password: "my_password"
  region: "AU"

network:
  vlan_id: "my_vlan_id" # The Id of the VLAN where the iPXE and cloud-config server are running.

rancher_os:
  console: centos
  network:
    dns:
       nameservers: "DNS IP"
  SSHPublicKey: "RAW Public key excluding email at end if present"
  SSHVaultCA: "{{ Vault CA key from Hashicorp vault to validate signed keys }}"

rancher_agent:
  version: "rancher/agent:v1.2.2" 
  url: "https://rancherlabdns/v1/scripts/xxxxxx:yyyyyyyyyy:zzzzzzzz"

OR:

export MCP_USER=my_user
export MCP_PASSWORD=my_password
export MCP_REGION=AU
export MCP_VLAN_ID=my_vlan_id