Introduction
SUSE® Rancher Prime OS Manager uses the Rancher System Agent, renamed to SUSE® Rancher Prime OS Manager System Agent, to initially bootstrap the node with a simple plan.
The plan will apply the following configurations:
-
Set some labels for the node
-
Set the proper hostname according to the
MachineInventory
value -
Install the default Rancher System Agent from Rancher Server, and install the proper Kubernetes components
The bootstrap service also accepts local plans stored under /var/lib/elemental/agent/plans
. Any plan written
in there will also be applied during the initial node start after the installation is completed.
The local plans run only during the initial SUSE® Rancher Prime OS Manager bootstrap before Kubernetes is installed on the node. |
Types of Plans
The type of plans that SUSE® Rancher Prime OS Manager can use are:
-
One time instructions: Only run once
-
Periodic instructions: They run periodically
-
Files: Creates files
-
Probes: http probes
Both one time instructions and periodic instructions can run either a direct command or a docker image. |
Adding local plans on SUSE® Rancher Prime OS Manager
You can add local plans to SUSE® Rancher Prime OS Manager as part of the MachineRegistration
CRD, in the cloud-config
section as follows:
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: my-nodes
namespace: fleet-default
spec:
config:
cloud-config:
users:
- name: root
passwd: root
write_files:
- path: /var/lib/elemental/agent/plans/mycustomplan.plan
permissions: "0600"
content: |
{"instructions":
[
{
"name":"set hostname",
"command":"hostnamectl",
"args": ["set-hostname", "myHostname"]
},
{
"name":"stop sshd service",
"command":"systemctl",
"args": ["stop", "sshd"]
}
]
}
elemental:
install:
reboot: true
device: /dev/sda
debug: true
machineName: my-machine
machineInventoryLabels:
element: fire
Plan examples
The following plans are provided as a quick reference and are not guaranteed to work in your environment. To learn more about plans please check [Rancher System Agent](https://github.com/rancher/system-agent).
-
Example 1: one time instructions
-
Example 2: periodic instructions
-
Example 3: files
-
Tab Example 4: probes
{"instructions":
[
{
"name":"set hostname",
"command":"hostnamectl",
"args": ["set-hostname", "myHostname"]
},
{
"name":"stop sshd service",
"command":"systemctl",
"args": ["stop", "sshd"]
}
]
}
{"periodicInstructions":
[
{
"name":"set hostname",
"image":"ghcr.io/rancher-sandbox/elemental-example-plan:main"
"command": "run.sh"
}
]
}
{"files":
[
{
"content":"Welcome to the system",
"path":"/etc/motd",
"permissions": "0644"
}
]
}
{"probes":
"probe1": {
"name": "Service Up",
"httpGet": {
"url": "http://10.0.0.1/healthz",
"insecure": "false",
"clientCert": "....",
"clientKey": "....",
"caCert": "....."
}
}
}