Skip to content

Commit f76da50

Browse files
committed
test/e2e/framework/util.go:move DsFromManifest to test/e2e/framework/manifest , and rename it to DaemonSetFromURL
1 parent 342d328 commit f76da50

File tree

9 files changed

+62
-57
lines changed

9 files changed

+62
-57
lines changed

test/e2e/framework/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ go_library(
2727
"//pkg/controller:go_default_library",
2828
"//pkg/kubelet/apis/config:go_default_library",
2929
"//pkg/kubelet/apis/stats/v1alpha1:go_default_library",
30-
"//staging/src/k8s.io/api/apps/v1:go_default_library",
3130
"//staging/src/k8s.io/api/core/v1:go_default_library",
3231
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
3332
"//staging/src/k8s.io/api/rbac/v1:go_default_library",
@@ -41,7 +40,6 @@ go_library(
4140
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
4241
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
4342
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
44-
"//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library",
4543
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
4644
"//staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library",
4745
"//staging/src/k8s.io/client-go/discovery:go_default_library",

test/e2e/framework/manifest/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ go_library(
1616
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
1717
"//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library",
1818
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
19+
"//test/e2e/framework:go_default_library",
1920
"//test/e2e/framework/testfiles:go_default_library",
2021
],
2122
)

test/e2e/framework/manifest/manifest.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,18 @@ limitations under the License.
1717
package manifest
1818

1919
import (
20+
"fmt"
21+
"io/ioutil"
22+
"net/http"
23+
"time"
24+
2025
appsv1 "k8s.io/api/apps/v1"
2126
"k8s.io/api/core/v1"
2227
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2328
"k8s.io/apimachinery/pkg/runtime"
2429
utilyaml "k8s.io/apimachinery/pkg/util/yaml"
2530
"k8s.io/client-go/kubernetes/scheme"
31+
"k8s.io/kubernetes/test/e2e/framework"
2632
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
2733
)
2834

@@ -85,3 +91,48 @@ func StatefulSetFromManifest(fileName, ns string) (*appsv1.StatefulSet, error) {
8591
}
8692
return &ss, nil
8793
}
94+
95+
// DaemonSetFromURL reads from a url and returns the daemonset in it.
96+
func DaemonSetFromURL(url string) (*appsv1.DaemonSet, error) {
97+
framework.Logf("Parsing ds from %v", url)
98+
99+
var response *http.Response
100+
var err error
101+
102+
for i := 1; i <= 5; i++ {
103+
response, err = http.Get(url)
104+
if err == nil && response.StatusCode == 200 {
105+
break
106+
}
107+
time.Sleep(time.Duration(i) * time.Second)
108+
}
109+
110+
if err != nil {
111+
return nil, fmt.Errorf("Failed to get url: %v", err)
112+
}
113+
if response.StatusCode != 200 {
114+
return nil, fmt.Errorf("invalid http response status: %v", response.StatusCode)
115+
}
116+
defer response.Body.Close()
117+
118+
data, err := ioutil.ReadAll(response.Body)
119+
if err != nil {
120+
return nil, fmt.Errorf("Failed to read html response body: %v", err)
121+
}
122+
return DaemonSetFromData(data)
123+
}
124+
125+
// DaemonSetFromData reads a byte slice and returns the daemonset in it.
126+
func DaemonSetFromData(data []byte) (*appsv1.DaemonSet, error) {
127+
var ds appsv1.DaemonSet
128+
dataJSON, err := utilyaml.ToJSON(data)
129+
if err != nil {
130+
return nil, fmt.Errorf("Failed to parse data to json: %v", err)
131+
}
132+
133+
err = runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), dataJSON, &ds)
134+
if err != nil {
135+
return nil, fmt.Errorf("Failed to decode DaemonSet spec: %v", err)
136+
}
137+
return &ds, nil
138+
}

