|
|
|
|
@ -1,19 +1,53 @@
|
|
|
|
|
A Terraform script to create k8s nodes. This script has modules for creating the
|
|
|
|
|
nodes on a KVM/QEMU (libvirt) hypervisor or creating the nodes via AWS.
|
|
|
|
|
A terraform script that will setup VMs via AWS or KVM/QEMU (libvirt).
|
|
|
|
|
|
|
|
|
|
The modules allow you create N VMs of a specific type. So you could create 1
|
|
|
|
|
master node and 3 worker nodes or you could create 3 Ubuntu VMs and 5 CentOS
|
|
|
|
|
VMs, or whatever fits your needs.
|
|
|
|
|
|
|
|
|
|
This script creates the VMs and then uses Cloud-init for initial configuration
|
|
|
|
|
of the VMs.
|
|
|
|
|
|
|
|
|
|
libvirt vs. AWS
|
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
|
|
This script allows VMs to be created libvirt or AWS. You can choose either one,
|
|
|
|
|
however, running both at the same time has not been tested. Therefore, when
|
|
|
|
|
using one, you should comment out all code pertaining to the other provider.
|
|
|
|
|
|
|
|
|
|
Cloud-Init
|
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
|
|
Both the libvirt and aws modules use cloud-init for initial configuration of the
|
|
|
|
|
VMs.
|
|
|
|
|
VMs. Cloud-init is used to create the admin user and add the mss-admin keys.
|
|
|
|
|
Cloud-init is also used to install some initial packages. The goal is to get
|
|
|
|
|
these VMs setup enough so that they can be configured via Ansible.
|
|
|
|
|
|
|
|
|
|
Environment Setup
|
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
|
|
1. From within the nodes-terraform directory run `terraform init`. You will a
|
|
|
|
|
see bunch if output as terraform grabs the dependencies it needs.
|
|
|
|
|
|
|
|
|
|
2. Copy the shared `terraform.tfvars` from S3.
|
|
|
|
|
```shell
|
|
|
|
|
aws s3 cp s3://mss-terraform-state/global/s3/terraform.tfvars .
|
|
|
|
|
```
|
|
|
|
|
For instructions on getting AWS CLI to work correctly see `aws-api-setup.md`
|
|
|
|
|
in the `doc-ops` repo.
|
|
|
|
|
|
|
|
|
|
Take care to copy your `terraform.tfvars` back to the S3 bucket whenever you
|
|
|
|
|
make a change to it.
|
|
|
|
|
|
|
|
|
|
3. Verify that you branch and variables match whats deployed by running
|
|
|
|
|
`terraform plan`. If everything is in sync you should see `No changes. Your
|
|
|
|
|
infrastructure matches the configuration.` _IF_ you do not see this message
|
|
|
|
|
make sure to sync with the other admins before continuing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
|
|
_UNFINISHED_
|
|
|
|
|
TODO REM add libvirt provider
|
|
|
|
|
libvirt provider depends on mkisofs
|
|
|
|
|
|
|
|
|
|
|