Tectonic is built on pure-upstream Kubernetes but has an opinion on the best way to install and run a Kubernetes cluster. This project helps you install a Kubernetes cluster the "Tectonic Way". It provides good defaults, enables install automation, and is customizable to meet your infrastructure needs.
Goals of the project:
- Install Kubernetes clusters
- Secure by default (uses TLS, RBAC by default, OIDC AuthN, etcd)
- Automatable install process for scripts and CI/CD
- Deploy on any infrastructure: Amazon AWS, Microsoft Azure, OpenStack, Google Cloud, bare metal
- Run on any OS: Container Linux (the default), RHEL, Ubuntu, and others
- Customizable and modular: Change DNS providers, security settings, authentication providers
- Highly Available by default: Deploy all Kubernetes components HA, use etcd Operator
To use a tested release on a supported platform, follow the links below.
To hack or modify the templates or add a new platform, use the scripts in this repo to boot and tear down clusters.
See the official Tectonic documentation:
- AWS using a GUI [stable]
- AWS using Terraform CLI [stable]
- Azure using Terraform [stable]
- Bare metal using a GUI [stable]
- Bare metal using Terraform CLI [stable]
These instructions can be used for the official stable platforms listed above, and for the following alpha/beta platforms:
-
Build the project
bazel build tarball
-
Unzip the tarball
cd bazel-bin tar -zxvf tectonic.tar.gz cd tectonic
-
Add binaries to $PATH
export PATH=$(pwd)/tectonic-installer/linux/:$PATH
-
Choose one of the platforms:
export PLATFORM=aws export PLATFORM=azure export PLATFORM=gcp export PLATFORM=govcloud export PLATFORM=metal export PLATFORM=openstack-neutron export PLATFORM=vmware
-
Edit Tectonic configuration file including the $CLUSTER_NAME
$EDITOR examples/tectonic.$PLATFORM.yaml`
-
Init Tectonic CLI
tectonic init --config=example/tectonic.$PLATFORM.yaml
-
Install Tectonic cluster
tectonic install --dir=$CLUSTER_NAME
-
Teardown Tectonic cluster
tectonic destroy $CLUSTER_NAME
See tests/README.md.