diff --git a/pkg/providers/tinkerbell/stack/stack.go b/pkg/providers/tinkerbell/stack/stack.go index a545be64957e..70804d8e1441 100644 --- a/pkg/providers/tinkerbell/stack/stack.go +++ b/pkg/providers/tinkerbell/stack/stack.go @@ -563,6 +563,18 @@ func (s *Installer) createValuesOverride(bundle releasev1alpha1.TinkerbellBundle "name": "prometheus_server", "value": ":2213", }, + // The Tinkerbell stack needs a load balancer to work properly. + // We bundle Kube-vip in, as the load balancer, when we deploy the stack. + // We don't want this load balancer to be used by any other workloads. + // It allows us greater confidence in successful lifecycle events for the Tinkerbell stack, amongst other things. + // Also, the user should be free from Tinkerbell stack constraints + // and free to deploy a load balancer of their choosing and not be coupled to ours. + // setting lb_class_only=true means that k8s services must explicitly populate + // the kube-vip loadBalancerClass with the kube-vip value for kube-vip to serve an IP. + { + "name": "lb_class_only", + "value": "true", + }, }, }, hook: map[string]interface{}{ diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_upgrade.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_upgrade.yaml index 51212757466e..d834149963a5 100755 --- a/pkg/providers/tinkerbell/stack/testdata/expected_upgrade.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_upgrade.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_upgrade_with_proxy.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_upgrade_with_proxy.yaml index e58eeef9458e..f79a60ab2711 100755 --- a/pkg/providers/tinkerbell/stack/testdata/expected_upgrade_with_proxy.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_upgrade_with_proxy.yaml @@ -36,6 +36,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_docker.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_docker.yaml index d6adcd0702e1..3af86f3ce8d1 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_docker.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_docker.yaml @@ -34,6 +34,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_kubernetes.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_kubernetes.yaml index 51212757466e..d834149963a5 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_kubernetes.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_boots_on_kubernetes.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_docker_options.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_docker_options.yaml index c12a74cab5d7..e9f823f7714f 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_docker_options.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_docker_options.yaml @@ -34,6 +34,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_hook_override.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_hook_override.yaml index 628bb3f34055..f1bc689bcdd5 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_hook_override.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_hook_override.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_false.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_false.yaml index 51212757466e..d834149963a5 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_false.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_false.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_true.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_true.yaml index 081270116ff8..e0c6cb4260a4 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_true.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_host_port_enabled_true.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_kubernetes_options.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_kubernetes_options.yaml index 6df0f6f9fee8..8be3d9d4b9b6 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_kubernetes_options.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_kubernetes_options.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: true image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_false.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_false.yaml index 51212757466e..d834149963a5 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_false.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_false.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_true.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_true.yaml index 6df0f6f9fee8..8be3d9d4b9b6 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_true.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_load_balancer_enabled_true.yaml @@ -33,6 +33,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: true image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_proxy_config.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_proxy_config.yaml index 01f772d1baa6..296fe0170d08 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_proxy_config.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_proxy_config.yaml @@ -36,6 +36,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4 diff --git a/pkg/providers/tinkerbell/stack/testdata/expected_with_registry_mirror.yaml b/pkg/providers/tinkerbell/stack/testdata/expected_with_registry_mirror.yaml index 603538084b82..c24b885954fe 100644 --- a/pkg/providers/tinkerbell/stack/testdata/expected_with_registry_mirror.yaml +++ b/pkg/providers/tinkerbell/stack/testdata/expected_with_registry_mirror.yaml @@ -36,6 +36,8 @@ stack: additionalEnv: - name: prometheus_server value: :2213 + - name: lb_class_only + value: "true" enabled: false image: public.ecr.aws/eks-anywhere/kube-vip:latest loadBalancerIP: 1.2.3.4