kubernetes/test/e2e/framework/.import-restrictions

rules:
  # The core E2E framework is meant to be a normal Kubernetes client,
  # which means that it shouldn't depend on internal code.
  # The following packages are okay to use:
  #
  # public API
  - selectorRegexp: ^k8s[.]io/(api|apimachinery|client-go|component-base|klog|pod-security-admission|utils)
    allowedPrefixes: [ "" ]

  # stdlib
  - selectorRegexp: ^[a-z]+(/|$)
    allowedPrefixes: [ "" ]

  # stdlib x and proto
  - selectorRegexp: ^golang.org/x|^google.golang.org/protobuf
    allowedPrefixes: [ "" ]

  # Ginkgo + Gomega
  - selectorRegexp: ^github.com/onsi/(ginkgo|gomega)
    allowedPrefixes: [ "" ]

  # kube-openapi
  - selectorRegexp: ^k8s.io/kube-openapi
    allowedPrefixes: [ "" ]

  # Public SIG Repos
  - selectorRegexp: ^sigs.k8s.io/(json|yaml|structured-merge-diff)
    allowedPrefixes: [ "" ]

  # some of the shared test helpers (but not E2E sub-packages!)
  - selectorRegexp: ^k8s[.]io/kubernetes/test/(e2e/framework/internal/|utils)
    allowedPrefixes: [ "" ]

  # Third party deps
  - selectorRegexp: ^github.com/|^gopkg.in
    allowedPrefixes: [
      "gopkg.in/inf.v0",
      "gopkg.in/evanphx/json-patch.v4",
      "github.com/blang/semver/",
      "github.com/davecgh/go-spew/spew",
      "github.com/go-logr/logr",
      "github.com/gogo/protobuf/proto",
      "github.com/gogo/protobuf/sortkeys",
      "github.com/golang/protobuf/proto",
      "github.com/google/gnostic-models/openapiv2",
      "github.com/google/gnostic-models/openapiv3",
      "github.com/google/go-cmp/cmp",
      "github.com/google/go-cmp/cmp/cmpopts",
      "github.com/google/gofuzz",
      "github.com/google/uuid",
      "github.com/imdario/mergo",
      "github.com/prometheus/client_golang/",
      "github.com/prometheus/client_model/",
      "github.com/prometheus/common/",
      "github.com/prometheus/procfs",
      "github.com/spf13/cobra",
      "github.com/spf13/pflag",
      "github.com/stretchr/testify/assert",
      "github.com/stretchr/testify/require"
    ]

  # Everything else isn't.
  #
  # In particular importing any test/e2e/framework/* package would be a
  # violation (sub-packages get to use the framework, not the other way
  # around).
  - selectorRegexp: .