Skip to main content

Cloud-config Reference

All custom configuration applied on top of a fresh deployment should come from the cloud-config section in a MachineRegistration.

This will get run by elemental-cli run-stage during the boot stage, and it will be stored in the node under the /oem dir.

Elemental uses yip to run these cloud-config files, so we support the yip subset cloud-config implementation.

Below is an example of the supported configuration on a MachineRegistration resource.

Example
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: my-nodes
namespace: fleet-default
spec:
config:
cloud-config:
users:
- name: "bar"
passwd: "foo"
groups: "users"
homedir: "/home/foo"
shell: "/bin/bash"
ssh_authorized_keys:
- faaapploo
# Assigns these keys to the first user in users or root if there
# is none
ssh_authorized_keys:
- asdd
# Run these commands once the system has fully booted
runcmd:
- foo
# Write arbitrary files
write_files:
- encoding: b64
content: CiMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBzdGF0ZSBvZiBTRUxpbnV4
path: /foo/bar
permissions: "0644"
owner: "bar"
elemental:
install:
reboot: true
device: /dev/sda
debug: true
machineName: my-machine
machineInventoryLabels:
element: fire