From aeb60958dcfb2d82da3d083bb3cbff92892bbfbf Mon Sep 17 00:00:00 2001 From: Mikhail Berezovskiy Date: Sat, 18 Nov 2023 00:10:03 +0000 Subject: [PATCH] update on AccessLogPolicy and TargetGroupPolicy e2e-tests --- test/pkg/test/framework.go | 1 + test/pkg/test/target_group_policy.go | 58 --------------- .../integration/access_log_policy_test.go | 4 +- .../integration/target_group_policy_test.go | 70 +++++++++++++++---- 4 files changed, 59 insertions(+), 74 deletions(-) diff --git a/test/pkg/test/framework.go b/test/pkg/test/framework.go index 04f1ba5a..dfb3f44c 100644 --- a/test/pkg/test/framework.go +++ b/test/pkg/test/framework.go @@ -262,6 +262,7 @@ func (env *Framework) ExpectDeleted(ctx context.Context, objects ...client.Objec if err != nil { // not found is probably OK - means it was deleted elsewhere if !errors.IsNotFound(err) { + env.Log.Error(err) Expect(err).ToNot(HaveOccurred()) } } diff --git a/test/pkg/test/target_group_policy.go b/test/pkg/test/target_group_policy.go index dd13cacb..56e54040 100644 --- a/test/pkg/test/target_group_policy.go +++ b/test/pkg/test/target_group_policy.go @@ -1,59 +1 @@ package test - -import ( - anv1alpha1 "github.com/aws/aws-application-networking-k8s/pkg/apis/applicationnetworking/v1alpha1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - gwv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2" - gwv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" -) - -type TargetGroupPolicyConfig struct { - PolicyName string - Protocol *string - ProtocolVersion *string - HealthCheck *anv1alpha1.HealthCheckConfig -} - -func (env *Framework) CreateTargetGroupPolicy( - service *corev1.Service, - config *TargetGroupPolicyConfig, -) *anv1alpha1.TargetGroupPolicy { - return &anv1alpha1.TargetGroupPolicy{ - TypeMeta: metav1.TypeMeta{ - Kind: "TargetGroupPolicy", - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: service.Namespace, - Name: config.PolicyName, - }, - Spec: anv1alpha1.TargetGroupPolicySpec{ - TargetRef: &gwv1alpha2.PolicyTargetReference{ - Kind: gwv1beta1.Kind("Service"), - Name: gwv1beta1.ObjectName(service.Name), - }, - Protocol: config.Protocol, - ProtocolVersion: config.ProtocolVersion, - HealthCheck: config.HealthCheck, - }, - } -} - -func (env *Framework) UpdateTargetGroupPolicy( - policy *anv1alpha1.TargetGroupPolicy, - config *TargetGroupPolicyConfig, -) *anv1alpha1.TargetGroupPolicy { - if config.Protocol != nil { - policy.Spec.Protocol = config.Protocol - } - - if config.ProtocolVersion != nil { - policy.Spec.ProtocolVersion = config.ProtocolVersion - } - - if config.HealthCheck != nil { - policy.Spec.HealthCheck = config.HealthCheck - } - - return policy -} diff --git a/test/suites/integration/access_log_policy_test.go b/test/suites/integration/access_log_policy_test.go index c99c6089..ce911441 100644 --- a/test/suites/integration/access_log_policy_test.go +++ b/test/suites/integration/access_log_policy_test.go @@ -2,6 +2,8 @@ package integration import ( "fmt" + "math/rand" + "strconv" "time" "github.com/aws/aws-sdk-go/aws" @@ -35,7 +37,6 @@ var _ = Describe("Access Log Policy", Ordered, func() { const ( k8sResourceName = "test-access-log-policy" k8sResourceName2 = "test-access-log-policy-secondary" - bucketName = "k8s-test-lattice-bucket" logGroupName = "k8s-test-lattice-log-group" logGroup2Name = "k8s-test-lattice-log-group-secondary" deliveryStreamName = "k8s-test-lattice-delivery-stream" @@ -80,6 +81,7 @@ var _ = Describe("Access Log Policy", Ordered, func() { logGroup2Arn string deliveryStreamArn string roleArn string + bucketName = "eks-gateway-api-access-log-test-" + strconv.Itoa(rand.Int()) ) BeforeAll(func() { diff --git a/test/suites/integration/target_group_policy_test.go b/test/suites/integration/target_group_policy_test.go index 62d9118a..5479ff58 100644 --- a/test/suites/integration/target_group_policy_test.go +++ b/test/suites/integration/target_group_policy_test.go @@ -3,15 +3,20 @@ package integration import ( "time" - "github.com/aws/aws-application-networking-k8s/pkg/apis/applicationnetworking/v1alpha1" - "github.com/aws/aws-application-networking-k8s/test/pkg/test" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/vpclattice" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/controller-runtime/pkg/client" gwv1 "sigs.k8s.io/gateway-api/apis/v1" + gwv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2" + gwv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" + + anv1alpha1 "github.com/aws/aws-application-networking-k8s/pkg/apis/applicationnetworking/v1alpha1" + "github.com/aws/aws-application-networking-k8s/test/pkg/test" ) var _ = Describe("Target Group Policy Tests", Ordered, func() { @@ -19,7 +24,7 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { deployment *appsv1.Deployment service *corev1.Service httpRoute *gwv1.HTTPRoute - policy *v1alpha1.TargetGroupPolicy + policy *anv1alpha1.TargetGroupPolicy ) BeforeAll(func() { @@ -34,7 +39,7 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { }) It("Update Protocol replaces the Target Group with new one", func() { - policy = testFramework.CreateTargetGroupPolicy(service, &test.TargetGroupPolicyConfig{ + policy = createTargetGroupPolicy(service, &TargetGroupPolicyConfig{ PolicyName: "test-policy", Protocol: aws.String(vpclattice.TargetGroupProtocolHttp), }) @@ -42,14 +47,15 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { testFramework.ExpectCreated(ctx, policy) tg := testFramework.GetTargetGroup(ctx, service) - Expect(*tg.Protocol).To(Equal(vpclattice.TargetGroupProtocolHttp)) - testFramework.UpdateTargetGroupPolicy(policy, &test.TargetGroupPolicyConfig{ - Protocol: aws.String(vpclattice.TargetGroupProtocolHttps), - }) + err := testFramework.Client.Get(ctx, client.ObjectKeyFromObject(policy), policy) + Expect(err).Should(BeNil()) + + policy.Spec.Protocol = aws.String(vpclattice.TargetGroupProtocolHttps) + err = testFramework.Client.Update(ctx, policy) + Expect(err).Should(BeNil()) - testFramework.ExpectUpdated(ctx, policy) testFramework.VerifyTargetGroupNotFound(tg) httpsTG := testFramework.GetTargetGroupWithProtocol(ctx, service, "https", "http1") @@ -58,11 +64,11 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { }) It("Delete Target Group Policy reset health check config for HTTP and HTTP1 Target Group", func() { - policy = testFramework.CreateTargetGroupPolicy(service, &test.TargetGroupPolicyConfig{ + policy = createTargetGroupPolicy(service, &TargetGroupPolicyConfig{ PolicyName: "test-policy", Protocol: aws.String(vpclattice.TargetGroupProtocolHttp), ProtocolVersion: aws.String(vpclattice.TargetGroupProtocolVersionHttp1), - HealthCheck: &v1alpha1.HealthCheckConfig{ + HealthCheck: &anv1alpha1.HealthCheckConfig{ IntervalSeconds: aws.Int64(7), StatusMatch: aws.String("200,204"), }, @@ -72,9 +78,7 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { Eventually(func(g Gomega) { tgSummary := testFramework.GetTargetGroup(ctx, service) - tg := testFramework.GetFullTargetGroupFromSummary(ctx, tgSummary) - g.Expect(*tg.Config.HealthCheck.ProtocolVersion).To(Equal(vpclattice.TargetGroupProtocolVersionHttp1)) g.Expect(*tg.Config.HealthCheck.Protocol).To(Equal(vpclattice.TargetGroupProtocolHttp)) g.Expect(*tg.Config.HealthCheck.HealthCheckIntervalSeconds).To(BeEquivalentTo(7)) @@ -106,7 +110,7 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { }) It("Delete Target Group Policy create HTTP and HTTP1 Target Group", func() { - policy = testFramework.CreateTargetGroupPolicy(service, &test.TargetGroupPolicyConfig{ + policy = createTargetGroupPolicy(service, &TargetGroupPolicyConfig{ PolicyName: "test-policy", Protocol: aws.String(vpclattice.TargetGroupProtocolHttps), ProtocolVersion: aws.String(vpclattice.TargetGroupProtocolVersionHttp2), @@ -128,7 +132,12 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { AfterEach(func() { testFramework.ExpectDeleted( ctx, - policy, + &anv1alpha1.TargetGroupPolicy{ + ObjectMeta: metav1.ObjectMeta{ + Name: policy.Name, + Namespace: policy.Namespace, + }, + }, ) }) @@ -141,3 +150,34 @@ var _ = Describe("Target Group Policy Tests", Ordered, func() { ) }) }) + +type TargetGroupPolicyConfig struct { + PolicyName string + Protocol *string + ProtocolVersion *string + HealthCheck *anv1alpha1.HealthCheckConfig +} + +func createTargetGroupPolicy( + service *corev1.Service, + config *TargetGroupPolicyConfig, +) *anv1alpha1.TargetGroupPolicy { + return &anv1alpha1.TargetGroupPolicy{ + TypeMeta: metav1.TypeMeta{ + Kind: "TargetGroupPolicy", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: service.Namespace, + Name: config.PolicyName, + }, + Spec: anv1alpha1.TargetGroupPolicySpec{ + TargetRef: &gwv1alpha2.PolicyTargetReference{ + Kind: gwv1beta1.Kind("Service"), + Name: gwv1beta1.ObjectName(service.Name), + }, + Protocol: config.Protocol, + ProtocolVersion: config.ProtocolVersion, + HealthCheck: config.HealthCheck, + }, + } +}