// Module included in the following assemblies:
//
// * edge_computing/sno_ip_configuration/cnf-configuring-sno-ip-configuration.adoc

:_mod-docs-content-type: REFERENCE
[id="cnf-ipconfig-cr-reference_{context}"]
= IPConfig reference specifications

[role="_abstract"]
The `IPConfig` custom resource (CR) is a cluster-scoped CR that controls the IP configuration workflow for {sno} clusters using the {lcao}. 

[NOTE]
====
The CR name must be `ipconfig`.
====

.IPConfig spec fields
[cols="2,1,3",options="header"]
|===
|Field |Type |Description

|`spec.stage`
|String
|Controls the current stage of the IP configuration workflow. Valid values are `Idle`, `Config`, and `Rollback`. You can only change the stage to a value listed in `status.validNextStages`.

|`spec.ipv4.address`
|String
|The IPv4 node address without CIDR notation, for example `192.0.2.10`. Required if the `ipv4` object is present. Omit the entire `ipv4` object for IPv6-only clusters.

|`spec.ipv4.machineNetwork`
|String
|The machine network CIDR, for example `192.0.2.0/24`. The address must be within this CIDR.

|`spec.ipv4.gateway`
|String
|The IPv4 default gateway address, used to create the default route for IPv4 traffic. Must be within the machine network CIDR.

|`spec.ipv6.address`
|String
|The IPv6 node address without CIDR notation, for example `2001:db8::10`. Required if the `ipv6` object is present. Omit the entire `ipv6` object for IPv4-only clusters.

|`spec.ipv6.machineNetwork`
|String
|The IPv6 machine network CIDR, for example `2001:db8::/64`. The address must be within this CIDR.

|`spec.ipv6.gateway`
|String
|The IPv6 default gateway, used to create the default route for IPv6 traffic. You can use link-local gateways.

|`spec.dnsServers`
|Array of strings
|Ordered list of DNS server IP addresses. The first server in the list is used as the primary DNS server. Must match cluster IP families. Maximum of 2 servers.

|`spec.vlanID`
|Integer
|The VLAN ID to configure. Valid values are 1-4094. You can only set this field if the cluster already has VLAN configuration.

|`spec.dnsFilterOutFamily`
|String
|DNS response filtering for dual-stack clusters only. Set to `ipv4` to filter out A records, `ipv6` to filter out AAAA records, or `none` to disable filtering. You can only configure this field to `ipv4` or `ipv6` when the cluster uses a dual-stack configuration.

|`spec.autoRollbackOnFailure.initMonitorTimeoutSeconds`
|Integer
|Timeout in seconds for the init-monitor watchdog. Set to `0` or leave unset to use the default of 1800 seconds.
|===
