Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Replace special char in openstack lb names when necessary and remove lb name validation #232

Merged
merged 2 commits into from
Sep 27, 2018

Conversation

alexbrand
Copy link
Contributor

What this PR does

Given that we are no longer using the load balancer name as the discovered service/endpoint name, we no longer have skip load balancers that have invalid names.

However, the load balancer's name still ends up in a kubernetes label. Thus, we need to massage the load balancer name to a valid kubernetes label value.

Manual tests with openstack env

Created the following load balancers in openstack:

$ neutron --os-tenant-name heptio lbaas-loadbalancer-list
+--------------------------------------+--------------------+----------------+---------------------+----------+
| id                                   | name               | vip_address    | provisioning_status | provider |
+--------------------------------------+--------------------+----------------+---------------------+----------+
| 24664e42-a865-44a7-aa90-c94b42486ff3 | discoverytest3     | 104.145.29.182 | ACTIVE              | haproxy  |
| 2c2a6775-cbb8-40d1-b9b9-1dbb8951650d | !foo!              | 104.145.29.188 | ACTIVE              | haproxy  |
| 32801cab-480e-4363-90eb-3e90f954cd81 | hiro-lb            | 104.145.29.161 | ACTIVE              | haproxy  |
| 72b5385d-501e-4a81-81d2-5c6d16a16a92 | foo-bar_BAZ.123    | 104.145.29.187 | ACTIVE              | haproxy  |
| b8e442d4-2057-4018-8654-23b32b294084 | foo!@#$%^&*()_+bar | 104.145.29.186 | ACTIVE              | haproxy  |
| f04069fd-2821-4993-b7ec-34cce1908428 | bar:8080           | 104.145.29.185 | ACTIVE              | haproxy  |
| f21c2a81-2621-4737-aad6-ec777a9c6279 |                    | 104.145.29.149 | ACTIVE              | haproxy  |
+--------------------------------------+--------------------+----------------+---------------------+----------+

Discovered services:

$ k get svc -n heptio -o yaml | grep load-balancer
      gimbal.heptio.com/load-balancer-id: 24664e42-a865-44a7-aa90-c94b42486ff3
      gimbal.heptio.com/load-balancer-name: discoverytest3
      gimbal.heptio.com/load-balancer-id: 2c2a6775-cbb8-40d1-b9b9-1dbb8951650d
      gimbal.heptio.com/load-balancer-name: lb-foo-lb
      gimbal.heptio.com/load-balancer-id: 32801cab-480e-4363-90eb-3e90f954cd81
      gimbal.heptio.com/load-balancer-name: hiro-lb
      gimbal.heptio.com/load-balancer-id: 72b5385d-501e-4a81-81d2-5c6d16a16a92
      gimbal.heptio.com/load-balancer-name: foo-bar_BAZ.123
      gimbal.heptio.com/load-balancer-id: b8e442d4-2057-4018-8654-23b32b294084
      gimbal.heptio.com/load-balancer-name: foo----------_-bar
      gimbal.heptio.com/load-balancer-id: f04069fd-2821-4993-b7ec-34cce1908428
      gimbal.heptio.com/load-balancer-name: bar-8080
      gimbal.heptio.com/load-balancer-id: f21c2a81-2621-4737-aad6-ec777a9c6279
      gimbal.heptio.com/load-balancer-name: ""

Discovered endpoints:

k get ep -n heptio -o yaml | grep load-balancer
      gimbal.heptio.com/load-balancer-id: 24664e42-a865-44a7-aa90-c94b42486ff3
      gimbal.heptio.com/load-balancer-name: discoverytest3
      gimbal.heptio.com/load-balancer-id: 2c2a6775-cbb8-40d1-b9b9-1dbb8951650d
      gimbal.heptio.com/load-balancer-name: lb-foo-lb
      gimbal.heptio.com/load-balancer-id: 32801cab-480e-4363-90eb-3e90f954cd81
      gimbal.heptio.com/load-balancer-name: hiro-lb
      gimbal.heptio.com/load-balancer-id: 72b5385d-501e-4a81-81d2-5c6d16a16a92
      gimbal.heptio.com/load-balancer-name: foo-bar_BAZ.123
      gimbal.heptio.com/load-balancer-id: b8e442d4-2057-4018-8654-23b32b294084
      gimbal.heptio.com/load-balancer-name: foo----------_-bar
      gimbal.heptio.com/load-balancer-id: f04069fd-2821-4993-b7ec-34cce1908428
      gimbal.heptio.com/load-balancer-name: bar-8080
      gimbal.heptio.com/load-balancer-id: f21c2a81-2621-4737-aad6-ec777a9c6279
      gimbal.heptio.com/load-balancer-name: ""

Fixes #216

Signed-off-by: Alexander Brand <alexbrand09@gmail.com>
Signed-off-by: Alexander Brand <alexbrand09@gmail.com>
@stevesloka stevesloka merged commit 090b577 into projectcontour:master Sep 27, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants