Skip to content

Commit

Permalink
Extract some code to private receivers
Browse files Browse the repository at this point in the history
  • Loading branch information
johngmyers committed Aug 23, 2023
1 parent 1fc9fc8 commit 28b7b8f
Showing 1 changed file with 51 additions and 43 deletions.
94 changes: 51 additions & 43 deletions pkg/ingress/model_build_load_balancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,23 +307,7 @@ func (t *defaultModelBuildTask) buildLoadBalancerSecurityGroups(ctx context.Cont
manageBackendSG = *chosenSGSelector.ManagedBackend
}
} else {
frontendSGIDs, err := t.sgResolver.ResolveViaSelector(ctx, chosenSGSelector)
if err != nil {
return nil, err
}
for _, sgID := range frontendSGIDs {
lbSGTokens = append(lbSGTokens, core.LiteralStringToken(sgID))
}
if chosenSGSelector.ManagedBackend != nil && *chosenSGSelector.ManagedBackend {
backendSGID, err := t.backendSGProvider.Get(ctx, networking.ResourceTypeIngress, k8s.ToSliceOfNamespacedNames(t.ingGroup.Members))
if err != nil {
return nil, err
}
t.backendSGIDToken = core.LiteralStringToken(backendSGID)
t.backendSGAllocated = true
lbSGTokens = append(lbSGTokens, t.backendSGIDToken)
}
return lbSGTokens, nil
return t.buildSecurityGroupsFromSelector(ctx, chosenSGSelector, lbSGTokens)
}
}

Expand All @@ -336,32 +320,7 @@ func (t *defaultModelBuildTask) buildLoadBalancerSecurityGroups(ctx context.Cont
}

if len(sgNameOrIDsViaAnnotation) > 0 {
manageBackendSGRules, err := t.buildManageSecurityGroupRulesFlag(ctx)
if err != nil {
return nil, err
}
frontendSGIDs, err := t.sgResolver.ResolveViaNameOrID(ctx, sgNameOrIDsViaAnnotation)
if err != nil {
return nil, err
}
for _, sgID := range frontendSGIDs {
lbSGTokens = append(lbSGTokens, core.LiteralStringToken(sgID))
}

if manageBackendSGRules {
if !t.enableBackendSG {
return nil, errors.New("backendSG feature is required to manage worker node SG rules when frontendSG manually specified")
}
backendSGID, err := t.backendSGProvider.Get(ctx, networking.ResourceTypeIngress, k8s.ToSliceOfNamespacedNames(t.ingGroup.Members))
if err != nil {
return nil, err
}
t.backendSGIDToken = core.LiteralStringToken(backendSGID)
t.backendSGAllocated = true
lbSGTokens = append(lbSGTokens, t.backendSGIDToken)
}
t.logger.Info("SG configured via annotation", "LB SGs", lbSGTokens, "backend SG", t.backendSGIDToken)
return lbSGTokens, nil
return t.buildSecurityGroupsFromAnnotation(ctx, sgNameOrIDsViaAnnotation, lbSGTokens)
}
}

Expand All @@ -385,6 +344,55 @@ func (t *defaultModelBuildTask) buildLoadBalancerSecurityGroups(ctx context.Cont
return lbSGTokens, nil
}

func (t *defaultModelBuildTask) buildSecurityGroupsFromAnnotation(ctx context.Context, sgNameOrIDsViaAnnotation []string, lbSGTokens []core.StringToken) ([]core.StringToken, error) {
manageBackendSGRules, err := t.buildManageSecurityGroupRulesFlag(ctx)
if err != nil {
return nil, err
}
frontendSGIDs, err := t.sgResolver.ResolveViaNameOrID(ctx, sgNameOrIDsViaAnnotation)
if err != nil {
return nil, err
}
for _, sgID := range frontendSGIDs {
lbSGTokens = append(lbSGTokens, core.LiteralStringToken(sgID))
}

if manageBackendSGRules {
if !t.enableBackendSG {
return nil, errors.New("backendSG feature is required to manage worker node SG rules when frontendSG manually specified")
}
backendSGID, err := t.backendSGProvider.Get(ctx, networking.ResourceTypeIngress, k8s.ToSliceOfNamespacedNames(t.ingGroup.Members))
if err != nil {
return nil, err
}
t.backendSGIDToken = core.LiteralStringToken(backendSGID)
t.backendSGAllocated = true
lbSGTokens = append(lbSGTokens, t.backendSGIDToken)
}
t.logger.Info("SG configured via annotation", "LB SGs", lbSGTokens, "backend SG", t.backendSGIDToken)
return lbSGTokens, nil
}

func (t *defaultModelBuildTask) buildSecurityGroupsFromSelector(ctx context.Context, chosenSGSelector *v1beta1.SecurityGroupSelector, lbSGTokens []core.StringToken) ([]core.StringToken, error) {
frontendSGIDs, err := t.sgResolver.ResolveViaSelector(ctx, chosenSGSelector)
if err != nil {
return nil, err
}
for _, sgID := range frontendSGIDs {
lbSGTokens = append(lbSGTokens, core.LiteralStringToken(sgID))
}
if chosenSGSelector.ManagedBackend != nil && *chosenSGSelector.ManagedBackend {
backendSGID, err := t.backendSGProvider.Get(ctx, networking.ResourceTypeIngress, k8s.ToSliceOfNamespacedNames(t.ingGroup.Members))
if err != nil {
return nil, err
}
t.backendSGIDToken = core.LiteralStringToken(backendSGID)
t.backendSGAllocated = true
lbSGTokens = append(lbSGTokens, t.backendSGIDToken)
}
return lbSGTokens, nil
}

func (t *defaultModelBuildTask) buildLoadBalancerCOIPv4Pool(_ context.Context) (*string, error) {
explicitCOIPv4Pools := sets.NewString()
for _, member := range t.ingGroup.Members {
Expand Down

0 comments on commit 28b7b8f

Please sign in to comment.