Kuberentes Cluster Provisioner
This Project contains a configuration-as-code set up which utilizes Ansible to provision a Kubernetes cluster using k3s.
Setting up Ansible
Make sure that python3 and pip are installed.
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y python3 python3-pip
# Mac
brew install python3Install Ansible using pip
pip3 install ansibleℹ If you're using Visual Studio Remote Containers for VS Code, installing the tools will have already been completed during the container Installation procedures (see the files in
.devcontainer)
Running the Ansible Scripts
This script is designed to be run in two steps:
# First Run
ansible-playbook --ask-pass playbook.yml --skip-tags=media
# Last Run
ansible-playbook --ask-pass playbook.yml --tags=media --extra-vars="plex_token=<plex_claim_token>"You can obtain a plex token by visiting https://plex.tv/claim Plex tokens are only valid for 4 minutes. This playbook takes longer than 4 minutes to run which is why the media role needs to be executed separately.
Variables
A set of variables are defined within this playbook. The values can be overridden using the Ansible --extra-vars argument.
The full variables list is detailed below:
| Variable | Default | Description |
|---|---|---|
| terraform_version | 0.13.1 | Version of Terraform to install |
| kubectl_version | 1.6.2 | Version of Terraform kubectl provider |
| domain | haus.net | Domain name |
| ip_addresses | [] | List of IP addresses for k8s cluster |
| keycloak_user | manager | Default Admin user for Keycloak |
| keycloak_password | p@$$w0rd! | Default Admin password for Keycloak |
| ldap_password | p@$$w0rd! | Default password for LDAP admin acct |
| plex_token | "" | Plex claim token for new plex server |
| files_user | manager | Default Admin user for Owncloud |
| files_password | p@$$w0rd! | Default Admin password for Owncloud |
| openfaas_password | p@$$w0rd! | Default password for OpenFaaS |