Skip to content

high_availability_config.yml

This file configures Kubernetes control plane high availability (HA) using a virtual IP address and load-balanced API servers.

Configure exactly one entry in service_k8s_cluster_ha. Its cluster_name must match the single service_k8s_cluster entry selected with deployment: true in omnia_config.yml. The provisioning path uses virtual_ip_address to generate kube-vip and Kubernetes API configuration regardless of the enable_k8s_ha value, so set enable_k8s_ha: true for the supported configuration.

Parameter Reference

Parameter

Details

service_k8s_cluster_ha

list / elements=dict / required

High Availability (HA) configuration for Kubernetes (K8s) service clusters. Configure exactly one entry. Orchestrator validates it against the Kubernetes cluster selected for deployment and generates kube-vip configuration from its virtual IP address.

cluster_name

string / required

Identifies the intended service cluster. This value must match the single service_k8s_cluster entry selected with deployment: true in omnia_config.yml.

enable_k8s_ha

boolean / required

Possible values: true or false

Set this value to true for the supported HA configuration. The current provisioning role reads the value but does not use it to disable kube-vip generation.

virtual_ip_address

string / required

This is a mandatory and user-configurable parameter.

Captures the virtual IP address for the K8s service node HA setup. Ensure that the virtual_ip_address does not belong to the dynamic_range mentioned in the network_spec.yml.

Sample value: 172.16.107.1

Input validation requires this VIP to be a usable address in the shared control-plane admin subnet, requires the complete MetalLB pool to belong to that subnet, and rejects conflicts with OIM, mapped node, DHCP, and MetalLB addresses.

Prerequisites

  • Add the matching service Kubernetes cluster to omnia_config.yml.
  • The virtual_ip_address must be a free IP on the admin network subnet -- it must not be assigned to any physical server or DHCP range.
  • Define at least three control-plane nodes for the supported HA topology. The validator checks the cluster-name relationship, VIP subnet, shared control-plane subnet, complete pod_external_ip_range placement, and configured-address conflicts; it does not enforce the control-plane node count or detect addresses used by external devices.

Usage example

File: $OMNIA_DATA_PATH/orchestrator/input/$OMNIA_PROJECT_NAME/high_availability_config.yml
---
service_k8s_cluster_ha:
  - cluster_name: service_cluster
    enable_k8s_ha: true
    virtual_ip_address: "172.16.107.1"

Info

  • Omnia Config -- Kubernetes deployment settings.
  • Minimum Nodes -- Minimum node counts for HA deployments.
  • Ports -- Kubernetes ports including the API server.