Skip to content

Commit ca93dd0

Browse files
add missing tests for external traffic policy gateway params (#10562)
1 parent d1537f3 commit ca93dd0

File tree

4 files changed

+57
-0
lines changed

4 files changed

+57
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
changelog:
2+
- type: NON_USER_FACING
3+
description: >
4+
Add missing e2e suite test for checking gateway param eternal traffic policy

pkg/utils/kubeutils/service.go

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package kubeutils
2+
3+
import (
4+
"context"
5+
6+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7+
8+
corev1 "k8s.io/api/core/v1"
9+
"k8s.io/client-go/kubernetes"
10+
)
11+
12+
// GetService gets the service from the provided name/namespace
13+
func GetService(
14+
ctx context.Context,
15+
kubeClient *kubernetes.Clientset,
16+
serviceName string,
17+
serviceNamespace string,
18+
) (*corev1.Service, error) {
19+
20+
service, err := kubeClient.CoreV1().Services(serviceNamespace).Get(ctx, serviceName, metav1.GetOptions{})
21+
if err != nil {
22+
return nil, err
23+
}
24+
25+
return service, nil
26+
}

test/kubernetes/e2e/features/deployer/suite.go

+4
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ func (s *testingSuite) TestProvisionResourcesUpdatedWithValidParameters() {
190190
s.patchGatewayParameters(gwParamsDefault.ObjectMeta, func(parameters *v1alpha1.GatewayParameters) {
191191
parameters.Spec.Kube.Service.ExternalTrafficPolicy = ptr.To(corev1.ServiceExternalTrafficPolicyLocal)
192192
})
193+
194+
// the GatewayParameters modification should cause the deployer to re-run and update the
195+
// service to have ExternalTrafficPolicy = Local
196+
s.testInstallation.Assertions.EventuallyExternalTrafficPolicy(s.ctx, *proxyService, gomega.Equal(corev1.ServiceExternalTrafficPolicyLocal))
193197
}
194198

195199
func (s *testingSuite) TestProvisionResourcesNotUpdatedWithInvalidParameters() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package assertions
2+
3+
import (
4+
"context"
5+
"time"
6+
7+
. "github.com/onsi/gomega"
8+
"github.com/onsi/gomega/types"
9+
"github.com/solo-io/gloo/pkg/utils/kubeutils"
10+
corev1 "k8s.io/api/core/v1"
11+
)
12+
13+
func (p *Provider) EventuallyExternalTrafficPolicy(ctx context.Context, service corev1.Service, externalTrafficPolicyMatcher types.GomegaMatcher) {
14+
p.Gomega.Eventually(func(innerG Gomega) {
15+
service, err := kubeutils.GetService(ctx, p.clusterContext.Clientset, service.Name, service.Namespace)
16+
innerG.Expect(err).NotTo(HaveOccurred(), "can get service")
17+
innerG.Expect(service.Spec.ExternalTrafficPolicy).To(externalTrafficPolicyMatcher, "externalTrafficPolicy to match")
18+
}).
19+
WithContext(ctx).
20+
WithTimeout(time.Second * 30).
21+
WithPolling(time.Millisecond * 200).
22+
Should(Succeed())
23+
}

0 commit comments

Comments
 (0)