AstraLuma
(Jamie Bliss)
July 31, 2026, 2:10am
1
I’m playing with an incus cluster, validating what I’m hoping to do with incus in the future. What I’m hoping is to be able to use incus-compose as lightweight configuration as code and define the services, volumes, and networks that’ll be in my cluster through compose.
I have a 3 node cluster with identical hardware, each one with a btrfs storage pool.
I’ve got this compose:
services:
server:
image: codeberg.org/forgejo/forgejo:16
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- forgejo-data:/data
ports:
- '3000:3000'
- '222:22'
volumes:
forgejo-data:
x-incus-compose:
pool: default
networks:
default:
x-incus-compose:
network: incusbr0
and what i’m getting running incus-compose from my laptop:
22:09 ERR Ensuring resources project=forgejo error="in an operation: instance(forgejo): Failed creating instance record: Failed initializing instance: Failed add validation for device \"vol-forgejo-data\": Failed loading custom volume: Storage volume not found"
ensure image codeberg.org/forgejo/forgejo:16 [done]
ensure image ghcr.io/lxc/incus-compose/ic-healthd:~ [done]
ensure network default [done]
ensure storage-volume ic-healthd [done]
ensure storage-volume forgejo-data [done]
ensure instance forgejo-ic-healthd [done]
ensure instance forgejo [warn: in an operation: Failed creating instance record: Failed initializing instance: ~
Based on the amount of documentation I’m finding, this seems like an unusual configuration?
jochumdev
(René Jochum)
July 31, 2026, 4:02am
2
Hey!
Thanks for the first standalone incus-compose related Forum support Post! Ohh and welcome in the forums!
services:
server:
image: codeberg.org/forgejo/forgejo:16
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- forgejo-data:/data
ports:
- "3000:3000"
- "222:22"
volumes:
forgejo-data:
networks:
default:
external: true
x-incus-compose:
network: incusbr0
Note the exterrnal: true for external networks is important else you get weired results.
r3j0@server01 ~/forgejo> incus remote add --protocol oci codeberg.org https://codeberg.org
r3j0@server01 ~/forgejo> incus-compose up
ensure image codeberg.org/forgejo/forgejo:16 [done]
ensure image ghcr.io/lxc/incus-compose/ic-healthd:~ [done]
ensure network default [done]
ensure storage-volume forgejo-data [done]
ensure storage-volume ic-healthd [done]
ensure instance forgejo-ic-healthd [done]
ensure instance forgejo [done]
start instance forgejo-ic-healthd [done]
start instance forgejo [done]
I removed the pool: default as it is not needed here. Having it in doesn’t change my result.
Please give the output of incus storage list
r3j0@server01 ~/forgejo> incus storage list
+---------+--------+-------------+---------+---------+
| NAME | DRIVER | DESCRIPTION | USED BY | STATE |
+---------+--------+-------------+---------+---------+
| default | btrfs | | 129 | CREATED |
+---------+--------+-------------+---------+---------+
| ext1 | btrfs | | 4 | CREATED |
+---------+--------+-------------+---------+---------+
As a workaround you could try to create the volume on your own in advance.
incus-compose incus storage volume create default vol-forgejo-data shifted=true
AstraLuma
(Jamie Bliss)
August 4, 2026, 5:20pm
3
@ incus storage list
+---------+--------+-------------+---------+---------+
| NAME | DRIVER | DESCRIPTION | USED BY | STATE |
+---------+--------+-------------+---------+---------+
| default | btrfs | | 12 | CREATED |
+---------+--------+-------------+---------+---------+
the default pool is the root btrfs and spans all three cluster members.
yeah, all the x-incus options are less there for intention and more there for flailing
jochumdev
(René Jochum)
August 4, 2026, 5:29pm
4
I have no clue, please try to run the project with --debug and give the full log.
Shouldn’t contain any sensitive information’s.
AstraLuma
(Jamie Bliss)
August 4, 2026, 5:36pm
5
Let me try some variations
No x-incus
services:
server:
image: codeberg.org/forgejo/forgejo:16
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- forgejo-data:/data
ports:
- '3000:3000'
- '222:22'
volumes:
forgejo-data:
networks:
default:
@ incus-compose --debug up
13:30 DBG Connected url=https://apollo.lan:8443
13:30 DBG Got project name=default incus_name=default
13:30 DBG Got project name=forgejo incus_name=forgejo
13:30 DBG Ensure project=forgejo incus_project=forgejo resources="[instance(forgejo) image(codeberg.org/forgejo/forgejo:16) network(ic-pmtqrmf4x7) storage-volume(vol-forgejo-data) image(ghcr.io/lxc/incus-compose/ic-healthd:1.0.0) storage-volume(vol-ic-healthd) instance(forgejo-ic-healthd)]"
13:30 DBG Running action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16
13:30 DBG Running action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0
13:30 DBG Run action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16 created=false
13:30 DBG Run action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 created=false
13:30 DBG Running action=ensure kind=network name=default incus_name=ic-pmtqrmf4x7
13:30 WRN Result with error action=ensure kind=network name=default incus_name=ic-pmtqrmf4x7 created=false error="creating network \"default\": Network not pending on any node (use --target <node> first)"
13:30 ERR Ensuring resources project=forgejo incus_project=forgejo error="unknown: network(ic-pmtqrmf4x7): creating network \"default\": Network not pending on any node (use --target <node> first)"
External network
services:
server:
image: codeberg.org/forgejo/forgejo:16
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- forgejo-data:/data
ports:
- '3000:3000'
- '222:22'
volumes:
forgejo-data:
networks:
default:
# This is different from default
external: true
x-incus-compose:
network: incusbr0
@ incus-compose --debug up
13:34 DBG Connected url=https://apollo.lan:8443
13:34 DBG Got project name=default incus_name=default
13:34 DBG Got project name=forgejo incus_name=forgejo
13:34 DBG Ensure project=forgejo incus_project=forgejo resources="[instance(forgejo) image(codeberg.org/forgejo/forgejo:16) network(incusbr0) storage-volume(vol-forgejo-data) image(ghcr.io/lxc/incus-compose/ic-healthd:1.0.0) storage-volume(vol-ic-healthd) instance(forgejo-ic-healthd)]"
13:34 DBG Running action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16
13:34 DBG Running action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0
13:34 DBG Run action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 created=false
13:34 DBG Run action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16 created=false
13:34 DBG Running action=ensure kind=network name=default incus_name=incusbr0
13:34 DBG Run action=ensure kind=network name=default incus_name=incusbr0 created=false
13:34 DBG Running action=ensure kind=storage-volume name=ic-healthd incus_name=vol-ic-healthd
13:34 DBG Running action=ensure kind=storage-volume name=forgejo-data incus_name=vol-forgejo-data
13:34 DBG Run action=ensure kind=storage-volume name=forgejo-data incus_name=vol-forgejo-data created=false
13:34 DBG Run action=ensure kind=storage-volume name=ic-healthd incus_name=vol-ic-healthd created=false
13:34 DBG Running action=ensure kind=instance name=forgejo-ic-healthd incus_name=forgejo-ic-healthd
13:34 DBG Running action=ensure kind=network name=default incus_name=incusbr0
13:34 DBG Run action=ensure kind=network name=default incus_name=incusbr0 created=false
13:34 DBG Run action=ensure kind=instance name=forgejo-ic-healthd incus_name=forgejo-ic-healthd created=false
13:34 DBG Running action=ensure kind=instance name=forgejo incus_name=forgejo
13:34 WRN Result with error action=ensure kind=instance name=forgejo incus_name=forgejo created=false error="in an operation: Failed creating instance record: Failed initializing instance: Failed add validation for device \"vol-forgejo-data\": Failed loading custom volume: Storage volume not found"
13:34 ERR Ensuring resources project=forgejo incus_project=forgejo error="in an operation: instance(forgejo): Failed creating instance record: Failed initializing instance: Failed add validation for device \"vol-forgejo-data\": Failed loading custom volume: Storage volume not found"
Specified network and volume
services:
server:
image: codeberg.org/forgejo/forgejo:16
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- forgejo-data:/data
ports:
- '3000:3000'
- '222:22'
volumes:
forgejo-data:
# This is different from default
x-incus-compose:
pool: default
networks:
default:
# This is different from default
external: true
x-incus-compose:
network: incusbr0
@ incus-compose --debug up
13:35 DBG Connected url=https://apollo.lan:8443
13:35 DBG Got project name=default incus_name=default
13:35 DBG Got project name=forgejo incus_name=forgejo
13:35 DBG Ensure project=forgejo incus_project=forgejo resources="[instance(forgejo) image(codeberg.org/forgejo/forgejo:16) network(incusbr0) storage-volume(vol-forgejo-data) image(ghcr.io/lxc/incus-compose/ic-healthd:1.0.0) storage-volume(vol-ic-healthd) instance(forgejo-ic-healthd)]"
13:35 DBG Running action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16
13:35 DBG Running action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0
13:35 DBG Run action=ensure kind=image name=codeberg.org/forgejo/forgejo:16 incus_name=codeberg.org/forgejo/forgejo:16 created=false
13:35 DBG Run action=ensure kind=image name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 incus_name=ghcr.io/lxc/incus-compose/ic-healthd:1.0.0 created=false
13:35 DBG Running action=ensure kind=network name=default incus_name=incusbr0
13:35 DBG Run action=ensure kind=network name=default incus_name=incusbr0 created=false
13:35 DBG Running action=ensure kind=storage-volume name=ic-healthd incus_name=vol-ic-healthd
13:35 DBG Running action=ensure kind=storage-volume name=forgejo-data incus_name=vol-forgejo-data
13:35 DBG Run action=ensure kind=storage-volume name=ic-healthd incus_name=vol-ic-healthd created=false
13:35 DBG Run action=ensure kind=storage-volume name=forgejo-data incus_name=vol-forgejo-data created=false
13:35 DBG Running action=ensure kind=instance name=forgejo-ic-healthd incus_name=forgejo-ic-healthd
13:35 DBG Running action=ensure kind=network name=default incus_name=incusbr0
13:35 DBG Run action=ensure kind=network name=default incus_name=incusbr0 created=false
13:35 DBG Run action=ensure kind=instance name=forgejo-ic-healthd incus_name=forgejo-ic-healthd created=false
13:35 DBG Running action=ensure kind=instance name=forgejo incus_name=forgejo
13:35 WRN Result with error action=ensure kind=instance name=forgejo incus_name=forgejo created=false error="in an operation: Failed creating instance record: Failed initializing instance: Failed add validation for device \"vol-forgejo-data\": Failed loading custom volume: Storage volume not found"
13:35 ERR Ensuring resources project=forgejo incus_project=forgejo error="in an operation: instance(forgejo): Failed creating instance record: Failed initializing instance: Failed add validation for device \"vol-forgejo-data\": Failed loading custom volume: Storage volume not found"
jochumdev
(René Jochum)
August 4, 2026, 5:37pm
6
Hmm what server and client version do you have?
incus info ← might contain sensitive data, depends on version.
Btw you’r the first one with a cluster trying incus-compose I know of. even faster than me you are
jochumdev
(René Jochum)
August 4, 2026, 5:42pm
7
Would love to debug this with screensharing and voice if you have the time.
Write me a PM if, we will update this thread with results ofc.
AstraLuma
(Jamie Bliss)
August 4, 2026, 6:18pm
8
My client is the Fedora main repo (6.23), the servers are debian using the zabbly repo (7.0.1).
config:
cluster.https_address: 10.84.72.2
core.https_address: '[::]:8443'
core.storage_buckets_address: apollo.lan:8555
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- network_sriov
- console
- restrict_dev_incus
- migration_pre_copy
- infiniband
- dev_incus_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- dev_incus_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- backup_compression
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- snapshot_schedule_aliases
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
- network_vlan_sriov
- storage_cephfs
- container_nic_ipfilter
- resources_v2
- container_exec_user_group_cwd
- container_syscall_intercept
- container_disk_shift
- storage_shifted
- resources_infiniband
- daemon_storage
- instances
- image_types
- resources_disk_sata
- clustering_roles
- images_expiry
- resources_network_firmware
- backup_compression_algorithm
- ceph_data_pool_name
- container_syscall_intercept_mount
- compression_squashfs
- container_raw_mount
- container_nic_routed
- container_syscall_intercept_mount_fuse
- container_disk_ceph
- virtual-machines
- image_profiles
- clustering_architecture
- resources_disk_id
- storage_lvm_stripes
- vm_boot_priority
- unix_hotplug_devices
- api_filtering
- instance_nic_network
- clustering_sizing
- firewall_driver
- projects_limits
- container_syscall_intercept_hugetlbfs
- limits_hugepages
- container_nic_routed_gateway
- projects_restrictions
- custom_volume_snapshot_expiry
- volume_snapshot_scheduling
- trust_ca_certificates
- snapshot_disk_usage
- clustering_edit_roles
- container_nic_routed_host_address
- container_nic_ipvlan_gateway
- resources_usb_pci
- resources_cpu_threads_numa
- resources_cpu_core_die
- api_os
- container_nic_routed_host_table
- container_nic_ipvlan_host_table
- container_nic_ipvlan_mode
- resources_system
- images_push_relay
- network_dns_search
- container_nic_routed_limits
- instance_nic_bridged_vlan
- network_state_bond_bridge
- usedby_consistency
- custom_block_volumes
- clustering_failure_domains
- resources_gpu_mdev
- console_vga_type
- projects_limits_disk
- network_type_macvlan
- network_type_sriov
- container_syscall_intercept_bpf_devices
- network_type_ovn
- projects_networks
- projects_networks_restricted_uplinks
- custom_volume_backup
- backup_override_name
- storage_rsync_compression
- network_type_physical
- network_ovn_external_subnets
- network_ovn_nat
- network_ovn_external_routes_remove
- tpm_device_type
- storage_zfs_clone_copy_rebase
- gpu_mdev
- resources_pci_iommu
- resources_network_usb
- resources_disk_address
- network_physical_ovn_ingress_mode
- network_ovn_dhcp
- network_physical_routes_anycast
- projects_limits_instances
- network_state_vlan
- instance_nic_bridged_port_isolation
- instance_bulk_state_change
- network_gvrp
- instance_pool_move
- gpu_sriov
- pci_device_type
- storage_volume_state
- network_acl
- migration_stateful
- disk_state_quota
- storage_ceph_features
- projects_compression
- projects_images_remote_cache_expiry
- certificate_project
- network_ovn_acl
- projects_images_auto_update
- projects_restricted_cluster_target
- images_default_architecture
- network_ovn_acl_defaults
- gpu_mig
- project_usage
- network_bridge_acl
- warnings
- projects_restricted_backups_and_snapshots
- clustering_join_token
- clustering_description
- server_trusted_proxy
- clustering_update_cert
- storage_api_project
- server_instance_driver_operational
- server_supported_storage_drivers
- event_lifecycle_requestor_address
- resources_gpu_usb
- clustering_evacuation
- network_ovn_nat_address
- network_bgp
- network_forward
- custom_volume_refresh
- network_counters_errors_dropped
- metrics
- image_source_project
- clustering_config
- network_peer
- linux_sysctl
- network_dns
- ovn_nic_acceleration
- certificate_self_renewal
- instance_project_move
- storage_volume_project_move
- cloud_init
- network_dns_nat
- database_leader
- instance_all_projects
- clustering_groups
- ceph_rbd_du
- instance_get_full
- qemu_metrics
- gpu_mig_uuid
- event_project
- clustering_evacuation_live
- instance_allow_inconsistent_copy
- network_state_ovn
- storage_volume_api_filtering
- image_restrictions
- storage_zfs_export
- network_dns_records
- storage_zfs_reserve_space
- network_acl_log
- storage_zfs_blocksize
- metrics_cpu_seconds
- instance_snapshot_never
- certificate_token
- instance_nic_routed_neighbor_probe
- event_hub
- agent_nic_config
- projects_restricted_intercept
- metrics_authentication
- images_target_project
- images_all_projects
- cluster_migration_inconsistent_copy
- cluster_ovn_chassis
- container_syscall_intercept_sched_setscheduler
- storage_lvm_thinpool_metadata_size
- storage_volume_state_total
- instance_file_head
- instances_nic_host_name
- image_copy_profile
- container_syscall_intercept_sysinfo
- clustering_evacuation_mode
- resources_pci_vpd
- qemu_raw_conf
- storage_cephfs_fscache
- network_load_balancer
- vsock_api
- instance_ready_state
- network_bgp_holdtime
- storage_volumes_all_projects
- metrics_memory_oom_total
- storage_buckets
- storage_buckets_create_credentials
- metrics_cpu_effective_total
- projects_networks_restricted_access
- storage_buckets_local
- loki
- acme
- internal_metrics
- cluster_join_token_expiry
- remote_token_expiry
- init_preseed
- storage_volumes_created_at
- cpu_hotplug
- projects_networks_zones
- network_txqueuelen
- cluster_member_state
- instances_placement_scriptlet
- storage_pool_source_wipe
- zfs_block_mode
- instance_generation_id
- disk_io_cache
- amd_sev
- storage_pool_loop_resize
- migration_vm_live
- ovn_nic_nesting
- oidc
- network_ovn_l3only
- ovn_nic_acceleration_vdpa
- cluster_healing
- instances_state_total
- auth_user
- security_csm
- instances_rebuild
- numa_cpu_placement
- custom_volume_iso
- network_allocations
- zfs_delegate
- storage_api_remote_volume_snapshot_copy
- operations_get_query_all_projects
- metadata_configuration
- syslog_socket
- event_lifecycle_name_and_project
- instances_nic_limits_priority
- disk_initial_volume_configuration
- operation_wait
- image_restriction_privileged
- cluster_internal_custom_volume_copy
- disk_io_bus
- storage_cephfs_create_missing
- instance_move_config
- ovn_ssl_config
- certificate_description
- disk_io_bus_virtio_blk
- loki_config_instance
- instance_create_start
- clustering_evacuation_stop_options
- boot_host_shutdown_action
- agent_config_drive
- network_state_ovn_lr
- image_template_permissions
- storage_bucket_backup
- storage_lvm_cluster
- shared_custom_block_volumes
- auth_tls_jwt
- oidc_claim
- device_usb_serial
- numa_cpu_balanced
- image_restriction_nesting
- network_integrations
- instance_memory_swap_bytes
- network_bridge_external_create
- network_zones_all_projects
- storage_zfs_vdev
- container_migration_stateful
- profiles_all_projects
- instances_scriptlet_get_instances
- instances_scriptlet_get_cluster_members
- instances_scriptlet_get_project
- network_acl_stateless
- instance_state_started_at
- networks_all_projects
- network_acls_all_projects
- storage_buckets_all_projects
- resources_load
- instance_access
- project_access
- projects_force_delete
- resources_cpu_flags
- disk_io_bus_cache_filesystem
- instance_oci
- clustering_groups_config
- instances_lxcfs_per_instance
- clustering_groups_vm_cpu_definition
- disk_volume_subpath
- projects_limits_disk_pool
- network_ovn_isolated
- qemu_raw_qmp
- network_load_balancer_health_check
- oidc_scopes
- network_integrations_peer_name
- qemu_scriptlet
- instance_auto_restart
- storage_lvm_metadatasize
- ovn_nic_promiscuous
- ovn_nic_ip_address_none
- instances_state_os_info
- network_load_balancer_state
- instance_nic_macvlan_mode
- storage_lvm_cluster_create
- network_ovn_external_interfaces
- instances_scriptlet_get_instances_count
- cluster_rebalance
- custom_volume_refresh_exclude_older_snapshots
- storage_initial_owner
- storage_live_migration
- instance_console_screenshot
- image_import_alias
- authorization_scriptlet
- console_force
- network_ovn_state_addresses
- network_bridge_acl_devices
- instance_debug_memory
- init_preseed_storage_volumes
- init_preseed_profile_project
- instance_nic_routed_host_address
- instance_smbios11
- api_filtering_extended
- acme_dns01
- security_iommu
- network_ipv4_dhcp_routes
- network_state_ovn_ls
- network_dns_nameservers
- acme_http01_port
- network_ovn_ipv4_dhcp_expiry
- instance_state_cpu_time
- network_io_bus
- disk_io_bus_usb
- storage_driver_linstor
- instance_oci_entrypoint
- network_address_set
- server_logging
- network_forward_snat
- memory_hotplug
- instance_nic_routed_host_tables
- instance_publish_split
- init_preseed_certificates
- custom_volume_sftp
- network_ovn_external_nic_address
- network_physical_gateway_hwaddr
- backup_s3_upload
- snapshot_manual_expiry
- resources_cpu_address_sizes
- disk_attached
- limits_memory_hotplug
- disk_wwn
- server_logging_webhook
- storage_driver_truenas
- container_disk_tmpfs
- instance_limits_oom
- backup_override_config
- network_ovn_tunnels
- init_preseed_cluster_groups
- usb_attached
- backup_iso
- instance_systemd_credentials
- cluster_group_usedby
- bpf_token_delegation
- file_storage_volume
- network_hwaddr_pattern
- storage_volume_full
- storage_bucket_full
- device_pci_firmware
- resources_serial
- ovn_nic_limits
- storage_lvmcluster_qcow2
- oidc_allowed_subnets
- file_delete_force
- nic_sriov_select_ext
- network_zones_dns_contact
- nic_attached_connected
- nic_sriov_security_trusted
- direct_backup
- instance_snapshot_disk_only_restore
- unix_hotplug_pci
- cluster_evacuating_restoring
- projects_restricted_image_servers
- storage_lvmcluster_size
- authorization_scriptlet_cert
- lvmcluster_remove_snapshots
- daemon_storage_logs
- instances_debug_repair
- network_io_bus_ovn
- dependent
- metrics_project_resources
- storage_volume_nbd
- projects_restricted_storage_pool_access
- server_shutdown_action
- instances_placement_scriptlet_rebalance
- network_bridge_multicast_snooping
- storage_create_options
- instances_tpm_platform_cert
- linstor_raw
- network_address_set_ip_ranges
- storage_volumes_rebuild
- api_fragments
- instance_limits_cpu_topology
- instance_nbd
- network_bridge_bgp_instances
- core_https_allowed_websocket_origin
- storage_btrfs_compression
- oci_network_config
- infiniband_sriov_guid
- instance_selinux
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
auth_user_name: [REDACTED]
auth_user_method: tls
environment:
addresses:
- 10.84.72.2:8443
- '[fd6c:3c71:ec87::2]:8443'
- '[fd6c:3c71:ec87:0:d027:bdb7:2e29:3e88]:8443'
- 10.187.164.1:8443
- '[fd42:596:cb79:eebd::1]:8443'
- 10.187.122.1:8443
- '[fd42:a4e7:10cd:d9a9::1]:8443'
architectures:
- x86_64
- i686
certificate: [REDACTED]
certificate_fingerprint: [REDACTED]
driver: lxc | qemu
driver_version: 7.0.0 | 11.0.2
firewall: nftables
kernel: Linux
kernel_architecture: x86_64
kernel_features: {}
kernel_version: 6.12.96+deb13-amd64
lxc_features: {}
os_name: Debian GNU/Linux
os_version: "13"
project: default
server: incus
server_clustered: true
server_event_mode: full-mesh
server_name: apollo
server_pid: 830
server_version: 7.0.1
storage: btrfs
storage_version: "6.14"
storage_supported_drivers:
- name: dir
version: "1"
remote: false
- name: truenas
version: 0.7.7
remote: true
- name: btrfs
version: "6.14"
remote: false
(I don’t think I needed to actually redact anything, but figured it wouldn’t hurt.)
jochumdev
(René Jochum)
August 4, 2026, 7:02pm
9
We had a talk incus-compose and clusters aren’t friends.
AstraLuma
(Jamie Bliss)
August 4, 2026, 7:07pm
10
for prosperity, the cluster above is:
3 identical computers with network and one drive
debian trixie using btrfs on a single partition
incus & ui from zabbly
Ran incus admin init on each of the boxes per the clustering getting started
I figured this was a minimal, basic cluster suitable for evaluation: no ceph, no ovn, no linstor. I figured this was good enough for my needs since I’m not going for high availability, just hardware redundancy and load balancing on somewhat anemic nodes.
jochumdev
(René Jochum)
August 4, 2026, 7:08pm
11
incus-compose should handle that, I’ll setup 3 nested nodes and cluster them to test this scenario.