Add README.md

This commit is contained in:
Magnus Andersson 2024-01-16 10:41:22 +01:00
parent 539de02daf
commit 17722fc790
Signed by: mandersson
GPG key ID: 19CB2C58E1F19B16

36
README.md Normal file
View file

@ -0,0 +1,36 @@
# Matrixtest-IaC
This opentofu project creates a three node cluster in openstack.
In this case a microk8s cluster.
The following tasks is executed by this tofu deployment.
- Creates a custom security group with rules to accept traffic between the nodes.
- Create an os volume from the debian-12 image.
- Create an snap volume to be used as an LVM volume for easy resize and mounted on /lib/snap.
- Query all security groups in the project.
- Create an network port for each node and use a selection of the queried security groups.
- Create an instance with os volume, snap volume and port attached and a custom cloudinit config.
Auth is provided to the openstack provider by environment variables.
Source the rc file of app credentials for the desired openstack project.
## Cloudinit config.
Cloudinit does the following tasks.
- Install tools for LVM2,XFS and the Chronyd ntp sevice.
- Configure Chronyd to use netnod.se as a source.
- Configure a lvol_snap LVM volume and format it with XFS.
- Add a mount record of the lvm volume in fstab and verifies it.
## Expansion of volume by online resize
To expand the attached snap volume first query the api version of the volume endpoint from the management node and set the new size of the volume.
- curl -L https://v2.api.dco.safedc.net:8776/ | jq '.versions[1].version' # Returns 3.60
- openstack --os-volume-api-version 3.60 volume set --size 30 6f1a238d-f746-4604-92c9-0985ad4b83fd
From inside the instance run the following commands.
- sudo pvresize /dev/sdb
- sudo lvresize -l +100%FREE snapvg/lvol_snap
- sudo xfs_growfs /dev/snapvg/lvol_snap
Now we have expanded the mounted device with zero downtime.