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:
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:
Listeners¶
Listeners provide a virtual network name and IP for client connections, enabling transparent failover:
| 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