From 6189addb6844d1f804a04040416b414960aebe74 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 8 Apr 2026 17:51:40 +0200 Subject: [PATCH 1/3] test: simplify pruned testsuite name During unit or integration testing we collapsed all tests in a "class" (= package) into a single entry, with a shorter name. But the suite name was left unchanged, with the result that testgrid showed e.g. "k8s.io/kubernetes/test/integration/scheduler/preemption.preemption". Shortening the suite name in the same way as the class name turns that into "k8s.io/kubernetes/test/integration/scheduler.preemption". Spyglass uses the class name and shows "k8s.io/kubernetes/test/integration/scheduler: preemption", with and without this change. --- cmd/prune-junit-xml/prunexml.go | 11 +++++++++-- cmd/prune-junit-xml/prunexml_test.go | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/prune-junit-xml/prunexml.go b/cmd/prune-junit-xml/prunexml.go index 21d0b0fa312..c80a6d461ea 100644 --- a/cmd/prune-junit-xml/prunexml.go +++ b/cmd/prune-junit-xml/prunexml.go @@ -132,8 +132,15 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) { name := suite.Name regex := regexp.MustCompile(`^(.*?)/([^/]+)/?$`) match := regex.FindStringSubmatch(name) - updatedTestcase.Classname = match[1] - updatedTestcase.Name = match[2] + baseName := match[1] + leafName := match[2] + + // testgrid uses suite.Name. + // Spyglass/Prow use testcase.Classname. + // Therefore we need to update both. + suite.Name = baseName + updatedTestcase.Classname = baseName + updatedTestcase.Name = leafName updatedTestcase.Time = suite.Time updatedSystemOut := "" updatedSystemErr := "" diff --git a/cmd/prune-junit-xml/prunexml_test.go b/cmd/prune-junit-xml/prunexml_test.go index 3dde79a0691..6f4a546e68f 100644 --- a/cmd/prune-junit-xml/prunexml_test.go +++ b/cmd/prune-junit-xml/prunexml_test.go @@ -133,13 +133,13 @@ func TestPruneTESTS(t *testing.T) { outputXML := ` - + - + @@ -147,7 +147,7 @@ func TestPruneTESTS(t *testing.T) { FailureContent - + @@ -155,7 +155,7 @@ func TestPruneTESTS(t *testing.T) { FailureContentA FailureContentB - + From 5ceba3ca26e428dcd831ff51f0104225a859ebf4 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 9 Apr 2026 11:54:24 +0200 Subject: [PATCH 2/3] test: inject [sig-...] prefix into unit and integration test names When SIG Release triaged testgrid failures for unit or integration test jobs, they often ended up reaching out to SIG Testing as the owner of those jobs. Injecting the same [sig-...] prefix as in E2E tests makes it more obvious which SIG needs to handle specific test failures. This avoids the manual step of looking up source code and finding the relevant OWNERS file: those steps are now done automatically by prune-junit-xml. --- cmd/prune-junit-xml/prunexml.go | 96 +++++++++++++++++++++++++++- cmd/prune-junit-xml/prunexml_test.go | 39 +++++++---- 2 files changed, 121 insertions(+), 14 deletions(-) diff --git a/cmd/prune-junit-xml/prunexml.go b/cmd/prune-junit-xml/prunexml.go index c80a6d461ea..b270b349a3f 100644 --- a/cmd/prune-junit-xml/prunexml.go +++ b/cmd/prune-junit-xml/prunexml.go @@ -17,23 +17,33 @@ limitations under the License. package main import ( + "bufio" + "bytes" "encoding/xml" "flag" "fmt" "io" "os" + "os/exec" + "path" "regexp" "strings" "k8s.io/kubernetes/cmd/prune-junit-xml/logparse" "k8s.io/kubernetes/third_party/forked/gotestsum/junitxml" + "sigs.k8s.io/yaml" ) func main() { maxTextSize := flag.Int("max-text-size", 1, "maximum size of attribute or text (in MB)") pruneTests := flag.Bool("prune-tests", true, "prune's xml files to display only top level tests and failed sub-tests") + addOwners := flag.Bool("add-owners", true, + "when pruning tests, also look for OWNERs files of the packages and prefix the names with [SIG-...] if found") flag.Parse() + + pkgs := newPackageOwners(*addOwners) + for _, path := range flag.Args() { fmt.Printf("processing junit xml file : %s\n", path) xmlReader, err := os.Open(path) @@ -48,7 +58,7 @@ func main() { pruneXML(suites, *maxTextSize*1e6) // convert MB into bytes (roughly!) if *pruneTests { - pruneTESTS(suites) + pruneTESTS(suites, pkgs) } xmlWriter, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666) @@ -121,7 +131,7 @@ func pruneStringIfNeeded(str *string, maxBytes int, msg string, args ...any) { // This function condenses the junit xml to have package name as top level identifier // and nesting under that. -func pruneTESTS(suites *junitxml.JUnitTestSuites) { +func pruneTESTS(suites *junitxml.JUnitTestSuites, pkgs *packageOwners) { var updatedTestsuites []junitxml.JUnitTestSuite for _, suite := range suites.Suites { @@ -130,6 +140,12 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) { var updatedTestcaseFailure junitxml.JUnitFailure failflag := false name := suite.Name + + // Inject the owning SIG prefix, if possible. + // This has to be done while we still have what + // is likely to be the full package name. + name = pkgs.addOwner(name) + regex := regexp.MustCompile(`^(.*?)/([^/]+)/?$`) match := regex.FindStringSubmatch(name) baseName := match[1] @@ -215,3 +231,79 @@ func streamXML(writer io.Writer, in *junitxml.JUnitTestSuites) error { } return encoder.Flush() } + +type packageOwners struct { + // pkgs maps from import path to directory. + pkgs map[string]string +} + +func newPackageOwners(enabled bool) *packageOwners { + if !enabled { + return nil + } + + return &packageOwners{ + pkgs: make(map[string]string), + } +} + +// addOwner takes a package name (= import path, like k8s.io/client-go), +// tries to look up the source code of the package, and then +// walks up until it finds an OWNERS file with some sig label. +// The first sig label found this way is used. +// +// If successful, that SIG gets added to the name. +// If not, the name remains unchanged. +func (p *packageOwners) addOwner(name string) string { + if p == nil { + return name + } + + dir := p.pkgs[name] + if dir == "" { + // Look up via `go list`. To invoke it less often, + // we also ask for sub-packages and cache the results. + // We don't care about errors. + // + // This is roughly what golang.org/x/tools/go/packages does, + // which we can't use here because it would add a new + // dependency to k/k. + cmd := exec.Command("go", "list", "-f", "{{.ImportPath}}:{{.Dir}}", name+"/...") + out, _ := cmd.Output() + scanner := bufio.NewScanner(bytes.NewReader(out)) + for scanner.Scan() { + line := scanner.Text() + parts := strings.SplitN(line, ":", 2) + if len(parts) != 2 { + continue + } + p.pkgs[parts[0]] = parts[1] + } + dir = p.pkgs[name] + } + + // Walk up starting from an absolute path until we cannot go up further. + for ; dir != "" && dir != "." && dir != "/"; dir = path.Dir(dir) { + data, err := os.ReadFile(path.Join(dir, "OWNERS")) + if err != nil { + continue + } + var owners owners + if err := yaml.Unmarshal(data, &owners); err != nil { + continue + } + for _, label := range owners.Labels { + if strings.HasPrefix(label, "sig/") { + // Bingo! + return fmt.Sprintf("[sig-%s] %s", label[4:], name) + } + } + } + + return name +} + +// owners contains only fields from https://go.k8s.io/owners that we care about. +type owners struct { + Labels []string `json:"labels"` +} diff --git a/cmd/prune-junit-xml/prunexml_test.go b/cmd/prune-junit-xml/prunexml_test.go index 6f4a546e68f..dd68059683f 100644 --- a/cmd/prune-junit-xml/prunexml_test.go +++ b/cmd/prune-junit-xml/prunexml_test.go @@ -76,16 +76,16 @@ func TestPruneXML(t *testing.T) { func TestPruneTESTS(t *testing.T) { sourceXML := ` - + - - - - - - + + + + + + @@ -129,21 +129,32 @@ func TestPruneTESTS(t *testing.T) { sub-test failed + + + + ` + // This test uses the real OWNERS files from k/k because those exist. + // The downside it that OWNERS change (not unlikely in the case of cluster/gce) + // imply changing this test data. + // + // test/integration/apimachinery lacks an OWNERS file. TODO: add one. + // + // Fake packages have no source and thus now OWNERS. outputXML := ` - + - + - + - + FailureContent @@ -165,9 +176,13 @@ func TestPruneTESTS(t *testing.T) { err A err B + + + + ` suites, _ := fetchXML(strings.NewReader(sourceXML)) - pruneTESTS(suites) + pruneTESTS(suites, newPackageOwners(true)) var output bytes.Buffer writer := bufio.NewWriter(&output) _ = streamXML(writer, suites) From 4e3845495948bf6b17695f9f2d82d7da155d4f2c Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 9 Apr 2026 21:12:40 +0200 Subject: [PATCH 3/3] test/integration: add missing sig labels Each directory with tests should have a sig label in its OWNERS file to document which SIG is responsible for the test. Otherwise SIG Testing gets pinged by SIG Release as the default owner of all tests when a test fails. Some integration test packages are either empty (objectmeta) or useless with unclear owner (configmap); those get removed. --- cmd/prune-junit-xml/prunexml.go | 2 +- cmd/prune-junit-xml/prunexml_test.go | 10 +- test/integration/apimachinery/OWNERS | 4 + test/integration/apiserver/OWNERS | 2 + test/integration/auth/OWNERS | 4 + test/integration/authutil/OWNERS | 4 + test/integration/certificates/OWNERS | 4 + test/integration/client/OWNERS | 4 + test/integration/cloudprovider/OWNERS | 4 + test/integration/clustertrustbundles/OWNERS | 4 + test/integration/configmap/configmap_test.go | 125 ------------------ test/integration/configmap/main_test.go | 27 ---- test/integration/cronjob/OWNERS | 4 + .../defaulttolerationseconds/OWNERS | 4 + test/integration/disruption/OWNERS | 4 + test/integration/dryrun/OWNERS | 2 + test/integration/dualstack/OWNERS | 4 + test/integration/endpoints/OWNERS | 4 + test/integration/endpointslice/OWNERS | 4 + test/integration/events/OWNERS | 4 + test/integration/evictions/OWNERS | 4 + test/integration/examples/OWNERS | 4 + test/integration/garbagecollector/OWNERS | 4 + test/integration/ipamperf/OWNERS | 4 + test/integration/kubelet/OWNERS | 4 + test/integration/namespace/OWNERS | 4 + test/integration/network/OWNERS | 4 + test/integration/node/OWNERS | 2 + test/integration/objectmeta/main_test.go | 27 ---- test/integration/openshift/OWNERS | 4 + .../integration/podcertificaterequests/OWNERS | 4 + test/integration/pods/OWNERS | 2 + test/integration/pvc/OWNERS | 4 + test/integration/quota/OWNERS | 4 + test/integration/replicaset/OWNERS | 4 + test/integration/replicationcontroller/OWNERS | 4 + test/integration/scale/OWNERS | 4 + test/integration/secrets/OWNERS | 4 + test/integration/service/OWNERS | 4 + test/integration/serviceaccount/OWNERS | 4 + test/integration/servicecidr/OWNERS | 4 + test/integration/serving/OWNERS | 4 + test/integration/staleness/OWNERS | 4 + test/integration/statefulset/OWNERS | 4 + test/integration/storageclasses/OWNERS | 4 + test/integration/storageversion/OWNERS | 4 + .../integration/storageversionmigrator/OWNERS | 4 + test/integration/tls/OWNERS | 4 + test/integration/ttlcontroller/OWNERS | 4 + 49 files changed, 173 insertions(+), 186 deletions(-) create mode 100644 test/integration/apimachinery/OWNERS create mode 100644 test/integration/auth/OWNERS create mode 100644 test/integration/authutil/OWNERS create mode 100644 test/integration/certificates/OWNERS create mode 100644 test/integration/client/OWNERS create mode 100644 test/integration/cloudprovider/OWNERS create mode 100644 test/integration/clustertrustbundles/OWNERS delete mode 100644 test/integration/configmap/configmap_test.go delete mode 100644 test/integration/configmap/main_test.go create mode 100644 test/integration/cronjob/OWNERS create mode 100644 test/integration/defaulttolerationseconds/OWNERS create mode 100644 test/integration/disruption/OWNERS create mode 100644 test/integration/dualstack/OWNERS create mode 100644 test/integration/endpoints/OWNERS create mode 100644 test/integration/endpointslice/OWNERS create mode 100644 test/integration/events/OWNERS create mode 100644 test/integration/evictions/OWNERS create mode 100644 test/integration/examples/OWNERS create mode 100644 test/integration/garbagecollector/OWNERS create mode 100644 test/integration/ipamperf/OWNERS create mode 100644 test/integration/kubelet/OWNERS create mode 100644 test/integration/namespace/OWNERS create mode 100644 test/integration/network/OWNERS delete mode 100644 test/integration/objectmeta/main_test.go create mode 100644 test/integration/openshift/OWNERS create mode 100644 test/integration/podcertificaterequests/OWNERS create mode 100644 test/integration/pvc/OWNERS create mode 100644 test/integration/quota/OWNERS create mode 100644 test/integration/replicaset/OWNERS create mode 100644 test/integration/replicationcontroller/OWNERS create mode 100644 test/integration/scale/OWNERS create mode 100644 test/integration/secrets/OWNERS create mode 100644 test/integration/service/OWNERS create mode 100644 test/integration/serviceaccount/OWNERS create mode 100644 test/integration/servicecidr/OWNERS create mode 100644 test/integration/serving/OWNERS create mode 100644 test/integration/staleness/OWNERS create mode 100644 test/integration/statefulset/OWNERS create mode 100644 test/integration/storageclasses/OWNERS create mode 100644 test/integration/storageversion/OWNERS create mode 100644 test/integration/storageversionmigrator/OWNERS create mode 100644 test/integration/tls/OWNERS create mode 100644 test/integration/ttlcontroller/OWNERS diff --git a/cmd/prune-junit-xml/prunexml.go b/cmd/prune-junit-xml/prunexml.go index b270b349a3f..9fbf506d988 100644 --- a/cmd/prune-junit-xml/prunexml.go +++ b/cmd/prune-junit-xml/prunexml.go @@ -39,7 +39,7 @@ func main() { pruneTests := flag.Bool("prune-tests", true, "prune's xml files to display only top level tests and failed sub-tests") addOwners := flag.Bool("add-owners", true, - "when pruning tests, also look for OWNERs files of the packages and prefix the names with [SIG-...] if found") + "when pruning tests, also look for OWNERs files of the packages and prefix the names with [sig-...] if found") flag.Parse() pkgs := newPackageOwners(*addOwners) diff --git a/cmd/prune-junit-xml/prunexml_test.go b/cmd/prune-junit-xml/prunexml_test.go index dd68059683f..bd82abde716 100644 --- a/cmd/prune-junit-xml/prunexml_test.go +++ b/cmd/prune-junit-xml/prunexml_test.go @@ -136,12 +136,10 @@ func TestPruneTESTS(t *testing.T) { ` // This test uses the real OWNERS files from k/k because those exist. - // The downside it that OWNERS change (not unlikely in the case of cluster/gce) + // The downside it that OWNERS changes (not unlikely in the case of cluster/gce) // imply changing this test data. // - // test/integration/apimachinery lacks an OWNERS file. TODO: add one. - // - // Fake packages have no source and thus now OWNERS. + // Fake packages have no source and thus no OWNERS. outputXML := ` @@ -150,11 +148,11 @@ func TestPruneTESTS(t *testing.T) { - + - + FailureContent diff --git a/test/integration/apimachinery/OWNERS b/test/integration/apimachinery/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/apimachinery/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/apiserver/OWNERS b/test/integration/apiserver/OWNERS index 259d204ec55..9f0d5365c9f 100644 --- a/test/integration/apiserver/OWNERS +++ b/test/integration/apiserver/OWNERS @@ -3,3 +3,5 @@ approvers: - alexzielenski - jefftree - jpbetz +labels: + - sig/api-machinery diff --git a/test/integration/auth/OWNERS b/test/integration/auth/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/auth/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/authutil/OWNERS b/test/integration/authutil/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/authutil/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/certificates/OWNERS b/test/integration/certificates/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/certificates/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/client/OWNERS b/test/integration/client/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/client/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/cloudprovider/OWNERS b/test/integration/cloudprovider/OWNERS new file mode 100644 index 00000000000..1cb61c828f1 --- /dev/null +++ b/test/integration/cloudprovider/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/cloud-provider diff --git a/test/integration/clustertrustbundles/OWNERS b/test/integration/clustertrustbundles/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/clustertrustbundles/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/configmap/configmap_test.go b/test/integration/configmap/configmap_test.go deleted file mode 100644 index 16d8565a9a6..00000000000 --- a/test/integration/configmap/configmap_test.go +++ /dev/null @@ -1,125 +0,0 @@ -/* -Copyright 2015 The Kubernetes 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 configmap - -// This file tests use of the configMap API resource. - -import ( - "context" - "testing" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - clientset "k8s.io/client-go/kubernetes" - kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing" - "k8s.io/kubernetes/test/integration" - "k8s.io/kubernetes/test/integration/framework" -) - -// TestConfigMap tests apiserver-side behavior of creation of ConfigMaps and pods that consume them. -func TestConfigMap(t *testing.T) { - // Disable ServiceAccount admission plugin as we don't have serviceaccount controller running. - server := kubeapiservertesting.StartTestServerOrDie(t, nil, framework.DefaultTestServerFlags(), framework.SharedEtcd()) - defer server.TearDownFn() - - client := clientset.NewForConfigOrDie(server.ClientConfig) - - ns := framework.CreateNamespaceOrDie(client, "config-map", t) - defer framework.DeleteNamespaceOrDie(client, ns, t) - - DoTestConfigMap(t, client, ns) -} - -func DoTestConfigMap(t *testing.T, client clientset.Interface, ns *v1.Namespace) { - cfg := v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: "configmap", - Namespace: ns.Name, - }, - Data: map[string]string{ - "data-1": "value-1", - "data-2": "value-2", - "data-3": "value-3", - }, - } - - if _, err := client.CoreV1().ConfigMaps(cfg.Namespace).Create(context.TODO(), &cfg, metav1.CreateOptions{}); err != nil { - t.Errorf("unable to create test configMap: %v", err) - } - defer deleteConfigMapOrErrorf(t, client, cfg.Namespace, cfg.Name) - - pod := &v1.Pod{ - ObjectMeta: metav1.ObjectMeta{ - Name: "XXX", - Namespace: ns.Name, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{ - { - Name: "fake-name", - Image: "fakeimage", - Env: []v1.EnvVar{ - { - Name: "CONFIG_DATA_1", - ValueFrom: &v1.EnvVarSource{ - ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: "configmap", - }, - Key: "data-1", - }, - }, - }, - { - Name: "CONFIG_DATA_2", - ValueFrom: &v1.EnvVarSource{ - ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: "configmap", - }, - Key: "data-2", - }, - }, - }, { - Name: "CONFIG_DATA_3", - ValueFrom: &v1.EnvVarSource{ - ConfigMapKeyRef: &v1.ConfigMapKeySelector{ - LocalObjectReference: v1.LocalObjectReference{ - Name: "configmap", - }, - Key: "data-3", - }, - }, - }, - }, - }, - }, - }, - } - - pod.ObjectMeta.Name = "uses-configmap" - if _, err := client.CoreV1().Pods(ns.Name).Create(context.TODO(), pod, metav1.CreateOptions{}); err != nil { - t.Errorf("Failed to create pod: %v", err) - } - defer integration.DeletePodOrErrorf(t, client, ns.Name, pod.Name) -} - -func deleteConfigMapOrErrorf(t *testing.T, c clientset.Interface, ns, name string) { - if err := c.CoreV1().ConfigMaps(ns).Delete(context.TODO(), name, metav1.DeleteOptions{}); err != nil { - t.Errorf("unable to delete ConfigMap %v: %v", name, err) - } -} diff --git a/test/integration/configmap/main_test.go b/test/integration/configmap/main_test.go deleted file mode 100644 index c05a94633b4..00000000000 --- a/test/integration/configmap/main_test.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2017 The Kubernetes 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 configmap - -import ( - "testing" - - "k8s.io/kubernetes/test/integration/framework" -) - -func TestMain(m *testing.M) { - framework.EtcdMain(m.Run) -} diff --git a/test/integration/cronjob/OWNERS b/test/integration/cronjob/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/cronjob/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/defaulttolerationseconds/OWNERS b/test/integration/defaulttolerationseconds/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/defaulttolerationseconds/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/disruption/OWNERS b/test/integration/disruption/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/disruption/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/dryrun/OWNERS b/test/integration/dryrun/OWNERS index 2d24eb2504a..48304a74352 100644 --- a/test/integration/dryrun/OWNERS +++ b/test/integration/dryrun/OWNERS @@ -6,3 +6,5 @@ approvers: reviewers: - deads2k - liggitt +labels: + - sig/api-machinery diff --git a/test/integration/dualstack/OWNERS b/test/integration/dualstack/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/dualstack/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/endpoints/OWNERS b/test/integration/endpoints/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/endpoints/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/endpointslice/OWNERS b/test/integration/endpointslice/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/endpointslice/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/events/OWNERS b/test/integration/events/OWNERS new file mode 100644 index 00000000000..c75722ecff5 --- /dev/null +++ b/test/integration/events/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/instrumentation diff --git a/test/integration/evictions/OWNERS b/test/integration/evictions/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/evictions/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/examples/OWNERS b/test/integration/examples/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/examples/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/garbagecollector/OWNERS b/test/integration/garbagecollector/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/garbagecollector/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/ipamperf/OWNERS b/test/integration/ipamperf/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/ipamperf/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/kubelet/OWNERS b/test/integration/kubelet/OWNERS new file mode 100644 index 00000000000..fbc36618c83 --- /dev/null +++ b/test/integration/kubelet/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/node diff --git a/test/integration/namespace/OWNERS b/test/integration/namespace/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/namespace/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/network/OWNERS b/test/integration/network/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/network/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/node/OWNERS b/test/integration/node/OWNERS index d8a9ea055d4..65e322510c3 100644 --- a/test/integration/node/OWNERS +++ b/test/integration/node/OWNERS @@ -4,3 +4,5 @@ approvers: - sig-node-approvers reviewers: - sig-node-reviewers +labels: + - sig/node diff --git a/test/integration/objectmeta/main_test.go b/test/integration/objectmeta/main_test.go deleted file mode 100644 index ca65234eb42..00000000000 --- a/test/integration/objectmeta/main_test.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2017 The Kubernetes 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 objectmeta - -import ( - "testing" - - "k8s.io/kubernetes/test/integration/framework" -) - -func TestMain(m *testing.M) { - framework.EtcdMain(m.Run) -} diff --git a/test/integration/openshift/OWNERS b/test/integration/openshift/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/openshift/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/podcertificaterequests/OWNERS b/test/integration/podcertificaterequests/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/podcertificaterequests/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/pods/OWNERS b/test/integration/pods/OWNERS index 7ed78e3d1cc..a21b4289d3e 100644 --- a/test/integration/pods/OWNERS +++ b/test/integration/pods/OWNERS @@ -10,3 +10,5 @@ reviewers: emeritus_approvers: - vishh - dchen1107 +labels: + - sig/node diff --git a/test/integration/pvc/OWNERS b/test/integration/pvc/OWNERS new file mode 100644 index 00000000000..b3a806c0a19 --- /dev/null +++ b/test/integration/pvc/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/storage diff --git a/test/integration/quota/OWNERS b/test/integration/quota/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/quota/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/replicaset/OWNERS b/test/integration/replicaset/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/replicaset/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/replicationcontroller/OWNERS b/test/integration/replicationcontroller/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/replicationcontroller/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/scale/OWNERS b/test/integration/scale/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/scale/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/secrets/OWNERS b/test/integration/secrets/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/secrets/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/service/OWNERS b/test/integration/service/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/service/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/serviceaccount/OWNERS b/test/integration/serviceaccount/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/serviceaccount/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/servicecidr/OWNERS b/test/integration/servicecidr/OWNERS new file mode 100644 index 00000000000..c8324a82542 --- /dev/null +++ b/test/integration/servicecidr/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/network diff --git a/test/integration/serving/OWNERS b/test/integration/serving/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/serving/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/staleness/OWNERS b/test/integration/staleness/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/staleness/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/statefulset/OWNERS b/test/integration/statefulset/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/statefulset/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps diff --git a/test/integration/storageclasses/OWNERS b/test/integration/storageclasses/OWNERS new file mode 100644 index 00000000000..b3a806c0a19 --- /dev/null +++ b/test/integration/storageclasses/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/storage diff --git a/test/integration/storageversion/OWNERS b/test/integration/storageversion/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/storageversion/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/storageversionmigrator/OWNERS b/test/integration/storageversionmigrator/OWNERS new file mode 100644 index 00000000000..55a1deac4ea --- /dev/null +++ b/test/integration/storageversionmigrator/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/api-machinery diff --git a/test/integration/tls/OWNERS b/test/integration/tls/OWNERS new file mode 100644 index 00000000000..f357da7076c --- /dev/null +++ b/test/integration/tls/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/auth diff --git a/test/integration/ttlcontroller/OWNERS b/test/integration/ttlcontroller/OWNERS new file mode 100644 index 00000000000..688ea8bd0cf --- /dev/null +++ b/test/integration/ttlcontroller/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +labels: + - sig/apps