Skip to content
This repository was archived by the owner on Mar 22, 2018. It is now read-only.

Commit ff8c50e

Browse files
committed
Add service.UID into security group name
Related to: #53714
1 parent 6edc12e commit ff8c50e

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,14 @@ func popMember(members []v2pools.Member, addr string, port int) []v2pools.Member
292292
return members
293293
}
294294

295-
func getSecurityGroupName(clusterName string, service *v1.Service) string {
296-
return fmt.Sprintf("lb-sg-%s-%s-%s", clusterName, service.Namespace, service.Name)
295+
func getSecurityGroupName(service *v1.Service) string {
296+
securityGroupName := fmt.Sprintf("lb-sg-%s-%s-%s", service.UID, service.Namespace, service.Name)
297+
//OpenStack requires that the name of a security group is shorter than 255 bytes.
298+
if len(securityGroupName) > 255 {
299+
securityGroupName = securityGroupName[:255]
300+
}
301+
302+
return securityGroupName
297303
}
298304

299305
func getSecurityGroupRules(client *gophercloud.ServiceClient, opts rules.ListOpts) ([]rules.SecGroupRule, error) {
@@ -899,7 +905,7 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser
899905
}
900906

901907
// ensure security group for LB
902-
lbSecGroupName := getSecurityGroupName(clusterName, apiService)
908+
lbSecGroupName := getSecurityGroupName(apiService)
903909
lbSecGroupID, err := groups.IDFromName(lbaas.network, lbSecGroupName)
904910
if err != nil {
905911
// check whether security group does not exist
@@ -914,8 +920,8 @@ func (lbaas *LbaasV2) ensureSecurityGroup(clusterName string, apiService *v1.Ser
914920
if len(lbSecGroupID) == 0 {
915921
// create security group
916922
lbSecGroupCreateOpts := groups.CreateOpts{
917-
Name: getSecurityGroupName(clusterName, apiService),
918-
Description: fmt.Sprintf("Securty Group for loadbalancer service %s/%s", apiService.Namespace, apiService.Name),
923+
Name: getSecurityGroupName(apiService),
924+
Description: fmt.Sprintf("Securty Group for %s/%s Service LoadBalancer in cluster %s", apiService.Namespace, apiService.Name, clusterName),
919925
}
920926

921927
lbSecGroup, err := groups.Create(lbaas.network, lbSecGroupCreateOpts).Extract()
@@ -1197,7 +1203,7 @@ func (lbaas *LbaasV2) updateSecurityGroup(clusterName string, apiService *v1.Ser
11971203
removals := original.Difference(current)
11981204

11991205
// Generate Name
1200-
lbSecGroupName := getSecurityGroupName(clusterName, apiService)
1206+
lbSecGroupName := getSecurityGroupName(apiService)
12011207
lbSecGroupID, err := groups.IDFromName(lbaas.network, lbSecGroupName)
12021208
if err != nil {
12031209
return fmt.Errorf("error occurred finding security group: %s: %v", lbSecGroupName, err)
@@ -1369,7 +1375,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(clusterName string, service *v1.
13691375
// Delete the Security Group
13701376
if lbaas.opts.ManageSecurityGroups {
13711377
// Generate Name
1372-
lbSecGroupName := getSecurityGroupName(clusterName, service)
1378+
lbSecGroupName := getSecurityGroupName(service)
13731379
lbSecGroupID, err := groups.IDFromName(lbaas.network, lbSecGroupName)
13741380
if err != nil {
13751381
// check whether security group does not exist

0 commit comments

Comments
 (0)