* Module "profiles" provides container-linux-install and cached-container-linux-install Profiles * Module bootkube accepts cached_install variable to determine whether the cluster should install Container Linux from cache or from the public download site (default)
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 self-hosted Kubernetes v1.6.4 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 Version | FS | Docs |
|---|---|---|---|---|
| simple | CoreOS with autologin, using iPXE | stable/1353.7.0 | RAM | reference |
| simple-install | CoreOS Install, using iPXE | stable/1353.7.0 | RAM | reference |
| grub | CoreOS via GRUB2 Netboot | stable/1353.7.0 | RAM | NA |
| etcd3 | PXE boot a 3 node etcd3 cluster with proxies | stable/1353.7.0 | RAM | None |
| etcd3-install | Install a 3 node etcd3 cluster to disk | stable/1353.7.0 | Disk | None |
| bootkube | PXE boot a self-hosted Kubernetes v1.6.4 cluster | stable/1353.7.0 | Disk | tutorial |
| bootkube-install | Install a self-hosted Kubernetes v1.6.4 cluster | stable/1353.7.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").