-
Couldn't load subscription status.
- Fork 353
Description
This issue is only valid for Classic ELB, the equivalent configuration for NLB healthchecks works fine
Behavior:
When a Classic ELB is created with the following annotation
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: httpif the value is written in lowercase ("http" or "tcp") the entire healthcheck configuration gets corrupted as shown in the AWS Console
Expected Behavior:
The ELB should have been created with the following configuration
To Reproduce:
Starting from a YAML like this
apiVersion: v1
kind: Service
metadata:
name: test
namespace: default
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /test
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "31001"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: http
spec:
type: LoadBalancer
selector:
app: test
ports:
- name: http
port: 80
targetPort: 8080
nodePort: 31001the healthcheck configuration gets corrupted as shown above
while the following configurations (with "HTTP" written uppercase) creates the expected configuration
apiVersion: v1
kind: Service
metadata:
name: test
namespace: default
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /test
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "31001"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: HTTP
spec:
type: LoadBalancer
selector:
app: test
ports:
- name: http
port: 80
targetPort: 8080
nodePort: 31001Since other annotations support values written in lowercase, it should be also possible to specify the healthcheck protocol lowercase
Anything else we need to know?:
Environment:
- Kubernetes version (use
kubectl version): EKS 1.31 - Cloud provider or hardware configuration: AWS
/kind bug

