Skip to content

Commit 464fd07

Browse files
committed
test(network): replace jig.CreateRC with jig.CreateDeployment
See kubernetes#119021
1 parent 8ccba7f commit 464fd07

File tree

2 files changed

+33
-47
lines changed

2 files changed

+33
-47
lines changed

test/e2e/network/fixture.go

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ package network
1818

1919
import (
2020
"context"
21+
appsv1 "k8s.io/api/apps/v1"
2122

2223
v1 "k8s.io/api/core/v1"
2324
apierrors "k8s.io/apimachinery/pkg/api/errors"
2425
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2526
"k8s.io/apimachinery/pkg/util/intstr"
2627
"k8s.io/apimachinery/pkg/util/uuid"
2728
clientset "k8s.io/client-go/kubernetes"
28-
"k8s.io/client-go/util/retry"
2929
imageutils "k8s.io/kubernetes/test/utils/image"
3030

3131
"github.com/onsi/ginkgo/v2"
@@ -40,10 +40,10 @@ type TestFixture struct {
4040
TestID string
4141
Labels map[string]string
4242

43-
rcs map[string]bool
44-
services map[string]bool
45-
Name string
46-
Image string
43+
deployments map[string]bool
44+
services map[string]bool
45+
Name string
46+
Image string
4747
}
4848

4949
// NewServerTest creates a new TestFixture for the tests.
@@ -57,7 +57,7 @@ func NewServerTest(client clientset.Interface, namespace string, serviceName str
5757
"testid": t.TestID,
5858
}
5959

60-
t.rcs = make(map[string]bool)
60+
t.deployments = make(map[string]bool)
6161
t.services = make(map[string]bool)
6262

6363
t.Name = "webserver"
@@ -84,13 +84,12 @@ func (t *TestFixture) BuildServiceSpec() *v1.Service {
8484
return service
8585
}
8686

87-
// CreateRC creates a replication controller and records it for cleanup.
88-
func (t *TestFixture) CreateRC(rc *v1.ReplicationController) (*v1.ReplicationController, error) {
89-
rc, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Create(context.TODO(), rc, metav1.CreateOptions{})
87+
func (t *TestFixture) CreateDeployment(deployment *appsv1.Deployment) (*appsv1.Deployment, error) {
88+
deployment, err := t.Client.AppsV1().Deployments(t.Namespace).Create(context.TODO(), deployment, metav1.CreateOptions{})
9089
if err == nil {
91-
t.rcs[rc.Name] = true
90+
t.deployments[deployment.Name] = true
9291
}
93-
return rc, err
92+
return deployment, err
9493
}
9594

9695
// CreateService creates a service, and record it for cleanup
@@ -114,33 +113,10 @@ func (t *TestFixture) DeleteService(serviceName string) error {
114113
// Cleanup cleans all ReplicationControllers and Services which this object holds.
115114
func (t *TestFixture) Cleanup() []error {
116115
var errs []error
117-
for rcName := range t.rcs {
118-
ginkgo.By("stopping RC " + rcName + " in namespace " + t.Namespace)
119-
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
120-
// First, resize the RC to 0.
121-
old, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Get(context.TODO(), rcName, metav1.GetOptions{})
122-
if err != nil {
123-
if apierrors.IsNotFound(err) {
124-
return nil
125-
}
126-
return err
127-
}
128-
x := int32(0)
129-
old.Spec.Replicas = &x
130-
if _, err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Update(context.TODO(), old, metav1.UpdateOptions{}); err != nil {
131-
if apierrors.IsNotFound(err) {
132-
return nil
133-
}
134-
return err
135-
}
136-
return nil
137-
})
116+
for deploymentName := range t.deployments {
117+
ginkgo.By("deleting deployment " + deploymentName + " in namespace " + t.Namespace)
118+
err := t.Client.AppsV1().Deployments(t.Namespace).Delete(context.TODO(), deploymentName, metav1.DeleteOptions{})
138119
if err != nil {
139-
errs = append(errs, err)
140-
}
141-
// TODO(mikedanese): Wait.
142-
// Then, delete the RC altogether.
143-
if err := t.Client.CoreV1().ReplicationControllers(t.Namespace).Delete(context.TODO(), rcName, metav1.DeleteOptions{}); err != nil {
144120
if !apierrors.IsNotFound(err) {
145121
errs = append(errs, err)
146122
}

test/e2e/network/service.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,11 +1785,18 @@ var _ = common.SIGDescribe("Services", func() {
17851785
PublishNotReadyAddresses: true,
17861786
},
17871787
}
1788-
rcSpec := e2erc.ByNameContainer(t.Name, 1, t.Labels, v1.Container{
1788+
1789+
deploymentSpec := e2edeployment.NewDeployment(t.Name,
1790+
1,
1791+
t.Labels,
1792+
t.Name,
1793+
t.Image,
1794+
appsv1.RecreateDeploymentStrategyType)
1795+
deploymentSpec.Spec.Template.Spec.Containers[0] = v1.Container{
17891796
Args: []string{"netexec", fmt.Sprintf("--http-port=%d", port)},
17901797
Name: t.Name,
17911798
Image: t.Image,
1792-
Ports: []v1.ContainerPort{{ContainerPort: int32(port), Protocol: v1.ProtocolTCP}},
1799+
Ports: []v1.ContainerPort{{ContainerPort: port, Protocol: v1.ProtocolTCP}},
17931800
ReadinessProbe: &v1.Probe{
17941801
ProbeHandler: v1.ProbeHandler{
17951802
Exec: &v1.ExecAction{
@@ -1804,18 +1811,18 @@ var _ = common.SIGDescribe("Services", func() {
18041811
},
18051812
},
18061813
},
1807-
}, nil)
1808-
rcSpec.Spec.Template.Spec.TerminationGracePeriodSeconds = &terminateSeconds
1814+
}
1815+
deploymentSpec.Spec.Template.Spec.TerminationGracePeriodSeconds = &terminateSeconds
18091816

1810-
ginkgo.By(fmt.Sprintf("creating RC %v with selectors %v", rcSpec.Name, rcSpec.Spec.Selector))
1811-
_, err := t.CreateRC(rcSpec)
1817+
ginkgo.By(fmt.Sprintf("creating Deployment %v with selectors %v", deploymentSpec.Name, deploymentSpec.Spec.Selector))
1818+
_, err := t.CreateDeployment(deploymentSpec)
18121819
framework.ExpectNoError(err)
18131820

18141821
ginkgo.By(fmt.Sprintf("creating Service %v with selectors %v", service.Name, service.Spec.Selector))
18151822
_, err = t.CreateService(service)
18161823
framework.ExpectNoError(err)
18171824

1818-
ginkgo.By("Verifying pods for RC " + t.Name)
1825+
ginkgo.By("Verifying pods for Deployment " + t.Name)
18191826
framework.ExpectNoError(e2epod.VerifyPods(ctx, t.Client, t.Namespace, t.Name, false, 1))
18201827

18211828
svcName := fmt.Sprintf("%v.%v.svc.%v", serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
@@ -1837,8 +1844,11 @@ var _ = common.SIGDescribe("Services", func() {
18371844
framework.Failf("expected un-ready endpoint for Service %v within %v, stdout: %v", t.Name, e2eservice.KubeProxyLagTimeout, stdout)
18381845
}
18391846

1840-
ginkgo.By("Scaling down replication controller to zero")
1841-
e2erc.ScaleRC(ctx, f.ClientSet, f.ScalesGetter, t.Namespace, rcSpec.Name, 0, false)
1847+
ginkgo.By("Scaling down deployment to zero")
1848+
_, err = e2edeployment.UpdateDeploymentWithRetries(f.ClientSet, t.Namespace, t.Name, func(deployment *appsv1.Deployment) {
1849+
deployment.Spec.Replicas = ptr.To[int32](0)
1850+
})
1851+
framework.ExpectNoError(err)
18421852

18431853
ginkgo.By("Update service to not tolerate unready services")
18441854
_, err = e2eservice.UpdateService(ctx, f.ClientSet, t.Namespace, t.ServiceName, func(s *v1.Service) {
@@ -1881,7 +1891,7 @@ var _ = common.SIGDescribe("Services", func() {
18811891
}
18821892

18831893
ginkgo.By("Remove pods immediately")
1884-
label := labels.SelectorFromSet(labels.Set(t.Labels))
1894+
label := labels.SelectorFromSet(t.Labels)
18851895
options := metav1.ListOptions{LabelSelector: label.String()}
18861896
podClient := t.Client.CoreV1().Pods(f.Namespace.Name)
18871897
pods, err := podClient.List(ctx, options)

0 commit comments

Comments
 (0)