-
Notifications
You must be signed in to change notification settings - Fork 284
Description
/kind feature
Hello,
I find having CAPO managing the ApiServerLB a very good feature that simplifies a lot of stuff in our case. That being said the k8s api is open from everywhere which is not ideal in our case.
Currently the only way to have the ApiServerLB with limited access is to create it yourself, which means also creating network, subnet, router, pool etc etc which is a bit of extra work and adds an additional step in creation and deletion of clusters.
I'd like to have a way to limit access to the ApiServer without having to build it myself. I'm not sure if this is something you think that CAPO should support but im mentioning some potential approaches below.
Describe the solution you'd like
Possible approaches:
- User can define a list of strings with allowed CIDRs on OpenStackCluster. CAPO creates an SG with these CIDRs and attaches it to the LB vip port after creation. This requires the least work from user perspective but adds quite extra complexity on CAPO.
- User can define a list of strings with securityGroup IDs on OpenStackCluster. CAPO associates these SGs to the LB vip port after creation. A bit more work for the user, a bit less for CAPO.
- User can define LBPortID on OpenstackCluster. CAPO creates an LB that uses that port as the vip. This is possible only for octavia (not sure if LBaaS is supported instead of octavia). This adds quite some work for the user as he needs to create network,subnet, router, a port and his own SGs on it but is much easier for CAPO.
- User can define a list with allowed CIDRs on OpenStackCluster. CAPO adds the allowedCIDRs to the Listeners it creates on the LB. Only possible for octavia > 2.12 ( I think its Stein but i'll have to doublecheck).
Anything else you would like to add:
- Let me know if this is something that should be added and if so which approach should be taken.
- I'd like to work on this one