Skip to content

Commit 21cd69e

Browse files
authored
Merge pull request #4821 from tstromberg/registry-tests
Refactor TestFunctional/Registry to handle new labels
2 parents 79628d3 + caa2719 commit 21cd69e

File tree

2 files changed

+41
-58
lines changed

2 files changed

+41
-58
lines changed

test/integration/addons_test.go

+41-36
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func testDashboard(t *testing.T) {
122122
func testIngressController(t *testing.T) {
123123
t.Parallel()
124124
mk := NewMinikubeRunner(t, "--wait=false")
125-
kubectlRunner := util.NewKubectlRunner(t)
125+
kr := util.NewKubectlRunner(t)
126126

127127
mk.RunCommand("addons enable ingress", true)
128128
if err := util.WaitForIngressControllerRunning(t); err != nil {
@@ -138,12 +138,12 @@ func testIngressController(t *testing.T) {
138138
t.Errorf("Error getting the file path for current directory: %s", curdir)
139139
}
140140
ingressPath := path.Join(curdir, "testdata", "nginx-ing.yaml")
141-
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", ingressPath}); err != nil {
141+
if _, err := kr.RunCommand([]string{"create", "-f", ingressPath}); err != nil {
142142
t.Fatalf("creating nginx ingress resource: %v", err)
143143
}
144144

145145
podPath := path.Join(curdir, "testdata", "nginx-pod-svc.yaml")
146-
if _, err := kubectlRunner.RunCommand([]string{"create", "-f", podPath}); err != nil {
146+
if _, err := kr.RunCommand([]string{"create", "-f", podPath}); err != nil {
147147
t.Fatalf("creating nginx ingress resource: %v", err)
148148
}
149149

@@ -167,7 +167,7 @@ func testIngressController(t *testing.T) {
167167

168168
defer func() {
169169
for _, p := range []string{podPath, ingressPath} {
170-
if out, err := kubectlRunner.RunCommand([]string{"delete", "-f", p}); err != nil {
170+
if out, err := kr.RunCommand([]string{"delete", "-f", p}); err != nil {
171171
t.Logf("delete -f %s failed: %v\noutput: %s\n", p, err, out)
172172
}
173173
}
@@ -192,51 +192,55 @@ func testServicesList(t *testing.T) {
192192
}
193193
func testRegistry(t *testing.T) {
194194
t.Parallel()
195-
minikubeRunner := NewMinikubeRunner(t)
196-
kubectlRunner := util.NewKubectlRunner(t)
197-
minikubeRunner.RunCommand("addons enable registry", true)
198-
t.Log("wait for registry to come up")
195+
mk := NewMinikubeRunner(t)
196+
mk.RunCommand("addons enable registry", true)
197+
client, err := pkgutil.GetClient()
198+
if err != nil {
199+
t.Fatalf("getting kubernetes client: %v", err)
200+
}
201+
if err := pkgutil.WaitForRCToStabilize(client, "kube-system", "registry", time.Minute*5); err != nil {
202+
t.Fatalf("waiting for registry replicacontroller to stabilize: %v", err)
203+
}
204+
rs := labels.SelectorFromSet(labels.Set(map[string]string{"actual-registry": "true"}))
205+
if err := pkgutil.WaitForPodsWithLabelRunning(client, "kube-system", rs); err != nil {
206+
t.Fatalf("waiting for registry pods: %v", err)
207+
}
208+
ps, err := labels.Parse("kubernetes.io/minikube-addons=registry,actual-registry!=true")
209+
if err != nil {
210+
t.Fatalf("Unable to parse selector: %v", err)
211+
}
212+
if err := pkgutil.WaitForPodsWithLabelRunning(client, "kube-system", ps); err != nil {
213+
t.Fatalf("waiting for registry-proxy pods: %v", err)
214+
}
199215

200-
if err := util.WaitForDockerRegistryRunning(t); err != nil {
201-
t.Fatalf("waiting for registry to be up: %v", err)
216+
ip := strings.TrimSpace(mk.RunCommand("ip", true))
217+
endpoint := fmt.Sprintf("http://%s:%d", ip, 5000)
218+
u, err := url.Parse(endpoint)
219+
if err != nil {
220+
t.Fatalf("failed to parse %q: %v", endpoint, err)
202221
}
222+
t.Log("checking registry access from outside cluster")
203223

204224
// Check access from outside the cluster on port 5000, validing connectivity via registry-proxy
205225
checkExternalAccess := func() error {
206-
t.Log("checking registry access from outside cluster")
207-
_, out := minikubeRunner.RunDaemon("ip")
208-
s, err := readLineWithTimeout(out, 180*time.Second)
209-
210-
if err != nil {
211-
t.Fatalf("failed to read minikubeIP: %v", err)
212-
}
213-
214-
registryEndpoint := "http://" + strings.TrimSpace(s) + ":5000"
215-
u, err := url.Parse(registryEndpoint)
216-
217-
if err != nil {
218-
t.Fatalf("failed to parse %q: %v", s, err)
219-
}
220-
221226
resp, err := retryablehttp.Get(u.String())
222227
if err != nil {
223228
t.Errorf("failed get: %v", err)
224229
}
225230

226231
if resp.StatusCode != http.StatusOK {
227-
t.Errorf("%s returned status code %d, expected %d.\n", registryEndpoint, resp.StatusCode, http.StatusOK)
232+
t.Errorf("%s returned status code %d, expected %d.\n", u, resp.StatusCode, http.StatusOK)
228233
}
229-
230234
return nil
231235
}
232236

233237
if err := util.Retry(t, checkExternalAccess, 2*time.Second, 5); err != nil {
234238
t.Fatalf(err.Error())
235239
}
236-
// check access from inside the cluster via a busybox container running inside cluster
240+
237241
t.Log("checking registry access from inside cluster")
238-
expectedStr := "200"
239-
out, _ := kubectlRunner.RunCommand([]string{
242+
kr := util.NewKubectlRunner(t)
243+
out, _ := kr.RunCommand([]string{
240244
"run",
241245
"registry-test",
242246
"--restart=Never",
@@ -247,16 +251,17 @@ func testRegistry(t *testing.T) {
247251
"-c",
248252
"wget --spider -S 'http://registry.kube-system.svc.cluster.local' 2>&1 | grep 'HTTP/' | awk '{print $2}'"})
249253
internalCheckOutput := string(out)
254+
expectedStr := "200"
250255
if !strings.Contains(internalCheckOutput, expectedStr) {
251256
t.Fatalf("ExpectedStr internalCheckOutput to be: %s. Output was: %s", expectedStr, internalCheckOutput)
252257
}
253258

254259
defer func() {
255-
if _, err := kubectlRunner.RunCommand([]string{"delete", "pod", "registry-test"}); err != nil {
260+
if _, err := kr.RunCommand([]string{"delete", "pod", "registry-test"}); err != nil {
256261
t.Fatalf("failed to delete pod registry-test")
257262
}
258263
}()
259-
minikubeRunner.RunCommand("addons disable registry", true)
264+
mk.RunCommand("addons disable registry", true)
260265
}
261266
func testGvisor(t *testing.T) {
262267
mk := NewMinikubeRunner(t, "--wait=false")
@@ -320,26 +325,26 @@ func testGvisorRestart(t *testing.T) {
320325
}
321326

322327
func createUntrustedWorkload(t *testing.T) {
323-
kubectlRunner := util.NewKubectlRunner(t)
328+
kr := util.NewKubectlRunner(t)
324329
curdir, err := filepath.Abs("")
325330
if err != nil {
326331
t.Errorf("Error getting the file path for current directory: %s", curdir)
327332
}
328333
untrustedPath := path.Join(curdir, "testdata", "nginx-untrusted.yaml")
329334
t.Log("creating pod with untrusted workload annotation")
330-
if _, err := kubectlRunner.RunCommand([]string{"replace", "-f", untrustedPath, "--force"}); err != nil {
335+
if _, err := kr.RunCommand([]string{"replace", "-f", untrustedPath, "--force"}); err != nil {
331336
t.Fatalf("creating untrusted nginx resource: %v", err)
332337
}
333338
}
334339

335340
func deleteUntrustedWorkload(t *testing.T) {
336-
kubectlRunner := util.NewKubectlRunner(t)
341+
kr := util.NewKubectlRunner(t)
337342
curdir, err := filepath.Abs("")
338343
if err != nil {
339344
t.Errorf("Error getting the file path for current directory: %s", curdir)
340345
}
341346
untrustedPath := path.Join(curdir, "testdata", "nginx-untrusted.yaml")
342-
if _, err := kubectlRunner.RunCommand([]string{"delete", "-f", untrustedPath}); err != nil {
347+
if _, err := kr.RunCommand([]string{"delete", "-f", untrustedPath}); err != nil {
343348
t.Logf("error deleting untrusted nginx resource: %v", err)
344349
}
345350
}

test/integration/util/util.go

-22
Original file line numberDiff line numberDiff line change
@@ -359,28 +359,6 @@ func WaitForIngressControllerRunning(t *testing.T) error {
359359
return nil
360360
}
361361

362-
// WaitForDockerRegistryRunning waits until docker registry pod to be running
363-
func WaitForDockerRegistryRunning(t *testing.T) error {
364-
client, err := commonutil.GetClient()
365-
if err != nil {
366-
return errors.Wrap(err, "getting kubernetes client")
367-
}
368-
369-
if err := commonutil.WaitForRCToStabilize(client, "kube-system", "registry", time.Minute*10); err != nil {
370-
return errors.Wrap(err, "waiting for registry replicacontroller to stabilize")
371-
}
372-
373-
registrySelector := labels.SelectorFromSet(labels.Set(map[string]string{"kubernetes.io/minikube-addons": "registry"}))
374-
if err := commonutil.WaitForPodsWithLabelRunning(client, "kube-system", registrySelector); err != nil {
375-
return errors.Wrap(err, "waiting for registry pods")
376-
}
377-
proxySelector := labels.SelectorFromSet(labels.Set(map[string]string{"kubernetes.io/minikube-addons": "registry-proxy"}))
378-
if err := commonutil.WaitForPodsWithLabelRunning(client, "kube-system", proxySelector); err != nil {
379-
return errors.Wrap(err, "waiting for registry-proxy pods")
380-
}
381-
return nil
382-
}
383-
384362
// WaitForIngressDefaultBackendRunning waits until ingress default backend pod to be running
385363
func WaitForIngressDefaultBackendRunning(t *testing.T) error {
386364
client, err := commonutil.GetClient()

0 commit comments

Comments
 (0)