Skip to content

Commit

Permalink
add e2e test for multicontainer with probes
Browse files Browse the repository at this point in the history
  • Loading branch information
KaranJagtiani committed Aug 31, 2023
1 parent dbce119 commit 078e5bf
Showing 1 changed file with 122 additions and 0 deletions.
122 changes: 122 additions & 0 deletions test/e2e/multicontainer_probes_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
//go:build e2e

Check failure on line 1 in test/e2e/multicontainer_probes_test.go

View workflow job for this annotation

GitHub Actions / style / Golang / Auto-format and Check

Please run goimports. diff --git a/test/e2e/multicontainer_probes_test.go b/test/e2e/multicontainer_probes_test.go index 2143943..b5472e9 100644 --- a/test/e2e/multicontainer_probes_test.go +++ b/test/e2e/multicontainer_probes_test.go @@ -23,9 +23,10 @@ package e2e import ( "context" - "k8s.io/apimachinery/pkg/util/intstr" "testing" + "k8s.io/apimachinery/pkg/util/intstr" + corev1 "k8s.io/api/core/v1" pkgTest "knative.dev/pkg/test"
// +build e2e

/*
Copyright 2020 The Knative Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package e2e

// Look here

import (
"context"
"k8s.io/apimachinery/pkg/util/intstr"
"testing"

corev1 "k8s.io/api/core/v1"

pkgTest "knative.dev/pkg/test"
"knative.dev/pkg/test/spoof"
v1 "knative.dev/serving/pkg/apis/serving/v1"
"knative.dev/serving/test"
v1test "knative.dev/serving/test/v1"
)

func TestMultiContainerProbes(t *testing.T) {
if !test.ServingFlags.EnableBetaFeatures {
t.Skip()
}
t.Parallel()

clients := Setup(t)

names := test.ResourceNames{
Service: test.ObjectNameForTest(t),
Image: test.ServingContainer,
Sidecars: []string{
test.SidecarContainer,
},
}

containers := []corev1.Container{{
Image: pkgTest.ImagePath(names.Image),
Ports: []corev1.ContainerPort{{
ContainerPort: 8881,
}},
ReadinessProbe: &corev1.Probe{
ProbeHandler: corev1.ProbeHandler{
HTTPGet: &corev1.HTTPGetAction{
Port: intstr.FromInt(8881),
},
},
},
LivenessProbe: &corev1.Probe{
ProbeHandler: corev1.ProbeHandler{
HTTPGet: &corev1.HTTPGetAction{
Port: intstr.FromInt(8881),
},
},
},
}, {
Image: pkgTest.ImagePath(names.Sidecars[0]), // sidecar container with probes defined
ReadinessProbe: &corev1.Probe{
ProbeHandler: corev1.ProbeHandler{
HTTPGet: &corev1.HTTPGetAction{
Port: intstr.FromInt(8882),
},
},
},
LivenessProbe: &corev1.Probe{
ProbeHandler: corev1.ProbeHandler{
HTTPGet: &corev1.HTTPGetAction{
Port: intstr.FromInt(8882),
},
},
},
}}

// Please see the comment in test/v1/configuration.go.
if !test.ServingFlags.DisableOptionalAPI {
containers[0].ImagePullPolicy = corev1.PullIfNotPresent
containers[1].ImagePullPolicy = corev1.PullIfNotPresent
}

test.EnsureTearDown(t, clients, &names)

t.Log("Creating a new Service")

resources, err := v1test.CreateServiceReady(t, clients, &names, func(svc *v1.Service) {
svc.Spec.Template.Spec.Containers = containers
})

if err != nil {
t.Fatalf("Failed to create initial Service: %v: %v", names.Service, err)
}

url := resources.Route.Status.URL.URL()
if _, err := pkgTest.CheckEndpointState(
context.Background(),
clients.KubeClient,
t.Logf,
url,
spoof.MatchesAllOf(spoof.IsStatusOK, spoof.MatchesBody(test.MultiContainerResponse)),
"MulticontainerServesExpectedText",
test.ServingFlags.ResolvableDomain,
test.AddRootCAtoTransport(context.Background(), t.Logf, clients, test.ServingFlags.HTTPS),
); err != nil {
t.Fatalf("The endpoint %s for Route %s didn't serve the expected text %q: %v", url, names.Route, test.MultiContainerResponse, err)
}
}

0 comments on commit 078e5bf

Please sign in to comment.