Runs a Matrix server on a managed kubernetes cluster hosted by OVH.
[Network Security Operator, Volume Operator, Network Operator, Backup Operator, Compute Operator, Image Operator, Administrator, Infrastructure Supervisor]
On the linux running this code :
openssl
, yq
The following steps will setup various OVH resources necessary to run the Synapse homeserver.
[!TIP] The Octavia load balancer is only useful if you want the cluster to be isolated from the web. If it's not necessary don't use it and remove
type: NodePort
inansible/roles/ingress-controller/tasks/templates/ingress-nginx-service.yml
and manually set the dns entry
[!TIP] The other thing you may want to consider if not running an official production environment is to get rid of
admin_vm
this part was done to make sure the alert manager was able to reach an hypothetic Zabbix server on the admin private network.
Create in the local folder a local.env.sh file copying the script/local.env.template.sh file
and fill it with all the environment variables values needed. OS_
variables relate to the openstack part.
Then source this file :
source local/local.env.sh
Generate the var file for provisioning stage (terraform.tfvars) based on values previously set :
sh scripts/generate_provisioning_var_files.sh
Go to the terraform folder
cd terraform
Initialize the Terraform workspace specifying the name of the S3 bucket
terraform init -backend-config="bucket=terraform-states-hp-$ENVIRONMENT"
Create the Terraform execution plan to validate that everything is ok
terraform plan
Apply the Terraform plan
terraform apply
This will lead to the creation of a kubernetes cluster with 1 control plane node and several worker nodes
The configuration part will be done with Ansible and is quite independent from the provisioning part.
Generate the files (kubeconfig-$ENVIRONMENT.yml, ansible/group_vars/all.yml) and vars needed :
./scripts/generate_configuration_var_files.sh
For more info on kubeconfig file see https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/
And then execute :
./scripts/ansible_configuration.sh
This will lead to the installation of the following components in the cluster :