ALB Health Checks failing when using CloudBees CI with platform EKS

Article ID:4402325159451
1 minute readKnowledge base

Issue

  • I have deployed CloudBees CI in EKS with .OperationsCenter.platform="eks" and using the AWS Load Balancer Ingress Controller

  • The AWS Application Load Balancer shows the targets of Operations Center and Controllers are all Unhealthy although access works as expected

  • BEE-2600: Missing health checks declarations when using ALB ingress controller on EKS

Explanation

CloudBees CI Ingresses are missing the alb.ingress.kubernetes.io/healthcheck-path annotation. This causes all the Application Load Balancer targets to be unhealthy.

In most cases, this is not a critical problem because of the behavior of the AWS Application Load Balancer that forwards the traffic across all unhealthy targets, if they are all unhealthy.

Resolution

Upgrade CloudBees CI to version 2.277.4.2

Workaround

The workaround would be to add the alb.ingress.kubernetes.io/healthcheck-path annotation in both Operations Center and Managed Controllers:

In the Helm values file, add the annotation alb.ingress.kubernetes.io/healthcheck-path: /cjoc/login:

OperationsCenter: Ingress: Annotations: alb.ingress.kubernetes.io/healthcheck-path: /cjoc/login

For Managed Controller, in the configuration of the existing Managed Controllers, add the following YAML snippet:

kind: Ingress metadata: annotations: alb.ingress.kubernetes.io/healthcheck-path: /${name}/login

Then restart the Controllers from Operations Center for the change to take effect.