Skip to content

ComputeCanada/mc-incus-deploy

Repository files navigation

mc-incus-deploy

Ansible playbook for deploying an Incus cluster with OVN network support.
This project is adapted from incus-deploy to support Magic Castle clusters.

Usage

  1. Copy hosts.yaml.example to hosts.yaml.
  2. Update the variables and add the corresponding hosts.
  3. Install dependencies:
    ansible-galaxy install -r ansible_requirements.yml
    
  4. Deploy playbook:
  ansible-playbook ./deploy.yaml

Variables

Incus

  • incus_name: Name identifier for the deployment (required, type: string)
  • incus_init: Initial configuration data (type: dict)
    • config: Dict of config keys
    • clients: Dict of client certificates to trust
      • type: Type of certificate, typically client or metrics (required, type: string)
      • certificate: PEM encoded certificate (required, type: string)
    • network: Dict of networks
      • name: Name of the network (required, type: string)
      • type: Type of network (required, type: string)
      • default: Whether to include in the default profile (type: bool, default: False)
      • config: Dict of global config keys
      • local_config: Dict of server-specific config keys
    • storage: Dict of storage pools
      • name: Name of the storage pool (required, type: string)
      • driver: Storage pool driver (required, type: string)
      • default: Whether to include in the default profile (type: bool, default: False)
      • config: Dict of global config keys
      • local_config: Dict of server-specific config keys
  • incus_ip_address: Override for the server's IP address (used cluster and client traffic) (type: string)
  • incus_release: Incus release to deploy, can be one of daily, stable or lts-6.0 (type: string, default: stable)
  • incus_roles: Operation mode for the deployed Incus system (required, type: string)
    • standalone
    • cluster
    • ui: Whether to serve the Incus UI

OVN

  • ovn_az_name: OVN availability zone name (required if using OVN IC, type: string)
  • ovn_clients: List of certificates to generate for OVN clients (type: list of string)
  • ovn_ip_address: Override for the server's IP address (used for tunnels and DB traffic) (type: string)
  • ovn_name: OVN deployment name (required, type: string)
  • ovn_release: OVN release to deploy, can be distro or ppa (type: string, default: distro)
  • ovn_roles: List of roles the server should have in the OVN cluster (required, type: list of string):
    • central: OVN API server, runs NorthBound and SouthBound database and northd daemon
    • host: OVN client / controller, runs OpenVswitch and ovn-controller
    • ic: OVN Inter-Connection server, runs the ovn-ic daemon
    • ic-db: OVN Inter-Connection NorthBound and SouthBound database server
    • ic-gateway: OVN Inter-Connection traffic gateway

About

Ansible example to deploy incus for MC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published