Code change:
we need to add such a file under: test/e2e/framework see this file as an example: xref: /help /good-first-issue /area e2e-testing-framework /sig testing /kind cleanup
/remove-good-first-issue /remove-kind feature
/priority important-longterm /area e2e-test-framework
/assign
i think it might be a good idea to create the dep graph as JPG and have a chat about that during a meeting.
What are the restrictions that we are trying to place in the e2e framework? In the example given it looks like the only thing blacklisted is provider-specific implementations or the internal client. I know one of the recent changes was ensuring we dont use the internal client, is that all we want to blacklist for now? Or also all specific provider implementations? Some other dep we want to prevent?
I'd like to help on this issue, this would be my first issue so I'd need some help as well if that's OK.
/cc

Related discussion:
text: <ins> { "Rules": [ { "SelectorRegexp": "k8s[.]io/kubernetes/pkg/", "AllowedPrefixes": [ "k8s.io/kubernetes/pkg/api/legacyscheme", "k8s.io/kubernetes/pkg/api/service", "k8s.io/kubernetes/pkg/api/v1/pod", "k8s.io/kubernetes/pkg/apis/apps", "k8s.io/kubernetes/pkg/apis/apps/validation", "k8s.io/kubernetes/pkg/apis/autoscaling", "k8s.io/kubernetes/pkg/apis/batch", "k8s.io/kubernetes/pkg/apis/core", "k8s.io/kubernetes/pkg/apis/core/helper", "k8s.io/kubernetes/pkg/apis/core/install", "k8s.io/kubernetes/pkg/apis/core/pods", "k8s.io/kubernetes/pkg/apis/core/v1", "k8s.io/kubernetes/pkg/apis/core/v1/helper", "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos", "k8s.io/kubernetes/pkg/apis/core/validation", "k8s.io/kubernetes/pkg/apis/extensions", "k8s.io/kubernetes/pkg/apis/networking", "k8s.io/kubernetes/pkg/apis/policy", "k8s.io/kubernetes/pkg/apis/policy/validation", "k8s.io/kubernetes/pkg/apis/scheduling", "k8s.io/kubernetes/pkg/apis/storage/v1/util", "k8s.io/kubernetes/pkg/capabilities", "k8s.io/kubernetes/pkg/client/conditions", "k8s.io/kubernetes/pkg/controller", "k8s.io/kubernetes/pkg/controller/deployment/util", "k8s.io/kubernetes/pkg/controller/nodelifecycle", "k8s.io/kubernetes/pkg/controller/nodelifecycle/scheduler", "k8s.io/kubernetes/pkg/controller/service", "k8s.io/kubernetes/pkg/controller/util/node", "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/util", "k8s.io/kubernetes/pkg/controller/volume/scheduling", "k8s.io/kubernetes/pkg/features", "k8s.io/kubernetes/pkg/fieldpath", "k8s.io/kubernetes/pkg/kubectl", "k8s.io/kubernetes/pkg/kubectl/apps", "k8s.io/kubernetes/pkg/kubectl/describe", "k8s.io/kubernetes/pkg/kubectl/describe/versioned", "k8s.io/kubernetes/pkg/kubectl/scheme", "k8s.io/kubernetes/pkg/kubectl/util", "k8s.io/kubernetes/pkg/kubectl/util/certificate", "k8s.io/kubernetes/pkg/kubectl/util/deployment", "k8s.io/kubernetes/pkg/kubectl/util/event", "k8s.io/kubernetes/pkg/kubectl/util/fieldpath", "k8s.io/kubernetes/pkg/kubectl/util/podutils", "k8s.io/kubernetes/pkg/kubectl/util/qos", "k8s.io/kubernetes/pkg/kubectl/util/rbac", "k8s.io/kubernetes/pkg/kubectl/util/resource", "k8s.io/kubernetes/pkg/kubectl/util/slice", "k8s.io/kubernetes/pkg/kubectl/util/storage", "k8s.io/kubernetes/pkg/kubelet/apis", "k8s.io/kubernetes/pkg/kubelet/apis/config", "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1", "k8s.io/kubernetes/pkg/kubelet/checkpoint", "k8s.io/kubernetes/pkg/kubelet/checkpointmanager", "k8s.io/kubernetes/pkg/kubelet/checkpointmanager/checksum", "k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors", "k8s.io/kubernetes/pkg/kubelet/configmap", "k8s.io/kubernetes/pkg/kubelet/container", "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics", "k8s.io/kubernetes/pkg/kubelet/events", "k8s.io/kubernetes/pkg/kubelet/lifecycle", "k8s.io/kubernetes/pkg/kubelet/metrics", "k8s.io/kubernetes/pkg/kubelet/pod", "k8s.io/kubernetes/pkg/kubelet/secret", "k8s.io/kubernetes/pkg/kubelet/sysctl", "k8s.io/kubernetes/pkg/kubelet/types", "k8s.io/kubernetes/pkg/kubelet/util", "k8s.io/kubernetes/pkg/kubelet/util/format", "k8s.io/kubernetes/pkg/kubelet/util/manager", "k8s.io/kubernetes/pkg/kubelet/util/store", "k8s.io/kubernetes/pkg/master/ports", "k8s.io/kubernetes/pkg/registry/core/service/allocator", "k8s.io/kubernetes/pkg/registry/core/service/portallocator", "k8s.io/kubernetes/pkg/scheduler/algorithm", "k8s.io/kubernetes/pkg/scheduler/algorithm/predicates", "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities/util", "k8s.io/kubernetes/pkg/scheduler/api", "k8s.io/kubernetes/pkg/scheduler/metrics", "k8s.io/kubernetes/pkg/scheduler/nodeinfo", "k8s.io/kubernetes/pkg/scheduler/util", "k8s.io/kubernetes/pkg/scheduler/volumebinder", "k8s.io/kubernetes/pkg/security/apparmor", "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp", "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util", "k8s.io/kubernetes/pkg/serviceaccount", "k8s.io/kubernetes/pkg/ssh", "k8s.io/kubernetes/pkg/util/filesystem", "k8s.io/kubernetes/pkg/util/hash", "k8s.io/kubernetes/pkg/util/labels", "k8s.io/kubernetes/pkg/util/metrics", "k8s.io/kubernetes/pkg/util/mount", "k8s.io/kubernetes/pkg/util/node", "k8s.io/kubernetes/pkg/util/parsers", "k8s.io/kubernetes/pkg/util/resizefs", "k8s.io/kubernetes/pkg/util/slice", "k8s.io/kubernetes/pkg/util/system", "k8s.io/kubernetes/pkg/util/taints", "k8s.io/kubernetes/pkg/volume", "k8s.io/kubernetes/pkg/volume/util", "k8s.io/kubernetes/pkg/volume/util/fs", "k8s.io/kubernetes/pkg/volume/util/fsquota", "k8s.io/kubernetes/pkg/volume/util/recyclerclient", "k8s.io/kubernetes/pkg/volume/util/subpath", "k8s.io/kubernetes/pkg/volume/util/types", "k8s.io/kubernetes/pkg/volume/util/volumepathhandler" ], "ForbiddenPrefixes": [] }, { "SelectorRegexp": "k8s[.]io/kubernetes/test/", "AllowedPrefixes": [ "k8s.io/kubernetes/test/e2e/framework/auth", "k8s.io/kubernetes/test/e2e/framework/ginkgowrapper", "k8s.io/kubernetes/test/e2e/framework/log", "k8s.io/kubernetes/test/e2e/framework/metrics", "k8s.io/kubernetes/test/e2e/framework/node", "k8s.io/kubernetes/test/e2e/framework/pod", "k8s.io/kubernetes/test/e2e/framework/resource", "k8s.io/kubernetes/test/e2e/framework/ssh", "k8s.io/kubernetes/test/e2e/framework/testfiles", "k8s.io/kubernetes/test/e2e/manifest", "k8s.io/kubernetes/test/e2e/perftype", "k8s.io/kubernetes/test/utils", "k8s.io/kubernetes/test/utils/image" ], "ForbiddenPrefixes": [] }, { "SelectorRegexp": "k8s[.]io/kubernetes/third_party/", "AllowedPrefixes": [ "k8s.io/kubernetes/third_party/forked/golang/expansion" ], "ForbiddenPrefixes": [] }, { "SelectorRegexp": "k8s[.]io/utils/", "AllowedPrefixes": [ "k8s.io/utils/buffer", "k8s.io/utils/exec", "k8s.io/utils/integer", "k8s.io/utils/net", "k8s.io/utils/nsenter", "k8s.io/utils/path", "k8s.io/utils/pointer", "k8s.io/utils/strings", "k8s.io/utils/trace" ], "ForbiddenPrefixes": [] }, { "SelectorRegexp": "k8s[.]io/(api/|apimachinery/|apiextensions-apiserver/|apiserver/)", "AllowedPrefixes": [ "" ] }, { "SelectorRegexp": "k8s[.]io/client-go/", "AllowedPrefixes": [ "" ] } ] } </ins>