https://github.com/dippynark/kube-matchbox-tf
Deploy Kubernetes to bare metal environments using matchbox and Terraform
https://github.com/dippynark/kube-matchbox-tf
Last synced: over 1 year ago
JSON representation
Deploy Kubernetes to bare metal environments using matchbox and Terraform
- Host: GitHub
- URL: https://github.com/dippynark/kube-matchbox-tf
- Owner: dippynark
- Created: 2017-11-08T14:28:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-07-19T13:14:42.000Z (about 7 years ago)
- Last Synced: 2025-03-28T19:24:23.088Z (over 1 year ago)
- Language: HCL
- Size: 84 KB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# kube-matchbox-tf
This project is for deploying [Container Linux][8] and [Kubernetes][9] to bare metal environments using [matchbox][10] and [Terraform][1] and is inspired heavily by [munnerz/k8s-matchbox-tf][11]. The following components and add-ons are deployed with the cluster:
- etcd
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- kube-proxy
## Prerequisites
### Nodes
Your cluster nodes need to be configured to [PXE boot][4].
### Terraform
Terraform is used to configure `matchbox` programmatically. The latest version can be downloaded from the Terraform [website][1].
### Docker
[Docker][7] is required to build the local development environment. You can alternatively run everything directly on your local machine.
### Network
`matchbox` is used to PXE boot your VMs. To set up your network for this, follow CoreOS's [network setup][2] tutorial. It is required that Container Linux is [cached][3] by default. You can download Container Linux using the [get_coreos][5] script in the [matchbox][6] repository. If you do not want to use a cached version of Container Linux, make sure to use the `container-linux-install` profile instead of the `cached-container-linux-install` profile. These profiles can be found in the profiles Terraform module.
## Quickstart
```bash
# Create environment tfvars file. An example can be found at environments/example
export ENVIRONMENT=example
export STATE_BUCKET_NAME=terraform-state-bucket
make docker_image
make docker_tf_init
make docker_tf_plan
make docker_tf_apply
# Start machines in the same domain as matchbox
```
[1]: https://www.terraform.io/
[2]: https://coreos.com/matchbox/docs/latest/network-setup.html
[3]: https://coreos.com/matchbox/docs/latest/api.html#assets
[4]: https://coreos.com/os/docs/latest/booting-with-ipxe.html
[5]: https://github.com/coreos/matchbox/blob/master/scripts/get-coreos
[6]: https://github.com/coreos/matchbox
[7]: https://www.docker.com/
[8]: https://coreos.com/os/docs/latest/
[9]: https://kubernetes.io/docs/home/
[10]: https://coreos.com/matchbox/docs/latest/
[11]: https://github.com/munnerz/k8s-matchbox-tf
[12]: https://github.com/coreos/container-linux-update-operator