Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# TFS Cluster Auto-setup
The Ansible playbook and inventory in this directory are set up to configure Ubuntu 22.04 hosts, preparing them for a future TeraFlowSDN deployment.
## Host Environment
As a sandbox example, we create a network of three hosts using Vagrant and provision them with password-less SSH public keys.
In a production environment, various tools or platforms can be used to run these instances, such as a server with Proxmox or a cloud provider. Provisioning can be done manually or with tools like Terraform.
## Inventory
In the inventory, we list the hosts that will be part of the MicroK8s cluster and define their roles.
As of this writing, only three tags are required, with one being optional.
-**microk8s_master** - *boolean* - *mandatory* - Identifies the node that will serve as the master of the MicroK8s cluster.
-**tfs_branch** - *string* - *optional* - Specifies the branch to checkout when cloning the repository (defaults to `master`). This tag must be defined on the same host as the *microk8s_master* tag.
-**containerlab_host** - *boolean* - *mandatory* - Identifies the node where ContainerLab will be deployed. This tag enables Ansible to install ContainerLab on the correct host and set static routes on other hosts to reach nodes in the ContainerLab topology.