Skip to content

Commit 3c6d288

Browse files
committed
add unit test
1 parent d19ccc6 commit 3c6d288

File tree

5 files changed

+69
-9
lines changed

5 files changed

+69
-9
lines changed

controllers/ingress/group_controller.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ const (
3636
controllerName = "ingress"
3737

3838
// the groupVersion of used Ingress & IngressClass resource.
39-
ingressResourcesGroupVersion = "networking.k8s.io/v1beta1"
40-
ingressClassKind = "IngressClass"
39+
ingressResourcesGroupVersion = "networking.k8s.io/v1beta1"
40+
ingressClassKind = "IngressClass"
4141
)
4242

4343
// NewGroupReconciler constructs new GroupReconciler
@@ -74,7 +74,6 @@ func NewGroupReconciler(cloud aws.Cloud, k8sClient client.Client, eventRecorder
7474
modelBuilder: modelBuilder,
7575
stackMarshaller: stackMarshaller,
7676
stackDeployer: stackDeployer,
77-
annotationParser: annotationParser,
7877

7978
groupLoader: groupLoader,
8079
groupFinalizerManager: groupFinalizerManager,
@@ -92,7 +91,6 @@ type groupReconciler struct {
9291
modelBuilder ingress.ModelBuilder
9392
stackMarshaller deploy.StackMarshaller
9493
stackDeployer deploy.StackDeployer
95-
annotationParser annotations.Parser
9694

9795
groupLoader ingress.GroupLoader
9896
groupFinalizerManager ingress.FinalizerManager
@@ -126,6 +124,7 @@ func (r *groupReconciler) reconcile(ctx context.Context, req ctrl.Request) error
126124
r.recordIngressGroupEvent(ctx, ingGroup, corev1.EventTypeWarning, k8s.IngressEventReasonFailedAddFinalizer, fmt.Sprintf("Failed add finalizer due to %v", err))
127125
return err
128126
}
127+
129128
_, lb, err := r.buildAndDeployModel(ctx, ingGroup)
130129
if err != nil {
131130
return err

controllers/service/service_controller.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ import (
2727
)
2828

2929
const (
30-
serviceFinalizer = "service.k8s.aws/resources"
31-
serviceTagPrefix = "service.k8s.aws"
32-
serviceAnnotationPrefix = "service.beta.kubernetes.io"
33-
controllerName = "service"
30+
serviceFinalizer = "service.k8s.aws/resources"
31+
serviceTagPrefix = "service.k8s.aws"
32+
serviceAnnotationPrefix = "service.beta.kubernetes.io"
33+
controllerName = "service"
3434
)
3535

3636
func NewServiceReconciler(cloud aws.Cloud, k8sClient client.Client, eventRecorder record.EventRecorder,
@@ -190,4 +190,3 @@ func (r *serviceReconciler) setupWatches(_ context.Context, c controller.Control
190190
}
191191
return nil
192192
}
193-

pkg/ingress/model_builder.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ func (t *defaultModelBuildTask) run(ctx context.Context) error {
199199
if len(t.ingGroup.Members) == 0 {
200200
return nil
201201
}
202+
202203
ingListByPort := make(map[int64][]ClassifiedIngress)
203204
listenPortConfigsByPort := make(map[int64][]listenPortConfigWithIngress)
204205
for _, member := range t.ingGroup.Members {

pkg/ingress/model_builder_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
testclient "sigs.k8s.io/controller-runtime/pkg/client/fake"
2626
"sigs.k8s.io/controller-runtime/pkg/log"
2727
"testing"
28+
"time"
2829
)
2930

3031
func Test_defaultModelBuilder_Build(t *testing.T) {
@@ -2353,6 +2354,36 @@ func Test_defaultModelBuilder_Build(t *testing.T) {
23532354
}
23542355
}`,
23552356
},
2357+
{
2358+
name: "Ingress - deletion protection enabled error",
2359+
env: env{
2360+
svcs: []*corev1.Service{ns_1_svc_1, ns_1_svc_2, ns_1_svc_3},
2361+
},
2362+
args: args{
2363+
ingGroup: Group{
2364+
ID: GroupID{Namespace: "ns-1", Name: "ing-1"},
2365+
InactiveMembers: []*networking.Ingress{
2366+
{
2367+
ObjectMeta: metav1.ObjectMeta{
2368+
Namespace: "default",
2369+
Name: "hello-ingress",
2370+
Annotations: map[string]string{
2371+
"kubernetes.io/ingress.class": "alb",
2372+
"alb.ingress.kubernetes.io/load-balancer-attributes": "deletion_protection.enabled=true",
2373+
},
2374+
Finalizers: []string{
2375+
"ingress.k8s.aws/resources",
2376+
},
2377+
DeletionTimestamp: &metav1.Time{
2378+
Time: time.Now(),
2379+
},
2380+
},
2381+
},
2382+
},
2383+
},
2384+
},
2385+
wantErr: errors.New("deletion_protection is enabled, cannot delete the ingress: hello-ingress"),
2386+
},
23562387
}
23572388
for _, tt := range tests {
23582389
t.Run(tt.name, func(t *testing.T) {

pkg/service/model_builder_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1969,6 +1969,36 @@ func Test_defaultModelBuilderTask_Build(t *testing.T) {
19691969
listLoadBalancerCalls: []listLoadBalancerCall{listLoadBalancerCallForEmptyLB},
19701970
wantError: true,
19711971
},
1972+
{
1973+
testName: "deletion protection enabled error",
1974+
svc: &corev1.Service{
1975+
ObjectMeta: metav1.ObjectMeta{
1976+
Name: "hello-svc",
1977+
Namespace: "default",
1978+
UID: "bdca2bd0-bfc6-449a-88a3-03451f05f18c",
1979+
DeletionTimestamp: &metav1.Time{
1980+
Time: time.Now(),
1981+
},
1982+
Annotations: map[string]string{
1983+
"service.beta.kubernetes.io/aws-load-balancer-type": "external",
1984+
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip",
1985+
"service.beta.kubernetes.io/aws-load-balancer-attributes": "deletion_protection.enabled=true",
1986+
},
1987+
},
1988+
Spec: corev1.ServiceSpec{
1989+
Type: corev1.ServiceTypeLoadBalancer,
1990+
Selector: map[string]string{"app": "hello"},
1991+
Ports: []corev1.ServicePort{
1992+
{
1993+
Port: 80,
1994+
TargetPort: intstr.FromInt(80),
1995+
Protocol: corev1.ProtocolTCP,
1996+
},
1997+
},
1998+
},
1999+
},
2000+
wantError: true,
2001+
},
19722002
}
19732003

19742004
for _, tt := range tests {

0 commit comments

Comments
 (0)