Skip to content

[occm] loadbalancer floating ip not visible in manifest #2095

@zetaab

Description

@zetaab

Is this a BUG REPORT or FEATURE REQUEST?:

/kind feature

What happened:

I am using pretty new feature annotation loadbalancer.openstack.org/hostname in service. However, after I create the loadbalancer using that I cannot see the floatingip for the loadbalancer at all. It is pretty difficult to point the dns to correct ip if I do not know that.

Example:

% kubectl get svc ingress-nginx-internal -o yaml
apiVersion: v1
kind: Service
metadata:
  annotations:
    loadbalancer.openstack.org/connection-limit: "100000"
    loadbalancer.openstack.org/floating-subnet: ext-ha-v4
    loadbalancer.openstack.org/health-monitor-delay: "10"
    loadbalancer.openstack.org/health-monitor-max-retries: "2"
    loadbalancer.openstack.org/health-monitor-timeout: "6"
    loadbalancer.openstack.org/hostname: lb-int.foobar.com
    loadbalancer.openstack.org/keep-floatingip: "true"
    loadbalancer.openstack.org/load-balancer-id: 5e43be37-a46a-406a-9f1f-444949ba76cb
    loadbalancer.openstack.org/proxy-protocol: "true"
  creationTimestamp: "2022-09-16T10:16:41Z"
  finalizers:
  - service.kubernetes.io/load-balancer-cleanup
  labels:
    app.kubernetes.io/component: ingress
    app.kubernetes.io/managed-by: kaas-batch
    app.kubernetes.io/name: ingress-nginx-internal
    app.kubernetes.io/part-of: ingress-nginx-internal
    ingress.class: internal
  name: ingress-nginx-internal
  namespace: ingress-nginx-internal
  resourceVersion: "67285619"
  uid: 45ebb4c1-d293-48ba-b7e9-dd0749a73c74
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: 100.98.56.125
  clusterIPs:
  - 100.98.56.125
  externalTrafficPolicy: Local
  healthCheckNodePort: 32687
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    nodePort: 30983
    port: 80
    protocol: TCP
    targetPort: http
  - name: https
    nodePort: 31307
    port: 443
    protocol: TCP
    targetPort: https
  selector:
    app.kubernetes.io/component: ingress
    app.kubernetes.io/managed-by: kaas-batch
    app.kubernetes.io/name: ingress-nginx-internal
    app.kubernetes.io/part-of: ingress-nginx-internal
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - hostname: lb-int.foobar.com

What you expected to happen:

I expect that if we override status field with annotation, we should have somekind of mechanism to expose the real address to the user. What about new annotation in similar way that we have in loadbalancer.openstack.org/load-balancer-id, one possibility loadbalancer.openstack.org/load-balancer-ip or loadbalancer.openstack.org/load-balancer-address?

How to reproduce it:

Create new loadbalancer with annotation loadbalancer.openstack.org/hostname: yourvalue.com

Anything else we need to know?:

Environment:

  • openstack-cloud-controller-manager(or other related binary) version: master
  • OpenStack version:
  • Others:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions