- First and foremost, you need Terraform installed.
- When using a libvirt environment, you will also need the terraform-provider-libvirt package.
- In order to provision the virtual machines, we use Salt.
In particular, we have our own repository
for the Salt scripts needed for installing a proper Kubernetes cluster.
As it's described later in the
Variables
section, you may use thesalt_dir
variable to point to a local checkout of thekubic-project/salt
project.
All these dependencies are already packaged in OBS inside of the Virtualization:containers project. You can add this repo and install these packages with just
$ # (replace openSUSE_Leap_42.2 with your distro)
$ sudo zypper ar http://download.opensuse.org/repositories/Virtualization:/containers/openSUSE_Leap_42.2 containers
$ sudo zypper in terraform terraform-provider-libvirt kubernetes-salt
Then you can install the latest packaged version of this repository by installing
$ sudo zypper in kubernetes-terraform
- If you are using an OpenStack environment with cloud.suse.de, then you must install the internal root certificates from SUSE. You can do this by installing the ca-certificates-suse package found in the ibs://SUSE:CA project.
One important aspect of the configuration is the image you will use for your VMs. This is specially important in some configurations and is the main source of problems, so the recommended solution is to use some of the images already provided by the Docker team.
- Since we rely on cloudinit, the image should start the cloudinit services automatically. The minimum cloud-init version supported is 0.7.7.
- When using libvirt, they should have the
qemu-agent
installed (otherwise they will not work in bridged mode) - In development environments, they should be accessible with
user
/pass
=root
/vagrant