2.9 KiB
Examples
Matchbox automates network booting and provisioning of clusters. These examples show how to use matchbox on-premise or locally with QEMU/KVM.
Terraform Examples
These examples use Terraform as a client to Matchbox.
| Name | Description |
|---|---|
| simple-install | Install Container Linux with an SSH key |
| etcd3-install | Install a 3-node etcd3 cluster |
| bootkube-install | Install a 3-node Kubernetes v1.10.3 cluster |
Customization
You are encouraged to look through the examples and Terraform modules. Implement your own profiles or package them as modules to meet your needs. We've just provided a starting point. Learn more about matchbox and Container Linux configs.
Manual Examples
These examples mount raw Matchbox objects into a Matchbox server's /var/lib/matchbox/ directory.
| Name | Description | CoreOS Container Linux Version | FS | Docs |
|---|---|---|---|---|
| simple | CoreOS Container Linux with autologin, using iPXE | stable/1576.5.0 | RAM | reference |
| simple-install | CoreOS Container Linux Install, using iPXE | stable/1576.5.0 | RAM | reference |
| grub | CoreOS Container Linux via GRUB2 Netboot | stable/1576.5.0 | RAM | NA |
| etcd3 | PXE boot a 3-node etcd3 cluster with proxies | stable/1576.5.0 | RAM | None |
| etcd3-install | Install a 3-node etcd3 cluster to disk | stable/1576.5.0 | Disk | None |
| bootkube | PXE boot a 3-node Kubernetes v1.8.5 cluster | stable/1576.5.0 | Disk | tutorial |
| bootkube-install | Install a 3-node Kubernetes v1.8.5 cluster | stable/1576.5.0 | Disk | tutorial |
Customization
Autologin
Example profiles pass the coreos.autologin kernel argument. This skips the password prompt for development and troubleshooting and should be removed before production.
SSH Keys
Example groups allow ssh_authorized_keys to be added for the core user as metadata. You might also include this directly in your Ignition.
# /var/lib/matchbox/groups/default.json
{
"name": "Example Machine Group",
"profile": "pxe",
"metadata": {
"ssh_authorized_keys": ["ssh-rsa pub-key-goes-here"]
}
}
Conditional Variables
"pxe"
Some examples check the pxe variable to determine whether to create a /dev/sda1 filesystem and partition for PXEing with root=/dev/sda1 ("pxe":"true") or to write files to the existing filesystem on /dev/disk/by-label/ROOT ("pxe":"false").