test/e2e/framework/util.go

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ import (
2222
"encoding/json"
2323
"fmt"
2424
"io"
25-
"io/ioutil"
2625
"math/rand"
2726
"net"
28-
"net/http"
2927
"net/url"
3028
"os"
3129
"os/exec"
@@ -41,21 +39,17 @@ import (
4139
"github.com/onsi/gomega"
4240
gomegatypes "github.com/onsi/gomega/types"
4341

44-
appsv1 "k8s.io/api/apps/v1"
4542
v1 "k8s.io/api/core/v1"
4643
apierrors "k8s.io/apimachinery/pkg/api/errors"
4744
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4845
"k8s.io/apimachinery/pkg/fields"
4946
"k8s.io/apimachinery/pkg/labels"
50-
"k8s.io/apimachinery/pkg/runtime"
5147
"k8s.io/apimachinery/pkg/runtime/schema"
5248
"k8s.io/apimachinery/pkg/util/sets"
5349
"k8s.io/apimachinery/pkg/util/uuid"
5450
"k8s.io/apimachinery/pkg/util/wait"
55-
utilyaml "k8s.io/apimachinery/pkg/util/yaml"
5651
"k8s.io/apimachinery/pkg/watch"
5752
clientset "k8s.io/client-go/kubernetes"
58-
"k8s.io/client-go/kubernetes/scheme"
5953
"k8s.io/client-go/rest"
6054
restclient "k8s.io/client-go/rest"
6155
"k8s.io/client-go/tools/clientcmd"
@@ -1240,51 +1234,6 @@ func DumpDebugInfo(c clientset.Interface, ns string) {
12401234
}
12411235
}
12421236

1243-
// DsFromManifest reads a .json/yaml file and returns the daemonset in it.
1244-
func DsFromManifest(url string) (*appsv1.DaemonSet, error) {
1245-
Logf("Parsing ds from %v", url)
1246-
1247-
var response *http.Response
1248-
var err error
1249-
1250-
for i := 1; i <= 5; i++ {
1251-
response, err = http.Get(url)
1252-
if err == nil && response.StatusCode == 200 {
1253-
break
1254-
}
1255-
time.Sleep(time.Duration(i) * time.Second)
1256-
}
1257-
1258-
if err != nil {
1259-
return nil, fmt.Errorf("Failed to get url: %v", err)
1260-
}
1261-
if response.StatusCode != 200 {
1262-
return nil, fmt.Errorf("invalid http response status: %v", response.StatusCode)
1263-
}
1264-
defer response.Body.Close()
1265-
1266-
data, err := ioutil.ReadAll(response.Body)
1267-
if err != nil {
1268-
return nil, fmt.Errorf("Failed to read html response body: %v", err)
1269-
}
1270-
return DsFromData(data)
1271-
}
1272-
1273-
// DsFromData reads a byte slice and returns the daemonset in it.
1274-
func DsFromData(data []byte) (*appsv1.DaemonSet, error) {
1275-
var ds appsv1.DaemonSet
1276-
dataJSON, err := utilyaml.ToJSON(data)
1277-
if err != nil {
1278-
return nil, fmt.Errorf("Failed to parse data to json: %v", err)
1279-
}
1280-
1281-
err = runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), dataJSON, &ds)
1282-
if err != nil {
1283-
return nil, fmt.Errorf("Failed to decode DaemonSet spec: %v", err)
1284-
}
1285-
return &ds, nil
1286-
}
1287-
12881237
// PrettyPrintJSON converts metrics to JSON format.
12891238
func PrettyPrintJSON(metrics interface{}) string {
12901239
output := &bytes.Buffer{}

test/e2e/scheduling/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ go_library(
4343
"//test/e2e/framework:go_default_library",
4444
"//test/e2e/framework/gpu:go_default_library",
4545
"//test/e2e/framework/job:go_default_library",
46+
"//test/e2e/framework/manifest:go_default_library",
4647
"//test/e2e/framework/node:go_default_library",
4748
"//test/e2e/framework/pod:go_default_library",
4849
"//test/e2e/framework/providers/gce:go_default_library",

test/e2e/scheduling/nvidia-gpus.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"k8s.io/kubernetes/test/e2e/framework"
3131
e2egpu "k8s.io/kubernetes/test/e2e/framework/gpu"
3232
e2ejob "k8s.io/kubernetes/test/e2e/framework/job"
33+
e2emanifest "k8s.io/kubernetes/test/e2e/framework/manifest"
3334
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
3435
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
3536
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
@@ -137,7 +138,7 @@ func SetupNVIDIAGPUNode(f *framework.Framework, setupResourceGatherer bool) *fra
137138

138139
framework.Logf("Using %v", dsYamlURL)
139140
// Creates the DaemonSet that installs Nvidia Drivers.
140-
ds, err := framework.DsFromManifest(dsYamlURL)
141+
ds, err := e2emanifest.DaemonSetFromURL(dsYamlURL)
141142
framework.ExpectNoError(err)
142143
ds.Namespace = f.Namespace.Name
143144
_, err = f.ClientSet.AppsV1().DaemonSets(f.Namespace.Name).Create(context.TODO(), ds, metav1.CreateOptions{})

test/e2e_node/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ go_library(
5050
"//test/e2e/framework:go_default_library",
5151
"//test/e2e/framework/gpu:go_default_library",
5252
"//test/e2e/framework/kubelet:go_default_library",
53+
"//test/e2e/framework/manifest:go_default_library",
5354
"//test/e2e/framework/metrics:go_default_library",
5455
"//test/e2e/framework/node:go_default_library",
5556
"//test/e2e/framework/testfiles:go_default_library",
@@ -194,6 +195,7 @@ go_test(
194195
"//test/e2e/framework:go_default_library",
195196
"//test/e2e/framework/gpu:go_default_library",
196197
"//test/e2e/framework/kubectl:go_default_library",
198+
"//test/e2e/framework/manifest:go_default_library",
197199
"//test/e2e/framework/metrics:go_default_library",
198200
"//test/e2e/framework/node:go_default_library",
199201
"//test/e2e/framework/pod:go_default_library",

test/e2e_node/gpu_device_plugin_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
2929
"k8s.io/kubernetes/test/e2e/framework"
3030
e2egpu "k8s.io/kubernetes/test/e2e/framework/gpu"
31+
e2emanifest "k8s.io/kubernetes/test/e2e/framework/manifest"
3132
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
3233

3334
"github.com/onsi/ginkgo"
@@ -49,7 +50,7 @@ func numberOfNVIDIAGPUs(node *v1.Node) int64 {
4950

5051
// NVIDIADevicePlugin returns the official Google Device Plugin pod for NVIDIA GPU in GKE
5152
func NVIDIADevicePlugin() *v1.Pod {
52-
ds, err := framework.DsFromManifest(e2egpu.GPUDevicePluginDSYAML)
53+
ds, err := e2emanifest.DaemonSetFromURL(e2egpu.GPUDevicePluginDSYAML)
5354
framework.ExpectNoError(err)
5455
p := &v1.Pod{
5556
ObjectMeta: metav1.ObjectMeta{

test/e2e_node/image_list.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
commontest "k8s.io/kubernetes/test/e2e/common"
3232
"k8s.io/kubernetes/test/e2e/framework"
3333
e2egpu "k8s.io/kubernetes/test/e2e/framework/gpu"
34+
e2emanifest "k8s.io/kubernetes/test/e2e/framework/manifest"
3435
e2etestfiles "k8s.io/kubernetes/test/e2e/framework/testfiles"
3536
imageutils "k8s.io/kubernetes/test/utils/image"
3637
)
@@ -171,7 +172,7 @@ func PrePullAllImages() error {
171172

172173
// getGPUDevicePluginImage returns the image of GPU device plugin.
173174
func getGPUDevicePluginImage() string {
174-
ds, err := framework.DsFromManifest(e2egpu.GPUDevicePluginDSYAML)
175+
ds, err := e2emanifest.DaemonSetFromURL(e2egpu.GPUDevicePluginDSYAML)
175176
if err != nil {
176177
klog.Errorf("Failed to parse the device plugin image: %v", err)
177178
return ""
@@ -194,7 +195,7 @@ func getSRIOVDevicePluginImage() string {
194195
klog.Errorf("Failed to read the device plugin manifest: %v", err)
195196
return ""
196197
}
197-
ds, err := framework.DsFromData(data)
198+
ds, err := e2emanifest.DaemonSetFromData(data)
198199
if err != nil {
199200
klog.Errorf("Failed to parse the device plugin image: %v", err)
200201
return ""

0 commit comments

Comments
 (0)