damex.incus.incus_cluster role – Ensure Incus cluster.
Note
This role is part of the damex.incus collection (version 1.11.7).
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it use: ansible-galaxy collection install damex.incus.
To use it in a playbook, specify: damex.incus.incus_cluster.
Entry point main – Ensure Incus cluster.
Synopsis
Ensure Incus cluster.
Parameters
Parameter |
Comments |
|---|---|
Client certificate content for API authentication. |
|
TLS client certificate path for API authentication. |
|
Client key content for API authentication. |
|
TLS client key path for API authentication. |
|
Cluster preseed settings. |
|
Address of an existing cluster member to join. |
|
Expected cluster certificate in X509 PEM format. |
|
Join token for the target cluster. |
|
Clustering. Choices:
|
|
Member-specific configuration overrides for joining. |
|
Type of entity being configured. |
|
Configuration key to set. |
|
Name of the entity. |
|
Value for the configuration key. |
|
Address of the cluster member for cluster communication. |
|
Name of the cluster member. |
|
Server configuration key-value pairs. |
|
Agree to ACME terms of service. Choices:
|
|
URL of the ACME directory. |
|
ACME challenge type to use. Choices:
|
|
Domain for which the certificate is issued. |
|
Email address for the ACME account. |
|
Port to use for HTTP-01 challenge. |
|
DNS provider for DNS-01 challenge. |
|
Environment variables for the DNS provider. |
|
DNS resolvers for the DNS provider. |
|
Starlark scriptlet for custom authorization logic. |
|
Compression algorithm for backups. |
|
Number of seconds after which an offline member is evacuated. |
|
Address to use for cluster communication. |
|
Minimum number of cluster members with a copy of an image. |
|
Expiry time for cluster join tokens. |
|
Maximum number of standby database members. |
|
Maximum number of voting database members. |
|
Number of seconds after which a heartbeat-less member is considered offline. |
|
Number of instances to move per rebalance batch. |
|
Cooldown period between rebalance runs. |
|
Interval in seconds between rebalance checks. |
|
Percentage threshold to trigger rebalancing. |
|
Address to bind the BGP server to. |
|
BGP Autonomous System Number for the local server. |
|
Unique BGP router ID for the local server. |
|
Address to bind the pprof debug server to. |
|
Address to bind the authoritative DNS server to. |
|
Address to bind the HTTPS API server to. |
|
Access-Control-Allow-Credentials. Choices:
|
|
Access-Control-Allow-Headers header value. |
|
Access-Control-Allow-Methods header value. |
|
Access-Control-Allow-Origin header value. |
|
Comma-separated list of trusted proxy IP addresses. |
|
Address to bind the metrics server to. |
|
Metrics authentication requirement. Choices:
|
|
HTTP proxy for the server to use. |
|
HTTPS proxy for the server to use. |
|
Hosts that should bypass the proxy. |
|
Expiry time for remote add tokens. |
|
Number of minutes to wait for running operations to complete before shutdown. |
|
Address to bind the storage buckets server to. |
|
Syslog Unix socket listener. Choices:
|
|
CA-signed client certificate trust. Choices:
|
|
Cached image auto-update. Choices:
|
|
Interval in hours between image update checks. |
|
Compression algorithm for images. |
|
Default architecture for images. |
|
Number of days after which unused cached images expire. |
|
Separate LXCFS per instance. Choices:
|
|
Template for host-side veth interface names. |
|
Starlark scriptlet for custom instance placement. |
|
Logging targets. |
|
Projects to send lifecycle events for. |
|
Lifecycle event types to send. |
|
Minimum log level to send to the logger. |
|
Name of the logging target. |
|
Address of the logging target. |
|
CA certificate for the server. |
|
Syslog facility for the log message. |
|
Name to use as the instance field in Loki events. |
|
Labels for a Loki log entry. |
|
Password for authentication. |
|
Number of delivery retries. |
|
Type of logging target. Choices:
|
|
Username for authentication. |
|
Events to send to the logger. |
|
MAC address template for the cluster. |
|
CA certificate for OVN northbound connection. |
|
Client certificate for OVN northbound connection. |
|
Client key for OVN northbound connection. |
|
OVS integration bridge to use for OVN networks. |
|
OVN northbound database connection string. |
|
OVS database connection string. |
|
Expected audience value for OIDC tokens. |
|
OIDC claim to use as the username. |
|
OIDC client ID. |
|
OIDC issuer URL. |
|
Comma-separated list of OIDC scopes to request. |
|
API token for the OpenFGA server. |
|
URL of the OpenFGA server. |
|
OpenFGA store ID. |
|
Volume to use for storing backup tarballs. |
|
Volume to use for storing image tarballs. |
|
CA certificate for LINSTOR controller connection. |
|
Client certificate for LINSTOR controller connection. |
|
Client key for LINSTOR controller connection. |
|
LINSTOR controller connection string. |
|
Name of the LINSTOR satellite on this cluster member. |
|
Volume to use for storing log files. |
|
Incus cluster members to ensure. |
|
Cluster member configuration key-value pairs. |
|
Controls how instances are scheduled to run on this member. Choices:
|
|
Description of the cluster member. |
|
Failure domain of the cluster member. |
|
Cluster groups for the member. |
|
Name of the cluster member. |
|
Roles assigned to the cluster member. |
|
Desired state of the cluster member. Choices:
|
|
Inventory hostname of the primary cluster node. |
|
Server certificate content for API verification. |
|
TLS server certificate path for API verification. |
|
Incus Unix socket path. |
|
Authentication token for the Incus API. |
|
URL of the Incus REST API endpoint. |
|
TLS certificate validation. Choices:
|
Examples
- name: Ensure incus cluster
hosts: incus
tasks:
- name: Ensure incus cluster
ansible.builtin.import_role:
name: damex.incus.incus_cluster
vars:
incus_cluster_primary: node1
incus_cluster_config:
core.https_address: :8443
incus_cluster_cluster:
enabled: true
server_name: "{{ inventory_hostname }}"
server_address: "{{ ansible_default_ipv4.address }}:8443"