Skip to content

Cluster

The Cluster resource provisions Windows Server Failover Clusters (WSFC). It groups multiple compute nodes into a high-availability cluster with optional listener endpoints.

Structure

- type: cluster
  clusterType: wsfc
  name: clusterdb                          # unique identifier within the RGT
  domain: yourdomain.local                 # AD domain for the cluster
  nodes:                                   # cluster member nodes (FQDNs)
    - "{{computenode.vmdb0.fqdn}}"
    - "{{computenode.vmdb1.fqdn}}"
  dependsOn:                               # wait for these resources first
    - computenode.vmdb0
    - computenode.vmdb1
  listeners:                               # optional, cluster listener endpoints
    - name: lstndb
      hostname: db-listener
      port: 1433
Key Required Description
type Yes Must be cluster
clusterType Yes Cluster type. Currently only wsfc (Windows Server Failover Cluster) is supported.
name Yes Unique identifier within the RGT
domain Yes The AD domain for the cluster
nodes Yes List of cluster node FQDNs
dependsOn Yes List of resources that must be deployed before the cluster. Typically the compute nodes.
listeners No List of cluster listener configurations

Nodes

Cluster nodes must be specified as FQDNs (fully qualified domain names). Use the primary hostname, not an alias:

nodes:
  - "{{computenode.vmdb0.fqdn}}"
  - "{{computenode.vmdb1.fqdn}}"

Warning

Do not use aliases for cluster nodes. The FQDN must resolve in DNS for the cluster to form correctly.

Dependencies

Clusters always depend on their member compute nodes. Use dependsOn to ensure the VMs are fully deployed before the cluster is created:

dependsOn:
  - computenode.vmdb0
  - computenode.vmdb1

Listeners

Listeners provide a virtual network name and IP for client connections, enabling transparent failover:

listeners:
  - name: lstndb
    hostname: db-listener
    port: 1433
Key Required Description
name Yes Unique identifier for the listener (used in expressions)
hostname Yes DNS hostname for the listener
port No TCP port for the listener

Note

For each listener, a cluster network name and an IP address resource are reserved and configured as a cluster role. These back the listener's DNS entry and virtual IP used for transparent failover.

Reference Format

Use {{cluster.<name>.listeners.<listener>.hostname}} to reference a cluster listener in expressions.

Expression Type Description
{{cluster.clusterdb.listeners.lstndb.hostname}} string The listener's hostname (e.g., db-listener)

Example

A two-node Windows Server Failover Cluster with a single listener:

resources:
  - type: computeNode
    computeType: virtualMachine
    name: vmnode0
    displayName: Cluster Node 1
    image: win2022
    cpu: 4
    memory: 16
    domain: yourdomain.local
  - type: computeNode
    computeType: virtualMachine
    name: vmnode1
    displayName: Cluster Node 2
    image: win2022
    cpu: 4
    memory: 16
    domain: yourdomain.local
  - type: cluster
    clusterType: wsfc
    name: clusterapp
    domain: yourdomain.local
    nodes:
      - "{{computenode.vmnode0.fqdn}}"
      - "{{computenode.vmnode1.fqdn}}"
    dependsOn:
      - computenode.vmnode0
      - computenode.vmnode1
    listeners:
      - name: lstnapp
        hostname: app-listener
        port: 1433

Next: AzureResource