From linuxcontainers.org:
Incus is a next-generation system container, application container, and virtual machine manager.
It provides a user experience similar to that of a public cloud. With it, you can easily mix and match both containers and virtual machines, sharing the same underlying storage and network.
To install Incus on your personal compute or in a virtual machine, follow the instructions: Install and initialize Incus
- Install terraform on the same machine running Incus.
- Grab the incus example main.tf
- Set the incus terraform provider environment variable :
export INCUS_SOCKET=/var/run/incus/unix.socket - Initialize terraform:
terraform init - Apply:
terraform apply - Note the project id from the terraform output.
- Connect to an instance, replace
<project>by incus project id:incus --project <project> exec mgmt1 -- /bin/bash.
When deploying Magic Castle with Incus, the following features are yet implemented:
- Virtual machine instance type
- Volumes
- GPU
- Firewall / network ACLs
- SELinux
- NFS Automount
It is possible to enable the cluster autoscaling as described in Magic Castle Terraform Cloud documentation.
Since Incus is a local provider, a local terraform agent is required.
To setup a Terraform agent, follow the instructions.
The Terraform agent has to run on the same machine as the incus server. In the Terraform cloud workspace of the cluster, make
sure to define the environment variable INCUS_SOCKET=/var/run/incus/unix.socket. This will allow the Terraform agent to
communicate with Incus.