treewide: switch to gomod and bump everything
This switches version resolution from fietsje to gomod and updates
all Go dependencies. It also bumps rules_go (required by gVisor) and
switches the Gazelle naming convention from go_default_xxx to the
standard Bazel convention of the default target having the package
name.
Since Kubernetes dropped upstream Bazel support and doesn't check in
all generated files I manually pregenerated the OpenAPI spec. This
should be fixed, but because of the already-huge scope of this CL
and the rebase complexity this is not in here.
Change-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833
Reviewed-on: https://review.monogon.dev/c/monogon/+/639
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Reviewed-by: Leopold Schabel <leo@nexantic.com>
diff --git a/third_party/gazelle/add-prepatching.patch b/third_party/gazelle/add-prepatching.patch
index 2150e96..dd2b1e0 100644
--- a/third_party/gazelle/add-prepatching.patch
+++ b/third_party/gazelle/add-prepatching.patch
@@ -1,34 +1,18 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 2cb763552e2e386928e6c2211c4fb056b9ca7971 Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Thu, 14 Jan 2021 16:30:32 +0100
+From bf6362aa01dd00c82996dcabfb1cb20d7919c552 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@nexantic.com>
+Date: Wed, 22 Jul 2020 09:46:56 +0200
Subject: [PATCH] Add support for prepatching
-Company: nexantic GmbH
---
internal/go_repository.bzl | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/internal/go_repository.bzl b/internal/go_repository.bzl
-index 7f87ed1..a0ef36d 100644
+index 9928fa8..a3af13d 100644
--- a/internal/go_repository.bzl
+++ b/internal/go_repository.bzl
-@@ -130,6 +130,8 @@ def _go_repository_impl(ctx):
- if result.stderr:
+@@ -213,6 +213,8 @@ def _go_repository_impl(ctx):
+ if ctx.attr.debug_mode and result.stderr:
print("fetch_repo: " + result.stderr)
+ patch(ctx, True)
@@ -36,19 +20,19 @@
# Repositories are fetched. Determine if build file generation is needed.
build_file_names = ctx.attr.build_file_name.split(",")
existing_build_file = ""
-@@ -263,6 +265,10 @@ go_repository = repository_rule(
- "build_config": attr.label(default = "@bazel_gazelle_go_repository_config//:WORKSPACE"),
- "build_directives": attr.string_list(default = []),
+@@ -474,6 +476,10 @@ go_repository = repository_rule(
+ Gazelle directives.""",
+ ),
+ # Patches to apply before running gazelle.
+ "pre_patches": attr.label_list(),
+ "pre_patch_cmds": attr.string_list(default = []),
+
# Patches to apply after running gazelle.
- "patches": attr.label_list(),
- "patch_tool": attr.string(default = "patch"),
-@@ -273,10 +279,11 @@ go_repository = repository_rule(
- """See repository.rst#go-repository for full documentation."""
+ "patches": attr.label_list(
+ doc = "A list of patches to apply to the repository after gazelle runs.",
+@@ -504,10 +510,11 @@ go_repository = repository_rule(
+ """See repository.md#go-repository for full documentation."""
# Copied from @bazel_tools//tools/build_defs/repo:utils.bzl
-def patch(ctx):
@@ -61,7 +45,7 @@
command = "{patchtool} {patch_args} < {patchfile}".format(
patchtool = ctx.attr.patch_tool,
patchfile = ctx.path(patchfile),
-@@ -289,7 +296,8 @@ def patch(ctx):
+@@ -520,7 +527,8 @@ def patch(ctx):
if st.return_code:
fail("Error applying patch %s:\n%s%s" %
(str(patchfile), st.stderr, st.stdout))
@@ -72,5 +56,5 @@
if st.return_code:
fail("Error applying patch command %s:\n%s%s" %
--
-2.26.2
+2.25.1
diff --git a/third_party/go/patches/cel-fix-antlr.patch b/third_party/go/patches/cel-fix-antlr.patch
new file mode 100644
index 0000000..5c5636a
--- /dev/null
+++ b/third_party/go/patches/cel-fix-antlr.patch
@@ -0,0 +1,83 @@
+From a0f8916f104566a2538a70153c016de7c5d9f304 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:54:11 +0100
+Subject: [PATCH] Use conventional import path for antlr
+
+---
+ WORKSPACE | 9 +++++----
+ checker/BUILD.bazel | 2 +-
+ parser/BUILD.bazel | 4 ++--
+ parser/gen/BUILD.bazel | 2 +-
+ 4 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/WORKSPACE b/WORKSPACE
+index 4238e7a..b62cf15 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -99,11 +99,12 @@ go_repository(
+ version = "v0.3.2",
+ )
+
+-# Antlr deps to pickup golang concurrency fixes 4/30/2020
++# Antlr deps
+ go_repository(
+- name = "com_github_antlr",
+- commit = "621b933c7a7f01c67ae9de15103151fa0f9d6d90",
+- importpath = "github.com/antlr/antlr4",
++ name = "com_github_antlr_antlr4_runtime_go_antlr",
++ importpath = "github.com/antlr/antlr4/runtime/Go/antlr",
++ sum = "h1:zvkJv+9Pxm1nnEMcKnShREt4qtduHKz4iw4AB4ul0Ao=",
++ version = "v0.0.0-20220209173558-ad29539cd2e9",
+ )
+
+ # CEL Spec deps
+diff --git a/checker/BUILD.bazel b/checker/BUILD.bazel
+index 2ef326b..bec40b6 100644
+--- a/checker/BUILD.bazel
++++ b/checker/BUILD.bazel
+@@ -54,7 +54,7 @@ go_test(
+ "//test:go_default_library",
+ "//test/proto2pb:go_default_library",
+ "//test/proto3pb:go_default_library",
+- "@com_github_antlr//runtime/Go/antlr:go_default_library",
++ "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ ],
+ )
+diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel
+index a1917b4..b76e6e4 100644
+--- a/parser/BUILD.bazel
++++ b/parser/BUILD.bazel
+@@ -23,7 +23,7 @@ go_library(
+ "//common/operators:go_default_library",
+ "//common/runes:go_default_library",
+ "//parser/gen:go_default_library",
+- "@com_github_antlr//runtime/Go/antlr:go_default_library",
++ "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+ "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+@@ -45,7 +45,7 @@ go_test(
+ "//common/debug:go_default_library",
+ "//parser/gen:go_default_library",
+ "//test:go_default_library",
+- "@com_github_antlr//runtime/Go/antlr:go_default_library",
++ "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ ],
+ )
+diff --git a/parser/gen/BUILD.bazel b/parser/gen/BUILD.bazel
+index 78e0432..2271131 100644
+--- a/parser/gen/BUILD.bazel
++++ b/parser/gen/BUILD.bazel
+@@ -21,6 +21,6 @@ go_library(
+ ],
+ importpath = "github.com/google/cel-go/parser/gen",
+ deps = [
+- "@com_github_antlr//runtime/Go/antlr:go_default_library",
++ "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+ ],
+ )
+--
+2.25.1
+
diff --git a/third_party/go/patches/cel-fix-googleapis.patch b/third_party/go/patches/cel-fix-googleapis.patch
new file mode 100644
index 0000000..518cdd0
--- /dev/null
+++ b/third_party/go/patches/cel-fix-googleapis.patch
@@ -0,0 +1,256 @@
+From 86ef097e120745353232555f1d87382cac5ce2f0 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 16:11:14 +0100
+Subject: [PATCH] Fix googleapis import paths
+
+---
+ cel/BUILD.bazel | 4 ++--
+ checker/BUILD.bazel | 2 +-
+ checker/decls/BUILD.bazel | 2 +-
+ common/BUILD.bazel | 2 +-
+ common/containers/BUILD.bazel | 4 ++--
+ common/debug/BUILD.bazel | 2 +-
+ common/types/BUILD.bazel | 4 ++--
+ common/types/pb/BUILD.bazel | 2 +-
+ common/types/ref/BUILD.bazel | 2 +-
+ ext/BUILD.bazel | 2 +-
+ interpreter/BUILD.bazel | 4 ++--
+ parser/BUILD.bazel | 2 +-
+ server/BUILD.bazel | 12 ++++++------
+ test/BUILD.bazel | 2 +-
+ 14 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/cel/BUILD.bazel b/cel/BUILD.bazel
+index aed8274..6a5b8f2 100644
+--- a/cel/BUILD.bazel
++++ b/cel/BUILD.bazel
+@@ -27,7 +27,7 @@ go_library(
+ "//interpreter:go_default_library",
+ "//interpreter/functions:go_default_library",
+ "//parser:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//reflect/protodesc:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+@@ -59,6 +59,6 @@ go_test(
+ "//test/proto2pb:go_default_library",
+ "//test/proto3pb:go_default_library",
+ "@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ ],
+ )
+diff --git a/checker/BUILD.bazel b/checker/BUILD.bazel
+index 0f6e469..0873707 100644
+--- a/checker/BUILD.bazel
++++ b/checker/BUILD.bazel
+@@ -28,7 +28,7 @@ go_library(
+ "//common/types/pb:go_default_library",
+ "//common/types/ref:go_default_library",
+ "//parser:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/emptypb:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+diff --git a/checker/decls/BUILD.bazel b/checker/decls/BUILD.bazel
+index 5a24f1d..9c6bfbc 100644
+--- a/checker/decls/BUILD.bazel
++++ b/checker/decls/BUILD.bazel
+@@ -13,7 +13,7 @@ go_library(
+ ],
+ importpath = "github.com/google/cel-go/checker/decls",
+ deps = [
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//types/known/emptypb:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+ ],
+diff --git a/common/BUILD.bazel b/common/BUILD.bazel
+index 9e4ad65..d306934 100644
+--- a/common/BUILD.bazel
++++ b/common/BUILD.bazel
+@@ -16,7 +16,7 @@ go_library(
+ importpath = "github.com/google/cel-go/common",
+ deps = [
+ "//common/runes:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_x_text//width:go_default_library",
+ ],
+ )
+diff --git a/common/containers/BUILD.bazel b/common/containers/BUILD.bazel
+index 18142d9..3c45794 100644
+--- a/common/containers/BUILD.bazel
++++ b/common/containers/BUILD.bazel
+@@ -12,7 +12,7 @@ go_library(
+ ],
+ importpath = "github.com/google/cel-go/common/containers",
+ deps = [
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ ],
+ )
+
+@@ -26,6 +26,6 @@ go_test(
+ ":go_default_library",
+ ],
+ deps = [
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ ],
+ )
+diff --git a/common/debug/BUILD.bazel b/common/debug/BUILD.bazel
+index cf5c5d2..6db7f55 100644
+--- a/common/debug/BUILD.bazel
++++ b/common/debug/BUILD.bazel
+@@ -13,6 +13,6 @@ go_library(
+ importpath = "github.com/google/cel-go/common/debug",
+ deps = [
+ "//common:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ ],
+ )
+diff --git a/common/types/BUILD.bazel b/common/types/BUILD.bazel
+index 32789f5..e3970fd 100644
+--- a/common/types/BUILD.bazel
++++ b/common/types/BUILD.bazel
+@@ -37,7 +37,7 @@ go_library(
+ "//common/types/ref:go_default_library",
+ "//common/types/traits:go_default_library",
+ "@com_github_stoewer_go_strcase//:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//encoding/protojson:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+@@ -75,7 +75,7 @@ go_test(
+ "//common/types/ref:go_default_library",
+ "//test:go_default_library",
+ "//test/proto3pb:test_all_types_go_proto",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//encoding/protojson:go_default_library",
+ "@org_golang_google_protobuf//types/known/anypb:go_default_library",
+ "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
+diff --git a/common/types/pb/BUILD.bazel b/common/types/pb/BUILD.bazel
+index b0c79a7..37cd0a7 100644
+--- a/common/types/pb/BUILD.bazel
++++ b/common/types/pb/BUILD.bazel
+@@ -16,7 +16,7 @@ go_library(
+ ],
+ importpath = "github.com/google/cel-go/common/types/pb",
+ deps = [
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoregistry:go_default_library",
+diff --git a/common/types/ref/BUILD.bazel b/common/types/ref/BUILD.bazel
+index 1d0f468..9243b47 100644
+--- a/common/types/ref/BUILD.bazel
++++ b/common/types/ref/BUILD.bazel
+@@ -13,7 +13,7 @@ go_library(
+ ],
+ importpath = "github.com/google/cel-go/common/types/ref",
+ deps = [
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+ ],
+diff --git a/ext/BUILD.bazel b/ext/BUILD.bazel
+index 2b98ad3..68a9d72 100644
+--- a/ext/BUILD.bazel
++++ b/ext/BUILD.bazel
+@@ -19,7 +19,7 @@ go_library(
+ "//common/types:go_default_library",
+ "//common/types/ref:go_default_library",
+ "//interpreter/functions:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ ],
+ )
+
+diff --git a/interpreter/BUILD.bazel b/interpreter/BUILD.bazel
+index 2f4079f..6b30db8 100644
+--- a/interpreter/BUILD.bazel
++++ b/interpreter/BUILD.bazel
+@@ -30,7 +30,7 @@ go_library(
+ "//common/types/ref:go_default_library",
+ "//common/types/traits:go_default_library",
+ "//interpreter/functions:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/durationpb:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+@@ -63,7 +63,7 @@ go_test(
+ "//test:go_default_library",
+ "//test/proto2pb:go_default_library",
+ "//test/proto3pb:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/anypb:go_default_library",
+ ],
+diff --git a/parser/BUILD.bazel b/parser/BUILD.bazel
+index b76e6e4..c098fe6 100644
+--- a/parser/BUILD.bazel
++++ b/parser/BUILD.bazel
+@@ -24,7 +24,7 @@ go_library(
+ "//common/runes:go_default_library",
+ "//parser/gen:go_default_library",
+ "@com_github_antlr_antlr4_runtime_go_antlr//:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+ ],
+diff --git a/server/BUILD.bazel b/server/BUILD.bazel
+index 7174aa9..a4d9ff6 100644
+--- a/server/BUILD.bazel
++++ b/server/BUILD.bazel
+@@ -19,9 +19,9 @@ go_library(
+ "//common/types/traits:go_default_library",
+ "@com_google_cel_spec//proto/test/v1/proto2:test_all_types_go_proto",
+ "@com_google_cel_spec//proto/test/v1/proto3:test_all_types_go_proto",
+- "@org_golang_google_genproto//googleapis/api/expr/conformance/v1alpha1:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+- "@org_golang_google_genproto//googleapis/rpc/status:go_default_library",
++ "@go_googleapis//google/api/expr/conformance/v1alpha1:conformance_go_proto",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
++ "@go_googleapis//google/rpc/status:status_go_proto",
+ "@org_golang_google_grpc//codes:go_default_library",
+ "@org_golang_google_grpc//status:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
+@@ -44,8 +44,8 @@ go_test(
+ "//common/operators:go_default_library",
+ "//test:go_default_library",
+ "@com_google_cel_spec//tools/celrpc:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/conformance/v1alpha1:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
+- "@org_golang_google_genproto//googleapis/rpc/status:go_default_library",
++ "@go_googleapis//google/api/expr/conformance/v1alpha1:conformance_go_proto",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
++ "@go_googleapis//google/rpc/status:status_go_proto",
+ ],
+ )
+diff --git a/test/BUILD.bazel b/test/BUILD.bazel
+index 0d39c70..3b8c460 100644
+--- a/test/BUILD.bazel
++++ b/test/BUILD.bazel
+@@ -20,7 +20,7 @@ go_library(
+ importpath = "github.com/google/cel-go/test",
+ deps = [
+ "//common/operators:go_default_library",
+- "@org_golang_google_genproto//googleapis/api/expr/v1alpha1:go_default_library",
++ "@go_googleapis//google/api/expr/v1alpha1:expr_go_proto",
+ "@org_golang_google_protobuf//proto:go_default_library",
+ "@org_golang_google_protobuf//types/known/structpb:go_default_library",
+ ],
+--
+2.25.1
+
diff --git a/third_party/go/patches/containerd-netns-statedir.patch b/third_party/go/patches/containerd-netns-statedir.patch
deleted file mode 100644
index a693eb7..0000000
--- a/third_party/go/patches/containerd-netns-statedir.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 3e7a8cebf9d40487adc7d4a22b5c628add5e7eac Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Wed, 27 Jan 2021 13:05:30 +0100
-Subject: [PATCH] Move netns directory into StateDir
-
----
- pkg/netns/netns_unix.go | 12 +++++-------
- pkg/server/sandbox_run.go | 3 ++-
- 2 files changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/pkg/netns/netns_unix.go b/pkg/netns/netns_unix.go
-index 7449e235..b31716cb 100644
---- a/pkg/netns/netns_unix.go
-+++ b/pkg/netns/netns_unix.go
-@@ -48,14 +48,12 @@ import (
- osinterface "github.com/containerd/cri/pkg/os"
- )
-
--const nsRunDir = "/var/run/netns"
--
- // Some of the following functions are migrated from
- // https://github.com/containernetworking/plugins/blob/master/pkg/testutils/netns_linux.go
-
- // newNS creates a new persistent (bind-mounted) network namespace and returns the
- // path to the network namespace.
--func newNS() (nsPath string, err error) {
-+func newNS(baseDir string) (nsPath string, err error) {
- b := make([]byte, 16)
- if _, err := rand.Reader.Read(b); err != nil {
- return "", errors.Wrap(err, "failed to generate random netns name")
-@@ -64,13 +62,13 @@ func newNS() (nsPath string, err error) {
- // Create the directory for mounting network namespaces
- // This needs to be a shared mountpoint in case it is mounted in to
- // other namespaces (containers)
-- if err := os.MkdirAll(nsRunDir, 0755); err != nil {
-+ if err := os.MkdirAll(baseDir, 0755); err != nil {
- return "", err
- }
-
- // create an empty file at the mount point
- nsName := fmt.Sprintf("cni-%x-%x-%x-%x-%x", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
-- nsPath = path.Join(nsRunDir, nsName)
-+ nsPath = path.Join(baseDir, nsName)
- mountPointFd, err := os.Create(nsPath)
- if err != nil {
- return "", err
-@@ -164,8 +162,8 @@ type NetNS struct {
- }
-
- // NewNetNS creates a network namespace.
--func NewNetNS() (*NetNS, error) {
-- path, err := newNS()
-+func NewNetNS(baseDir string) (*NetNS, error) {
-+ path, err := newNS(baseDir)
- if err != nil {
- return nil, errors.Wrap(err, "failed to setup netns")
- }
-diff --git a/pkg/server/sandbox_run.go b/pkg/server/sandbox_run.go
-index dd4c51e3..32a2d6e8 100644
---- a/pkg/server/sandbox_run.go
-+++ b/pkg/server/sandbox_run.go
-@@ -19,6 +19,7 @@ package server
- import (
- "encoding/json"
- "math"
-+ "path/filepath"
- goruntime "runtime"
- "strings"
-
-@@ -117,7 +118,7 @@ func (c *criService) RunPodSandbox(ctx context.Context, r *runtime.RunPodSandbox
- // handle. NetNSPath in sandbox metadata and NetNS is non empty only for non host network
- // namespaces. If the pod is in host network namespace then both are empty and should not
- // be used.
-- sandbox.NetNS, err = netns.NewNetNS()
-+ sandbox.NetNS, err = netns.NewNetNS(filepath.Join(c.config.StateDir, "netns"))
- if err != nil {
- return nil, errors.Wrapf(err, "failed to create network namespace for sandbox %q", id)
- }
---
-2.25.1
-
diff --git a/third_party/go/patches/containerd-no-tracing.patch b/third_party/go/patches/containerd-no-tracing.patch
new file mode 100644
index 0000000..ee6f8c8
--- /dev/null
+++ b/third_party/go/patches/containerd-no-tracing.patch
@@ -0,0 +1,43 @@
+From 26ac5a008b349b77288d29cc483ea5d6129f298c Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:35:44 +0100
+Subject: [PATCH] Disable tracing for otel compatibility
+
+---
+ cmd/containerd/builtins.go | 1 -
+ cmd/containerd/command/main.go | 2 --
+ 2 files changed, 3 deletions(-)
+
+diff --git a/cmd/containerd/builtins.go b/cmd/containerd/builtins.go
+index 8c6f1fe86..dd8b1d3d9 100644
+--- a/cmd/containerd/builtins.go
++++ b/cmd/containerd/builtins.go
+@@ -36,5 +36,4 @@ import (
+ _ "github.com/containerd/containerd/services/snapshots"
+ _ "github.com/containerd/containerd/services/tasks"
+ _ "github.com/containerd/containerd/services/version"
+- _ "github.com/containerd/containerd/tracing/plugin"
+ )
+diff --git a/cmd/containerd/command/main.go b/cmd/containerd/command/main.go
+index f549e08a3..dfde3599e 100644
+--- a/cmd/containerd/command/main.go
++++ b/cmd/containerd/command/main.go
+@@ -35,7 +35,6 @@ import (
+ "github.com/containerd/containerd/services/server"
+ srvconfig "github.com/containerd/containerd/services/server/config"
+ "github.com/containerd/containerd/sys"
+- "github.com/containerd/containerd/tracing"
+ "github.com/containerd/containerd/version"
+ "github.com/sirupsen/logrus"
+ "github.com/urfave/cli"
+@@ -370,7 +369,6 @@ func setLogFormat(config *srvconfig.Config) error {
+ }
+
+ func setLogHooks() {
+- logrus.StandardLogger().AddHook(tracing.NewLogrusHook())
+ }
+
+ func dumpStacks(writeToFile bool) {
+--
+2.25.1
+
diff --git a/third_party/go/patches/coredns-remove-unused-plugins.patch b/third_party/go/patches/coredns-remove-unused-plugins.patch
index 9180d48..e952585 100644
--- a/third_party/go/patches/coredns-remove-unused-plugins.patch
+++ b/third_party/go/patches/coredns-remove-unused-plugins.patch
@@ -1,202 +1,156 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From b8a216a10775163dac6267127c35c9230ccbc5f7 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Mon, 27 Jul 2020 14:25:03 +0200
-Subject: [PATCH] Removed unused plugins
+From 355d38f38cf241b91a862795892bcb87c5729d2e Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 13:39:39 +0100
+Subject: [PATCH] Remove unused plugins
---
- core/dnsserver/zdirectives.go | 26 --------------------------
- core/plugin/zplugin.go | 26 --------------------------
- plugin.cfg | 26 --------------------------
- plugin/kubernetes/setup.go | 3 ---
- 4 files changed, 81 deletions(-)
+ core/dnsserver/zdirectives.go | 7 -------
+ core/plugin/zplugin.go | 7 -------
+ plugin.cfg | 7 -------
+ plugin/kubernetes/setup.go | 3 ---
+ 4 files changed, 24 deletions(-)
diff --git a/core/dnsserver/zdirectives.go b/core/dnsserver/zdirectives.go
-index 1bf449cb..c3619160 100644
+index bca21718..678c02c6 100644
--- a/core/dnsserver/zdirectives.go
+++ b/core/dnsserver/zdirectives.go
-@@ -11,48 +11,22 @@ package dnsserver
+@@ -11,7 +11,6 @@ package dnsserver
// care what plugin above them are doing.
var Directives = []string{
"metadata",
-- "cancel",
-- "tls",
+- "geoip",
+ "cancel",
+ "tls",
"reload",
- "nsid",
- "bufsize",
-- "root",
+@@ -20,14 +19,12 @@ var Directives = []string{
+ "root",
"bind",
"debug",
- "trace",
-- "ready",
+ "ready",
"health",
-- "pprof",
-- "prometheus",
+ "pprof",
+ "prometheus",
"errors",
"log",
- "dnstap",
+ "local",
"dns64",
"acl",
- "any",
-- "chaos",
- "loadbalance",
- "cache",
-- "rewrite",
-- "dnssec",
-- "autopath",
+@@ -43,15 +40,11 @@ var Directives = []string{
"template",
-- "transfer",
+ "transfer",
"hosts",
- "route53",
- "azure",
- "clouddns",
-- "k8s_external",
+ "k8s_external",
"kubernetes",
-- "file",
-- "auto",
-- "secondary",
+ "file",
+ "auto",
+ "secondary",
- "etcd",
-- "loop",
+ "loop",
"forward",
-- "grpc",
-- "erratic",
- "whoami",
-- "on",
-- "sign",
- }
+ "grpc",
diff --git a/core/plugin/zplugin.go b/core/plugin/zplugin.go
-index cf83be70..de026516 100644
+index a9167eea..2a5d0b13 100644
--- a/core/plugin/zplugin.go
+++ b/core/plugin/zplugin.go
-@@ -4,49 +4,23 @@ package plugin
-
- import (
- // Include all plugins.
-- _ "github.com/caddyserver/caddy/onevent"
- _ "github.com/coredns/coredns/plugin/acl"
+@@ -9,23 +9,18 @@ import (
_ "github.com/coredns/coredns/plugin/any"
-- _ "github.com/coredns/coredns/plugin/auto"
-- _ "github.com/coredns/coredns/plugin/autopath"
+ _ "github.com/coredns/coredns/plugin/auto"
+ _ "github.com/coredns/coredns/plugin/autopath"
- _ "github.com/coredns/coredns/plugin/azure"
_ "github.com/coredns/coredns/plugin/bind"
_ "github.com/coredns/coredns/plugin/bufsize"
_ "github.com/coredns/coredns/plugin/cache"
-- _ "github.com/coredns/coredns/plugin/cancel"
-- _ "github.com/coredns/coredns/plugin/chaos"
+ _ "github.com/coredns/coredns/plugin/cancel"
+ _ "github.com/coredns/coredns/plugin/chaos"
- _ "github.com/coredns/coredns/plugin/clouddns"
_ "github.com/coredns/coredns/plugin/debug"
_ "github.com/coredns/coredns/plugin/dns64"
-- _ "github.com/coredns/coredns/plugin/dnssec"
+ _ "github.com/coredns/coredns/plugin/dnssec"
- _ "github.com/coredns/coredns/plugin/dnstap"
-- _ "github.com/coredns/coredns/plugin/erratic"
+ _ "github.com/coredns/coredns/plugin/erratic"
_ "github.com/coredns/coredns/plugin/errors"
- _ "github.com/coredns/coredns/plugin/etcd"
-- _ "github.com/coredns/coredns/plugin/file"
+ _ "github.com/coredns/coredns/plugin/file"
_ "github.com/coredns/coredns/plugin/forward"
-- _ "github.com/coredns/coredns/plugin/grpc"
+- _ "github.com/coredns/coredns/plugin/geoip"
+ _ "github.com/coredns/coredns/plugin/grpc"
+ _ "github.com/coredns/coredns/plugin/header"
_ "github.com/coredns/coredns/plugin/health"
- _ "github.com/coredns/coredns/plugin/hosts"
-- _ "github.com/coredns/coredns/plugin/k8s_external"
- _ "github.com/coredns/coredns/plugin/kubernetes"
- _ "github.com/coredns/coredns/plugin/loadbalance"
- _ "github.com/coredns/coredns/plugin/log"
-- _ "github.com/coredns/coredns/plugin/loop"
- _ "github.com/coredns/coredns/plugin/metadata"
-- _ "github.com/coredns/coredns/plugin/metrics"
- _ "github.com/coredns/coredns/plugin/nsid"
-- _ "github.com/coredns/coredns/plugin/pprof"
-- _ "github.com/coredns/coredns/plugin/ready"
+@@ -45,12 +40,10 @@ import (
_ "github.com/coredns/coredns/plugin/reload"
-- _ "github.com/coredns/coredns/plugin/rewrite"
-- _ "github.com/coredns/coredns/plugin/root"
+ _ "github.com/coredns/coredns/plugin/rewrite"
+ _ "github.com/coredns/coredns/plugin/root"
- _ "github.com/coredns/coredns/plugin/route53"
-- _ "github.com/coredns/coredns/plugin/secondary"
-- _ "github.com/coredns/coredns/plugin/sign"
+ _ "github.com/coredns/coredns/plugin/secondary"
+ _ "github.com/coredns/coredns/plugin/sign"
_ "github.com/coredns/coredns/plugin/template"
-- _ "github.com/coredns/coredns/plugin/tls"
+ _ "github.com/coredns/coredns/plugin/tls"
- _ "github.com/coredns/coredns/plugin/trace"
-- _ "github.com/coredns/coredns/plugin/transfer"
+ _ "github.com/coredns/coredns/plugin/transfer"
_ "github.com/coredns/coredns/plugin/whoami"
)
diff --git a/plugin.cfg b/plugin.cfg
-index c389d74e..80a8bc51 100644
+index 628e7141..d4ce1c89 100644
--- a/plugin.cfg
+++ b/plugin.cfg
-@@ -20,47 +20,21 @@
+@@ -20,7 +20,6 @@
# log:log
-
+
metadata:metadata
--cancel:cancel
--tls:tls
+-geoip:geoip
+ cancel:cancel
+ tls:tls
reload:reload
- nsid:nsid
- bufsize:bufsize
--root:root
+@@ -29,14 +28,12 @@ bufsize:bufsize
+ root:root
bind:bind
debug:debug
-trace:trace
--ready:ready
+ ready:ready
health:health
--pprof:pprof
--prometheus:metrics
+ pprof:pprof
+ prometheus:metrics
errors:errors
log:log
-dnstap:dnstap
+ local:local
dns64:dns64
acl:acl
- any:any
--chaos:chaos
- loadbalance:loadbalance
- cache:cache
--rewrite:rewrite
--dnssec:dnssec
--autopath:autopath
+@@ -52,15 +49,11 @@ minimal:minimal
template:template
--transfer:transfer
+ transfer:transfer
hosts:hosts
-route53:route53
-azure:azure
-clouddns:clouddns
--k8s_external:k8s_external
+ k8s_external:k8s_external
kubernetes:kubernetes
--file:file
--auto:auto
--secondary:secondary
+ file:file
+ auto:auto
+ secondary:secondary
-etcd:etcd
--loop:loop
+ loop:loop
forward:forward
--grpc:grpc
--erratic:erratic
- whoami:whoami
--on:github.com/caddyserver/caddy/onevent
--sign:sign
+ grpc:grpc
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go
-index 0c46a3ab..827fc141 100644
+index 5f5ab058..ae1a7cf8 100644
--- a/plugin/kubernetes/setup.go
+++ b/plugin/kubernetes/setup.go
-@@ -20,9 +20,6 @@ import (
- "github.com/caddyserver/caddy"
+@@ -17,9 +17,6 @@ import (
+
"github.com/miekg/dns"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
- _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
- _ "k8s.io/client-go/plugin/pkg/client/auth/oidc" // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
- _ "k8s.io/client-go/plugin/pkg/client/auth/openstack" // pull this in here, because we want it excluded if plugin.cfg doesn't have k8s
"k8s.io/client-go/tools/clientcmd"
- "k8s.io/klog"
+ "k8s.io/klog/v2"
)
---
+--
2.25.1
+
diff --git a/third_party/go/patches/delve-fix-cgo.patch b/third_party/go/patches/delve-fix-cgo.patch
new file mode 100644
index 0000000..d8a5254
--- /dev/null
+++ b/third_party/go/patches/delve-fix-cgo.patch
@@ -0,0 +1,11 @@
+diff -urN b/pkg/proc/internal/ebpf/BUILD.bazel c/pkg/proc/internal/ebpf/BUILD.bazel
+--- b/pkg/proc/internal/ebpf/BUILD.bazel 2022-01-14 23:29:02.948089761 +0000
++++ c/pkg/proc/internal/ebpf/BUILD.bazel 2022-01-14 23:13:52.964810803 +0000
+@@ -7,6 +7,7 @@
+ "helpers.go",
+ "helpers_disabled.go",
+ "trace_bpfel_x86.go",
++ "bpf/include/function_vals.bpf.h",
+ ],
+ cgo = True,
+ embedsrcs = select({
\ No newline at end of file
diff --git a/third_party/go/patches/etcd-fix-stub.patch b/third_party/go/patches/etcd-fix-stub.patch
new file mode 100644
index 0000000..bb47ac4
--- /dev/null
+++ b/third_party/go/patches/etcd-fix-stub.patch
@@ -0,0 +1,9 @@
+--- a/grpc_testing/stub_server.go
++++ b/grpc_testing/stub_server.go
+@@ -86,5 +86,5 @@ func (d dummyStubServer) UnaryCall(context.Context, *testpb.SimpleRequest) (*tes
+ // NewDummyStubServer creates a simple test server that serves Unary calls with
+ // responses with the given payload.
+ func NewDummyStubServer(body []byte) *StubServer {
+- return New(dummyStubServer{body: body})
++ return New(&dummyStubServer{body: body})
+ }
diff --git a/third_party/go/patches/go-proto-validators-default-alias.patch b/third_party/go/patches/go-proto-validators-default-alias.patch
deleted file mode 100644
index 46f21a9..0000000
--- a/third_party/go/patches/go-proto-validators-default-alias.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 49b5f957d01cd50e5303cfc0e6c7f350d7e1c24e Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@monogon.tech>
-Date: Tue, 30 Nov 2021 03:19:37 +0100
-Subject: [PATCH] Alias go_default_library in BUILD to make Gazelle work
-
----
- BUILD.bazel | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/BUILD.bazel b/BUILD.bazel
-index 9a1edd4..e5b8f96 100644
---- a/BUILD.bazel
-+++ b/BUILD.bazel
-@@ -14,6 +14,12 @@ gazelle(
- # By default resolve the top-level package to the gogo variant as it's required for the plugin compilation.
- # gazelle:resolve go github.com/mwitkow/go-proto-validators //:validators_gogo
-
-+alias(
-+ name = "go_default_library",
-+ actual = "validators_golang",
-+ visibility = ["//visibility:public"],
-+)
-+
- go_proto_compiler(
- name = "go_proto_validators",
- options = ["gogoimport=false"],
---
-2.25.1
-
diff --git a/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch b/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch
new file mode 100644
index 0000000..ae7fcf3
--- /dev/null
+++ b/third_party/go/patches/go-tpm-tools-fix-proto-paths.patch
@@ -0,0 +1,66 @@
+From a799a94b7b67b21d1eecfe66dbe264ef3e276cd3 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 30 Mar 2022 15:48:23 +0200
+Subject: [PATCH] Fix proto file paths
+
+---
+ proto/0001-Fix-proto-file-paths.patch | 23 +++++++++++++++++++++++
+ proto/{ => attest}/attest.proto | 2 +-
+ proto/{ => tpm}/tpm.proto | 0
+ 3 files changed, 24 insertions(+), 1 deletion(-)
+ create mode 100644 proto/0001-Fix-proto-file-paths.patch
+ rename proto/{ => attest}/attest.proto (99%)
+ rename proto/{ => tpm}/tpm.proto (100%)
+
+diff --git a/proto/0001-Fix-proto-file-paths.patch b/proto/0001-Fix-proto-file-paths.patch
+new file mode 100644
+index 0000000..22e3b45
+--- /dev/null
++++ b/proto/0001-Fix-proto-file-paths.patch
+@@ -0,0 +1,23 @@
++From ba5bf5ac1e0b3d92e8f19a0feb2307515c0e2baf Mon Sep 17 00:00:00 2001
++From: Lorenz Brun <lorenz@monogon.tech>
++Date: Wed, 30 Mar 2022 15:48:23 +0200
++Subject: [PATCH] Fix proto file paths
++
++---
++ proto/{ => attest}/attest.proto | 0
++ proto/{ => tpm}/tpm.proto | 0
++ 2 files changed, 0 insertions(+), 0 deletions(-)
++ rename proto/{ => attest}/attest.proto (100%)
++ rename proto/{ => tpm}/tpm.proto (100%)
++
++diff --git a/proto/attest.proto b/proto/attest/attest.proto
++similarity index 100%
++rename from proto/attest.proto
++rename to proto/attest/attest.proto
++diff --git a/proto/tpm.proto b/proto/tpm/tpm.proto
++similarity index 100%
++rename from proto/tpm.proto
++rename to proto/tpm/tpm.proto
++--
++2.25.1
++
+diff --git a/proto/attest.proto b/proto/attest/attest.proto
+similarity index 99%
+rename from proto/attest.proto
+rename to proto/attest/attest.proto
+index fbaf5bd..7960297 100644
+--- a/proto/attest.proto
++++ b/proto/attest/attest.proto
+@@ -3,7 +3,7 @@ syntax = "proto3";
+ package attest;
+ option go_package = "github.com/google/go-tpm-tools/proto/attest";
+
+-import "tpm.proto";
++import "proto/tpm/tpm.proto";
+
+ // Information uniquely identifying a GCE instance. Can be used to create an
+ // instance URL, which can then be used with GCE APIs. Formatted like:
+diff --git a/proto/tpm.proto b/proto/tpm/tpm.proto
+similarity index 100%
+rename from proto/tpm.proto
+rename to proto/tpm/tpm.proto
+--
+2.25.1
+
diff --git a/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch b/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch
deleted file mode 100644
index f653492..0000000
--- a/third_party/go/patches/gvisor-build-against-newer-runtime-specs.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 9fc5e36f4e0bd691fc502372ebf837d24fbe5297 Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Fri, 15 Jan 2021 16:22:33 +0100
-Subject: [PATCH] Build against new opencontainers runtime-specs
-Company: nexantic GmbH
-
----
- runsc/container/container.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runsc/container/container.go b/runsc/container/container.go
-index 418a27beb..8508ded5a 100644
---- a/runsc/container/container.go
-+++ b/runsc/container/container.go
-@@ -747,7 +747,7 @@ func (c *Container) State() specs.State {
- return specs.State{
- Version: specs.Version,
- ID: c.ID,
-- Status: c.Status.String(),
-+ Status: specs.ContainerState(c.Status.String()),
- Pid: c.SandboxPid(),
- Bundle: c.BundleDir,
- }
---
-2.26.2
-
diff --git a/third_party/go/patches/gvisor-cgroup-fix.patch b/third_party/go/patches/gvisor-cgroup-fix.patch
deleted file mode 100644
index aba0b4a..0000000
--- a/third_party/go/patches/gvisor-cgroup-fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fcd48e672489f41c9977e092937ff806a7e772bd Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@monogon.tech>
-Date: Thu, 11 Nov 2021 13:58:50 +0100
-Subject: [PATCH] Make systemd cgroup optional
-
-This breaks gVisor on systems that use custom inits/cgroup setups which
-don't have this cgroup and don't need it.
----
- runsc/cgroup/cgroup.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runsc/cgroup/cgroup.go b/runsc/cgroup/cgroup.go
-index 0eb5821a9..2116bddca 100644
---- a/runsc/cgroup/cgroup.go
-+++ b/runsc/cgroup/cgroup.go
-@@ -58,7 +58,7 @@ var controllers = map[string]controller{
- "freezer": &noop{},
- "perf_event": &noop{},
- "rdma": &noop{isOptional: true},
-- "systemd": &noop{},
-+ "systemd": &noop{isOptional: true},
- }
-
- // IsOnlyV2 checks whether cgroups V2 is enabled and V1 is not.
---
-2.25.1
-
diff --git a/third_party/go/patches/gvisor-containerd-compat.patch b/third_party/go/patches/gvisor-containerd-compat.patch
new file mode 100644
index 0000000..89eb40f
--- /dev/null
+++ b/third_party/go/patches/gvisor-containerd-compat.patch
@@ -0,0 +1,114 @@
+From bf861ce45721791336b617a44844613bb74c677a Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Tue, 22 Mar 2022 00:52:48 +0100
+Subject: [PATCH] containerd 1.6 compatibility
+
+---
+ pkg/shim/proc/exec.go | 2 +-
+ pkg/shim/proc/init.go | 2 +-
+ pkg/shim/service.go | 17 +++++++++--------
+ pkg/shim/service_linux.go | 2 +-
+ 4 files changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/pkg/shim/proc/exec.go b/pkg/shim/proc/exec.go
+index da2e21598..d0d14dd24 100644
+--- a/pkg/shim/proc/exec.go
++++ b/pkg/shim/proc/exec.go
+@@ -238,7 +238,7 @@ func (e *execProcess) start(ctx context.Context) error {
+ if err != nil {
+ return fmt.Errorf("failed to retrieve console master: %w", err)
+ }
+- if e.console, err = e.parent.Platform.CopyConsole(ctx, console, e.stdio.Stdin, e.stdio.Stdout, e.stdio.Stderr, &e.wg); err != nil {
++ if e.console, err = e.parent.Platform.CopyConsole(ctx, console, e.id, e.stdio.Stdin, e.stdio.Stdout, e.stdio.Stderr, &e.wg); err != nil {
+ return fmt.Errorf("failed to start console copy: %w", err)
+ }
+ } else if !e.stdio.IsNull() {
+diff --git a/pkg/shim/proc/init.go b/pkg/shim/proc/init.go
+index 6bf090813..76df1101a 100644
+--- a/pkg/shim/proc/init.go
++++ b/pkg/shim/proc/init.go
+@@ -152,7 +152,7 @@ func (p *Init) Create(ctx context.Context, r *CreateConfig) (err error) {
+ if err != nil {
+ return fmt.Errorf("failed to retrieve console master: %w", err)
+ }
+- console, err = p.Platform.CopyConsole(ctx, console, r.Stdin, r.Stdout, r.Stderr, &p.wg)
++ console, err = p.Platform.CopyConsole(ctx, console, r.ID, r.Stdin, r.Stdout, r.Stderr, &p.wg)
+ if err != nil {
+ return fmt.Errorf("failed to start console copy: %w", err)
+ }
+diff --git a/pkg/shim/service.go b/pkg/shim/service.go
+index 68966afdf..772168052 100644
+--- a/pkg/shim/service.go
++++ b/pkg/shim/service.go
+@@ -50,7 +50,7 @@ import (
+ "github.com/sirupsen/logrus"
+ "golang.org/x/sys/unix"
+ "gvisor.dev/gvisor/pkg/cleanup"
+- "gvisor.dev/gvisor/pkg/shim/runtimeoptions/v14"
++ v14 "gvisor.dev/gvisor/pkg/shim/runtimeoptions/v14"
+
+ "gvisor.dev/gvisor/pkg/shim/proc"
+ "gvisor.dev/gvisor/pkg/shim/runsc"
+@@ -189,7 +189,7 @@ type service struct {
+ shimAddress string
+ }
+
+-func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAddress string) (*exec.Cmd, error) {
++func (s *service) newCommand(ctx context.Context, id, containerdBinary, containerdAddress string) (*exec.Cmd, error) {
+ ns, err := namespaces.NamespaceRequired(ctx)
+ if err != nil {
+ return nil, err
+@@ -204,6 +204,7 @@ func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAd
+ }
+ args := []string{
+ "-namespace", ns,
++ "-id", id,
+ "-address", containerdAddress,
+ "-publish-binary", containerdBinary,
+ }
+@@ -219,14 +220,14 @@ func (s *service) newCommand(ctx context.Context, containerdBinary, containerdAd
+ return cmd, nil
+ }
+
+-func (s *service) StartShim(ctx context.Context, id, containerdBinary, containerdAddress, containerdTTRPCAddress string) (string, error) {
+- log.L.Debugf("StartShim, id: %s, binary: %q, address: %q", id, containerdBinary, containerdAddress)
++func (s *service) StartShim(ctx context.Context, opts shim.StartOpts) (string, error) {
++ log.L.Debugf("StartShim, id: %s, binary: %q, address: %q", opts.ID, opts.ContainerdBinary, opts.Address)
+
+- cmd, err := s.newCommand(ctx, containerdBinary, containerdAddress)
++ cmd, err := s.newCommand(ctx, opts.ID, opts.ContainerdBinary, opts.Address)
+ if err != nil {
+ return "", err
+ }
+- address, err := shim.SocketAddress(ctx, containerdAddress, id)
++ address, err := shim.SocketAddress(ctx, opts.Address, opts.ID)
+ if err != nil {
+ return "", err
+ }
+@@ -280,8 +281,8 @@ func (s *service) StartShim(ctx context.Context, id, containerdBinary, container
+ if err := shim.WriteAddress(shimAddressPath, address); err != nil {
+ return "", err
+ }
+- if err := shim.SetScore(cmd.Process.Pid); err != nil {
+- return "", fmt.Errorf("failed to set OOM Score on shim: %w", err)
++ if err := shim.AdjustOOMScore(cmd.Process.Pid); err != nil {
++ return "", fmt.Errorf("failed to adjust OOM score for shim: %w", err)
+ }
+ cu.Release()
+ return address, nil
+diff --git a/pkg/shim/service_linux.go b/pkg/shim/service_linux.go
+index fb2f8b062..52c82ca90 100644
+--- a/pkg/shim/service_linux.go
++++ b/pkg/shim/service_linux.go
+@@ -33,7 +33,7 @@ type linuxPlatform struct {
+ epoller *console.Epoller
+ }
+
+-func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console, stdin, stdout, stderr string, wg *sync.WaitGroup) (console.Console, error) {
++func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console, id, stdin, stdout, stderr string, wg *sync.WaitGroup) (console.Console, error) {
+ if p.epoller == nil {
+ return nil, fmt.Errorf("uninitialized epoller")
+ }
+--
+2.25.1
+
diff --git a/third_party/go/patches/gvisor-fix-resolution.patch b/third_party/go/patches/gvisor-fix-resolution.patch
new file mode 100644
index 0000000..71e0af5
--- /dev/null
+++ b/third_party/go/patches/gvisor-fix-resolution.patch
@@ -0,0 +1,10 @@
+--- a/pkg/coverage/BUILD.bazel
++++ b/pkg/coverage/BUILD.bazel
+@@ -11,7 +11,7 @@ go_library(
+ deps = [
+ "//pkg/hostarch",
+ "//pkg/sync",
+- "@io_bazel_rules_go//go/tools/coverdata:go_default_library",
++ "@io_bazel_rules_go//go/tools/coverdata",
+ ],
+ )
diff --git a/third_party/go/patches/gvisor-shim-root.patch b/third_party/go/patches/gvisor-shim-root.patch
deleted file mode 100644
index 6b10797..0000000
--- a/third_party/go/patches/gvisor-shim-root.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 6cbcb8e61b60046e51ff79674b78031707739401 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 6 May 2020 18:52:14 +0200
-Subject: [PATCH] Fix externally-configured non-standard root paths
-
-Going upstream as https://github.com/google/gvisor-containerd-shim/pull/60
-
----
- pkg/v2/service.go | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/pkg/v2/service.go b/pkg/v2/service.go
-index c1df4b8..f7f5847 100644
---- a/pkg/v2/service.go
-+++ b/pkg/v2/service.go
-@@ -103,6 +103,7 @@ type service struct {
- processes map[string]process.Process
- events chan interface{}
- platform stdio.Platform
-+ opts options.Options
- ec chan proc.Exit
-
- id string
-@@ -194,7 +195,7 @@ func (s *service) Cleanup(ctx context.Context) (*taskAPI.DeleteResponse, error)
- if err != nil {
- return nil, err
- }
-- r := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil)
-+ r := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil)
- if err := r.Delete(ctx, s.id, &runsc.DeleteOpts{
- Force: true,
- }); err != nil {
-@@ -344,6 +345,7 @@ func (s *service) Create(ctx context.Context, r *taskAPI.CreateTaskRequest) (_ *
- s.id = r.ID
- s.bundle = r.Bundle
- s.task = process
-+ s.opts = opts
- return &taskAPI.CreateTaskResponse{
- Pid: uint32(process.Pid()),
- }, nil
-@@ -577,7 +579,7 @@ func (s *service) Stats(ctx context.Context, r *taskAPI.StatsRequest) (*taskAPI.
- if err != nil {
- return nil, err
- }
-- rs := proc.NewRunsc(proc.RunscRoot, path, ns, runtime, nil)
-+ rs := proc.NewRunsc(s.opts.Root, path, ns, runtime, nil)
- stats, err := rs.Stats(ctx, s.id)
- if err != nil {
- return nil, err
---
-2.25.1
-
diff --git a/third_party/go/patches/gvisor.patch b/third_party/go/patches/gvisor.patch
deleted file mode 100644
index 143ee59..0000000
--- a/third_party/go/patches/gvisor.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 69b2c3b6e2594a3f28e4ea1141bef542456b3eb2 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 5 Feb 2020 17:14:19 +0100
-Subject: [PATCH] Fix vdso include that breaks in an external
-
----
- vdso/cycle_clock.h | 2 +-
- vdso/seqlock.h | 4 ++--
- vdso/vdso.cc | 4 ++--
- vdso/vdso_time.cc | 8 ++++----
- 4 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/vdso/cycle_clock.h b/vdso/cycle_clock.h
-index 5d3fbb25..fe15812c 100644
---- a/vdso/cycle_clock.h
-+++ b/vdso/cycle_clock.h
-@@ -17,7 +17,7 @@
-
- #include <stdint.h>
-
--#include "vdso/barrier.h"
-+#include "barrier.h"
-
- namespace vdso {
-
-diff --git a/vdso/seqlock.h b/vdso/seqlock.h
-index 7a173174..fff99748 100644
---- a/vdso/seqlock.h
-+++ b/vdso/seqlock.h
-@@ -18,8 +18,8 @@
-
- #include <stdint.h>
-
--#include "vdso/barrier.h"
--#include "vdso/compiler.h"
-+#include "barrier.h"
-+#include "compiler.h"
-
- namespace vdso {
-
-diff --git a/vdso/vdso.cc b/vdso/vdso.cc
-index 8bb80a7a..210d31ff 100644
---- a/vdso/vdso.cc
-+++ b/vdso/vdso.cc
-@@ -19,8 +19,8 @@
- #include <sys/time.h>
- #include <time.h>
-
--#include "vdso/syscalls.h"
--#include "vdso/vdso_time.h"
-+#include "syscalls.h"
-+#include "vdso_time.h"
-
- namespace vdso {
- namespace {
-diff --git a/vdso/vdso_time.cc b/vdso/vdso_time.cc
-index 1bb4bb86..fb5b281f 100644
---- a/vdso/vdso_time.cc
-+++ b/vdso/vdso_time.cc
-@@ -12,15 +12,15 @@
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
--#include "vdso/vdso_time.h"
-+#include "vdso_time.h"
-
- #include <stdint.h>
- #include <sys/time.h>
- #include <time.h>
-
--#include "vdso/cycle_clock.h"
--#include "vdso/seqlock.h"
--#include "vdso/syscalls.h"
-+#include "cycle_clock.h"
-+#include "seqlock.h"
-+#include "syscalls.h"
-
- // struct params defines the layout of the parameter page maintained by the
- // kernel (i.e., sentry).
---
-2.20.1
-
diff --git a/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch b/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch
new file mode 100644
index 0000000..9efd08a
--- /dev/null
+++ b/third_party/go/patches/k8s-adopt-to-go-jose-2.3.patch
@@ -0,0 +1,136 @@
+From a1411288423dfc4062844b9f699a30fd7cbe090d Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 15:20:19 +0100
+Subject: [PATCH 1/2] Adopt to API breakage in go-jose 2.3.0
+
+---
+ pkg/serviceaccount/claims_test.go | 40 +++++++++++-----------
+ test/integration/auth/svcaccttoken_test.go | 6 ++--
+ 2 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/pkg/serviceaccount/claims_test.go b/pkg/serviceaccount/claims_test.go
+index 2e968f60335..a0b5a595c2f 100644
+--- a/pkg/serviceaccount/claims_test.go
++++ b/pkg/serviceaccount/claims_test.go
+@@ -85,9 +85,9 @@ func TestClaims(t *testing.T) {
+
+ sc: &jwt.Claims{
+ Subject: "system:serviceaccount:myns:mysvcacct",
+- IssuedAt: jwt.NumericDate(1514764800),
+- NotBefore: jwt.NumericDate(1514764800),
+- Expiry: jwt.NumericDate(1514764800),
++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ Expiry: jwt.NewNumericDate(time.Unix(1514764800, 0)),
+ },
+ pc: &privateClaims{
+ Kubernetes: kubernetes{
+@@ -107,9 +107,9 @@ func TestClaims(t *testing.T) {
+
+ sc: &jwt.Claims{
+ Subject: "system:serviceaccount:myns:mysvcacct",
+- IssuedAt: jwt.NumericDate(1514764800),
+- NotBefore: jwt.NumericDate(1514764800),
+- Expiry: jwt.NumericDate(1514764800 + 100),
++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ Expiry: jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ },
+ pc: &privateClaims{
+ Kubernetes: kubernetes{
+@@ -130,9 +130,9 @@ func TestClaims(t *testing.T) {
+ sc: &jwt.Claims{
+ Subject: "system:serviceaccount:myns:mysvcacct",
+ Audience: []string{"1"},
+- IssuedAt: jwt.NumericDate(1514764800),
+- NotBefore: jwt.NumericDate(1514764800),
+- Expiry: jwt.NumericDate(1514764800 + 100),
++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ Expiry: jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ },
+ pc: &privateClaims{
+ Kubernetes: kubernetes{
+@@ -152,9 +152,9 @@ func TestClaims(t *testing.T) {
+ sc: &jwt.Claims{
+ Subject: "system:serviceaccount:myns:mysvcacct",
+ Audience: []string{"1", "2"},
+- IssuedAt: jwt.NumericDate(1514764800),
+- NotBefore: jwt.NumericDate(1514764800),
+- Expiry: jwt.NumericDate(1514764800 + 100),
++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ Expiry: jwt.NewNumericDate(time.Unix(1514764800+100, 0)),
+ },
+ pc: &privateClaims{
+ Kubernetes: kubernetes{
+@@ -175,16 +175,16 @@ func TestClaims(t *testing.T) {
+
+ sc: &jwt.Claims{
+ Subject: "system:serviceaccount:myns:mysvcacct",
+- IssuedAt: jwt.NumericDate(1514764800),
+- NotBefore: jwt.NumericDate(1514764800),
+- Expiry: jwt.NumericDate(1514764800 + 60*60*24),
++ IssuedAt: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ NotBefore: jwt.NewNumericDate(time.Unix(1514764800, 0)),
++ Expiry: jwt.NewNumericDate(time.Unix(1514764800+60*60*24, 0)),
+ },
+ pc: &privateClaims{
+ Kubernetes: kubernetes{
+ Namespace: "myns",
+ Svcacct: ref{Name: "mysvcacct", UID: "mysvcacct-uid"},
+ Pod: &ref{Name: "mypod", UID: "mypod-uid"},
+- WarnAfter: jwt.NumericDate(1514764800 + 60*60),
++ WarnAfter: jwt.NewNumericDate(time.Unix(1514764800+60*60, 0)),
+ },
+ },
+ },
+@@ -223,8 +223,8 @@ type claimTestCase struct {
+ name string
+ getter ServiceAccountTokenGetter
+ private *privateClaims
+- expiry jwt.NumericDate
+- notBefore jwt.NumericDate
++ expiry *jwt.NumericDate
++ notBefore *jwt.NumericDate
+ expectErr string
+ }
+
+@@ -365,8 +365,8 @@ func TestValidatePrivateClaims(t *testing.T) {
+ for _, tc := range testcases {
+ t.Run(tc.name, func(t *testing.T) {
+ v := &validator{tc.getter}
+- expiry := jwt.NumericDate(nowUnix)
+- if tc.expiry != 0 {
++ expiry := jwt.NewNumericDate(time.Unix(nowUnix, 0))
++ if tc.expiry != nil {
+ expiry = tc.expiry
+ }
+ _, err := v.Validate(context.Background(), "", &jwt.Claims{Expiry: expiry, NotBefore: tc.notBefore}, tc.private)
+diff --git a/test/integration/auth/svcaccttoken_test.go b/test/integration/auth/svcaccttoken_test.go
+index da50bf4736e..5311b6c90c3 100644
+--- a/test/integration/auth/svcaccttoken_test.go
++++ b/test/integration/auth/svcaccttoken_test.go
+@@ -421,16 +421,16 @@ func TestServiceAccountTokenCreate(t *testing.T) {
+ t.Fatalf("error parsing warnafter: %v", err)
+ }
+
+- if exp < int64(actualExpiry)-leeway || exp > int64(actualExpiry)+leeway {
++ if exp < int64(*actualExpiry)-leeway || exp > int64(*actualExpiry)+leeway {
+ t.Errorf("unexpected token exp %d, should within range of %d +- %d seconds", exp, actualExpiry, leeway)
+ }
+- if warnafter < int64(assumedExpiry)-leeway || warnafter > int64(assumedExpiry)+leeway {
++ if warnafter < int64(*assumedExpiry)-leeway || warnafter > int64(*assumedExpiry)+leeway {
+ t.Errorf("unexpected token warnafter %d, should within range of %d +- %d seconds", warnafter, assumedExpiry, leeway)
+ }
+
+ checkExpiration(t, treq, requestExp)
+ expStatus := treq.Status.ExpirationTimestamp.Time.Unix()
+- if expStatus < int64(assumedExpiry)-leeway || warnafter > int64(assumedExpiry)+leeway {
++ if expStatus < int64(*assumedExpiry)-leeway || warnafter > int64(*assumedExpiry)+leeway {
+ t.Errorf("unexpected expiration returned in tokenrequest status %d, should within range of %d +- %d seconds", expStatus, assumedExpiry, leeway)
+ }
+ })
+--
+2.25.1
+
diff --git a/third_party/go/patches/k8s-adopt-to-runc-1.1.patch b/third_party/go/patches/k8s-adopt-to-runc-1.1.patch
new file mode 100644
index 0000000..8bfdcf2
--- /dev/null
+++ b/third_party/go/patches/k8s-adopt-to-runc-1.1.patch
@@ -0,0 +1,168 @@
+From 1564b39d0fbeac776a0d92236a0ca0c7cbdc6c5c Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Mon, 21 Mar 2022 15:21:25 +0100
+Subject: [PATCH 2/2] Adopt to API breakage in runc 1.1.0
+
+---
+ pkg/kubelet/cm/cgroup_manager_linux.go | 11 ++++++-----
+ pkg/kubelet/cm/container_manager_linux.go | 4 ++--
+ pkg/kubelet/cm/qos_container_manager_linux.go | 4 ++--
+ pkg/kubelet/dockershim/cm/container_manager_linux.go | 2 +-
+ .../kuberuntime/kuberuntime_container_linux.go | 4 ++--
+ .../kuberuntime/kuberuntime_container_linux_test.go | 6 +++---
+ 6 files changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go
+index 230173690d5..4bd50db5050 100644
+--- a/pkg/kubelet/cm/cgroup_manager_linux.go
++++ b/pkg/kubelet/cm/cgroup_manager_linux.go
+@@ -27,6 +27,7 @@ import (
+ "sync"
+ "time"
+
++ "github.com/opencontainers/runc/libcontainer/cgroups"
+ libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+ cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ cgroupfs2 "github.com/opencontainers/runc/libcontainer/cgroups/fs2"
+@@ -150,18 +151,18 @@ func (l *libcontainerAdapter) newManager(cgroups *libcontainerconfigs.Cgroup, pa
+ switch l.cgroupManagerType {
+ case libcontainerCgroupfs:
+ if libcontainercgroups.IsCgroup2UnifiedMode() {
+- return cgroupfs2.NewManager(cgroups, paths["memory"], false)
++ return cgroupfs2.NewManager(cgroups, paths["memory"])
+ }
+- return cgroupfs.NewManager(cgroups, paths, false), nil
++ return cgroupfs.NewManager(cgroups, paths)
+ case libcontainerSystemd:
+ // this means you asked systemd to manage cgroups, but systemd was not on the host, so all you can do is panic...
+ if !cgroupsystemd.IsRunningSystemd() {
+ panic("systemd cgroup manager not available")
+ }
+ if libcontainercgroups.IsCgroup2UnifiedMode() {
+- return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"], false), nil
++ return cgroupsystemd.NewUnifiedManager(cgroups, paths["memory"])
+ }
+- return cgroupsystemd.NewLegacyManager(cgroups, paths), nil
++ return cgroupsystemd.NewLegacyManager(cgroups, paths)
+ }
+ return nil, fmt.Errorf("invalid cgroup manager configuration")
+ }
+@@ -420,7 +421,7 @@ func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcont
+ pageSizes.Insert(sizeString)
+ }
+ // for each page size omitted, limit to 0
+- for _, pageSize := range cgroupfs.HugePageSizes {
++ for _, pageSize := range cgroups.HugePageSizes() {
+ if pageSizes.Has(pageSize) {
+ continue
+ }
+diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go
+index 3892bae081d..4c79f212ab5 100644
+--- a/pkg/kubelet/cm/container_manager_linux.go
++++ b/pkg/kubelet/cm/container_manager_linux.go
+@@ -401,10 +401,10 @@ func createManager(containerName string) (cgroups.Manager, error) {
+ }
+
+ if cgroups.IsCgroup2UnifiedMode() {
+- return cgroupfs2.NewManager(cg, "", false)
++ return cgroupfs2.NewManager(cg, "")
+
+ }
+- return cgroupfs.NewManager(cg, nil, false), nil
++ return cgroupfs.NewManager(cg, nil)
+ }
+
+ type KernelTunableBehavior string
+diff --git a/pkg/kubelet/cm/qos_container_manager_linux.go b/pkg/kubelet/cm/qos_container_manager_linux.go
+index bb79109b141..d0a78db2483 100644
+--- a/pkg/kubelet/cm/qos_container_manager_linux.go
++++ b/pkg/kubelet/cm/qos_container_manager_linux.go
+@@ -28,8 +28,8 @@ import (
+ "k8s.io/apimachinery/pkg/util/wait"
+
+ units "github.com/docker/go-units"
++ "github.com/opencontainers/runc/libcontainer/cgroups"
+ libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ v1 "k8s.io/api/core/v1"
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
+ "k8s.io/kubernetes/pkg/api/v1/resource"
+@@ -147,7 +147,7 @@ func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceLis
+ // setHugePagesUnbounded ensures hugetlb is effectively unbounded
+ func (m *qosContainerManagerImpl) setHugePagesUnbounded(cgroupConfig *CgroupConfig) error {
+ hugePageLimit := map[int64]int64{}
+- for _, pageSize := range cgroupfs.HugePageSizes {
++ for _, pageSize := range cgroups.HugePageSizes() {
+ pageSizeBytes, err := units.RAMInBytes(pageSize)
+ if err != nil {
+ return err
+diff --git a/pkg/kubelet/dockershim/cm/container_manager_linux.go b/pkg/kubelet/dockershim/cm/container_manager_linux.go
+index 759e27f26c5..93d6c51ac00 100644
+--- a/pkg/kubelet/dockershim/cm/container_manager_linux.go
++++ b/pkg/kubelet/dockershim/cm/container_manager_linux.go
+@@ -129,7 +129,7 @@ func createCgroupManager(name string) (cgroups.Manager, error) {
+ SkipDevices: true,
+ },
+ }
+- return cgroupfs.NewManager(cg, nil, false), nil
++ return cgroupfs.NewManager(cg, nil)
+ }
+
+ // getMemoryCapacity returns the memory capacity on the machine in bytes.
+diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
+index 6cb9e54729e..fd922f07c7c 100644
+--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
++++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux.go
+@@ -23,8 +23,8 @@ import (
+ "strconv"
+ "time"
+
++ "github.com/opencontainers/runc/libcontainer/cgroups"
+ libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
+- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
+ v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
+@@ -170,7 +170,7 @@ func GetHugepageLimitsFromResources(resources v1.ResourceRequirements) []*runtim
+ var hugepageLimits []*runtimeapi.HugepageLimit
+
+ // For each page size, limit to 0.
+- for _, pageSize := range cgroupfs.HugePageSizes {
++ for _, pageSize := range cgroups.HugePageSizes() {
+ hugepageLimits = append(hugepageLimits, &runtimeapi.HugepageLimit{
+ PageSize: pageSize,
+ Limit: uint64(0),
+diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
+index 46817e00fb0..f166adc6fe1 100644
+--- a/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
++++ b/pkg/kubelet/kuberuntime/kuberuntime_container_linux_test.go
+@@ -25,7 +25,7 @@ import (
+ "testing"
+
+ "github.com/google/go-cmp/cmp"
+- cgroupfs "github.com/opencontainers/runc/libcontainer/cgroups/fs"
++ "github.com/opencontainers/runc/libcontainer/cgroups"
+ "github.com/stretchr/testify/assert"
+ v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+@@ -366,7 +366,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
+ var baseHugepage []*runtimeapi.HugepageLimit
+
+ // For each page size, limit to 0.
+- for _, pageSize := range cgroupfs.HugePageSizes {
++ for _, pageSize := range cgroups.HugePageSizes() {
+ baseHugepage = append(baseHugepage, &runtimeapi.HugepageLimit{
+ PageSize: pageSize,
+ Limit: uint64(0),
+@@ -481,7 +481,7 @@ func TestGetHugepageLimitsFromResources(t *testing.T) {
+ machineHugepageSupport := true
+ for _, hugepageLimit := range test.expected {
+ hugepageSupport := false
+- for _, pageSize := range cgroupfs.HugePageSizes {
++ for _, pageSize := range cgroups.HugePageSizes() {
+ if pageSize == hugepageLimit.PageSize {
+ hugepageSupport = true
+ break
+--
+2.25.1
+
diff --git a/third_party/go/patches/k8s-backport-no-dockershim.patch b/third_party/go/patches/k8s-backport-no-dockershim.patch
new file mode 100644
index 0000000..452c7e1
--- /dev/null
+++ b/third_party/go/patches/k8s-backport-no-dockershim.patch
@@ -0,0 +1,191 @@
+From bc78dff42ec6be929648e91f3ef2dd6dae5169fb Mon Sep 17 00:00:00 2001
+From: Davanum Srinivas <davanum@gmail.com>
+Date: Tue, 7 Dec 2021 14:48:57 -0500
+Subject: [PATCH] update files to drop dockershim
+
+Signed-off-by: Davanum Srinivas <davanum@gmail.com>
+---
+ build/dependencies.yaml | 2 --
+ cmd/kubelet/app/options/globalflags_linux.go | 11 --------
+ go.mod | 5 ----
+ go.sum | 3 ---
+ pkg/kubelet/kubelet.go | 26 +------------------
+ .../legacy-cloud-providers/aws/aws_fakes.go | 1 +
+ test/e2e/framework/.import-restrictions | 10 -------
+ 7 files changed, 2 insertions(+), 56 deletions(-)
+
+diff --git a/build/dependencies.yaml b/build/dependencies.yaml
+index ff296e255b961..b0b1b5a6d41b8 100644
+--- a/build/dependencies.yaml
++++ b/build/dependencies.yaml
+@@ -172,8 +172,6 @@ dependencies:
+ match: defaultPodSandboxImageVersion\s+=
+ - path: hack/testdata/pod-with-precision.json
+ match: k8s.gcr.io\/pause:\d+\.\d+
+- - path: pkg/kubelet/dockershim/docker_sandbox.go
+- match: k8s.gcr.io\/pause:\d+\.\d+
+ - path: staging/src/k8s.io/kubectl/testdata/set/multi-resource-yaml.yaml
+ match: k8s.gcr.io\/pause:\d+\.\d+
+ - path: staging/src/k8s.io/kubectl/testdata/set/namespaced-resource.yaml
+diff --git a/cmd/kubelet/app/options/globalflags_linux.go b/cmd/kubelet/app/options/globalflags_linux.go
+index ad3b68628f661..e75e65ec37cd0 100644
+--- a/cmd/kubelet/app/options/globalflags_linux.go
++++ b/cmd/kubelet/app/options/globalflags_linux.go
+@@ -28,7 +28,6 @@ import (
+ // ensure libs have a chance to globally register their flags
+ _ "github.com/google/cadvisor/container/common"
+ _ "github.com/google/cadvisor/container/containerd"
+- _ "github.com/google/cadvisor/container/docker"
+ _ "github.com/google/cadvisor/container/raw"
+ _ "github.com/google/cadvisor/machine"
+ _ "github.com/google/cadvisor/manager"
+@@ -41,9 +40,6 @@ func addCadvisorFlags(fs *pflag.FlagSet) {
+ global := flag.CommandLine
+ local := pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
+
+- // These flags were also implicit from cadvisor, but are actually used by something in the core repo:
+- // TODO(mtaufen): This one is stil used by our salt, but for heaven's sake it's even deprecated in cadvisor
+- register(global, local, "docker_root")
+ // e2e node tests rely on this
+ register(global, local, "housekeeping_interval")
+
+@@ -54,13 +50,6 @@ func addCadvisorFlags(fs *pflag.FlagSet) {
+ registerDeprecated(global, local, "boot_id_file", deprecated)
+ registerDeprecated(global, local, "container_hints", deprecated)
+ registerDeprecated(global, local, "containerd", deprecated)
+- registerDeprecated(global, local, "docker", deprecated)
+- registerDeprecated(global, local, "docker_env_metadata_whitelist", deprecated)
+- registerDeprecated(global, local, "docker_only", deprecated)
+- registerDeprecated(global, local, "docker-tls", deprecated)
+- registerDeprecated(global, local, "docker-tls-ca", deprecated)
+- registerDeprecated(global, local, "docker-tls-cert", deprecated)
+- registerDeprecated(global, local, "docker-tls-key", deprecated)
+ registerDeprecated(global, local, "enable_load_reader", deprecated)
+ registerDeprecated(global, local, "event_storage_age_limit", deprecated)
+ registerDeprecated(global, local, "event_storage_event_limit", deprecated)
+diff --git a/go.mod b/go.mod
+index a17878d68d030..7dccd35bb6b91 100644
+--- a/go.mod
++++ b/go.mod
+@@ -25,15 +25,12 @@ require (
+ github.com/boltdb/bolt v1.3.1 // indirect
+ github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313
+ github.com/container-storage-interface/spec v1.5.0
+- github.com/containernetworking/cni v0.8.1
+ github.com/coredns/corefile-migration v1.0.14
+ github.com/coreos/go-oidc v2.1.0+incompatible
+ github.com/coreos/go-systemd/v22 v22.3.2
+ github.com/cpuguy83/go-md2man/v2 v2.0.0
+ github.com/davecgh/go-spew v1.1.1
+ github.com/docker/distribution v2.7.1+incompatible
+- github.com/docker/docker v20.10.7+incompatible
+- github.com/docker/go-connections v0.4.0
+ github.com/docker/go-units v0.4.0
+ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153
+ github.com/emicklei/go-restful v2.9.5+incompatible
+@@ -63,7 +60,6 @@ require (
+ github.com/mvdan/xurls v1.1.0
+ github.com/onsi/ginkgo v1.14.0
+ github.com/onsi/gomega v1.10.1
+- github.com/opencontainers/go-digest v1.0.0
+ github.com/opencontainers/runc v1.0.2
+ github.com/opencontainers/selinux v1.8.2
+ github.com/pkg/errors v0.9.1
+@@ -209,7 +205,6 @@ replace (
+ github.com/containerd/go-runc => github.com/containerd/go-runc v1.0.0
+ github.com/containerd/ttrpc => github.com/containerd/ttrpc v1.0.2
+ github.com/containerd/typeurl => github.com/containerd/typeurl v1.0.2
+- github.com/containernetworking/cni => github.com/containernetworking/cni v0.8.1
+ github.com/coredns/caddy => github.com/coredns/caddy v1.1.0
+ github.com/coredns/corefile-migration => github.com/coredns/corefile-migration v1.0.14
+ github.com/coreos/go-oidc => github.com/coreos/go-oidc v2.1.0+incompatible
+diff --git a/go.sum b/go.sum
+index b458fb06802b3..9121b2f4ac81a 100644
+--- a/go.sum
++++ b/go.sum
+@@ -116,8 +116,6 @@ github.com/containerd/ttrpc v1.0.2 h1:2/O3oTZN36q2xRolk0a2WWGgh7/Vf/liElg5hFYLX9
+ github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
+ github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
+ github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
+-github.com/containernetworking/cni v0.8.1 h1:7zpDnQ3T3s4ucOuJ/ZCLrYBxzkg0AELFfII3Epo9TmI=
+-github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
+ github.com/coredns/caddy v1.1.0 h1:ezvsPrT/tA/7pYDBZxu0cT0VmWk75AfIaf6GSYCNMf0=
+ github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4=
+ github.com/coredns/corefile-migration v1.0.14 h1:Tz3WZhoj2NdP8drrQH86NgnCng+VrPjNeg2Oe1ALKag=
+@@ -353,7 +351,6 @@ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb h1:e+l77LJOEqXTIQih
+ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
+ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
+-github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
+ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
+ github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
+ github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
+diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go
+index 2013c871a608a..0e6f5f946dea0 100644
+--- a/pkg/kubelet/kubelet.go
++++ b/pkg/kubelet/kubelet.go
+@@ -73,7 +73,6 @@ import (
+ "k8s.io/kubernetes/pkg/kubelet/configmap"
+ kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
+ "k8s.io/kubernetes/pkg/kubelet/cri/remote"
+- "k8s.io/kubernetes/pkg/kubelet/cri/streaming"
+ "k8s.io/kubernetes/pkg/kubelet/events"
+ "k8s.io/kubernetes/pkg/kubelet/eviction"
+ "k8s.io/kubernetes/pkg/kubelet/images"
+@@ -310,18 +309,7 @@ func PreInitRuntimeService(kubeCfg *kubeletconfiginternal.KubeletConfiguration,
+
+ switch containerRuntime {
+ case kubetypes.DockerContainerRuntime:
+- klog.InfoS("Using dockershim is deprecated, please consider using a full-fledged CRI implementation")
+- if err := runDockershim(
+- kubeCfg,
+- kubeDeps,
+- crOptions,
+- runtimeCgroups,
+- remoteRuntimeEndpoint,
+- remoteImageEndpoint,
+- nonMasqueradeCIDR,
+- ); err != nil {
+- return err
+- }
++ return fmt.Errorf("using dockershim is not supported, please consider using a full-fledged CRI implementation")
+ case kubetypes.RemoteContainerRuntime:
+ // No-op.
+ break
+@@ -2440,15 +2428,3 @@ func isSyncPodWorthy(event *pleg.PodLifecycleEvent) bool {
+ // ContainerRemoved doesn't affect pod state
+ return event.Type != pleg.ContainerRemoved
+ }
+-
+-// Gets the streaming server configuration to use with in-process CRI shims.
+-func getStreamingConfig(kubeCfg *kubeletconfiginternal.KubeletConfiguration, kubeDeps *Dependencies, crOptions *config.ContainerRuntimeOptions) *streaming.Config {
+- config := &streaming.Config{
+- StreamIdleTimeout: kubeCfg.StreamingConnectionIdleTimeout.Duration,
+- StreamCreationTimeout: streaming.DefaultConfig.StreamCreationTimeout,
+- SupportedRemoteCommandProtocols: streaming.DefaultConfig.SupportedRemoteCommandProtocols,
+- SupportedPortForwardProtocols: streaming.DefaultConfig.SupportedPortForwardProtocols,
+- }
+- config.Addr = net.JoinHostPort("localhost", "0")
+- return config
+-}
+diff --git a/test/e2e/framework/.import-restrictions b/test/e2e/framework/.import-restrictions
+index a60fb9d790847..1353f40df9ddf 100644
+--- a/test/e2e/framework/.import-restrictions
++++ b/test/e2e/framework/.import-restrictions
+@@ -86,16 +86,6 @@ rules:
+ - k8s.io/kubernetes/pkg/kubelet/config
+ - k8s.io/kubernetes/pkg/kubelet/configmap
+ - k8s.io/kubernetes/pkg/kubelet/container
+- - k8s.io/kubernetes/pkg/kubelet/dockershim
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/cm
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/metrics
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/network
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/network/cni
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/network/hostport
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/network/kubenet
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/network/metrics
+- - k8s.io/kubernetes/pkg/kubelet/dockershim/remote
+ - k8s.io/kubernetes/pkg/kubelet/envvars
+ - k8s.io/kubernetes/pkg/kubelet/eviction
+ - k8s.io/kubernetes/pkg/kubelet/eviction/api
diff --git a/third_party/go/patches/k8s-client-go.patch b/third_party/go/patches/k8s-client-go.patch
deleted file mode 100644
index ebfae0e..0000000
--- a/third_party/go/patches/k8s-client-go.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This patch rips out azure/openstack auth support for k8s.io/client-go. This should be made configurable upstream.
-
-diff -ur io_k8s_client_go.orig/plugin/pkg/client/auth/plugins.go io_k8s_client_go/plugin/pkg/client/auth/plugins.go
---- io_k8s_client_go.orig/plugin/pkg/client/auth/plugins.go 2020-04-16 17:46:53.965434780 +0200
-+++ io_k8s_client_go/plugin/pkg/client/auth/plugins.go 2020-04-16 17:47:21.720538171 +0200
-@@ -18,8 +18,6 @@
-
- import (
- // Initialize all known client auth plugins.
-- _ "k8s.io/client-go/plugin/pkg/client/auth/azure"
- _ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
- _ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
-- _ "k8s.io/client-go/plugin/pkg/client/auth/openstack"
- )
diff --git a/third_party/go/patches/k8s-drop-legacy-log-path.patch b/third_party/go/patches/k8s-drop-legacy-log-path.patch
index af7b007..356a681 100644
--- a/third_party/go/patches/k8s-drop-legacy-log-path.patch
+++ b/third_party/go/patches/k8s-drop-legacy-log-path.patch
@@ -1,21 +1,6 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 227ccd88e378a002b7c23703eec96aa1d25949eb Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Wed, 3 Feb 2021 16:47:38 +0100
+From b2d875981cec8eda9c041f858004f613ea928895 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:10:09 +0100
Subject: [PATCH] Drop legacy log path
---
@@ -23,14 +8,14 @@
.../kuberuntime/kuberuntime_container.go | 32 ---------------
pkg/kubelet/kuberuntime/kuberuntime_gc.go | 39 -------------------
pkg/kubelet/runonce.go | 8 ----
- test/e2e_node/log_path_test.go | 19 +--------
- 5 files changed, 1 insertion(+), 104 deletions(-)
+ test/e2e_node/log_path_test.go | 18 ---------
+ 5 files changed, 104 deletions(-)
diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go
-index 902dc7532e1..2d582f65b19 100644
+index 2013c871a60..c3fd4221544 100644
--- a/pkg/kubelet/kubelet.go
+++ b/pkg/kubelet/kubelet.go
-@@ -1250,13 +1250,6 @@ func (kl *Kubelet) initializeModules() error {
+@@ -1379,13 +1379,6 @@ func (kl *Kubelet) initializeModules() error {
return err
}
@@ -45,10 +30,10 @@
kl.imageManager.Start()
diff --git a/pkg/kubelet/kuberuntime/kuberuntime_container.go b/pkg/kubelet/kuberuntime/kuberuntime_container.go
-index af361122c35..d5b2d245219 100644
+index 9c762ac309e..d1148cc7de5 100644
--- a/pkg/kubelet/kuberuntime/kuberuntime_container.go
+++ b/pkg/kubelet/kuberuntime/kuberuntime_container.go
-@@ -190,25 +190,6 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
+@@ -254,25 +254,6 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
}
m.recordContainerEvent(pod, container, containerID, v1.EventTypeNormal, events.StartedContainer, fmt.Sprintf("Started container %s", container.Name))
@@ -66,15 +51,15 @@
- // to create it in the first place. it happens when journald logging driver is used with docker.
- if _, err := m.osInterface.Stat(containerLog); !os.IsNotExist(err) {
- if err := m.osInterface.Symlink(containerLog, legacySymlink); err != nil {
-- klog.Errorf("Failed to create legacy symbolic link %q to container %q log %q: %v",
-- legacySymlink, containerID, containerLog, err)
+- klog.ErrorS(err, "Failed to create legacy symbolic link", "path", legacySymlink,
+- "containerID", containerID, "containerLogPath", containerLog)
- }
- }
-
// Step 4: execute the post start hook.
if container.Lifecycle != nil && container.Lifecycle.PostStart != nil {
kubeContainerID := kubecontainer.ContainerID{
-@@ -861,19 +842,6 @@ func (m *kubeGenericRuntimeManager) removeContainerLog(containerID string) error
+@@ -967,19 +948,6 @@ func (m *kubeGenericRuntimeManager) removeContainerLog(containerID string) error
return err
}
@@ -95,7 +80,7 @@
}
diff --git a/pkg/kubelet/kuberuntime/kuberuntime_gc.go b/pkg/kubelet/kuberuntime/kuberuntime_gc.go
-index 8c4f786db9b..b5b104ee6a6 100644
+index 610026661b7..a09dec91fbb 100644
--- a/pkg/kubelet/kuberuntime/kuberuntime_gc.go
+++ b/pkg/kubelet/kuberuntime/kuberuntime_gc.go
@@ -18,7 +18,6 @@ package kuberuntime
@@ -106,7 +91,7 @@
"path/filepath"
"sort"
"time"
-@@ -346,44 +345,6 @@ func (cgc *containerGC) evictPodLogsDirectories(allSourcesReady bool) error {
+@@ -347,44 +346,6 @@ func (cgc *containerGC) evictPodLogsDirectories(allSourcesReady bool) error {
}
}
}
@@ -121,7 +106,7 @@
- if err != nil {
- // TODO: we should handle container not found (i.e. container was deleted) case differently
- // once https://github.com/kubernetes/kubernetes/issues/63336 is resolved
-- klog.Infof("Error getting ContainerStatus for containerID %q: %v", containerID, err)
+- klog.InfoS("Error getting ContainerStatus for containerID", "containerID", containerID, "err", err)
- } else if status.State != runtimeapi.ContainerState_CONTAINER_EXITED {
- // Here is how container log rotation works (see containerLogManager#rotateLatestLog):
- //
@@ -134,17 +119,17 @@
- // See https://github.com/kubernetes/kubernetes/issues/52172
- //
- // We only remove unhealthy symlink for dead containers
-- klog.V(5).Infof("Container %q is still running, not removing symlink %q.", containerID, logSymlink)
+- klog.V(5).InfoS("Container is still running, not removing symlink", "containerID", containerID, "path", logSymlink)
- continue
- }
- } else {
-- klog.V(4).Infof("unable to obtain container Id: %v", err)
+- klog.V(4).InfoS("Unable to obtain container ID", "err", err)
- }
- err := osInterface.Remove(logSymlink)
- if err != nil {
-- klog.Errorf("Failed to remove container log dead symlink %q: %v", logSymlink, err)
+- klog.ErrorS(err, "Failed to remove container log dead symlink", "path", logSymlink)
- } else {
-- klog.V(4).Infof("removed symlink %s", logSymlink)
+- klog.V(4).InfoS("Removed symlink", "path", logSymlink)
- }
- }
- }
@@ -152,40 +137,36 @@
}
diff --git a/pkg/kubelet/runonce.go b/pkg/kubelet/runonce.go
-index 1da9c225186..d6a5a63e92d 100644
+index 19b8a4f6a7b..2f0aad713e3 100644
--- a/pkg/kubelet/runonce.go
+++ b/pkg/kubelet/runonce.go
-@@ -18,7 +18,6 @@ package kubelet
-
+@@ -19,7 +19,6 @@ package kubelet
import (
+ "context"
"fmt"
- "os"
"time"
- "k8s.io/api/core/v1"
-@@ -48,13 +47,6 @@ func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult,
+ v1 "k8s.io/api/core/v1"
+@@ -49,13 +48,6 @@ func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult,
return nil, err
}
- // If the container logs directory does not exist, create it.
- if _, err := os.Stat(ContainerLogsDir); err != nil {
- if err := kl.os.MkdirAll(ContainerLogsDir, 0755); err != nil {
-- klog.Errorf("Failed to create directory %q: %v", ContainerLogsDir, err)
+- klog.ErrorS(err, "Failed to create directory", "path", ContainerLogsDir)
- }
- }
-
select {
case u := <-updates:
- klog.Infof("processing manifest with %d pods", len(u.Pods))
+ klog.InfoS("Processing manifest with pods", "numPods", len(u.Pods))
diff --git a/test/e2e_node/log_path_test.go b/test/e2e_node/log_path_test.go
-index 41646f326a5..6568d31e242 100644
+index cfdd9823cb1..35f3b7be465 100644
--- a/test/e2e_node/log_path_test.go
+++ b/test/e2e_node/log_path_test.go
-@@ -18,11 +18,10 @@ package e2enode
-
- import (
- "context"
-+
+@@ -22,8 +22,6 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/uuid"
@@ -194,7 +175,7 @@
"k8s.io/kubernetes/test/e2e/framework"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-@@ -138,22 +137,6 @@ var _ = framework.KubeDescribe("ContainerLogPath [NodeConformance]", func() {
+@@ -144,22 +142,6 @@ var _ = SIGDescribe("ContainerLogPath [NodeConformance]", func() {
err := createAndWaitPod(makeLogPod(logPodName, logString))
framework.ExpectNoError(err, "Failed waiting for pod: %s to enter success state", logPodName)
})
diff --git a/third_party/go/patches/k8s-e2e-tests-providerless.patch b/third_party/go/patches/k8s-e2e-tests-providerless.patch
deleted file mode 100644
index b761257..0000000
--- a/third_party/go/patches/k8s-e2e-tests-providerless.patch
+++ /dev/null
@@ -1,5147 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 65e40a970e3f33f44423653767c9ca8ff792bf70 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Mon, 20 Jul 2020 16:50:56 +0200
-Subject: [PATCH] POC Make e2e test suite support providerless
-
----
- .../custom_metrics_stackdriver_autoscaling.go | 2 +
- test/e2e/cloud/imports.go | 2 +
- test/e2e/e2e.go | 10 -
- test/e2e/e2e_providers.go | 32 +
- .../framework/providers/gce/firewall_test.go | 2 +
- test/e2e/instrumentation/logging/imports.go | 2 +
- .../instrumentation/monitoring/accelerator.go | 2 +
- .../monitoring/custom_metrics_deployments.go | 2 +
- .../monitoring/custom_metrics_stackdriver.go | 4 +-
- .../instrumentation/monitoring/stackdriver.go | 2 +
- .../monitoring/stackdriver_metadata_agent.go | 4 +-
- test/e2e/network/firewall.go | 2 +
- test/e2e/network/ingress.go | 2 +
- test/e2e/network/ingress_scale.go | 2 +
- test/e2e/network/network_tiers.go | 2 +
- test/e2e/network/scale/ingress.go | 2 +
- .../network/scale/localrun/ingress_scale.go | 2 +-
- test/e2e/network/service.go | 955 -----------------
- test/e2e/network/service_providers.go | 980 ++++++++++++++++++
- test/e2e/node/recreate_node.go | 2 +
- test/e2e/scheduling/nvidia-gpus.go | 2 +
- test/e2e/scheduling/ubernetes_lite_volumes.go | 2 +
- test/e2e/storage/drivers/in_tree.go | 732 -------------
- test/e2e/storage/drivers/in_tree_providers.go | 751 ++++++++++++++
- test/e2e/storage/in_tree_volumes.go | 5 -
- test/e2e/storage/in_tree_volumes_providers.go | 46 +
- .../nfs_persistent_volume-disruptive.go | 2 +-
- test/e2e/storage/pd.go | 2 +
- test/e2e/storage/persistent_volumes-gce.go | 2 +
- test/e2e/storage/regional_pd.go | 3 +
- test/e2e/storage/utils/BUILD | 3 -
- test/e2e/storage/utils/ebs.go | 2 +
- test/e2e/storage/volume_provisioning.go | 527 ----------
- .../storage/volume_provisioning_providers.go | 577 +++++++++++
- test/e2e/upgrades/nvidia-gpu.go | 2 +
- 35 files changed, 2435 insertions(+), 2236 deletions(-)
- create mode 100644 test/e2e/e2e_providers.go
- create mode 100644 test/e2e/network/service_providers.go
- create mode 100644 test/e2e/storage/drivers/in_tree_providers.go
- create mode 100644 test/e2e/storage/in_tree_volumes_providers.go
- create mode 100644 test/e2e/storage/volume_provisioning_providers.go
-
-diff --git a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-index d3a7862d338..8bacec7fe1d 100644
---- a/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-+++ b/test/e2e/autoscaling/custom_metrics_stackdriver_autoscaling.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/cloud/imports.go b/test/e2e/cloud/imports.go
-index 5aa1def97d1..382cb1a2264 100644
---- a/test/e2e/cloud/imports.go
-+++ b/test/e2e/cloud/imports.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2019 The Kubernetes Authors.
-
-diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go
-index d1e23325d69..f5717e417e7 100644
---- a/test/e2e/e2e.go
-+++ b/test/e2e/e2e.go
-@@ -53,16 +53,6 @@ import (
- utilnet "k8s.io/utils/net"
-
- clientset "k8s.io/client-go/kubernetes"
-- // ensure auth plugins are loaded
-- _ "k8s.io/client-go/plugin/pkg/client/auth"
--
-- // ensure that cloud providers are loaded
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/aws"
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/azure"
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/kubemark"
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/openstack"
-- _ "k8s.io/kubernetes/test/e2e/framework/providers/vsphere"
- )
-
- const (
-diff --git a/test/e2e/e2e_providers.go b/test/e2e/e2e_providers.go
-new file mode 100644
-index 00000000000..cf96642b110
---- /dev/null
-+++ b/test/e2e/e2e_providers.go
-@@ -0,0 +1,32 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 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 e2e
-+
-+import (
-+ // ensure auth plugins are loaded
-+ _ "k8s.io/client-go/plugin/pkg/client/auth"
-+
-+ // ensure that cloud providers are loaded
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/aws"
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/azure"
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/kubemark"
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/openstack"
-+ _ "k8s.io/kubernetes/test/e2e/framework/providers/vsphere"
-+)
-diff --git a/test/e2e/framework/providers/gce/firewall_test.go b/test/e2e/framework/providers/gce/firewall_test.go
-index 647441dc962..2a92543a5a7 100644
---- a/test/e2e/framework/providers/gce/firewall_test.go
-+++ b/test/e2e/framework/providers/gce/firewall_test.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
-
-diff --git a/test/e2e/instrumentation/logging/imports.go b/test/e2e/instrumentation/logging/imports.go
-index 5dd66717db1..fc15c04bfef 100644
---- a/test/e2e/instrumentation/logging/imports.go
-+++ b/test/e2e/instrumentation/logging/imports.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/instrumentation/monitoring/accelerator.go b/test/e2e/instrumentation/monitoring/accelerator.go
-index 90047e46ea1..6fa094e6a18 100644
---- a/test/e2e/instrumentation/monitoring/accelerator.go
-+++ b/test/e2e/instrumentation/monitoring/accelerator.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-index de80b129315..8d96b93bf11 100644
---- a/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-+++ b/test/e2e/instrumentation/monitoring/custom_metrics_deployments.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-index 277b5a0ab24..ddbc3f20802 100644
---- a/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-+++ b/test/e2e/instrumentation/monitoring/custom_metrics_stackdriver.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-@@ -21,7 +23,7 @@ import (
- "time"
-
- gcm "google.golang.org/api/monitoring/v3"
-- "k8s.io/api/core/v1"
-+ v1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/apimachinery/pkg/runtime/schema"
-diff --git a/test/e2e/instrumentation/monitoring/stackdriver.go b/test/e2e/instrumentation/monitoring/stackdriver.go
-index dbc5e51c20d..3db0120900b 100644
---- a/test/e2e/instrumentation/monitoring/stackdriver.go
-+++ b/test/e2e/instrumentation/monitoring/stackdriver.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go b/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-index 321591344db..bad9be5b5bf 100644
---- a/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-+++ b/test/e2e/instrumentation/monitoring/stackdriver_metadata_agent.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-@@ -24,7 +26,7 @@ import (
- "reflect"
- "time"
-
-- "k8s.io/api/core/v1"
-+ v1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- clientset "k8s.io/client-go/kubernetes"
- "k8s.io/kubernetes/test/e2e/framework"
-diff --git a/test/e2e/network/firewall.go b/test/e2e/network/firewall.go
-index f4200f5a30c..f8612ed75a9 100644
---- a/test/e2e/network/firewall.go
-+++ b/test/e2e/network/firewall.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2016 The Kubernetes Authors.
-
-diff --git a/test/e2e/network/ingress.go b/test/e2e/network/ingress.go
-index 6c3b09e41f2..8485f8ce50e 100644
---- a/test/e2e/network/ingress.go
-+++ b/test/e2e/network/ingress.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2015 The Kubernetes Authors.
-
-diff --git a/test/e2e/network/ingress_scale.go b/test/e2e/network/ingress_scale.go
-index 6cc8585b7b2..867c834868c 100644
---- a/test/e2e/network/ingress_scale.go
-+++ b/test/e2e/network/ingress_scale.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
-
-diff --git a/test/e2e/network/network_tiers.go b/test/e2e/network/network_tiers.go
-index 5ae68a5a1ee..f3ea1f72a6b 100644
---- a/test/e2e/network/network_tiers.go
-+++ b/test/e2e/network/network_tiers.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/network/scale/ingress.go b/test/e2e/network/scale/ingress.go
-index 954296beb52..43ad9c9b618 100644
---- a/test/e2e/network/scale/ingress.go
-+++ b/test/e2e/network/scale/ingress.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
-
-diff --git a/test/e2e/network/scale/localrun/ingress_scale.go b/test/e2e/network/scale/localrun/ingress_scale.go
-index 2e2c39884da..5a27f5f4cb2 100644
---- a/test/e2e/network/scale/localrun/ingress_scale.go
-+++ b/test/e2e/network/scale/localrun/ingress_scale.go
-@@ -27,7 +27,7 @@ import (
-
- "k8s.io/klog/v2"
-
-- "k8s.io/api/core/v1"
-+ v1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- clientset "k8s.io/client-go/kubernetes"
- "k8s.io/client-go/tools/clientcmd"
-diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go
-index 35ac43001d2..b458347a9f9 100644
---- a/test/e2e/network/service.go
-+++ b/test/e2e/network/service.go
-@@ -31,8 +31,6 @@ import (
-
- utilnet "k8s.io/apimachinery/pkg/util/net"
-
-- compute "google.golang.org/api/compute/v1"
--
- "k8s.io/client-go/tools/cache"
-
- appsv1 "k8s.io/api/apps/v1"
-@@ -52,11 +50,9 @@ import (
- e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
- e2eendpoints "k8s.io/kubernetes/test/e2e/framework/endpoints"
- e2eendpointslice "k8s.io/kubernetes/test/e2e/framework/endpointslice"
-- e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
- e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
- e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-- "k8s.io/kubernetes/test/e2e/framework/providers/gce"
- e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
- e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
- e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-@@ -64,7 +60,6 @@ import (
- "k8s.io/kubernetes/test/e2e/storage/utils"
- testutils "k8s.io/kubernetes/test/utils"
- imageutils "k8s.io/kubernetes/test/utils/image"
-- gcecloud "k8s.io/legacy-cloud-providers/gce"
-
- "github.com/onsi/ginkgo"
- "github.com/onsi/gomega"
-@@ -1242,375 +1237,6 @@ var _ = SIGDescribe("Services", func() {
- framework.ExpectNoError(err)
- })
-
-- // TODO: Get rid of [DisabledForLargeClusters] tag when issue #56138 is fixed.
-- ginkgo.It("should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]", func() {
-- // requires cloud load-balancer support
-- e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
--
-- loadBalancerSupportsUDP := !framework.ProviderIs("aws")
--
-- loadBalancerLagTimeout := e2eservice.LoadBalancerLagTimeoutDefault
-- if framework.ProviderIs("aws") {
-- loadBalancerLagTimeout = e2eservice.LoadBalancerLagTimeoutAWS
-- }
-- loadBalancerCreateTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
--
-- // This test is more monolithic than we'd like because LB turnup can be
-- // very slow, so we lumped all the tests into one LB lifecycle.
--
-- serviceName := "mutability-test"
-- ns1 := f.Namespace.Name // LB1 in ns1 on TCP
-- framework.Logf("namespace for TCP test: %s", ns1)
--
-- ginkgo.By("creating a second namespace")
-- namespacePtr, err := f.CreateNamespace("services", nil)
-- framework.ExpectNoError(err, "failed to create namespace")
-- ns2 := namespacePtr.Name // LB2 in ns2 on UDP
-- framework.Logf("namespace for UDP test: %s", ns2)
--
-- nodeIP, err := e2enode.PickIP(cs) // for later
-- framework.ExpectNoError(err)
--
-- // Test TCP and UDP Services. Services with the same name in different
-- // namespaces should get different node ports and load balancers.
--
-- ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns1)
-- tcpJig := e2eservice.NewTestJig(cs, ns1, serviceName)
-- tcpService, err := tcpJig.CreateTCPService(nil)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("creating a UDP service " + serviceName + " with type=ClusterIP in namespace " + ns2)
-- udpJig := e2eservice.NewTestJig(cs, ns2, serviceName)
-- udpService, err := udpJig.CreateUDPService(nil)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("verifying that TCP and UDP use the same port")
-- if tcpService.Spec.Ports[0].Port != udpService.Spec.Ports[0].Port {
-- framework.Failf("expected to use the same port for TCP and UDP")
-- }
-- svcPort := int(tcpService.Spec.Ports[0].Port)
-- framework.Logf("service port (TCP and UDP): %d", svcPort)
--
-- ginkgo.By("creating a pod to be part of the TCP service " + serviceName)
-- _, err = tcpJig.Run(nil)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("creating a pod to be part of the UDP service " + serviceName)
-- _, err = udpJig.Run(nil)
-- framework.ExpectNoError(err)
--
-- // Change the services to NodePort.
--
-- ginkgo.By("changing the TCP service to type=NodePort")
-- tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Type = v1.ServiceTypeNodePort
-- })
-- framework.ExpectNoError(err)
-- tcpNodePort := int(tcpService.Spec.Ports[0].NodePort)
-- framework.Logf("TCP node port: %d", tcpNodePort)
--
-- ginkgo.By("changing the UDP service to type=NodePort")
-- udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Type = v1.ServiceTypeNodePort
-- })
-- framework.ExpectNoError(err)
-- udpNodePort := int(udpService.Spec.Ports[0].NodePort)
-- framework.Logf("UDP node port: %d", udpNodePort)
--
-- ginkgo.By("hitting the TCP service's NodePort")
-- e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the UDP service's NodePort")
-- testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- // Change the services to LoadBalancer.
--
-- // Here we test that LoadBalancers can receive static IP addresses. This isn't
-- // necessary, but is an additional feature this monolithic test checks.
-- requestedIP := ""
-- staticIPName := ""
-- if framework.ProviderIs("gce", "gke") {
-- ginkgo.By("creating a static load balancer IP")
-- staticIPName = fmt.Sprintf("e2e-external-lb-test-%s", framework.RunID)
-- gceCloud, err := gce.GetGCECloud()
-- framework.ExpectNoError(err, "failed to get GCE cloud provider")
--
-- err = gceCloud.ReserveRegionAddress(&compute.Address{Name: staticIPName}, gceCloud.Region())
-- defer func() {
-- if staticIPName != "" {
-- // Release GCE static IP - this is not kube-managed and will not be automatically released.
-- if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-- framework.Logf("failed to release static IP %s: %v", staticIPName, err)
-- }
-- }
-- }()
-- framework.ExpectNoError(err, "failed to create region address: %s", staticIPName)
-- reservedAddr, err := gceCloud.GetRegionAddress(staticIPName, gceCloud.Region())
-- framework.ExpectNoError(err, "failed to get region address: %s", staticIPName)
--
-- requestedIP = reservedAddr.Address
-- framework.Logf("Allocated static load balancer IP: %s", requestedIP)
-- }
--
-- ginkgo.By("changing the TCP service to type=LoadBalancer")
-- tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
-- s.Spec.Type = v1.ServiceTypeLoadBalancer
-- })
-- framework.ExpectNoError(err)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("changing the UDP service to type=LoadBalancer")
-- udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Type = v1.ServiceTypeLoadBalancer
-- })
-- framework.ExpectNoError(err)
-- }
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
-- if loadBalancerSupportsUDP {
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(udpService))
-- }
--
-- ginkgo.By("waiting for the TCP service to have a load balancer")
-- // Wait for the load balancer to be created asynchronously
-- tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-- framework.Failf("TCP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", tcpNodePort, tcpService.Spec.Ports[0].NodePort)
-- }
-- if requestedIP != "" && e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != requestedIP {
-- framework.Failf("unexpected TCP Status.LoadBalancer.Ingress (expected %s, got %s)", requestedIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-- }
-- tcpIngressIP := e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0])
-- framework.Logf("TCP load balancer: %s", tcpIngressIP)
--
-- if framework.ProviderIs("gce", "gke") {
-- // Do this as early as possible, which overrides the `defer` above.
-- // This is mostly out of fear of leaking the IP in a timeout case
-- // (as of this writing we're not 100% sure where the leaks are
-- // coming from, so this is first-aid rather than surgery).
-- ginkgo.By("demoting the static IP to ephemeral")
-- if staticIPName != "" {
-- gceCloud, err := gce.GetGCECloud()
-- framework.ExpectNoError(err, "failed to get GCE cloud provider")
-- // Deleting it after it is attached "demotes" it to an
-- // ephemeral IP, which can be auto-released.
-- if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-- framework.Failf("failed to release static IP %s: %v", staticIPName, err)
-- }
-- staticIPName = ""
-- }
-- }
--
-- var udpIngressIP string
-- if loadBalancerSupportsUDP {
-- ginkgo.By("waiting for the UDP service to have a load balancer")
-- // 2nd one should be faster since they ran in parallel.
-- udpService, err = udpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-- framework.Failf("UDP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", udpNodePort, udpService.Spec.Ports[0].NodePort)
-- }
-- udpIngressIP = e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0])
-- framework.Logf("UDP load balancer: %s", udpIngressIP)
--
-- ginkgo.By("verifying that TCP and UDP use different load balancers")
-- if tcpIngressIP == udpIngressIP {
-- framework.Failf("Load balancers are not different: %s", e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-- }
-- }
--
-- ginkgo.By("hitting the TCP service's NodePort")
-- e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the UDP service's NodePort")
-- testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the TCP service's LoadBalancer")
-- e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("hitting the UDP service's LoadBalancer")
-- testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-- }
--
-- // Change the services' node ports.
--
-- ginkgo.By("changing the TCP service's NodePort")
-- tcpService, err = tcpJig.ChangeServiceNodePort(tcpNodePort)
-- framework.ExpectNoError(err)
-- tcpNodePortOld := tcpNodePort
-- tcpNodePort = int(tcpService.Spec.Ports[0].NodePort)
-- if tcpNodePort == tcpNodePortOld {
-- framework.Failf("TCP Spec.Ports[0].NodePort (%d) did not change", tcpNodePort)
-- }
-- if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-- framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-- }
-- framework.Logf("TCP node port: %d", tcpNodePort)
--
-- ginkgo.By("changing the UDP service's NodePort")
-- udpService, err = udpJig.ChangeServiceNodePort(udpNodePort)
-- framework.ExpectNoError(err)
-- udpNodePortOld := udpNodePort
-- udpNodePort = int(udpService.Spec.Ports[0].NodePort)
-- if udpNodePort == udpNodePortOld {
-- framework.Failf("UDP Spec.Ports[0].NodePort (%d) did not change", udpNodePort)
-- }
-- if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-- framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-- }
-- framework.Logf("UDP node port: %d", udpNodePort)
--
-- ginkgo.By("hitting the TCP service's new NodePort")
-- e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the UDP service's new NodePort")
-- testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("checking the old TCP NodePort is closed")
-- testNotReachableHTTP(nodeIP, tcpNodePortOld, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("checking the old UDP NodePort is closed")
-- testNotReachableUDP(nodeIP, udpNodePortOld, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the TCP service's LoadBalancer")
-- e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("hitting the UDP service's LoadBalancer")
-- testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-- }
--
-- // Change the services' main ports.
--
-- ginkgo.By("changing the TCP service's port")
-- tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Ports[0].Port++
-- })
-- framework.ExpectNoError(err)
-- svcPortOld := svcPort
-- svcPort = int(tcpService.Spec.Ports[0].Port)
-- if svcPort == svcPortOld {
-- framework.Failf("TCP Spec.Ports[0].Port (%d) did not change", svcPort)
-- }
-- if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-- framework.Failf("TCP Spec.Ports[0].NodePort (%d) changed", tcpService.Spec.Ports[0].NodePort)
-- }
-- if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-- framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-- }
--
-- ginkgo.By("changing the UDP service's port")
-- udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Ports[0].Port++
-- })
-- framework.ExpectNoError(err)
-- if int(udpService.Spec.Ports[0].Port) != svcPort {
-- framework.Failf("UDP Spec.Ports[0].Port (%d) did not change", udpService.Spec.Ports[0].Port)
-- }
-- if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-- framework.Failf("UDP Spec.Ports[0].NodePort (%d) changed", udpService.Spec.Ports[0].NodePort)
-- }
-- if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-- framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-- }
--
-- framework.Logf("service port (TCP and UDP): %d", svcPort)
--
-- ginkgo.By("hitting the TCP service's NodePort")
-- e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the UDP service's NodePort")
-- testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the TCP service's LoadBalancer")
-- e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("hitting the UDP service's LoadBalancer")
-- testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-- }
--
-- ginkgo.By("Scaling the pods to 0")
-- err = tcpJig.Scale(0)
-- framework.ExpectNoError(err)
-- err = udpJig.Scale(0)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("looking for ICMP REJECT on the TCP service's NodePort")
-- testRejectedHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("looking for ICMP REJECT on the UDP service's NodePort")
-- testRejectedUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("looking for ICMP REJECT on the TCP service's LoadBalancer")
-- testRejectedHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("looking for ICMP REJECT on the UDP service's LoadBalancer")
-- testRejectedUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-- }
--
-- ginkgo.By("Scaling the pods to 1")
-- err = tcpJig.Scale(1)
-- framework.ExpectNoError(err)
-- err = udpJig.Scale(1)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("hitting the TCP service's NodePort")
-- e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the UDP service's NodePort")
-- testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("hitting the TCP service's LoadBalancer")
-- e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("hitting the UDP service's LoadBalancer")
-- testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-- }
--
-- // Change the services back to ClusterIP.
--
-- ginkgo.By("changing TCP service back to type=ClusterIP")
-- _, err = tcpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Type = v1.ServiceTypeClusterIP
-- s.Spec.Ports[0].NodePort = 0
-- })
-- framework.ExpectNoError(err)
-- // Wait for the load balancer to be destroyed asynchronously
-- _, err = tcpJig.WaitForLoadBalancerDestroy(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("changing UDP service back to type=ClusterIP")
-- _, err = udpJig.UpdateService(func(s *v1.Service) {
-- s.Spec.Type = v1.ServiceTypeClusterIP
-- s.Spec.Ports[0].NodePort = 0
-- })
-- framework.ExpectNoError(err)
-- if loadBalancerSupportsUDP {
-- // Wait for the load balancer to be destroyed asynchronously
-- _, err = udpJig.WaitForLoadBalancerDestroy(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- }
--
-- ginkgo.By("checking the TCP NodePort is closed")
-- testNotReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("checking the UDP NodePort is closed")
-- testNotReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
--
-- ginkgo.By("checking the TCP LoadBalancer is closed")
-- testNotReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
--
-- if loadBalancerSupportsUDP {
-- ginkgo.By("checking the UDP LoadBalancer is closed")
-- testNotReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-- }
-- })
--
- /*
- Testname: Service, update NodePort, same port different protocol
- Description: Create a service to accept TCP requests. By default, created service MUST be of type ClusterIP and an ClusterIP MUST be assigned to the service.
-@@ -2253,199 +1879,6 @@ var _ = SIGDescribe("Services", func() {
- checkReachabilityFromPod(true, normalReachabilityTimeout, namespace, dropPod.Name, svcIP)
- })
-
-- ginkgo.It("should be able to create an internal type load balancer [Slow]", func() {
-- e2eskipper.SkipUnlessProviderIs("azure", "gke", "gce")
--
-- createTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-- pollInterval := framework.Poll * 10
--
-- namespace := f.Namespace.Name
-- serviceName := "lb-internal"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- ginkgo.By("creating pod to be part of service " + serviceName)
-- _, err := jig.Run(nil)
-- framework.ExpectNoError(err)
--
-- enableILB, disableILB := enableAndDisableInternalLB()
--
-- isInternalEndpoint := func(lbIngress *v1.LoadBalancerIngress) bool {
-- ingressEndpoint := e2eservice.GetIngressPoint(lbIngress)
-- // Needs update for providers using hostname as endpoint.
-- return strings.HasPrefix(ingressEndpoint, "10.")
-- }
--
-- ginkgo.By("creating a service with type LoadBalancer and cloud specific Internal-LB annotation enabled")
-- svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-- svc.Spec.Type = v1.ServiceTypeLoadBalancer
-- enableILB(svc)
-- })
-- framework.ExpectNoError(err)
--
-- defer func() {
-- ginkgo.By("Clean up loadbalancer service")
-- e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-- }()
--
-- svc, err = jig.WaitForLoadBalancer(createTimeout)
-- framework.ExpectNoError(err)
-- lbIngress := &svc.Status.LoadBalancer.Ingress[0]
-- svcPort := int(svc.Spec.Ports[0].Port)
-- // should have an internal IP.
-- framework.ExpectEqual(isInternalEndpoint(lbIngress), true)
--
-- // ILBs are not accessible from the test orchestrator, so it's necessary to use
-- // a pod to test the service.
-- ginkgo.By("hitting the internal load balancer from pod")
-- framework.Logf("creating pod with host network")
-- hostExec := launchHostExecPod(f.ClientSet, f.Namespace.Name, "ilb-host-exec")
--
-- framework.Logf("Waiting up to %v for service %q's internal LB to respond to requests", createTimeout, serviceName)
-- tcpIngressIP := e2eservice.GetIngressPoint(lbIngress)
-- if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-- cmd := fmt.Sprintf(`curl -m 5 'http://%v:%v/echo?msg=hello'`, tcpIngressIP, svcPort)
-- stdout, err := framework.RunHostCmd(hostExec.Namespace, hostExec.Name, cmd)
-- if err != nil {
-- framework.Logf("error curling; stdout: %v. err: %v", stdout, err)
-- return false, nil
-- }
--
-- if !strings.Contains(stdout, "hello") {
-- framework.Logf("Expected output to contain 'hello', got %q; retrying...", stdout)
-- return false, nil
-- }
--
-- framework.Logf("Successful curl; stdout: %v", stdout)
-- return true, nil
-- }); pollErr != nil {
-- framework.Failf("ginkgo.Failed to hit ILB IP, err: %v", pollErr)
-- }
--
-- ginkgo.By("switching to external type LoadBalancer")
-- svc, err = jig.UpdateService(func(svc *v1.Service) {
-- disableILB(svc)
-- })
-- framework.ExpectNoError(err)
-- framework.Logf("Waiting up to %v for service %q to have an external LoadBalancer", createTimeout, serviceName)
-- if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-- svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-- if err != nil {
-- return false, err
-- }
-- lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-- return !isInternalEndpoint(lbIngress), nil
-- }); pollErr != nil {
-- framework.Failf("Loadbalancer IP not changed to external.")
-- }
-- // should have an external IP.
-- gomega.Expect(isInternalEndpoint(lbIngress)).To(gomega.BeFalse())
--
-- ginkgo.By("hitting the external load balancer")
-- framework.Logf("Waiting up to %v for service %q's external LB to respond to requests", createTimeout, serviceName)
-- tcpIngressIP = e2eservice.GetIngressPoint(lbIngress)
-- e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, e2eservice.LoadBalancerLagTimeoutDefault)
--
-- // GCE cannot test a specific IP because the test may not own it. This cloud specific condition
-- // will be removed when GCP supports similar functionality.
-- if framework.ProviderIs("azure") {
-- ginkgo.By("switching back to interal type LoadBalancer, with static IP specified.")
-- internalStaticIP := "10.240.11.11"
-- svc, err = jig.UpdateService(func(svc *v1.Service) {
-- svc.Spec.LoadBalancerIP = internalStaticIP
-- enableILB(svc)
-- })
-- framework.ExpectNoError(err)
-- framework.Logf("Waiting up to %v for service %q to have an internal LoadBalancer", createTimeout, serviceName)
-- if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-- svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-- if err != nil {
-- return false, err
-- }
-- lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-- return isInternalEndpoint(lbIngress), nil
-- }); pollErr != nil {
-- framework.Failf("Loadbalancer IP not changed to internal.")
-- }
-- // should have the given static internal IP.
-- framework.ExpectEqual(e2eservice.GetIngressPoint(lbIngress), internalStaticIP)
-- }
-- })
--
-- // This test creates a load balancer, make sure its health check interval
-- // equals to gceHcCheckIntervalSeconds. Then the interval is manipulated
-- // to be something else, see if the interval will be reconciled.
-- ginkgo.It("should reconcile LB health check interval [Slow][Serial]", func() {
-- const gceHcCheckIntervalSeconds = int64(8)
-- // This test is for clusters on GCE.
-- // (It restarts kube-controller-manager, which we don't support on GKE)
-- e2eskipper.SkipUnlessProviderIs("gce")
-- e2eskipper.SkipUnlessSSHKeyPresent()
--
-- clusterID, err := gce.GetClusterID(cs)
-- if err != nil {
-- framework.Failf("framework.GetClusterID(cs) = _, %v; want nil", err)
-- }
-- gceCloud, err := gce.GetGCECloud()
-- if err != nil {
-- framework.Failf("framework.GetGCECloud() = _, %v; want nil", err)
-- }
--
-- namespace := f.Namespace.Name
-- serviceName := "lb-hc-int"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- ginkgo.By("create load balancer service")
-- // Create loadbalancer service with source range from node[0] and podAccept
-- svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-- svc.Spec.Type = v1.ServiceTypeLoadBalancer
-- })
-- framework.ExpectNoError(err)
--
-- defer func() {
-- ginkgo.By("Clean up loadbalancer service")
-- e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-- }()
--
-- svc, err = jig.WaitForLoadBalancer(e2eservice.GetServiceLoadBalancerCreationTimeout(cs))
-- framework.ExpectNoError(err)
--
-- hcName := gcecloud.MakeNodesHealthCheckName(clusterID)
-- hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-- if err != nil {
-- framework.Failf("gceCloud.GetHttpHealthCheck(%q) = _, %v; want nil", hcName, err)
-- }
-- framework.ExpectEqual(hc.CheckIntervalSec, gceHcCheckIntervalSeconds)
--
-- ginkgo.By("modify the health check interval")
-- hc.CheckIntervalSec = gceHcCheckIntervalSeconds - 1
-- if err = gceCloud.UpdateHTTPHealthCheck(hc); err != nil {
-- framework.Failf("gcecloud.UpdateHttpHealthCheck(%#v) = %v; want nil", hc, err)
-- }
--
-- ginkgo.By("restart kube-controller-manager")
-- if err := e2ekubesystem.RestartControllerManager(); err != nil {
-- framework.Failf("e2ekubesystem.RestartControllerManager() = %v; want nil", err)
-- }
-- if err := e2ekubesystem.WaitForControllerManagerUp(); err != nil {
-- framework.Failf("e2ekubesystem.WaitForControllerManagerUp() = %v; want nil", err)
-- }
--
-- ginkgo.By("health check should be reconciled")
-- pollInterval := framework.Poll * 10
-- loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-- if pollErr := wait.PollImmediate(pollInterval, loadBalancerPropagationTimeout, func() (bool, error) {
-- hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-- if err != nil {
-- framework.Logf("ginkgo.Failed to get HttpHealthCheck(%q): %v", hcName, err)
-- return false, err
-- }
-- framework.Logf("hc.CheckIntervalSec = %v", hc.CheckIntervalSec)
-- return hc.CheckIntervalSec == gceHcCheckIntervalSeconds, nil
-- }); pollErr != nil {
-- framework.Failf("Health check %q does not reconcile its check interval to %d.", hcName, gceHcCheckIntervalSeconds)
-- }
-- })
--
- /*
- Release: v1.19
- Testname: Service, ClusterIP type, session affinity to ClientIP
-@@ -2999,394 +2432,6 @@ var _ = SIGDescribe("Services", func() {
- })
- })
-
--var _ = SIGDescribe("ESIPP [Slow]", func() {
-- f := framework.NewDefaultFramework("esipp")
-- var loadBalancerCreateTimeout time.Duration
--
-- var cs clientset.Interface
-- serviceLBNames := []string{}
--
-- ginkgo.BeforeEach(func() {
-- // requires cloud load-balancer support - this feature currently supported only on GCE/GKE
-- e2eskipper.SkipUnlessProviderIs("gce", "gke")
--
-- cs = f.ClientSet
-- loadBalancerCreateTimeout = e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-- })
--
-- ginkgo.AfterEach(func() {
-- if ginkgo.CurrentGinkgoTestDescription().Failed {
-- DescribeSvc(f.Namespace.Name)
-- }
-- for _, lb := range serviceLBNames {
-- framework.Logf("cleaning load balancer resource for %s", lb)
-- e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
-- }
-- //reset serviceLBNames
-- serviceLBNames = []string{}
-- })
--
-- ginkgo.It("should work for type=LoadBalancer", func() {
-- namespace := f.Namespace.Name
-- serviceName := "external-local-lb"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-- framework.ExpectNoError(err)
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-- healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-- if healthCheckNodePort == 0 {
-- framework.Failf("Service HealthCheck NodePort was not allocated")
-- }
-- defer func() {
-- err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
--
-- // Make sure we didn't leak the health check node port.
-- const threshold = 2
-- nodes, err := getEndpointNodesWithInternalIP(jig)
-- framework.ExpectNoError(err)
-- config := e2enetwork.NewNetworkingTestConfig(f, false, false)
-- for _, internalIP := range nodes {
-- err := testHTTPHealthCheckNodePortFromTestContainer(
-- config,
-- internalIP,
-- healthCheckNodePort,
-- e2eservice.KubeProxyLagTimeout,
-- false,
-- threshold)
-- framework.ExpectNoError(err)
-- }
-- err = cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err)
-- }()
--
-- svcTCPPort := int(svc.Spec.Ports[0].Port)
-- ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
--
-- ginkgo.By("reading clientIP using the TCP service's service port via its external VIP")
-- content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-- clientIP := content.String()
-- framework.Logf("ClientIP detected by target pod using VIP:SvcPort is %s", clientIP)
--
-- ginkgo.By("checking if Source IP is preserved")
-- if strings.HasPrefix(clientIP, "10.") {
-- framework.Failf("Source IP was NOT preserved")
-- }
-- })
--
-- ginkgo.It("should work for type=NodePort", func() {
-- namespace := f.Namespace.Name
-- serviceName := "external-local-nodeport"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- svc, err := jig.CreateOnlyLocalNodePortService(true)
-- framework.ExpectNoError(err)
-- defer func() {
-- err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err)
-- }()
--
-- tcpNodePort := int(svc.Spec.Ports[0].NodePort)
--
-- endpointsNodeMap, err := getEndpointNodesWithInternalIP(jig)
-- framework.ExpectNoError(err)
--
-- dialCmd := "clientip"
-- config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--
-- for nodeName, nodeIP := range endpointsNodeMap {
-- ginkgo.By(fmt.Sprintf("reading clientIP using the TCP service's NodePort, on node %v: %v:%v/%v", nodeName, nodeIP, tcpNodePort, dialCmd))
-- clientIP, err := GetHTTPContentFromTestContainer(config, nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout, dialCmd)
-- framework.ExpectNoError(err)
-- framework.Logf("ClientIP detected by target pod using NodePort is %s, the ip of test container is %s", clientIP, config.TestContainerPod.Status.PodIP)
-- // the clientIP returned by agnhost contains port
-- if !strings.HasPrefix(clientIP, config.TestContainerPod.Status.PodIP) {
-- framework.Failf("Source IP was NOT preserved")
-- }
-- }
-- })
--
-- ginkgo.It("should only target nodes with endpoints", func() {
-- namespace := f.Namespace.Name
-- serviceName := "external-local-nodes"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-- nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-- framework.ExpectNoError(err)
--
-- svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, false,
-- func(svc *v1.Service) {
-- // Change service port to avoid collision with opened hostPorts
-- // in other tests that run in parallel.
-- if len(svc.Spec.Ports) != 0 {
-- svc.Spec.Ports[0].TargetPort = intstr.FromInt(int(svc.Spec.Ports[0].Port))
-- svc.Spec.Ports[0].Port = 8081
-- }
--
-- })
-- framework.ExpectNoError(err)
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-- defer func() {
-- err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err)
-- }()
--
-- healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-- if healthCheckNodePort == 0 {
-- framework.Failf("Service HealthCheck NodePort was not allocated")
-- }
--
-- ips := e2enode.CollectAddresses(nodes, v1.NodeInternalIP)
--
-- ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-- svcTCPPort := int(svc.Spec.Ports[0].Port)
--
-- const threshold = 2
-- config := e2enetwork.NewNetworkingTestConfig(f, false, false)
-- for i := 0; i < len(nodes.Items); i++ {
-- endpointNodeName := nodes.Items[i].Name
--
-- ginkgo.By("creating a pod to be part of the service " + serviceName + " on node " + endpointNodeName)
-- _, err = jig.Run(func(rc *v1.ReplicationController) {
-- rc.Name = serviceName
-- if endpointNodeName != "" {
-- rc.Spec.Template.Spec.NodeName = endpointNodeName
-- }
-- })
-- framework.ExpectNoError(err)
--
-- ginkgo.By(fmt.Sprintf("waiting for service endpoint on node %v", endpointNodeName))
-- err = jig.WaitForEndpointOnNode(endpointNodeName)
-- framework.ExpectNoError(err)
--
-- // HealthCheck should pass only on the node where num(endpoints) > 0
-- // All other nodes should fail the healthcheck on the service healthCheckNodePort
-- for n, internalIP := range ips {
-- // Make sure the loadbalancer picked up the health check change.
-- // Confirm traffic can reach backend through LB before checking healthcheck nodeport.
-- e2eservice.TestReachableHTTP(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout)
-- expectedSuccess := nodes.Items[n].Name == endpointNodeName
-- port := strconv.Itoa(healthCheckNodePort)
-- ipPort := net.JoinHostPort(internalIP, port)
-- framework.Logf("Health checking %s, http://%s/healthz, expectedSuccess %v", nodes.Items[n].Name, ipPort, expectedSuccess)
-- err := testHTTPHealthCheckNodePortFromTestContainer(
-- config,
-- internalIP,
-- healthCheckNodePort,
-- e2eservice.KubeProxyEndpointLagTimeout,
-- expectedSuccess,
-- threshold)
-- framework.ExpectNoError(err)
-- }
-- framework.ExpectNoError(e2erc.DeleteRCAndWaitForGC(f.ClientSet, namespace, serviceName))
-- }
-- })
--
-- ginkgo.It("should work from pods", func() {
-- var err error
-- namespace := f.Namespace.Name
-- serviceName := "external-local-pods"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-- framework.ExpectNoError(err)
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-- defer func() {
-- err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err)
-- }()
--
-- ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-- port := strconv.Itoa(int(svc.Spec.Ports[0].Port))
-- ipPort := net.JoinHostPort(ingressIP, port)
-- path := fmt.Sprintf("%s/clientip", ipPort)
--
-- ginkgo.By("Creating pause pod deployment to make sure, pausePods are in desired state")
-- deployment := createPausePodDeployment(cs, "pause-pod-deployment", namespace, 1)
-- framework.ExpectNoError(e2edeployment.WaitForDeploymentComplete(cs, deployment), "Failed to complete pause pod deployment")
--
-- defer func() {
-- framework.Logf("Deleting deployment")
-- err = cs.AppsV1().Deployments(namespace).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err, "Failed to delete deployment %s", deployment.Name)
-- }()
--
-- deployment, err = cs.AppsV1().Deployments(namespace).Get(context.TODO(), deployment.Name, metav1.GetOptions{})
-- framework.ExpectNoError(err, "Error in retrieving pause pod deployment")
-- labelSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector)
-- framework.ExpectNoError(err, "Error in setting LabelSelector as selector from deployment")
--
-- pausePods, err := cs.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: labelSelector.String()})
-- framework.ExpectNoError(err, "Error in listing pods associated with pause pod deployments")
--
-- pausePod := pausePods.Items[0]
-- framework.Logf("Waiting up to %v curl %v", e2eservice.KubeProxyLagTimeout, path)
-- cmd := fmt.Sprintf(`curl -q -s --connect-timeout 30 %v`, path)
--
-- var srcIP string
-- loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-- ginkgo.By(fmt.Sprintf("Hitting external lb %v from pod %v on node %v", ingressIP, pausePod.Name, pausePod.Spec.NodeName))
-- if pollErr := wait.PollImmediate(framework.Poll, loadBalancerPropagationTimeout, func() (bool, error) {
-- stdout, err := framework.RunHostCmd(pausePod.Namespace, pausePod.Name, cmd)
-- if err != nil {
-- framework.Logf("got err: %v, retry until timeout", err)
-- return false, nil
-- }
-- srcIP = strings.TrimSpace(strings.Split(stdout, ":")[0])
-- return srcIP == pausePod.Status.PodIP, nil
-- }); pollErr != nil {
-- framework.Failf("Source IP not preserved from %v, expected '%v' got '%v'", pausePod.Name, pausePod.Status.PodIP, srcIP)
-- }
-- })
--
-- ginkgo.It("should handle updates to ExternalTrafficPolicy field", func() {
-- namespace := f.Namespace.Name
-- serviceName := "external-local-update"
-- jig := e2eservice.NewTestJig(cs, namespace, serviceName)
--
-- nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-- framework.ExpectNoError(err)
-- if len(nodes.Items) < 2 {
-- framework.Failf("Need at least 2 nodes to verify source ip from a node without endpoint")
-- }
--
-- svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-- framework.ExpectNoError(err)
-- serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-- defer func() {
-- err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-- framework.ExpectNoError(err)
-- err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-- framework.ExpectNoError(err)
-- }()
--
-- // save the health check node port because it disappears when ESIPP is turned off.
-- healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
--
-- ginkgo.By("turning ESIPP off")
-- svc, err = jig.UpdateService(func(svc *v1.Service) {
-- svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster
-- })
-- framework.ExpectNoError(err)
-- if svc.Spec.HealthCheckNodePort > 0 {
-- framework.Failf("Service HealthCheck NodePort still present")
-- }
--
-- epNodes, err := jig.ListNodesWithEndpoint()
-- framework.ExpectNoError(err)
-- // map from name of nodes with endpoint to internal ip
-- // it is assumed that there is only a single node with the endpoint
-- endpointNodeMap := make(map[string]string)
-- // map from name of nodes without endpoint to internal ip
-- noEndpointNodeMap := make(map[string]string)
-- for _, node := range epNodes {
-- ips := e2enode.GetAddresses(&node, v1.NodeInternalIP)
-- if len(ips) < 1 {
-- framework.Failf("No internal ip found for node %s", node.Name)
-- }
-- endpointNodeMap[node.Name] = ips[0]
-- }
-- for _, n := range nodes.Items {
-- ips := e2enode.GetAddresses(&n, v1.NodeInternalIP)
-- if len(ips) < 1 {
-- framework.Failf("No internal ip found for node %s", n.Name)
-- }
-- if _, ok := endpointNodeMap[n.Name]; !ok {
-- noEndpointNodeMap[n.Name] = ips[0]
-- }
-- }
-- framework.ExpectNotEqual(len(endpointNodeMap), 0)
-- framework.ExpectNotEqual(len(noEndpointNodeMap), 0)
--
-- svcTCPPort := int(svc.Spec.Ports[0].Port)
-- svcNodePort := int(svc.Spec.Ports[0].NodePort)
-- ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-- path := "/clientip"
-- dialCmd := "clientip"
--
-- config := e2enetwork.NewNetworkingTestConfig(f, false, false)
--
-- ginkgo.By(fmt.Sprintf("endpoints present on nodes %v, absent on nodes %v", endpointNodeMap, noEndpointNodeMap))
-- for nodeName, nodeIP := range noEndpointNodeMap {
-- ginkgo.By(fmt.Sprintf("Checking %v (%v:%v/%v) proxies to endpoints on another node", nodeName, nodeIP[0], svcNodePort, dialCmd))
-- _, err := GetHTTPContentFromTestContainer(config, nodeIP, svcNodePort, e2eservice.KubeProxyLagTimeout, dialCmd)
-- framework.ExpectNoError(err, "Could not reach HTTP service through %v:%v/%v after %v", nodeIP, svcNodePort, dialCmd, e2eservice.KubeProxyLagTimeout)
-- }
--
-- for nodeName, nodeIP := range endpointNodeMap {
-- ginkgo.By(fmt.Sprintf("checking kube-proxy health check fails on node with endpoint (%s), public IP %s", nodeName, nodeIP))
-- var body string
-- pollFn := func() (bool, error) {
-- // we expect connection failure here, but not other errors
-- resp, err := config.GetResponseFromTestContainer(
-- "http",
-- "healthz",
-- nodeIP,
-- healthCheckNodePort)
-- if err != nil {
-- return false, nil
-- }
-- if len(resp.Errors) > 0 {
-- return true, nil
-- }
-- if len(resp.Responses) > 0 {
-- body = resp.Responses[0]
-- }
-- return false, nil
-- }
-- if pollErr := wait.PollImmediate(framework.Poll, e2eservice.TestTimeout, pollFn); pollErr != nil {
-- framework.Failf("Kube-proxy still exposing health check on node %v:%v, after ESIPP was turned off. body %s",
-- nodeName, healthCheckNodePort, body)
-- }
-- }
--
-- // Poll till kube-proxy re-adds the MASQUERADE rule on the node.
-- ginkgo.By(fmt.Sprintf("checking source ip is NOT preserved through loadbalancer %v", ingressIP))
-- var clientIP string
-- pollErr := wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-- content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-- clientIP = content.String()
-- if strings.HasPrefix(clientIP, "10.") {
-- return true, nil
-- }
-- return false, nil
-- })
-- if pollErr != nil {
-- framework.Failf("Source IP WAS preserved even after ESIPP turned off. Got %v, expected a ten-dot cluster ip.", clientIP)
-- }
--
-- // TODO: We need to attempt to create another service with the previously
-- // allocated healthcheck nodePort. If the health check nodePort has been
-- // freed, the new service creation will succeed, upon which we cleanup.
-- // If the health check nodePort has NOT been freed, the new service
-- // creation will fail.
--
-- ginkgo.By("setting ExternalTraffic field back to OnlyLocal")
-- svc, err = jig.UpdateService(func(svc *v1.Service) {
-- svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
-- // Request the same healthCheckNodePort as before, to test the user-requested allocation path
-- svc.Spec.HealthCheckNodePort = int32(healthCheckNodePort)
-- })
-- framework.ExpectNoError(err)
-- pollErr = wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-- content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, path)
-- clientIP = content.String()
-- ginkgo.By(fmt.Sprintf("Endpoint %v:%v%v returned client ip %v", ingressIP, svcTCPPort, path, clientIP))
-- if !strings.HasPrefix(clientIP, "10.") {
-- return true, nil
-- }
-- return false, nil
-- })
-- if pollErr != nil {
-- framework.Failf("Source IP (%v) is not the client IP even after ESIPP turned on, expected a public IP.", clientIP)
-- }
-- })
--})
--
- // execAffinityTestForSessionAffinityTimeout is a helper function that wrap the logic of
- // affinity test for non-load-balancer services. Session afinity will be
- // enabled when the service is created and a short timeout will be configured so
-diff --git a/test/e2e/network/service_providers.go b/test/e2e/network/service_providers.go
-new file mode 100644
-index 00000000000..b7eae6feb2c
---- /dev/null
-+++ b/test/e2e/network/service_providers.go
-@@ -0,0 +1,980 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 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 network
-+
-+import (
-+ "bytes"
-+ "context"
-+ "fmt"
-+ "net"
-+ "strconv"
-+ "strings"
-+ "time"
-+
-+ compute "google.golang.org/api/compute/v1"
-+ v1 "k8s.io/api/core/v1"
-+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-+ "k8s.io/apimachinery/pkg/util/intstr"
-+ "k8s.io/apimachinery/pkg/util/wait"
-+ clientset "k8s.io/client-go/kubernetes"
-+ cloudprovider "k8s.io/cloud-provider"
-+ "k8s.io/kubernetes/test/e2e/framework"
-+ e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
-+ e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
-+ e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
-+ e2enode "k8s.io/kubernetes/test/e2e/framework/node"
-+ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+ e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
-+ e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
-+ e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+ gcecloud "k8s.io/legacy-cloud-providers/gce"
-+
-+ "github.com/onsi/ginkgo"
-+ "github.com/onsi/gomega"
-+)
-+
-+var _ = SIGDescribe("Services with Cloud LoadBalancers", func() {
-+
-+ f := framework.NewDefaultFramework("services")
-+
-+ var cs clientset.Interface
-+ serviceLBNames := []string{}
-+
-+ ginkgo.BeforeEach(func() {
-+ cs = f.ClientSet
-+ })
-+
-+ ginkgo.AfterEach(func() {
-+ if ginkgo.CurrentGinkgoTestDescription().Failed {
-+ DescribeSvc(f.Namespace.Name)
-+ }
-+ for _, lb := range serviceLBNames {
-+ framework.Logf("cleaning load balancer resource for %s", lb)
-+ e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
-+ }
-+ //reset serviceLBNames
-+ serviceLBNames = []string{}
-+ })
-+
-+ // TODO: Get rid of [DisabledForLargeClusters] tag when issue #56138 is fixed
-+ ginkgo.It("should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]", func() {
-+ // requires cloud load-balancer support
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
-+
-+ loadBalancerSupportsUDP := !framework.ProviderIs("aws")
-+
-+ loadBalancerLagTimeout := e2eservice.LoadBalancerLagTimeoutDefault
-+ if framework.ProviderIs("aws") {
-+ loadBalancerLagTimeout = e2eservice.LoadBalancerLagTimeoutAWS
-+ }
-+ loadBalancerCreateTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+
-+ // This test is more monolithic than we'd like because LB turnup can be
-+ // very slow, so we lumped all the tests into one LB lifecycle.
-+
-+ serviceName := "mutability-test"
-+ ns1 := f.Namespace.Name // LB1 in ns1 on TCP
-+ framework.Logf("namespace for TCP test: %s", ns1)
-+
-+ ginkgo.By("creating a second namespace")
-+ namespacePtr, err := f.CreateNamespace("services", nil)
-+ framework.ExpectNoError(err, "failed to create namespace")
-+ ns2 := namespacePtr.Name // LB2 in ns2 on UDP
-+ framework.Logf("namespace for UDP test: %s", ns2)
-+
-+ nodeIP, err := e2enode.PickIP(cs) // for later
-+ framework.ExpectNoError(err)
-+
-+ // Test TCP and UDP Services. Services with the same name in different
-+ // namespaces should get different node ports and load balancers.
-+
-+ ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns1)
-+ tcpJig := e2eservice.NewTestJig(cs, ns1, serviceName)
-+ tcpService, err := tcpJig.CreateTCPService(nil)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("creating a UDP service " + serviceName + " with type=ClusterIP in namespace " + ns2)
-+ udpJig := e2eservice.NewTestJig(cs, ns2, serviceName)
-+ udpService, err := udpJig.CreateUDPService(nil)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("verifying that TCP and UDP use the same port")
-+ if tcpService.Spec.Ports[0].Port != udpService.Spec.Ports[0].Port {
-+ framework.Failf("expected to use the same port for TCP and UDP")
-+ }
-+ svcPort := int(tcpService.Spec.Ports[0].Port)
-+ framework.Logf("service port (TCP and UDP): %d", svcPort)
-+
-+ ginkgo.By("creating a pod to be part of the TCP service " + serviceName)
-+ _, err = tcpJig.Run(nil)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("creating a pod to be part of the UDP service " + serviceName)
-+ _, err = udpJig.Run(nil)
-+ framework.ExpectNoError(err)
-+
-+ // Change the services to NodePort.
-+
-+ ginkgo.By("changing the TCP service to type=NodePort")
-+ tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Type = v1.ServiceTypeNodePort
-+ })
-+ framework.ExpectNoError(err)
-+ tcpNodePort := int(tcpService.Spec.Ports[0].NodePort)
-+ framework.Logf("TCP node port: %d", tcpNodePort)
-+
-+ ginkgo.By("changing the UDP service to type=NodePort")
-+ udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Type = v1.ServiceTypeNodePort
-+ })
-+ framework.ExpectNoError(err)
-+ udpNodePort := int(udpService.Spec.Ports[0].NodePort)
-+ framework.Logf("UDP node port: %d", udpNodePort)
-+
-+ ginkgo.By("hitting the TCP service's NodePort")
-+ e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the UDP service's NodePort")
-+ testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ // Change the services to LoadBalancer.
-+
-+ // Here we test that LoadBalancers can receive static IP addresses. This isn't
-+ // necessary, but is an additional feature this monolithic test checks.
-+ requestedIP := ""
-+ staticIPName := ""
-+ if framework.ProviderIs("gce", "gke") {
-+ ginkgo.By("creating a static load balancer IP")
-+ staticIPName = fmt.Sprintf("e2e-external-lb-test-%s", framework.RunID)
-+ gceCloud, err := gce.GetGCECloud()
-+ framework.ExpectNoError(err, "failed to get GCE cloud provider")
-+
-+ err = gceCloud.ReserveRegionAddress(&compute.Address{Name: staticIPName}, gceCloud.Region())
-+ defer func() {
-+ if staticIPName != "" {
-+ // Release GCE static IP - this is not kube-managed and will not be automatically released.
-+ if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-+ framework.Logf("failed to release static IP %s: %v", staticIPName, err)
-+ }
-+ }
-+ }()
-+ framework.ExpectNoError(err, "failed to create region address: %s", staticIPName)
-+ reservedAddr, err := gceCloud.GetRegionAddress(staticIPName, gceCloud.Region())
-+ framework.ExpectNoError(err, "failed to get region address: %s", staticIPName)
-+
-+ requestedIP = reservedAddr.Address
-+ framework.Logf("Allocated static load balancer IP: %s", requestedIP)
-+ }
-+
-+ ginkgo.By("changing the TCP service to type=LoadBalancer")
-+ tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.LoadBalancerIP = requestedIP // will be "" if not applicable
-+ s.Spec.Type = v1.ServiceTypeLoadBalancer
-+ })
-+ framework.ExpectNoError(err)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("changing the UDP service to type=LoadBalancer")
-+ udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Type = v1.ServiceTypeLoadBalancer
-+ })
-+ framework.ExpectNoError(err)
-+ }
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(tcpService))
-+ if loadBalancerSupportsUDP {
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(udpService))
-+ }
-+
-+ ginkgo.By("waiting for the TCP service to have a load balancer")
-+ // Wait for the load balancer to be created asynchronously
-+ tcpService, err = tcpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-+ framework.Failf("TCP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", tcpNodePort, tcpService.Spec.Ports[0].NodePort)
-+ }
-+ if requestedIP != "" && e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != requestedIP {
-+ framework.Failf("unexpected TCP Status.LoadBalancer.Ingress (expected %s, got %s)", requestedIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+ tcpIngressIP := e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0])
-+ framework.Logf("TCP load balancer: %s", tcpIngressIP)
-+
-+ if framework.ProviderIs("gce", "gke") {
-+ // Do this as early as possible, which overrides the `defer` above.
-+ // This is mostly out of fear of leaking the IP in a timeout case
-+ // (as of this writing we're not 100% sure where the leaks are
-+ // coming from, so this is first-aid rather than surgery).
-+ ginkgo.By("demoting the static IP to ephemeral")
-+ if staticIPName != "" {
-+ gceCloud, err := gce.GetGCECloud()
-+ framework.ExpectNoError(err, "failed to get GCE cloud provider")
-+ // Deleting it after it is attached "demotes" it to an
-+ // ephemeral IP, which can be auto-released.
-+ if err := gceCloud.DeleteRegionAddress(staticIPName, gceCloud.Region()); err != nil {
-+ framework.Failf("failed to release static IP %s: %v", staticIPName, err)
-+ }
-+ staticIPName = ""
-+ }
-+ }
-+
-+ var udpIngressIP string
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("waiting for the UDP service to have a load balancer")
-+ // 2nd one should be faster since they ran in parallel.
-+ udpService, err = udpJig.WaitForLoadBalancer(loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-+ framework.Failf("UDP Spec.Ports[0].NodePort changed (%d -> %d) when not expected", udpNodePort, udpService.Spec.Ports[0].NodePort)
-+ }
-+ udpIngressIP = e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0])
-+ framework.Logf("UDP load balancer: %s", udpIngressIP)
-+
-+ ginkgo.By("verifying that TCP and UDP use different load balancers")
-+ if tcpIngressIP == udpIngressIP {
-+ framework.Failf("Load balancers are not different: %s", e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+ }
-+
-+ ginkgo.By("hitting the TCP service's NodePort")
-+ e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the UDP service's NodePort")
-+ testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the TCP service's LoadBalancer")
-+ e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("hitting the UDP service's LoadBalancer")
-+ testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+ }
-+
-+ // Change the services' node ports.
-+
-+ ginkgo.By("changing the TCP service's NodePort")
-+ tcpService, err = tcpJig.ChangeServiceNodePort(tcpNodePort)
-+ framework.ExpectNoError(err)
-+ tcpNodePortOld := tcpNodePort
-+ tcpNodePort = int(tcpService.Spec.Ports[0].NodePort)
-+ if tcpNodePort == tcpNodePortOld {
-+ framework.Failf("TCP Spec.Ports[0].NodePort (%d) did not change", tcpNodePort)
-+ }
-+ if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-+ framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+ framework.Logf("TCP node port: %d", tcpNodePort)
-+
-+ ginkgo.By("changing the UDP service's NodePort")
-+ udpService, err = udpJig.ChangeServiceNodePort(udpNodePort)
-+ framework.ExpectNoError(err)
-+ udpNodePortOld := udpNodePort
-+ udpNodePort = int(udpService.Spec.Ports[0].NodePort)
-+ if udpNodePort == udpNodePortOld {
-+ framework.Failf("UDP Spec.Ports[0].NodePort (%d) did not change", udpNodePort)
-+ }
-+ if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-+ framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+ framework.Logf("UDP node port: %d", udpNodePort)
-+
-+ ginkgo.By("hitting the TCP service's new NodePort")
-+ e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the UDP service's new NodePort")
-+ testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("checking the old TCP NodePort is closed")
-+ testNotReachableHTTP(nodeIP, tcpNodePortOld, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("checking the old UDP NodePort is closed")
-+ testNotReachableUDP(nodeIP, udpNodePortOld, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the TCP service's LoadBalancer")
-+ e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("hitting the UDP service's LoadBalancer")
-+ testReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+ }
-+
-+ // Change the services' main ports.
-+
-+ ginkgo.By("changing the TCP service's port")
-+ tcpService, err = tcpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Ports[0].Port++
-+ })
-+ framework.ExpectNoError(err)
-+ svcPortOld := svcPort
-+ svcPort = int(tcpService.Spec.Ports[0].Port)
-+ if svcPort == svcPortOld {
-+ framework.Failf("TCP Spec.Ports[0].Port (%d) did not change", svcPort)
-+ }
-+ if int(tcpService.Spec.Ports[0].NodePort) != tcpNodePort {
-+ framework.Failf("TCP Spec.Ports[0].NodePort (%d) changed", tcpService.Spec.Ports[0].NodePort)
-+ }
-+ if e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]) != tcpIngressIP {
-+ framework.Failf("TCP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", tcpIngressIP, e2eservice.GetIngressPoint(&tcpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+
-+ ginkgo.By("changing the UDP service's port")
-+ udpService, err = udpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Ports[0].Port++
-+ })
-+ framework.ExpectNoError(err)
-+ if int(udpService.Spec.Ports[0].Port) != svcPort {
-+ framework.Failf("UDP Spec.Ports[0].Port (%d) did not change", udpService.Spec.Ports[0].Port)
-+ }
-+ if int(udpService.Spec.Ports[0].NodePort) != udpNodePort {
-+ framework.Failf("UDP Spec.Ports[0].NodePort (%d) changed", udpService.Spec.Ports[0].NodePort)
-+ }
-+ if loadBalancerSupportsUDP && e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]) != udpIngressIP {
-+ framework.Failf("UDP Status.LoadBalancer.Ingress changed (%s -> %s) when not expected", udpIngressIP, e2eservice.GetIngressPoint(&udpService.Status.LoadBalancer.Ingress[0]))
-+ }
-+
-+ framework.Logf("service port (TCP and UDP): %d", svcPort)
-+
-+ ginkgo.By("hitting the TCP service's NodePort")
-+ e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the UDP service's NodePort")
-+ testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the TCP service's LoadBalancer")
-+ e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("hitting the UDP service's LoadBalancer")
-+ testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+ }
-+
-+ ginkgo.By("Scaling the pods to 0")
-+ err = tcpJig.Scale(0)
-+ framework.ExpectNoError(err)
-+ err = udpJig.Scale(0)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("looking for ICMP REJECT on the TCP service's NodePort")
-+ testRejectedHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("looking for ICMP REJECT on the UDP service's NodePort")
-+ testRejectedUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("looking for ICMP REJECT on the TCP service's LoadBalancer")
-+ testRejectedHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("looking for ICMP REJECT on the UDP service's LoadBalancer")
-+ testRejectedUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+ }
-+
-+ ginkgo.By("Scaling the pods to 1")
-+ err = tcpJig.Scale(1)
-+ framework.ExpectNoError(err)
-+ err = udpJig.Scale(1)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("hitting the TCP service's NodePort")
-+ e2eservice.TestReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the UDP service's NodePort")
-+ testReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("hitting the TCP service's LoadBalancer")
-+ e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("hitting the UDP service's LoadBalancer")
-+ testReachableUDP(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+ }
-+
-+ // Change the services back to ClusterIP.
-+
-+ ginkgo.By("changing TCP service back to type=ClusterIP")
-+ _, err = tcpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Type = v1.ServiceTypeClusterIP
-+ s.Spec.Ports[0].NodePort = 0
-+ })
-+ framework.ExpectNoError(err)
-+ // Wait for the load balancer to be destroyed asynchronously
-+ _, err = tcpJig.WaitForLoadBalancerDestroy(tcpIngressIP, svcPort, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("changing UDP service back to type=ClusterIP")
-+ _, err = udpJig.UpdateService(func(s *v1.Service) {
-+ s.Spec.Type = v1.ServiceTypeClusterIP
-+ s.Spec.Ports[0].NodePort = 0
-+ })
-+ framework.ExpectNoError(err)
-+ if loadBalancerSupportsUDP {
-+ // Wait for the load balancer to be destroyed asynchronously
-+ _, err = udpJig.WaitForLoadBalancerDestroy(udpIngressIP, svcPort, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ }
-+
-+ ginkgo.By("checking the TCP NodePort is closed")
-+ testNotReachableHTTP(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("checking the UDP NodePort is closed")
-+ testNotReachableUDP(nodeIP, udpNodePort, e2eservice.KubeProxyLagTimeout)
-+
-+ ginkgo.By("checking the TCP LoadBalancer is closed")
-+ testNotReachableHTTP(tcpIngressIP, svcPort, loadBalancerLagTimeout)
-+
-+ if loadBalancerSupportsUDP {
-+ ginkgo.By("checking the UDP LoadBalancer is closed")
-+ testNotReachableUDP(udpIngressIP, svcPort, loadBalancerLagTimeout)
-+ }
-+ })
-+
-+ ginkgo.It("should be able to create an internal type load balancer [Slow]", func() {
-+ e2eskipper.SkipUnlessProviderIs("azure", "gke", "gce")
-+
-+ createTimeout := e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+ pollInterval := framework.Poll * 10
-+
-+ namespace := f.Namespace.Name
-+ serviceName := "lb-internal"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ ginkgo.By("creating pod to be part of service " + serviceName)
-+ _, err := jig.Run(nil)
-+ framework.ExpectNoError(err)
-+
-+ enableILB, disableILB := enableAndDisableInternalLB()
-+
-+ isInternalEndpoint := func(lbIngress *v1.LoadBalancerIngress) bool {
-+ ingressEndpoint := e2eservice.GetIngressPoint(lbIngress)
-+ // Needs update for providers using hostname as endpoint.
-+ return strings.HasPrefix(ingressEndpoint, "10.")
-+ }
-+
-+ ginkgo.By("creating a service with type LoadBalancer and cloud specific Internal-LB annotation enabled")
-+ svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-+ svc.Spec.Type = v1.ServiceTypeLoadBalancer
-+ enableILB(svc)
-+ })
-+ framework.ExpectNoError(err)
-+
-+ defer func() {
-+ ginkgo.By("Clean up loadbalancer service")
-+ e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-+ }()
-+
-+ svc, err = jig.WaitForLoadBalancer(createTimeout)
-+ framework.ExpectNoError(err)
-+ lbIngress := &svc.Status.LoadBalancer.Ingress[0]
-+ svcPort := int(svc.Spec.Ports[0].Port)
-+ // should have an internal IP.
-+ framework.ExpectEqual(isInternalEndpoint(lbIngress), true)
-+
-+ // ILBs are not accessible from the test orchestrator, so it's necessary to use
-+ // a pod to test the service.
-+ ginkgo.By("hitting the internal load balancer from pod")
-+ framework.Logf("creating pod with host network")
-+ hostExec := launchHostExecPod(f.ClientSet, f.Namespace.Name, "ilb-host-exec")
-+
-+ framework.Logf("Waiting up to %v for service %q's internal LB to respond to requests", createTimeout, serviceName)
-+ tcpIngressIP := e2eservice.GetIngressPoint(lbIngress)
-+ if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+ cmd := fmt.Sprintf(`curl -m 5 'http://%v:%v/echo?msg=hello'`, tcpIngressIP, svcPort)
-+ stdout, err := framework.RunHostCmd(hostExec.Namespace, hostExec.Name, cmd)
-+ if err != nil {
-+ framework.Logf("error curling; stdout: %v. err: %v", stdout, err)
-+ return false, nil
-+ }
-+
-+ if !strings.Contains(stdout, "hello") {
-+ framework.Logf("Expected output to contain 'hello', got %q; retrying...", stdout)
-+ return false, nil
-+ }
-+
-+ framework.Logf("Successful curl; stdout: %v", stdout)
-+ return true, nil
-+ }); pollErr != nil {
-+ framework.Failf("ginkgo.Failed to hit ILB IP, err: %v", pollErr)
-+ }
-+
-+ ginkgo.By("switching to external type LoadBalancer")
-+ svc, err = jig.UpdateService(func(svc *v1.Service) {
-+ disableILB(svc)
-+ })
-+ framework.ExpectNoError(err)
-+ framework.Logf("Waiting up to %v for service %q to have an external LoadBalancer", createTimeout, serviceName)
-+ if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+ svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-+ if err != nil {
-+ return false, err
-+ }
-+ lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-+ return !isInternalEndpoint(lbIngress), nil
-+ }); pollErr != nil {
-+ framework.Failf("Loadbalancer IP not changed to external.")
-+ }
-+ // should have an external IP.
-+ gomega.Expect(isInternalEndpoint(lbIngress)).To(gomega.BeFalse())
-+
-+ ginkgo.By("hitting the external load balancer")
-+ framework.Logf("Waiting up to %v for service %q's external LB to respond to requests", createTimeout, serviceName)
-+ tcpIngressIP = e2eservice.GetIngressPoint(lbIngress)
-+ e2eservice.TestReachableHTTP(tcpIngressIP, svcPort, e2eservice.LoadBalancerLagTimeoutDefault)
-+
-+ // GCE cannot test a specific IP because the test may not own it. This cloud specific condition
-+ // will be removed when GCP supports similar functionality.
-+ if framework.ProviderIs("azure") {
-+ ginkgo.By("switching back to interal type LoadBalancer, with static IP specified.")
-+ internalStaticIP := "10.240.11.11"
-+ svc, err = jig.UpdateService(func(svc *v1.Service) {
-+ svc.Spec.LoadBalancerIP = internalStaticIP
-+ enableILB(svc)
-+ })
-+ framework.ExpectNoError(err)
-+ framework.Logf("Waiting up to %v for service %q to have an internal LoadBalancer", createTimeout, serviceName)
-+ if pollErr := wait.PollImmediate(pollInterval, createTimeout, func() (bool, error) {
-+ svc, err := cs.CoreV1().Services(namespace).Get(context.TODO(), serviceName, metav1.GetOptions{})
-+ if err != nil {
-+ return false, err
-+ }
-+ lbIngress = &svc.Status.LoadBalancer.Ingress[0]
-+ return isInternalEndpoint(lbIngress), nil
-+ }); pollErr != nil {
-+ framework.Failf("Loadbalancer IP not changed to internal.")
-+ }
-+ // should have the given static internal IP.
-+ framework.ExpectEqual(e2eservice.GetIngressPoint(lbIngress), internalStaticIP)
-+ }
-+ })
-+
-+ // This test creates a load balancer, make sure its health check interval
-+ // equals to gceHcCheckIntervalSeconds. Then the interval is manipulated
-+ // to be something else, see if the interval will be reconciled.
-+ ginkgo.It("should reconcile LB health check interval [Slow][Serial]", func() {
-+ const gceHcCheckIntervalSeconds = int64(8)
-+ // This test is for clusters on GCE.
-+ // (It restarts kube-controller-manager, which we don't support on GKE)
-+ e2eskipper.SkipUnlessProviderIs("gce")
-+ e2eskipper.SkipUnlessSSHKeyPresent()
-+
-+ clusterID, err := gce.GetClusterID(cs)
-+ if err != nil {
-+ framework.Failf("framework.GetClusterID(cs) = _, %v; want nil", err)
-+ }
-+ gceCloud, err := gce.GetGCECloud()
-+ if err != nil {
-+ framework.Failf("framework.GetGCECloud() = _, %v; want nil", err)
-+ }
-+
-+ namespace := f.Namespace.Name
-+ serviceName := "lb-hc-int"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ ginkgo.By("create load balancer service")
-+ // Create loadbalancer service with source range from node[0] and podAccept
-+ svc, err := jig.CreateTCPService(func(svc *v1.Service) {
-+ svc.Spec.Type = v1.ServiceTypeLoadBalancer
-+ })
-+ framework.ExpectNoError(err)
-+
-+ defer func() {
-+ ginkgo.By("Clean up loadbalancer service")
-+ e2eservice.WaitForServiceDeletedWithFinalizer(cs, svc.Namespace, svc.Name)
-+ }()
-+
-+ svc, err = jig.WaitForLoadBalancer(e2eservice.GetServiceLoadBalancerCreationTimeout(cs))
-+ framework.ExpectNoError(err)
-+
-+ hcName := gcecloud.MakeNodesHealthCheckName(clusterID)
-+ hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-+ if err != nil {
-+ framework.Failf("gceCloud.GetHttpHealthCheck(%q) = _, %v; want nil", hcName, err)
-+ }
-+ framework.ExpectEqual(hc.CheckIntervalSec, gceHcCheckIntervalSeconds)
-+
-+ ginkgo.By("modify the health check interval")
-+ hc.CheckIntervalSec = gceHcCheckIntervalSeconds - 1
-+ if err = gceCloud.UpdateHTTPHealthCheck(hc); err != nil {
-+ framework.Failf("gcecloud.UpdateHttpHealthCheck(%#v) = %v; want nil", hc, err)
-+ }
-+
-+ ginkgo.By("restart kube-controller-manager")
-+ if err := e2ekubesystem.RestartControllerManager(); err != nil {
-+ framework.Failf("e2ekubesystem.RestartControllerManager() = %v; want nil", err)
-+ }
-+ if err := e2ekubesystem.WaitForControllerManagerUp(); err != nil {
-+ framework.Failf("e2ekubesystem.WaitForControllerManagerUp() = %v; want nil", err)
-+ }
-+
-+ ginkgo.By("health check should be reconciled")
-+ pollInterval := framework.Poll * 10
-+ loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-+ if pollErr := wait.PollImmediate(pollInterval, loadBalancerPropagationTimeout, func() (bool, error) {
-+ hc, err := gceCloud.GetHTTPHealthCheck(hcName)
-+ if err != nil {
-+ framework.Logf("ginkgo.Failed to get HttpHealthCheck(%q): %v", hcName, err)
-+ return false, err
-+ }
-+ framework.Logf("hc.CheckIntervalSec = %v", hc.CheckIntervalSec)
-+ return hc.CheckIntervalSec == gceHcCheckIntervalSeconds, nil
-+ }); pollErr != nil {
-+ framework.Failf("Health check %q does not reconcile its check interval to %d.", hcName, gceHcCheckIntervalSeconds)
-+ }
-+ })
-+
-+ var _ = SIGDescribe("ESIPP [Slow]", func() {
-+ f := framework.NewDefaultFramework("esipp")
-+ var loadBalancerCreateTimeout time.Duration
-+
-+ var cs clientset.Interface
-+ serviceLBNames := []string{}
-+
-+ ginkgo.BeforeEach(func() {
-+ // requires cloud load-balancer support - this feature currently supported only on GCE/GKE
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+
-+ cs = f.ClientSet
-+ loadBalancerCreateTimeout = e2eservice.GetServiceLoadBalancerCreationTimeout(cs)
-+ })
-+
-+ ginkgo.AfterEach(func() {
-+ if ginkgo.CurrentGinkgoTestDescription().Failed {
-+ DescribeSvc(f.Namespace.Name)
-+ }
-+ for _, lb := range serviceLBNames {
-+ framework.Logf("cleaning load balancer resource for %s", lb)
-+ e2eservice.CleanupServiceResources(cs, lb, framework.TestContext.CloudConfig.Region, framework.TestContext.CloudConfig.Zone)
-+ }
-+ //reset serviceLBNames
-+ serviceLBNames = []string{}
-+ })
-+
-+ ginkgo.It("should work for type=LoadBalancer", func() {
-+ namespace := f.Namespace.Name
-+ serviceName := "external-local-lb"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+ framework.ExpectNoError(err)
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+ healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+ if healthCheckNodePort == 0 {
-+ framework.Failf("Service HealthCheck NodePort was not allocated")
-+ }
-+ defer func() {
-+ err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+
-+ // Make sure we didn't leak the health check node port.
-+ threshold := 2
-+ nodes, err := jig.GetEndpointNodes()
-+ framework.ExpectNoError(err)
-+ for _, ips := range nodes {
-+ err := TestHTTPHealthCheckNodePort(ips[0], healthCheckNodePort, "/healthz", e2eservice.KubeProxyEndpointLagTimeout, false, threshold)
-+ framework.ExpectNoError(err)
-+ }
-+ err = cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err)
-+ }()
-+
-+ svcTCPPort := int(svc.Spec.Ports[0].Port)
-+ ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+
-+ ginkgo.By("reading clientIP using the TCP service's service port via its external VIP")
-+ content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-+ clientIP := content.String()
-+ framework.Logf("ClientIP detected by target pod using VIP:SvcPort is %s", clientIP)
-+
-+ ginkgo.By("checking if Source IP is preserved")
-+ if strings.HasPrefix(clientIP, "10.") {
-+ framework.Failf("Source IP was NOT preserved")
-+ }
-+ })
-+
-+ ginkgo.It("should work for type=NodePort", func() {
-+ namespace := f.Namespace.Name
-+ serviceName := "external-local-nodeport"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ svc, err := jig.CreateOnlyLocalNodePortService(true)
-+ framework.ExpectNoError(err)
-+ defer func() {
-+ err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err)
-+ }()
-+
-+ tcpNodePort := int(svc.Spec.Ports[0].NodePort)
-+ endpointsNodeMap, err := jig.GetEndpointNodes()
-+ framework.ExpectNoError(err)
-+ path := "/clientip"
-+
-+ for nodeName, nodeIPs := range endpointsNodeMap {
-+ nodeIP := nodeIPs[0]
-+ ginkgo.By(fmt.Sprintf("reading clientIP using the TCP service's NodePort, on node %v: %v%v%v", nodeName, nodeIP, tcpNodePort, path))
-+ content := GetHTTPContent(nodeIP, tcpNodePort, e2eservice.KubeProxyLagTimeout, path)
-+ clientIP := content.String()
-+ framework.Logf("ClientIP detected by target pod using NodePort is %s", clientIP)
-+ if strings.HasPrefix(clientIP, "10.") {
-+ framework.Failf("Source IP was NOT preserved")
-+ }
-+ }
-+ })
-+
-+ ginkgo.It("should only target nodes with endpoints", func() {
-+ namespace := f.Namespace.Name
-+ serviceName := "external-local-nodes"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+ nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-+ framework.ExpectNoError(err)
-+
-+ svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, false,
-+ func(svc *v1.Service) {
-+ // Change service port to avoid collision with opened hostPorts
-+ // in other tests that run in parallel.
-+ if len(svc.Spec.Ports) != 0 {
-+ svc.Spec.Ports[0].TargetPort = intstr.FromInt(int(svc.Spec.Ports[0].Port))
-+ svc.Spec.Ports[0].Port = 8081
-+ }
-+
-+ })
-+ framework.ExpectNoError(err)
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+ defer func() {
-+ err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err)
-+ }()
-+
-+ healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+ if healthCheckNodePort == 0 {
-+ framework.Failf("Service HealthCheck NodePort was not allocated")
-+ }
-+
-+ ips := e2enode.CollectAddresses(nodes, v1.NodeExternalIP)
-+
-+ ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+ svcTCPPort := int(svc.Spec.Ports[0].Port)
-+
-+ threshold := 2
-+ path := "/healthz"
-+ for i := 0; i < len(nodes.Items); i++ {
-+ endpointNodeName := nodes.Items[i].Name
-+
-+ ginkgo.By("creating a pod to be part of the service " + serviceName + " on node " + endpointNodeName)
-+ _, err = jig.Run(func(rc *v1.ReplicationController) {
-+ rc.Name = serviceName
-+ if endpointNodeName != "" {
-+ rc.Spec.Template.Spec.NodeName = endpointNodeName
-+ }
-+ })
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By(fmt.Sprintf("waiting for service endpoint on node %v", endpointNodeName))
-+ err = jig.WaitForEndpointOnNode(endpointNodeName)
-+ framework.ExpectNoError(err)
-+
-+ // HealthCheck should pass only on the node where num(endpoints) > 0
-+ // All other nodes should fail the healthcheck on the service healthCheckNodePort
-+ for n, publicIP := range ips {
-+ // Make sure the loadbalancer picked up the health check change.
-+ // Confirm traffic can reach backend through LB before checking healthcheck nodeport.
-+ e2eservice.TestReachableHTTP(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout)
-+ expectedSuccess := nodes.Items[n].Name == endpointNodeName
-+ port := strconv.Itoa(healthCheckNodePort)
-+ ipPort := net.JoinHostPort(publicIP, port)
-+ framework.Logf("Health checking %s, http://%s%s, expectedSuccess %v", nodes.Items[n].Name, ipPort, path, expectedSuccess)
-+ err := TestHTTPHealthCheckNodePort(publicIP, healthCheckNodePort, path, e2eservice.KubeProxyEndpointLagTimeout, expectedSuccess, threshold)
-+ framework.ExpectNoError(err)
-+ }
-+ framework.ExpectNoError(e2erc.DeleteRCAndWaitForGC(f.ClientSet, namespace, serviceName))
-+ }
-+ })
-+
-+ ginkgo.It("should work from pods", func() {
-+ var err error
-+ namespace := f.Namespace.Name
-+ serviceName := "external-local-pods"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+ framework.ExpectNoError(err)
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+ defer func() {
-+ err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err)
-+ }()
-+
-+ ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+ port := strconv.Itoa(int(svc.Spec.Ports[0].Port))
-+ ipPort := net.JoinHostPort(ingressIP, port)
-+ path := fmt.Sprintf("%s/clientip", ipPort)
-+
-+ ginkgo.By("Creating pause pod deployment to make sure, pausePods are in desired state")
-+ deployment := createPausePodDeployment(cs, "pause-pod-deployment", namespace, 1)
-+ framework.ExpectNoError(e2edeployment.WaitForDeploymentComplete(cs, deployment), "Failed to complete pause pod deployment")
-+
-+ defer func() {
-+ framework.Logf("Deleting deployment")
-+ err = cs.AppsV1().Deployments(namespace).Delete(context.TODO(), deployment.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err, "Failed to delete deployment %s", deployment.Name)
-+ }()
-+
-+ deployment, err = cs.AppsV1().Deployments(namespace).Get(context.TODO(), deployment.Name, metav1.GetOptions{})
-+ framework.ExpectNoError(err, "Error in retrieving pause pod deployment")
-+ labelSelector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector)
-+ framework.ExpectNoError(err, "Error in setting LabelSelector as selector from deployment")
-+
-+ pausePods, err := cs.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{LabelSelector: labelSelector.String()})
-+ framework.ExpectNoError(err, "Error in listing pods associated with pause pod deployments")
-+
-+ pausePod := pausePods.Items[0]
-+ framework.Logf("Waiting up to %v curl %v", e2eservice.KubeProxyLagTimeout, path)
-+ cmd := fmt.Sprintf(`curl -q -s --connect-timeout 30 %v`, path)
-+
-+ var srcIP string
-+ loadBalancerPropagationTimeout := e2eservice.GetServiceLoadBalancerPropagationTimeout(cs)
-+ ginkgo.By(fmt.Sprintf("Hitting external lb %v from pod %v on node %v", ingressIP, pausePod.Name, pausePod.Spec.NodeName))
-+ if pollErr := wait.PollImmediate(framework.Poll, loadBalancerPropagationTimeout, func() (bool, error) {
-+ stdout, err := framework.RunHostCmd(pausePod.Namespace, pausePod.Name, cmd)
-+ if err != nil {
-+ framework.Logf("got err: %v, retry until timeout", err)
-+ return false, nil
-+ }
-+ srcIP = strings.TrimSpace(strings.Split(stdout, ":")[0])
-+ return srcIP == pausePod.Status.PodIP, nil
-+ }); pollErr != nil {
-+ framework.Failf("Source IP not preserved from %v, expected '%v' got '%v'", pausePod.Name, pausePod.Status.PodIP, srcIP)
-+ }
-+ })
-+
-+ // TODO: Get rid of [DisabledForLargeClusters] tag when issue #90047 is fixed.
-+ ginkgo.It("should handle updates to ExternalTrafficPolicy field [DisabledForLargeClusters]", func() {
-+ namespace := f.Namespace.Name
-+ serviceName := "external-local-update"
-+ jig := e2eservice.NewTestJig(cs, namespace, serviceName)
-+
-+ nodes, err := e2enode.GetBoundedReadySchedulableNodes(cs, e2eservice.MaxNodesForEndpointsTests)
-+ framework.ExpectNoError(err)
-+ if len(nodes.Items) < 2 {
-+ framework.Failf("Need at least 2 nodes to verify source ip from a node without endpoint")
-+ }
-+
-+ svc, err := jig.CreateOnlyLocalLoadBalancerService(loadBalancerCreateTimeout, true, nil)
-+ framework.ExpectNoError(err)
-+ serviceLBNames = append(serviceLBNames, cloudprovider.DefaultLoadBalancerName(svc))
-+ defer func() {
-+ err = jig.ChangeServiceType(v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
-+ framework.ExpectNoError(err)
-+ err := cs.CoreV1().Services(svc.Namespace).Delete(context.TODO(), svc.Name, metav1.DeleteOptions{})
-+ framework.ExpectNoError(err)
-+ }()
-+
-+ // save the health check node port because it disappears when ESIPP is turned off.
-+ healthCheckNodePort := int(svc.Spec.HealthCheckNodePort)
-+
-+ ginkgo.By("turning ESIPP off")
-+ svc, err = jig.UpdateService(func(svc *v1.Service) {
-+ svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster
-+ })
-+ framework.ExpectNoError(err)
-+ if svc.Spec.HealthCheckNodePort > 0 {
-+ framework.Failf("Service HealthCheck NodePort still present")
-+ }
-+
-+ endpointNodeMap, err := jig.GetEndpointNodes()
-+ framework.ExpectNoError(err)
-+ noEndpointNodeMap := map[string][]string{}
-+ for _, n := range nodes.Items {
-+ if _, ok := endpointNodeMap[n.Name]; ok {
-+ continue
-+ }
-+ noEndpointNodeMap[n.Name] = e2enode.GetAddresses(&n, v1.NodeExternalIP)
-+ }
-+
-+ svcTCPPort := int(svc.Spec.Ports[0].Port)
-+ svcNodePort := int(svc.Spec.Ports[0].NodePort)
-+ ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0])
-+ path := "/clientip"
-+
-+ ginkgo.By(fmt.Sprintf("endpoints present on nodes %v, absent on nodes %v", endpointNodeMap, noEndpointNodeMap))
-+ for nodeName, nodeIPs := range noEndpointNodeMap {
-+ ginkgo.By(fmt.Sprintf("Checking %v (%v:%v%v) proxies to endpoints on another node", nodeName, nodeIPs[0], svcNodePort, path))
-+ GetHTTPContent(nodeIPs[0], svcNodePort, e2eservice.KubeProxyLagTimeout, path)
-+ }
-+
-+ for nodeName, nodeIPs := range endpointNodeMap {
-+ ginkgo.By(fmt.Sprintf("checking kube-proxy health check fails on node with endpoint (%s), public IP %s", nodeName, nodeIPs[0]))
-+ var body bytes.Buffer
-+ pollfn := func() (bool, error) {
-+ result := e2enetwork.PokeHTTP(nodeIPs[0], healthCheckNodePort, "/healthz", nil)
-+ if result.Code == 0 {
-+ return true, nil
-+ }
-+ body.Reset()
-+ body.Write(result.Body)
-+ return false, nil
-+ }
-+ if pollErr := wait.PollImmediate(framework.Poll, e2eservice.TestTimeout, pollfn); pollErr != nil {
-+ framework.Failf("Kube-proxy still exposing health check on node %v:%v, after ESIPP was turned off. body %s",
-+ nodeName, healthCheckNodePort, body.String())
-+ }
-+ }
-+
-+ // Poll till kube-proxy re-adds the MASQUERADE rule on the node.
-+ ginkgo.By(fmt.Sprintf("checking source ip is NOT preserved through loadbalancer %v", ingressIP))
-+ var clientIP string
-+ pollErr := wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-+ content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, "/clientip")
-+ clientIP = content.String()
-+ if strings.HasPrefix(clientIP, "10.") {
-+ return true, nil
-+ }
-+ return false, nil
-+ })
-+ if pollErr != nil {
-+ framework.Failf("Source IP WAS preserved even after ESIPP turned off. Got %v, expected a ten-dot cluster ip.", clientIP)
-+ }
-+
-+ // TODO: We need to attempt to create another service with the previously
-+ // allocated healthcheck nodePort. If the health check nodePort has been
-+ // freed, the new service creation will succeed, upon which we cleanup.
-+ // If the health check nodePort has NOT been freed, the new service
-+ // creation will fail.
-+
-+ ginkgo.By("setting ExternalTraffic field back to OnlyLocal")
-+ svc, err = jig.UpdateService(func(svc *v1.Service) {
-+ svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
-+ // Request the same healthCheckNodePort as before, to test the user-requested allocation path
-+ svc.Spec.HealthCheckNodePort = int32(healthCheckNodePort)
-+ })
-+ framework.ExpectNoError(err)
-+ pollErr = wait.PollImmediate(framework.Poll, e2eservice.KubeProxyLagTimeout, func() (bool, error) {
-+ content := GetHTTPContent(ingressIP, svcTCPPort, e2eservice.KubeProxyLagTimeout, path)
-+ clientIP = content.String()
-+ ginkgo.By(fmt.Sprintf("Endpoint %v:%v%v returned client ip %v", ingressIP, svcTCPPort, path, clientIP))
-+ if !strings.HasPrefix(clientIP, "10.") {
-+ return true, nil
-+ }
-+ return false, nil
-+ })
-+ if pollErr != nil {
-+ framework.Failf("Source IP (%v) is not the client IP even after ESIPP turned on, expected a public IP.", clientIP)
-+ }
-+ })
-+ })
-+})
-diff --git a/test/e2e/node/recreate_node.go b/test/e2e/node/recreate_node.go
-index da3fc974485..b403fa7f737 100644
---- a/test/e2e/node/recreate_node.go
-+++ b/test/e2e/node/recreate_node.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2019 The Kubernetes Authors.
-
-diff --git a/test/e2e/scheduling/nvidia-gpus.go b/test/e2e/scheduling/nvidia-gpus.go
-index 313e773b8e2..bbf66b59aac 100644
---- a/test/e2e/scheduling/nvidia-gpus.go
-+++ b/test/e2e/scheduling/nvidia-gpus.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/scheduling/ubernetes_lite_volumes.go b/test/e2e/scheduling/ubernetes_lite_volumes.go
-index 513ed07543f..78c0f081990 100644
---- a/test/e2e/scheduling/ubernetes_lite_volumes.go
-+++ b/test/e2e/scheduling/ubernetes_lite_volumes.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/storage/drivers/in_tree.go b/test/e2e/storage/drivers/in_tree.go
-index a866266c1f1..28e26a10c35 100644
---- a/test/e2e/storage/drivers/in_tree.go
-+++ b/test/e2e/storage/drivers/in_tree.go
-@@ -38,10 +38,8 @@ package drivers
- import (
- "context"
- "fmt"
-- "os/exec"
- "strconv"
- "strings"
-- "time"
-
- "github.com/onsi/ginkgo"
- v1 "k8s.io/api/core/v1"
-@@ -57,13 +55,11 @@ import (
- e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
- e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-- e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
- e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
- e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
- "k8s.io/kubernetes/test/e2e/storage/testpatterns"
- "k8s.io/kubernetes/test/e2e/storage/testsuites"
- "k8s.io/kubernetes/test/e2e/storage/utils"
-- vspheretest "k8s.io/kubernetes/test/e2e/storage/vsphere"
- imageutils "k8s.io/kubernetes/test/utils/image"
- )
-
-@@ -1044,734 +1040,6 @@ func (e *emptydirDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTes
- }, func() {}
- }
-
--// Cinder
--// This driver assumes that OpenStack client tools are installed
--// (/usr/bin/nova, /usr/bin/cinder and /usr/bin/keystone)
--// and that the usual OpenStack authentication env. variables are set
--// (OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME at least).
--type cinderDriver struct {
-- driverInfo testsuites.DriverInfo
--}
--
--type cinderVolume struct {
-- volumeName string
-- volumeID string
--}
--
--var _ testsuites.TestDriver = &cinderDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &cinderDriver{}
--var _ testsuites.InlineVolumeTestDriver = &cinderDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &cinderDriver{}
--var _ testsuites.DynamicPVTestDriver = &cinderDriver{}
--
--// InitCinderDriver returns cinderDriver that implements TestDriver interface
--func InitCinderDriver() testsuites.TestDriver {
-- return &cinderDriver{
-- driverInfo: testsuites.DriverInfo{
-- Name: "cinder",
-- InTreePluginName: "kubernetes.io/cinder",
-- MaxFileSize: testpatterns.FileSizeMedium,
-- SupportedSizeRange: e2evolume.SizeRange{
-- Min: "5Gi",
-- },
-- SupportedFsType: sets.NewString(
-- "", // Default fsType
-- "ext3",
-- ),
-- TopologyKeys: []string{v1.LabelZoneFailureDomain},
-- Capabilities: map[testsuites.Capability]bool{
-- testsuites.CapPersistence: true,
-- testsuites.CapFsGroup: true,
-- testsuites.CapExec: true,
-- testsuites.CapBlock: true,
-- // Cinder supports volume limits, but the test creates large
-- // number of volumes and times out test suites.
-- testsuites.CapVolumeLimits: false,
-- testsuites.CapTopology: true,
-- },
-- },
-- }
--}
--
--func (c *cinderDriver) GetDriverInfo() *testsuites.DriverInfo {
-- return &c.driverInfo
--}
--
--func (c *cinderDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-- e2eskipper.SkipUnlessProviderIs("openstack")
--}
--
--func (c *cinderDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-- cv, ok := e2evolume.(*cinderVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
--
-- volSource := v1.VolumeSource{
-- Cinder: &v1.CinderVolumeSource{
-- VolumeID: cv.volumeID,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- volSource.Cinder.FSType = fsType
-- }
-- return &volSource
--}
--
--func (c *cinderDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-- cv, ok := e2evolume.(*cinderVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
--
-- pvSource := v1.PersistentVolumeSource{
-- Cinder: &v1.CinderPersistentVolumeSource{
-- VolumeID: cv.volumeID,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- pvSource.Cinder.FSType = fsType
-- }
-- return &pvSource, nil
--}
--
--func (c *cinderDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-- provisioner := "kubernetes.io/cinder"
-- parameters := map[string]string{}
-- if fsType != "" {
-- parameters["fsType"] = fsType
-- }
-- ns := config.Framework.Namespace.Name
-- suffix := fmt.Sprintf("%s-sc", c.driverInfo.Name)
--
-- return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
--}
--
--func (c *cinderDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-- return &testsuites.PerTestConfig{
-- Driver: c,
-- Prefix: "cinder",
-- Framework: f,
-- }, func() {}
--}
--
--func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-- f := config.Framework
-- ns := f.Namespace
--
-- // We assume that namespace.Name is a random string
-- volumeName := ns.Name
-- ginkgo.By("creating a test Cinder volume")
-- output, err := exec.Command("cinder", "create", "--display-name="+volumeName, "1").CombinedOutput()
-- outputString := string(output[:])
-- framework.Logf("cinder output:\n%s", outputString)
-- framework.ExpectNoError(err)
--
-- // Parse 'id'' from stdout. Expected format:
-- // | attachments | [] |
-- // | availability_zone | nova |
-- // ...
-- // | id | 1d6ff08f-5d1c-41a4-ad72-4ef872cae685 |
-- volumeID := ""
-- for _, line := range strings.Split(outputString, "\n") {
-- fields := strings.Fields(line)
-- if len(fields) != 5 {
-- continue
-- }
-- if fields[1] != "id" {
-- continue
-- }
-- volumeID = fields[3]
-- break
-- }
-- framework.Logf("Volume ID: %s", volumeID)
-- framework.ExpectNotEqual(volumeID, "")
-- return &cinderVolume{
-- volumeName: volumeName,
-- volumeID: volumeID,
-- }
--}
--
--func (v *cinderVolume) DeleteVolume() {
-- name := v.volumeName
--
-- // Try to delete the volume for several seconds - it takes
-- // a while for the plugin to detach it.
-- var output []byte
-- var err error
-- timeout := time.Second * 120
--
-- framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name)
-- for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) {
-- output, err = exec.Command("cinder", "delete", name).CombinedOutput()
-- if err == nil {
-- framework.Logf("Cinder volume %s deleted", name)
-- return
-- }
-- framework.Logf("Failed to delete volume %s: %v", name, err)
-- }
-- framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:]))
--}
--
--// GCE
--type gcePdDriver struct {
-- driverInfo testsuites.DriverInfo
--}
--
--type gcePdVolume struct {
-- volumeName string
--}
--
--var _ testsuites.TestDriver = &gcePdDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &gcePdDriver{}
--var _ testsuites.InlineVolumeTestDriver = &gcePdDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &gcePdDriver{}
--var _ testsuites.DynamicPVTestDriver = &gcePdDriver{}
--
--// InitGcePdDriver returns gcePdDriver that implements TestDriver interface
--func InitGcePdDriver() testsuites.TestDriver {
-- // In current test structure, it first initialize the driver and then set up
-- // the new framework, so we cannot get the correct OS here. So here set to
-- // support all fs types including both linux and windows. We have code to check Node OS later
-- // during test.
-- supportedTypes := sets.NewString(
-- "", // Default fsType
-- "ext2",
-- "ext3",
-- "ext4",
-- "xfs",
-- "ntfs",
-- )
-- return &gcePdDriver{
-- driverInfo: testsuites.DriverInfo{
-- Name: "gcepd",
-- InTreePluginName: "kubernetes.io/gce-pd",
-- MaxFileSize: testpatterns.FileSizeMedium,
-- SupportedSizeRange: e2evolume.SizeRange{
-- Min: "5Gi",
-- },
-- SupportedFsType: supportedTypes,
-- SupportedMountOption: sets.NewString("debug", "nouid32"),
-- TopologyKeys: []string{v1.LabelZoneFailureDomain},
-- Capabilities: map[testsuites.Capability]bool{
-- testsuites.CapPersistence: true,
-- testsuites.CapFsGroup: true,
-- testsuites.CapBlock: true,
-- testsuites.CapExec: true,
-- testsuites.CapMultiPODs: true,
-- testsuites.CapControllerExpansion: true,
-- testsuites.CapNodeExpansion: true,
-- // GCE supports volume limits, but the test creates large
-- // number of volumes and times out test suites.
-- testsuites.CapVolumeLimits: false,
-- testsuites.CapTopology: true,
-- },
-- },
-- }
--}
--
--func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo {
-- return &g.driverInfo
--}
--
--func (g *gcePdDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-- e2eskipper.SkipUnlessProviderIs("gce", "gke")
-- if pattern.FeatureTag == "[sig-windows]" {
-- e2eskipper.SkipUnlessNodeOSDistroIs("windows")
-- }
--}
--
--func (g *gcePdDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-- gv, ok := e2evolume.(*gcePdVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-- volSource := v1.VolumeSource{
-- GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-- PDName: gv.volumeName,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- volSource.GCEPersistentDisk.FSType = fsType
-- }
-- return &volSource
--}
--
--func (g *gcePdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-- gv, ok := e2evolume.(*gcePdVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-- pvSource := v1.PersistentVolumeSource{
-- GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-- PDName: gv.volumeName,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- pvSource.GCEPersistentDisk.FSType = fsType
-- }
-- return &pvSource, nil
--}
--
--func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-- provisioner := "kubernetes.io/gce-pd"
-- parameters := map[string]string{}
-- if fsType != "" {
-- parameters["fsType"] = fsType
-- }
-- ns := config.Framework.Namespace.Name
-- suffix := fmt.Sprintf("%s-sc", g.driverInfo.Name)
-- delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
-- return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-- config := &testsuites.PerTestConfig{
-- Driver: g,
-- Prefix: "gcepd",
-- Framework: f,
-- }
--
-- if framework.NodeOSDistroIs("windows") {
-- config.ClientNodeSelection = e2epod.NodeSelection{
-- Selector: map[string]string{
-- "kubernetes.io/os": "windows",
-- },
-- }
-- }
-- return config, func() {}
--
--}
--
--func (g *gcePdDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-- zone := getInlineVolumeZone(config.Framework)
-- if volType == testpatterns.InlineVolume {
-- // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-- // so pods should be also scheduled there.
-- config.ClientNodeSelection = e2epod.NodeSelection{
-- Selector: map[string]string{
-- v1.LabelZoneFailureDomain: zone,
-- },
-- }
-- }
-- ginkgo.By("creating a test gce pd volume")
-- vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-- framework.ExpectNoError(err)
-- return &gcePdVolume{
-- volumeName: vname,
-- }
--}
--
--func (v *gcePdVolume) DeleteVolume() {
-- e2epv.DeletePDWithRetry(v.volumeName)
--}
--
--// vSphere
--type vSphereDriver struct {
-- driverInfo testsuites.DriverInfo
--}
--
--type vSphereVolume struct {
-- volumePath string
-- nodeInfo *vspheretest.NodeInfo
--}
--
--var _ testsuites.TestDriver = &vSphereDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &vSphereDriver{}
--var _ testsuites.InlineVolumeTestDriver = &vSphereDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &vSphereDriver{}
--var _ testsuites.DynamicPVTestDriver = &vSphereDriver{}
--
--// InitVSphereDriver returns vSphereDriver that implements TestDriver interface
--func InitVSphereDriver() testsuites.TestDriver {
-- return &vSphereDriver{
-- driverInfo: testsuites.DriverInfo{
-- Name: "vsphere",
-- InTreePluginName: "kubernetes.io/vsphere-volume",
-- MaxFileSize: testpatterns.FileSizeMedium,
-- SupportedSizeRange: e2evolume.SizeRange{
-- Min: "5Gi",
-- },
-- SupportedFsType: sets.NewString(
-- "", // Default fsType
-- "ext4",
-- ),
-- TopologyKeys: []string{v1.LabelZoneFailureDomain},
-- Capabilities: map[testsuites.Capability]bool{
-- testsuites.CapPersistence: true,
-- testsuites.CapFsGroup: true,
-- testsuites.CapExec: true,
-- testsuites.CapMultiPODs: true,
-- testsuites.CapTopology: true,
-- },
-- },
-- }
--}
--func (v *vSphereDriver) GetDriverInfo() *testsuites.DriverInfo {
-- return &v.driverInfo
--}
--
--func (v *vSphereDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-- e2eskipper.SkipUnlessProviderIs("vsphere")
--}
--
--func (v *vSphereDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-- vsv, ok := e2evolume.(*vSphereVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
--
-- // vSphere driver doesn't seem to support readOnly volume
-- // TODO: check if it is correct
-- if readOnly {
-- return nil
-- }
-- volSource := v1.VolumeSource{
-- VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-- VolumePath: vsv.volumePath,
-- },
-- }
-- if fsType != "" {
-- volSource.VsphereVolume.FSType = fsType
-- }
-- return &volSource
--}
--
--func (v *vSphereDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-- vsv, ok := e2evolume.(*vSphereVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
--
-- // vSphere driver doesn't seem to support readOnly volume
-- // TODO: check if it is correct
-- if readOnly {
-- return nil, nil
-- }
-- pvSource := v1.PersistentVolumeSource{
-- VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-- VolumePath: vsv.volumePath,
-- },
-- }
-- if fsType != "" {
-- pvSource.VsphereVolume.FSType = fsType
-- }
-- return &pvSource, nil
--}
--
--func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-- provisioner := "kubernetes.io/vsphere-volume"
-- parameters := map[string]string{}
-- if fsType != "" {
-- parameters["fsType"] = fsType
-- }
-- ns := config.Framework.Namespace.Name
-- suffix := fmt.Sprintf("%s-sc", v.driverInfo.Name)
--
-- return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
--}
--
--func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-- return &testsuites.PerTestConfig{
-- Driver: v,
-- Prefix: "vsphere",
-- Framework: f,
-- }, func() {}
--}
--
--func (v *vSphereDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-- f := config.Framework
-- vspheretest.Bootstrap(f)
-- nodeInfo := vspheretest.GetReadySchedulableRandomNodeInfo()
-- volumePath, err := nodeInfo.VSphere.CreateVolume(&vspheretest.VolumeOptions{}, nodeInfo.DataCenterRef)
-- framework.ExpectNoError(err)
-- return &vSphereVolume{
-- volumePath: volumePath,
-- nodeInfo: nodeInfo,
-- }
--}
--
--func (v *vSphereVolume) DeleteVolume() {
-- v.nodeInfo.VSphere.DeleteVolume(v.volumePath, v.nodeInfo.DataCenterRef)
--}
--
--// Azure Disk
--type azureDiskDriver struct {
-- driverInfo testsuites.DriverInfo
--}
--
--type azureDiskVolume struct {
-- volumeName string
--}
--
--var _ testsuites.TestDriver = &azureDiskDriver{}
--var _ testsuites.PreprovisionedVolumeTestDriver = &azureDiskDriver{}
--var _ testsuites.InlineVolumeTestDriver = &azureDiskDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &azureDiskDriver{}
--var _ testsuites.DynamicPVTestDriver = &azureDiskDriver{}
--
--// InitAzureDiskDriver returns azureDiskDriver that implements TestDriver interface
--func InitAzureDiskDriver() testsuites.TestDriver {
-- return &azureDiskDriver{
-- driverInfo: testsuites.DriverInfo{
-- Name: "azure-disk",
-- InTreePluginName: "kubernetes.io/azure-disk",
-- MaxFileSize: testpatterns.FileSizeMedium,
-- SupportedSizeRange: e2evolume.SizeRange{
-- Min: "5Gi",
-- },
-- SupportedFsType: sets.NewString(
-- "", // Default fsType
-- "ext3",
-- "ext4",
-- "xfs",
-- ),
-- TopologyKeys: []string{v1.LabelZoneFailureDomain},
-- Capabilities: map[testsuites.Capability]bool{
-- testsuites.CapPersistence: true,
-- testsuites.CapFsGroup: true,
-- testsuites.CapBlock: true,
-- testsuites.CapExec: true,
-- testsuites.CapMultiPODs: true,
-- // Azure supports volume limits, but the test creates large
-- // number of volumes and times out test suites.
-- testsuites.CapVolumeLimits: false,
-- testsuites.CapTopology: true,
-- },
-- },
-- }
--}
--
--func (a *azureDiskDriver) GetDriverInfo() *testsuites.DriverInfo {
-- return &a.driverInfo
--}
--
--func (a *azureDiskDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-- e2eskipper.SkipUnlessProviderIs("azure")
--}
--
--func (a *azureDiskDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-- av, ok := e2evolume.(*azureDiskVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
-- diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
--
-- kind := v1.AzureManagedDisk
-- volSource := v1.VolumeSource{
-- AzureDisk: &v1.AzureDiskVolumeSource{
-- DiskName: diskName,
-- DataDiskURI: av.volumeName,
-- Kind: &kind,
-- ReadOnly: &readOnly,
-- },
-- }
-- if fsType != "" {
-- volSource.AzureDisk.FSType = &fsType
-- }
-- return &volSource
--}
--
--func (a *azureDiskDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-- av, ok := e2evolume.(*azureDiskVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
--
-- diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
--
-- kind := v1.AzureManagedDisk
-- pvSource := v1.PersistentVolumeSource{
-- AzureDisk: &v1.AzureDiskVolumeSource{
-- DiskName: diskName,
-- DataDiskURI: av.volumeName,
-- Kind: &kind,
-- ReadOnly: &readOnly,
-- },
-- }
-- if fsType != "" {
-- pvSource.AzureDisk.FSType = &fsType
-- }
-- return &pvSource, nil
--}
--
--func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-- provisioner := "kubernetes.io/azure-disk"
-- parameters := map[string]string{}
-- if fsType != "" {
-- parameters["fsType"] = fsType
-- }
-- ns := config.Framework.Namespace.Name
-- suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-- delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
-- return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-- return &testsuites.PerTestConfig{
-- Driver: a,
-- Prefix: "azure",
-- Framework: f,
-- }, func() {}
--}
--
--func (a *azureDiskDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-- ginkgo.By("creating a test azure disk volume")
-- zone := getInlineVolumeZone(config.Framework)
-- if volType == testpatterns.InlineVolume {
-- // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-- // so pods should be also scheduled there.
-- config.ClientNodeSelection = e2epod.NodeSelection{
-- Selector: map[string]string{
-- v1.LabelZoneFailureDomain: zone,
-- },
-- }
-- }
-- volumeName, err := e2epv.CreatePDWithRetryAndZone(zone)
-- framework.ExpectNoError(err)
-- return &azureDiskVolume{
-- volumeName: volumeName,
-- }
--}
--
--func (v *azureDiskVolume) DeleteVolume() {
-- e2epv.DeletePDWithRetry(v.volumeName)
--}
--
--// AWS
--type awsDriver struct {
-- driverInfo testsuites.DriverInfo
--}
--
--type awsVolume struct {
-- volumeName string
--}
--
--var _ testsuites.TestDriver = &awsDriver{}
--
--var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
--var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
--var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
--var _ testsuites.DynamicPVTestDriver = &awsDriver{}
--
--// InitAwsDriver returns awsDriver that implements TestDriver interface
--func InitAwsDriver() testsuites.TestDriver {
-- return &awsDriver{
-- driverInfo: testsuites.DriverInfo{
-- Name: "aws",
-- InTreePluginName: "kubernetes.io/aws-ebs",
-- MaxFileSize: testpatterns.FileSizeMedium,
-- SupportedSizeRange: e2evolume.SizeRange{
-- Min: "5Gi",
-- },
-- SupportedFsType: sets.NewString(
-- "", // Default fsType
-- "ext2",
-- "ext3",
-- "ext4",
-- "xfs",
-- "ntfs",
-- ),
-- SupportedMountOption: sets.NewString("debug", "nouid32"),
-- TopologyKeys: []string{v1.LabelZoneFailureDomain},
-- Capabilities: map[testsuites.Capability]bool{
-- testsuites.CapPersistence: true,
-- testsuites.CapFsGroup: true,
-- testsuites.CapBlock: true,
-- testsuites.CapExec: true,
-- testsuites.CapMultiPODs: true,
-- testsuites.CapControllerExpansion: true,
-- testsuites.CapNodeExpansion: true,
-- // AWS supports volume limits, but the test creates large
-- // number of volumes and times out test suites.
-- testsuites.CapVolumeLimits: false,
-- testsuites.CapTopology: true,
-- },
-- },
-- }
--}
--
--func (a *awsDriver) GetDriverInfo() *testsuites.DriverInfo {
-- return &a.driverInfo
--}
--
--func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-- e2eskipper.SkipUnlessProviderIs("aws")
--}
--
--func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-- av, ok := e2evolume.(*awsVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-- volSource := v1.VolumeSource{
-- AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-- VolumeID: av.volumeName,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- volSource.AWSElasticBlockStore.FSType = fsType
-- }
-- return &volSource
--}
--
--func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-- av, ok := e2evolume.(*awsVolume)
-- framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-- pvSource := v1.PersistentVolumeSource{
-- AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-- VolumeID: av.volumeName,
-- ReadOnly: readOnly,
-- },
-- }
-- if fsType != "" {
-- pvSource.AWSElasticBlockStore.FSType = fsType
-- }
-- return &pvSource, nil
--}
--
--func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-- provisioner := "kubernetes.io/aws-ebs"
-- parameters := map[string]string{}
-- if fsType != "" {
-- parameters["fsType"] = fsType
-- }
-- ns := config.Framework.Namespace.Name
-- suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-- delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
--
-- return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
--}
--
--func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-- config := &testsuites.PerTestConfig{
-- Driver: a,
-- Prefix: "aws",
-- Framework: f,
-- }
--
-- if framework.NodeOSDistroIs("windows") {
-- config.ClientNodeSelection = e2epod.NodeSelection{
-- Selector: map[string]string{
-- "kubernetes.io/os": "windows",
-- },
-- }
-- }
-- return config, func() {}
--}
--
--func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-- zone := getInlineVolumeZone(config.Framework)
-- if volType == testpatterns.InlineVolume {
-- // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-- // so pods should be also scheduled there.
-- config.ClientNodeSelection = e2epod.NodeSelection{
-- Selector: map[string]string{
-- v1.LabelZoneFailureDomain: zone,
-- },
-- }
-- }
-- ginkgo.By("creating a test aws volume")
-- vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-- framework.ExpectNoError(err)
-- return &awsVolume{
-- volumeName: vname,
-- }
--}
--
--func (v *awsVolume) DeleteVolume() {
-- e2epv.DeletePDWithRetry(v.volumeName)
--}
--
- // local
- type localDriver struct {
- driverInfo testsuites.DriverInfo
-diff --git a/test/e2e/storage/drivers/in_tree_providers.go b/test/e2e/storage/drivers/in_tree_providers.go
-new file mode 100644
-index 00000000000..c7f5dd3052e
---- /dev/null
-+++ b/test/e2e/storage/drivers/in_tree_providers.go
-@@ -0,0 +1,751 @@
-+// +build !providerless
-+
-+package drivers
-+
-+import (
-+ "fmt"
-+ "os/exec"
-+ "strings"
-+ "time"
-+
-+ "github.com/onsi/ginkgo"
-+ v1 "k8s.io/api/core/v1"
-+ storagev1 "k8s.io/api/storage/v1"
-+ "k8s.io/apimachinery/pkg/util/sets"
-+ "k8s.io/kubernetes/test/e2e/framework"
-+ e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-+ e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
-+ e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+ e2evolume "k8s.io/kubernetes/test/e2e/framework/volume"
-+ "k8s.io/kubernetes/test/e2e/storage/testpatterns"
-+ "k8s.io/kubernetes/test/e2e/storage/testsuites"
-+ vspheretest "k8s.io/kubernetes/test/e2e/storage/vsphere"
-+)
-+
-+// Cinder
-+// This driver assumes that OpenStack client tools are installed
-+// (/usr/bin/nova, /usr/bin/cinder and /usr/bin/keystone)
-+// and that the usual OpenStack authentication env. variables are set
-+// (OS_USERNAME, OS_PASSWORD, OS_TENANT_NAME at least).
-+type cinderDriver struct {
-+ driverInfo testsuites.DriverInfo
-+}
-+
-+type cinderVolume struct {
-+ volumeName string
-+ volumeID string
-+}
-+
-+var _ testsuites.TestDriver = &cinderDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &cinderDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &cinderDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &cinderDriver{}
-+var _ testsuites.DynamicPVTestDriver = &cinderDriver{}
-+
-+// InitCinderDriver returns cinderDriver that implements TestDriver interface
-+func InitCinderDriver() testsuites.TestDriver {
-+ return &cinderDriver{
-+ driverInfo: testsuites.DriverInfo{
-+ Name: "cinder",
-+ InTreePluginName: "kubernetes.io/cinder",
-+ MaxFileSize: testpatterns.FileSizeMedium,
-+ SupportedSizeRange: e2evolume.SizeRange{
-+ Min: "5Gi",
-+ },
-+ SupportedFsType: sets.NewString(
-+ "", // Default fsType
-+ "ext3",
-+ ),
-+ TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+ Capabilities: map[testsuites.Capability]bool{
-+ testsuites.CapPersistence: true,
-+ testsuites.CapFsGroup: true,
-+ testsuites.CapExec: true,
-+ testsuites.CapBlock: true,
-+ // Cinder supports volume limits, but the test creates large
-+ // number of volumes and times out test suites.
-+ testsuites.CapVolumeLimits: false,
-+ testsuites.CapTopology: true,
-+ },
-+ },
-+ }
-+}
-+
-+func (c *cinderDriver) GetDriverInfo() *testsuites.DriverInfo {
-+ return &c.driverInfo
-+}
-+
-+func (c *cinderDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+ e2eskipper.SkipUnlessProviderIs("openstack")
-+}
-+
-+func (c *cinderDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+ cv, ok := e2evolume.(*cinderVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
-+
-+ volSource := v1.VolumeSource{
-+ Cinder: &v1.CinderVolumeSource{
-+ VolumeID: cv.volumeID,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ volSource.Cinder.FSType = fsType
-+ }
-+ return &volSource
-+}
-+
-+func (c *cinderDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+ cv, ok := e2evolume.(*cinderVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to Cinder test volume")
-+
-+ pvSource := v1.PersistentVolumeSource{
-+ Cinder: &v1.CinderPersistentVolumeSource{
-+ VolumeID: cv.volumeID,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ pvSource.Cinder.FSType = fsType
-+ }
-+ return &pvSource, nil
-+}
-+
-+func (c *cinderDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+ provisioner := "kubernetes.io/cinder"
-+ parameters := map[string]string{}
-+ if fsType != "" {
-+ parameters["fsType"] = fsType
-+ }
-+ ns := config.Framework.Namespace.Name
-+ suffix := fmt.Sprintf("%s-sc", c.driverInfo.Name)
-+
-+ return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
-+}
-+
-+func (c *cinderDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+ return &testsuites.PerTestConfig{
-+ Driver: c,
-+ Prefix: "cinder",
-+ Framework: f,
-+ }, func() {}
-+}
-+
-+func (c *cinderDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+ f := config.Framework
-+ ns := f.Namespace
-+
-+ // We assume that namespace.Name is a random string
-+ volumeName := ns.Name
-+ ginkgo.By("creating a test Cinder volume")
-+ output, err := exec.Command("cinder", "create", "--display-name="+volumeName, "1").CombinedOutput()
-+ outputString := string(output[:])
-+ framework.Logf("cinder output:\n%s", outputString)
-+ framework.ExpectNoError(err)
-+
-+ // Parse 'id'' from stdout. Expected format:
-+ // | attachments | [] |
-+ // | availability_zone | nova |
-+ // ...
-+ // | id | 1d6ff08f-5d1c-41a4-ad72-4ef872cae685 |
-+ volumeID := ""
-+ for _, line := range strings.Split(outputString, "\n") {
-+ fields := strings.Fields(line)
-+ if len(fields) != 5 {
-+ continue
-+ }
-+ if fields[1] != "id" {
-+ continue
-+ }
-+ volumeID = fields[3]
-+ break
-+ }
-+ framework.Logf("Volume ID: %s", volumeID)
-+ framework.ExpectNotEqual(volumeID, "")
-+ return &cinderVolume{
-+ volumeName: volumeName,
-+ volumeID: volumeID,
-+ }
-+}
-+
-+func (v *cinderVolume) DeleteVolume() {
-+ name := v.volumeName
-+
-+ // Try to delete the volume for several seconds - it takes
-+ // a while for the plugin to detach it.
-+ var output []byte
-+ var err error
-+ timeout := time.Second * 120
-+
-+ framework.Logf("Waiting up to %v for removal of cinder volume %s", timeout, name)
-+ for start := time.Now(); time.Since(start) < timeout; time.Sleep(5 * time.Second) {
-+ output, err = exec.Command("cinder", "delete", name).CombinedOutput()
-+ if err == nil {
-+ framework.Logf("Cinder volume %s deleted", name)
-+ return
-+ }
-+ framework.Logf("Failed to delete volume %s: %v", name, err)
-+ }
-+ framework.Logf("Giving up deleting volume %s: %v\n%s", name, err, string(output[:]))
-+}
-+
-+// GCE
-+type gcePdDriver struct {
-+ driverInfo testsuites.DriverInfo
-+}
-+
-+type gcePdVolume struct {
-+ volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &gcePdDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &gcePdDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &gcePdDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &gcePdDriver{}
-+var _ testsuites.DynamicPVTestDriver = &gcePdDriver{}
-+
-+// InitGcePdDriver returns gcePdDriver that implements TestDriver interface
-+func InitGcePdDriver() testsuites.TestDriver {
-+ // In current test structure, it first initialize the driver and then set up
-+ // the new framework, so we cannot get the correct OS here. So here set to
-+ // support all fs types including both linux and windows. We have code to check Node OS later
-+ // during test.
-+ supportedTypes := sets.NewString(
-+ "", // Default fsType
-+ "ext2",
-+ "ext3",
-+ "ext4",
-+ "xfs",
-+ "ntfs",
-+ )
-+ return &gcePdDriver{
-+ driverInfo: testsuites.DriverInfo{
-+ Name: "gcepd",
-+ InTreePluginName: "kubernetes.io/gce-pd",
-+ MaxFileSize: testpatterns.FileSizeMedium,
-+ SupportedSizeRange: e2evolume.SizeRange{
-+ Min: "5Gi",
-+ },
-+ SupportedFsType: supportedTypes,
-+ SupportedMountOption: sets.NewString("debug", "nouid32"),
-+ TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+ Capabilities: map[testsuites.Capability]bool{
-+ testsuites.CapPersistence: true,
-+ testsuites.CapFsGroup: true,
-+ testsuites.CapBlock: true,
-+ testsuites.CapExec: true,
-+ testsuites.CapMultiPODs: true,
-+ testsuites.CapControllerExpansion: true,
-+ testsuites.CapNodeExpansion: true,
-+ // GCE supports volume limits, but the test creates large
-+ // number of volumes and times out test suites.
-+ testsuites.CapVolumeLimits: false,
-+ testsuites.CapTopology: true,
-+ },
-+ },
-+ }
-+}
-+
-+func (g *gcePdDriver) GetDriverInfo() *testsuites.DriverInfo {
-+ return &g.driverInfo
-+}
-+
-+func (g *gcePdDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+ if pattern.FeatureTag == "[sig-windows]" {
-+ e2eskipper.SkipUnlessNodeOSDistroIs("windows")
-+ }
-+}
-+
-+func (g *gcePdDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+ gv, ok := e2evolume.(*gcePdVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-+ volSource := v1.VolumeSource{
-+ GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+ PDName: gv.volumeName,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ volSource.GCEPersistentDisk.FSType = fsType
-+ }
-+ return &volSource
-+}
-+
-+func (g *gcePdDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+ gv, ok := e2evolume.(*gcePdVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to GCE PD test volume")
-+ pvSource := v1.PersistentVolumeSource{
-+ GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+ PDName: gv.volumeName,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ pvSource.GCEPersistentDisk.FSType = fsType
-+ }
-+ return &pvSource, nil
-+}
-+
-+func (g *gcePdDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+ provisioner := "kubernetes.io/gce-pd"
-+ parameters := map[string]string{}
-+ if fsType != "" {
-+ parameters["fsType"] = fsType
-+ }
-+ ns := config.Framework.Namespace.Name
-+ suffix := fmt.Sprintf("%s-sc", g.driverInfo.Name)
-+ delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+ return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (g *gcePdDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+ config := &testsuites.PerTestConfig{
-+ Driver: g,
-+ Prefix: "gcepd",
-+ Framework: f,
-+ }
-+
-+ if framework.NodeOSDistroIs("windows") {
-+ config.ClientNodeSelection = e2epod.NodeSelection{
-+ Selector: map[string]string{
-+ "kubernetes.io/os": "windows",
-+ },
-+ }
-+ }
-+ return config, func() {}
-+
-+}
-+
-+func (g *gcePdDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+ zone := getInlineVolumeZone(config.Framework)
-+ if volType == testpatterns.InlineVolume {
-+ // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+ // so pods should be also scheduled there.
-+ config.ClientNodeSelection = e2epod.NodeSelection{
-+ Selector: map[string]string{
-+ v1.LabelZoneFailureDomain: zone,
-+ },
-+ }
-+ }
-+ ginkgo.By("creating a test gce pd volume")
-+ vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-+ framework.ExpectNoError(err)
-+ return &gcePdVolume{
-+ volumeName: vname,
-+ }
-+}
-+
-+func (v *gcePdVolume) DeleteVolume() {
-+ e2epv.DeletePDWithRetry(v.volumeName)
-+}
-+
-+// vSphere
-+type vSphereDriver struct {
-+ driverInfo testsuites.DriverInfo
-+}
-+
-+type vSphereVolume struct {
-+ volumePath string
-+ nodeInfo *vspheretest.NodeInfo
-+}
-+
-+var _ testsuites.TestDriver = &vSphereDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &vSphereDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &vSphereDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &vSphereDriver{}
-+var _ testsuites.DynamicPVTestDriver = &vSphereDriver{}
-+
-+// InitVSphereDriver returns vSphereDriver that implements TestDriver interface
-+func InitVSphereDriver() testsuites.TestDriver {
-+ return &vSphereDriver{
-+ driverInfo: testsuites.DriverInfo{
-+ Name: "vsphere",
-+ InTreePluginName: "kubernetes.io/vsphere-volume",
-+ MaxFileSize: testpatterns.FileSizeMedium,
-+ SupportedSizeRange: e2evolume.SizeRange{
-+ Min: "5Gi",
-+ },
-+ SupportedFsType: sets.NewString(
-+ "", // Default fsType
-+ "ext4",
-+ ),
-+ TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+ Capabilities: map[testsuites.Capability]bool{
-+ testsuites.CapPersistence: true,
-+ testsuites.CapFsGroup: true,
-+ testsuites.CapExec: true,
-+ testsuites.CapMultiPODs: true,
-+ testsuites.CapTopology: true,
-+ },
-+ },
-+ }
-+}
-+func (v *vSphereDriver) GetDriverInfo() *testsuites.DriverInfo {
-+ return &v.driverInfo
-+}
-+
-+func (v *vSphereDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+ e2eskipper.SkipUnlessProviderIs("vsphere")
-+}
-+
-+func (v *vSphereDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+ vsv, ok := e2evolume.(*vSphereVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
-+
-+ // vSphere driver doesn't seem to support readOnly volume
-+ // TODO: check if it is correct
-+ if readOnly {
-+ return nil
-+ }
-+ volSource := v1.VolumeSource{
-+ VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-+ VolumePath: vsv.volumePath,
-+ },
-+ }
-+ if fsType != "" {
-+ volSource.VsphereVolume.FSType = fsType
-+ }
-+ return &volSource
-+}
-+
-+func (v *vSphereDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+ vsv, ok := e2evolume.(*vSphereVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to vSphere test volume")
-+
-+ // vSphere driver doesn't seem to support readOnly volume
-+ // TODO: check if it is correct
-+ if readOnly {
-+ return nil, nil
-+ }
-+ pvSource := v1.PersistentVolumeSource{
-+ VsphereVolume: &v1.VsphereVirtualDiskVolumeSource{
-+ VolumePath: vsv.volumePath,
-+ },
-+ }
-+ if fsType != "" {
-+ pvSource.VsphereVolume.FSType = fsType
-+ }
-+ return &pvSource, nil
-+}
-+
-+func (v *vSphereDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+ provisioner := "kubernetes.io/vsphere-volume"
-+ parameters := map[string]string{}
-+ if fsType != "" {
-+ parameters["fsType"] = fsType
-+ }
-+ ns := config.Framework.Namespace.Name
-+ suffix := fmt.Sprintf("%s-sc", v.driverInfo.Name)
-+
-+ return testsuites.GetStorageClass(provisioner, parameters, nil, ns, suffix)
-+}
-+
-+func (v *vSphereDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+ return &testsuites.PerTestConfig{
-+ Driver: v,
-+ Prefix: "vsphere",
-+ Framework: f,
-+ }, func() {}
-+}
-+
-+func (v *vSphereDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+ f := config.Framework
-+ vspheretest.Bootstrap(f)
-+ nodeInfo := vspheretest.GetReadySchedulableRandomNodeInfo()
-+ volumePath, err := nodeInfo.VSphere.CreateVolume(&vspheretest.VolumeOptions{}, nodeInfo.DataCenterRef)
-+ framework.ExpectNoError(err)
-+ return &vSphereVolume{
-+ volumePath: volumePath,
-+ nodeInfo: nodeInfo,
-+ }
-+}
-+
-+func (v *vSphereVolume) DeleteVolume() {
-+ v.nodeInfo.VSphere.DeleteVolume(v.volumePath, v.nodeInfo.DataCenterRef)
-+}
-+
-+// Azure Disk
-+type azureDiskDriver struct {
-+ driverInfo testsuites.DriverInfo
-+}
-+
-+type azureDiskVolume struct {
-+ volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &azureDiskDriver{}
-+var _ testsuites.PreprovisionedVolumeTestDriver = &azureDiskDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &azureDiskDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &azureDiskDriver{}
-+var _ testsuites.DynamicPVTestDriver = &azureDiskDriver{}
-+
-+// InitAzureDiskDriver returns azureDiskDriver that implements TestDriver interface
-+func InitAzureDiskDriver() testsuites.TestDriver {
-+ return &azureDiskDriver{
-+ driverInfo: testsuites.DriverInfo{
-+ Name: "azure-disk",
-+ InTreePluginName: "kubernetes.io/azure-disk",
-+ MaxFileSize: testpatterns.FileSizeMedium,
-+ SupportedSizeRange: e2evolume.SizeRange{
-+ Min: "5Gi",
-+ },
-+ SupportedFsType: sets.NewString(
-+ "", // Default fsType
-+ "ext3",
-+ "ext4",
-+ "xfs",
-+ ),
-+ TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+ Capabilities: map[testsuites.Capability]bool{
-+ testsuites.CapPersistence: true,
-+ testsuites.CapFsGroup: true,
-+ testsuites.CapBlock: true,
-+ testsuites.CapExec: true,
-+ testsuites.CapMultiPODs: true,
-+ // Azure supports volume limits, but the test creates large
-+ // number of volumes and times out test suites.
-+ testsuites.CapVolumeLimits: false,
-+ testsuites.CapTopology: true,
-+ },
-+ },
-+ }
-+}
-+
-+func (a *azureDiskDriver) GetDriverInfo() *testsuites.DriverInfo {
-+ return &a.driverInfo
-+}
-+
-+func (a *azureDiskDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+ e2eskipper.SkipUnlessProviderIs("azure")
-+}
-+
-+func (a *azureDiskDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+ av, ok := e2evolume.(*azureDiskVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
-+ diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
-+
-+ kind := v1.AzureManagedDisk
-+ volSource := v1.VolumeSource{
-+ AzureDisk: &v1.AzureDiskVolumeSource{
-+ DiskName: diskName,
-+ DataDiskURI: av.volumeName,
-+ Kind: &kind,
-+ ReadOnly: &readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ volSource.AzureDisk.FSType = &fsType
-+ }
-+ return &volSource
-+}
-+
-+func (a *azureDiskDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+ av, ok := e2evolume.(*azureDiskVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to Azure test volume")
-+
-+ diskName := av.volumeName[(strings.LastIndex(av.volumeName, "/") + 1):]
-+
-+ kind := v1.AzureManagedDisk
-+ pvSource := v1.PersistentVolumeSource{
-+ AzureDisk: &v1.AzureDiskVolumeSource{
-+ DiskName: diskName,
-+ DataDiskURI: av.volumeName,
-+ Kind: &kind,
-+ ReadOnly: &readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ pvSource.AzureDisk.FSType = &fsType
-+ }
-+ return &pvSource, nil
-+}
-+
-+func (a *azureDiskDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+ provisioner := "kubernetes.io/azure-disk"
-+ parameters := map[string]string{}
-+ if fsType != "" {
-+ parameters["fsType"] = fsType
-+ }
-+ ns := config.Framework.Namespace.Name
-+ suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-+ delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+ return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (a *azureDiskDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+ return &testsuites.PerTestConfig{
-+ Driver: a,
-+ Prefix: "azure",
-+ Framework: f,
-+ }, func() {}
-+}
-+
-+func (a *azureDiskDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+ ginkgo.By("creating a test azure disk volume")
-+ zone := getInlineVolumeZone(config.Framework)
-+ if volType == testpatterns.InlineVolume {
-+ // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+ // so pods should be also scheduled there.
-+ config.ClientNodeSelection = e2epod.NodeSelection{
-+ Selector: map[string]string{
-+ v1.LabelZoneFailureDomain: zone,
-+ },
-+ }
-+ }
-+ volumeName, err := e2epv.CreatePDWithRetryAndZone(zone)
-+ framework.ExpectNoError(err)
-+ return &azureDiskVolume{
-+ volumeName: volumeName,
-+ }
-+}
-+
-+func (v *azureDiskVolume) DeleteVolume() {
-+ e2epv.DeletePDWithRetry(v.volumeName)
-+}
-+
-+// AWS
-+type awsDriver struct {
-+ driverInfo testsuites.DriverInfo
-+}
-+
-+type awsVolume struct {
-+ volumeName string
-+}
-+
-+var _ testsuites.TestDriver = &awsDriver{}
-+
-+var _ testsuites.PreprovisionedVolumeTestDriver = &awsDriver{}
-+var _ testsuites.InlineVolumeTestDriver = &awsDriver{}
-+var _ testsuites.PreprovisionedPVTestDriver = &awsDriver{}
-+var _ testsuites.DynamicPVTestDriver = &awsDriver{}
-+
-+// InitAwsDriver returns awsDriver that implements TestDriver interface
-+func InitAwsDriver() testsuites.TestDriver {
-+ return &awsDriver{
-+ driverInfo: testsuites.DriverInfo{
-+ Name: "aws",
-+ InTreePluginName: "kubernetes.io/aws-ebs",
-+ MaxFileSize: testpatterns.FileSizeMedium,
-+ SupportedSizeRange: e2evolume.SizeRange{
-+ Min: "5Gi",
-+ },
-+ SupportedFsType: sets.NewString(
-+ "", // Default fsType
-+ "ext2",
-+ "ext3",
-+ "ext4",
-+ "xfs",
-+ "ntfs",
-+ ),
-+ SupportedMountOption: sets.NewString("debug", "nouid32"),
-+ TopologyKeys: []string{v1.LabelZoneFailureDomain},
-+ Capabilities: map[testsuites.Capability]bool{
-+ testsuites.CapPersistence: true,
-+ testsuites.CapFsGroup: true,
-+ testsuites.CapBlock: true,
-+ testsuites.CapExec: true,
-+ testsuites.CapMultiPODs: true,
-+ testsuites.CapControllerExpansion: true,
-+ testsuites.CapNodeExpansion: true,
-+ // AWS supports volume limits, but the test creates large
-+ // number of volumes and times out test suites.
-+ testsuites.CapVolumeLimits: false,
-+ testsuites.CapTopology: true,
-+ },
-+ },
-+ }
-+}
-+
-+func (a *awsDriver) GetDriverInfo() *testsuites.DriverInfo {
-+ return &a.driverInfo
-+}
-+
-+func (a *awsDriver) SkipUnsupportedTest(pattern testpatterns.TestPattern) {
-+ e2eskipper.SkipUnlessProviderIs("aws")
-+}
-+
-+func (a *awsDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) *v1.VolumeSource {
-+ av, ok := e2evolume.(*awsVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-+ volSource := v1.VolumeSource{
-+ AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+ VolumeID: av.volumeName,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ volSource.AWSElasticBlockStore.FSType = fsType
-+ }
-+ return &volSource
-+}
-+
-+func (a *awsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2evolume testsuites.TestVolume) (*v1.PersistentVolumeSource, *v1.VolumeNodeAffinity) {
-+ av, ok := e2evolume.(*awsVolume)
-+ framework.ExpectEqual(ok, true, "Failed to cast test volume to AWS test volume")
-+ pvSource := v1.PersistentVolumeSource{
-+ AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+ VolumeID: av.volumeName,
-+ ReadOnly: readOnly,
-+ },
-+ }
-+ if fsType != "" {
-+ pvSource.AWSElasticBlockStore.FSType = fsType
-+ }
-+ return &pvSource, nil
-+}
-+
-+func (a *awsDriver) GetDynamicProvisionStorageClass(config *testsuites.PerTestConfig, fsType string) *storagev1.StorageClass {
-+ provisioner := "kubernetes.io/aws-ebs"
-+ parameters := map[string]string{}
-+ if fsType != "" {
-+ parameters["fsType"] = fsType
-+ }
-+ ns := config.Framework.Namespace.Name
-+ suffix := fmt.Sprintf("%s-sc", a.driverInfo.Name)
-+ delayedBinding := storagev1.VolumeBindingWaitForFirstConsumer
-+
-+ return testsuites.GetStorageClass(provisioner, parameters, &delayedBinding, ns, suffix)
-+}
-+
-+func (a *awsDriver) PrepareTest(f *framework.Framework) (*testsuites.PerTestConfig, func()) {
-+ config := &testsuites.PerTestConfig{
-+ Driver: a,
-+ Prefix: "aws",
-+ Framework: f,
-+ }
-+
-+ if framework.NodeOSDistroIs("windows") {
-+ config.ClientNodeSelection = e2epod.NodeSelection{
-+ Selector: map[string]string{
-+ "kubernetes.io/os": "windows",
-+ },
-+ }
-+ }
-+ return config, func() {}
-+}
-+
-+func (a *awsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testpatterns.TestVolType) testsuites.TestVolume {
-+ zone := getInlineVolumeZone(config.Framework)
-+ if volType == testpatterns.InlineVolume {
-+ // PD will be created in framework.TestContext.CloudConfig.Zone zone,
-+ // so pods should be also scheduled there.
-+ config.ClientNodeSelection = e2epod.NodeSelection{
-+ Selector: map[string]string{
-+ v1.LabelZoneFailureDomain: zone,
-+ },
-+ }
-+ }
-+ ginkgo.By("creating a test aws volume")
-+ vname, err := e2epv.CreatePDWithRetryAndZone(zone)
-+ framework.ExpectNoError(err)
-+ return &awsVolume{
-+ volumeName: vname,
-+ }
-+}
-+
-+func (v *awsVolume) DeleteVolume() {
-+ e2epv.DeletePDWithRetry(v.volumeName)
-+}
-diff --git a/test/e2e/storage/in_tree_volumes.go b/test/e2e/storage/in_tree_volumes.go
-index 19372062407..8322db743cd 100644
---- a/test/e2e/storage/in_tree_volumes.go
-+++ b/test/e2e/storage/in_tree_volumes.go
-@@ -33,11 +33,6 @@ var testDrivers = []func() testsuites.TestDriver{
- drivers.InitHostPathDriver,
- drivers.InitHostPathSymlinkDriver,
- drivers.InitEmptydirDriver,
-- drivers.InitCinderDriver,
-- drivers.InitGcePdDriver,
-- drivers.InitVSphereDriver,
-- drivers.InitAzureDiskDriver,
-- drivers.InitAwsDriver,
- drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectory),
- drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectoryLink),
- drivers.InitLocalDriverWithVolumeType(utils.LocalVolumeDirectoryBindMounted),
-diff --git a/test/e2e/storage/in_tree_volumes_providers.go b/test/e2e/storage/in_tree_volumes_providers.go
-new file mode 100644
-index 00000000000..d6a5dbca191
---- /dev/null
-+++ b/test/e2e/storage/in_tree_volumes_providers.go
-@@ -0,0 +1,46 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2020 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 storage
-+
-+import (
-+ "github.com/onsi/ginkgo"
-+ "k8s.io/kubernetes/test/e2e/storage/drivers"
-+ "k8s.io/kubernetes/test/e2e/storage/testsuites"
-+ "k8s.io/kubernetes/test/e2e/storage/utils"
-+)
-+
-+// List of testDrivers to be executed in below loop
-+var testDriversProviders = []func() testsuites.TestDriver{
-+ drivers.InitCinderDriver,
-+ drivers.InitGcePdDriver,
-+ drivers.InitVSphereDriver,
-+ drivers.InitAzureDiskDriver,
-+ drivers.InitAwsDriver,
-+}
-+
-+// This executes testSuites for in-tree volumes.
-+var _ = utils.SIGDescribe("In-tree Volumes for Cloud Providers", func() {
-+ for _, initDriver := range testDriversProviders {
-+ curDriver := initDriver()
-+
-+ ginkgo.Context(testsuites.GetDriverNameWithFeatureTags(curDriver), func() {
-+ testsuites.DefineTestSuite(curDriver, testsuites.BaseSuites)
-+ })
-+ }
-+})
-diff --git a/test/e2e/storage/nfs_persistent_volume-disruptive.go b/test/e2e/storage/nfs_persistent_volume-disruptive.go
-index 5afebb5e903..b197eee99a6 100644
---- a/test/e2e/storage/nfs_persistent_volume-disruptive.go
-+++ b/test/e2e/storage/nfs_persistent_volume-disruptive.go
-@@ -91,7 +91,7 @@ var _ = utils.SIGDescribe("NFSPersistentVolumes[Disruptive][Flaky]", func() {
-
- ginkgo.BeforeEach(func() {
- // To protect the NFS volume pod from the kubelet restart, we isolate it on its own node.
-- e2eskipper.SkipUnlessNodeCountIsAtLeast(minNodes)
-+ e2eskipper.SkipUnlessNodeCountIsAtLeast(2)
- e2eskipper.SkipIfProviderIs("local")
-
- c = f.ClientSet
-diff --git a/test/e2e/storage/pd.go b/test/e2e/storage/pd.go
-index f5b6060a834..addd304147c 100644
---- a/test/e2e/storage/pd.go
-+++ b/test/e2e/storage/pd.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2015 The Kubernetes Authors.
-
-diff --git a/test/e2e/storage/persistent_volumes-gce.go b/test/e2e/storage/persistent_volumes-gce.go
-index b8bc887384e..f572754c5e8 100644
---- a/test/e2e/storage/persistent_volumes-gce.go
-+++ b/test/e2e/storage/persistent_volumes-gce.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2017 The Kubernetes Authors.
-
-diff --git a/test/e2e/storage/regional_pd.go b/test/e2e/storage/regional_pd.go
-index 7763afaf6b1..a042dcc9d4a 100644
---- a/test/e2e/storage/regional_pd.go
-+++ b/test/e2e/storage/regional_pd.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2016 The Kubernetes Authors.
-
-@@ -18,6 +20,7 @@ package storage
-
- import (
- "context"
-+
- "github.com/onsi/ginkgo"
- "github.com/onsi/gomega"
-
-diff --git a/test/e2e/storage/utils/BUILD b/test/e2e/storage/utils/BUILD
-index bdc78982dcb..c57ff325f76 100644
---- a/test/e2e/storage/utils/BUILD
-+++ b/test/e2e/storage/utils/BUILD
-@@ -7,7 +7,6 @@ go_library(
- srcs = [
- "create.go",
- "deployment.go",
-- "ebs.go",
- "framework.go",
- "host_exec.go",
- "local.go",
-@@ -37,8 +36,6 @@ go_library(
- "//test/e2e/framework/ssh:go_default_library",
- "//test/e2e/framework/testfiles:go_default_library",
- "//test/utils/image:go_default_library",
-- "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
-- "//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
- "//vendor/github.com/onsi/ginkgo:go_default_library",
- "//vendor/github.com/onsi/gomega:go_default_library",
- "//vendor/github.com/pkg/errors:go_default_library",
-diff --git a/test/e2e/storage/utils/ebs.go b/test/e2e/storage/utils/ebs.go
-index 39e223f36aa..55065ea07b7 100644
---- a/test/e2e/storage/utils/ebs.go
-+++ b/test/e2e/storage/utils/ebs.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2020 The Kubernetes Authors.
-
-diff --git a/test/e2e/storage/volume_provisioning.go b/test/e2e/storage/volume_provisioning.go
-index a8b494eb3ac..c070a81283c 100644
---- a/test/e2e/storage/volume_provisioning.go
-+++ b/test/e2e/storage/volume_provisioning.go
-@@ -24,11 +24,6 @@ import (
- "time"
-
- "github.com/onsi/ginkgo"
-- "github.com/onsi/gomega"
--
-- "github.com/aws/aws-sdk-go/aws"
-- "github.com/aws/aws-sdk-go/aws/session"
-- "github.com/aws/aws-sdk-go/service/ec2"
-
- v1 "k8s.io/api/core/v1"
- rbacv1 "k8s.io/api/rbac/v1"
-@@ -37,9 +32,7 @@ import (
- apierrors "k8s.io/apimachinery/pkg/api/errors"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- "k8s.io/apimachinery/pkg/runtime/schema"
-- "k8s.io/apimachinery/pkg/types"
- "k8s.io/apimachinery/pkg/util/rand"
-- "k8s.io/apimachinery/pkg/util/sets"
- "k8s.io/apimachinery/pkg/util/wait"
- "k8s.io/apiserver/pkg/authentication/serviceaccount"
- clientset "k8s.io/client-go/kubernetes"
-@@ -48,7 +41,6 @@ import (
- e2eauth "k8s.io/kubernetes/test/e2e/framework/auth"
- e2enode "k8s.io/kubernetes/test/e2e/framework/node"
- e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-- "k8s.io/kubernetes/test/e2e/framework/providers/gce"
- e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
- e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
- "k8s.io/kubernetes/test/e2e/storage/testsuites"
-@@ -61,80 +53,6 @@ const (
- externalPluginName = "example.com/nfs"
- )
-
--// checkAWSEBS checks properties of an AWS EBS. Test framework does not
--// instantiate full AWS provider, therefore we need use ec2 API directly.
--func checkAWSEBS(volume *v1.PersistentVolume, volumeType string, encrypted bool) error {
-- diskName := volume.Spec.AWSElasticBlockStore.VolumeID
--
-- var client *ec2.EC2
--
-- tokens := strings.Split(diskName, "/")
-- volumeID := tokens[len(tokens)-1]
--
-- zone := framework.TestContext.CloudConfig.Zone
--
-- awsSession, err := session.NewSession()
-- if err != nil {
-- return fmt.Errorf("error creating session: %v", err)
-- }
--
-- if len(zone) > 0 {
-- region := zone[:len(zone)-1]
-- cfg := aws.Config{Region: ®ion}
-- framework.Logf("using region %s", region)
-- client = ec2.New(awsSession, &cfg)
-- } else {
-- framework.Logf("no region configured")
-- client = ec2.New(awsSession)
-- }
--
-- request := &ec2.DescribeVolumesInput{
-- VolumeIds: []*string{&volumeID},
-- }
-- info, err := client.DescribeVolumes(request)
-- if err != nil {
-- return fmt.Errorf("error querying ec2 for volume %q: %v", volumeID, err)
-- }
-- if len(info.Volumes) == 0 {
-- return fmt.Errorf("no volumes found for volume %q", volumeID)
-- }
-- if len(info.Volumes) > 1 {
-- return fmt.Errorf("multiple volumes found for volume %q", volumeID)
-- }
--
-- awsVolume := info.Volumes[0]
-- if awsVolume.VolumeType == nil {
-- return fmt.Errorf("expected volume type %q, got nil", volumeType)
-- }
-- if *awsVolume.VolumeType != volumeType {
-- return fmt.Errorf("expected volume type %q, got %q", volumeType, *awsVolume.VolumeType)
-- }
-- if encrypted && awsVolume.Encrypted == nil {
-- return fmt.Errorf("expected encrypted volume, got no encryption")
-- }
-- if encrypted && !*awsVolume.Encrypted {
-- return fmt.Errorf("expected encrypted volume, got %v", *awsVolume.Encrypted)
-- }
-- return nil
--}
--
--func checkGCEPD(volume *v1.PersistentVolume, volumeType string) error {
-- cloud, err := gce.GetGCECloud()
-- if err != nil {
-- return err
-- }
-- diskName := volume.Spec.GCEPersistentDisk.PDName
-- disk, err := cloud.GetDiskByNameUnknownZone(diskName)
-- if err != nil {
-- return err
-- }
--
-- if !strings.HasSuffix(disk.Type, volumeType) {
-- return fmt.Errorf("unexpected disk type %q, expected suffix %q", disk.Type, volumeType)
-- }
-- return nil
--}
--
- var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
- f := framework.NewDefaultFramework("volume-provisioning")
-
-@@ -147,451 +65,6 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
- ns = f.Namespace.Name
- })
-
-- ginkgo.Describe("DynamicProvisioner [Slow]", func() {
-- ginkgo.It("should provision storage with different parameters", func() {
--
-- // This test checks that dynamic provisioning can provision a volume
-- // that can be used to persist data among pods.
-- tests := []testsuites.StorageClassTest{
-- // GCE/GKE
-- {
-- Name: "SSD PD on GCE/GKE",
-- CloudProviders: []string{"gce", "gke"},
-- Provisioner: "kubernetes.io/gce-pd",
-- Parameters: map[string]string{
-- "type": "pd-ssd",
-- "zone": getRandomClusterZone(c),
-- },
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "2Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkGCEPD(volume, "pd-ssd")
-- framework.ExpectNoError(err, "checkGCEPD pd-ssd")
-- },
-- },
-- {
-- Name: "HDD PD on GCE/GKE",
-- CloudProviders: []string{"gce", "gke"},
-- Provisioner: "kubernetes.io/gce-pd",
-- Parameters: map[string]string{
-- "type": "pd-standard",
-- },
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "2Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkGCEPD(volume, "pd-standard")
-- framework.ExpectNoError(err, "checkGCEPD pd-standard")
-- },
-- },
-- // AWS
-- {
-- Name: "gp2 EBS on AWS",
-- CloudProviders: []string{"aws"},
-- Provisioner: "kubernetes.io/aws-ebs",
-- Parameters: map[string]string{
-- "type": "gp2",
-- "zone": getRandomClusterZone(c),
-- },
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "2Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkAWSEBS(volume, "gp2", false)
-- framework.ExpectNoError(err, "checkAWSEBS gp2")
-- },
-- },
-- {
-- Name: "io1 EBS on AWS",
-- CloudProviders: []string{"aws"},
-- Provisioner: "kubernetes.io/aws-ebs",
-- Parameters: map[string]string{
-- "type": "io1",
-- "iopsPerGB": "50",
-- },
-- ClaimSize: "3.5Gi",
-- ExpectedSize: "4Gi", // 4 GiB is minimum for io1
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkAWSEBS(volume, "io1", false)
-- framework.ExpectNoError(err, "checkAWSEBS io1")
-- },
-- },
-- {
-- Name: "sc1 EBS on AWS",
-- CloudProviders: []string{"aws"},
-- Provisioner: "kubernetes.io/aws-ebs",
-- Parameters: map[string]string{
-- "type": "sc1",
-- },
-- ClaimSize: "500Gi", // minimum for sc1
-- ExpectedSize: "500Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkAWSEBS(volume, "sc1", false)
-- framework.ExpectNoError(err, "checkAWSEBS sc1")
-- },
-- },
-- {
-- Name: "st1 EBS on AWS",
-- CloudProviders: []string{"aws"},
-- Provisioner: "kubernetes.io/aws-ebs",
-- Parameters: map[string]string{
-- "type": "st1",
-- },
-- ClaimSize: "500Gi", // minimum for st1
-- ExpectedSize: "500Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkAWSEBS(volume, "st1", false)
-- framework.ExpectNoError(err, "checkAWSEBS st1")
-- },
-- },
-- {
-- Name: "encrypted EBS on AWS",
-- CloudProviders: []string{"aws"},
-- Provisioner: "kubernetes.io/aws-ebs",
-- Parameters: map[string]string{
-- "encrypted": "true",
-- },
-- ClaimSize: "1Gi",
-- ExpectedSize: "1Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkAWSEBS(volume, "gp2", true)
-- framework.ExpectNoError(err, "checkAWSEBS gp2 encrypted")
-- },
-- },
-- // OpenStack generic tests (works on all OpenStack deployments)
-- {
-- Name: "generic Cinder volume on OpenStack",
-- CloudProviders: []string{"openstack"},
-- Provisioner: "kubernetes.io/cinder",
-- Parameters: map[string]string{},
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "2Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- },
-- },
-- {
-- Name: "Cinder volume with empty volume type and zone on OpenStack",
-- CloudProviders: []string{"openstack"},
-- Provisioner: "kubernetes.io/cinder",
-- Parameters: map[string]string{
-- "type": "",
-- "availability": "",
-- },
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "2Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- },
-- },
-- // vSphere generic test
-- {
-- Name: "generic vSphere volume",
-- CloudProviders: []string{"vsphere"},
-- Provisioner: "kubernetes.io/vsphere-volume",
-- Parameters: map[string]string{},
-- ClaimSize: "1.5Gi",
-- ExpectedSize: "1.5Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- },
-- },
-- // Azure
-- {
-- Name: "Azure disk volume with empty sku and location",
-- CloudProviders: []string{"azure"},
-- Provisioner: "kubernetes.io/azure-disk",
-- Parameters: map[string]string{},
-- ClaimSize: "1Gi",
-- ExpectedSize: "1Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- },
-- },
-- }
--
-- var betaTest *testsuites.StorageClassTest
-- for i, t := range tests {
-- // Beware of clojure, use local variables instead of those from
-- // outer scope
-- test := t
--
-- if !framework.ProviderIs(test.CloudProviders...) {
-- framework.Logf("Skipping %q: cloud providers is not %v", test.Name, test.CloudProviders)
-- continue
-- }
--
-- // Remember the last supported test for subsequent test of beta API
-- betaTest = &test
--
-- ginkgo.By("Testing " + test.Name)
-- suffix := fmt.Sprintf("%d", i)
-- test.Client = c
-- test.Class = newStorageClass(test, ns, suffix)
-- test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-- ClaimSize: test.ClaimSize,
-- StorageClassName: &test.Class.Name,
-- VolumeMode: &test.VolumeMode,
-- }, ns)
-- test.TestDynamicProvisioning()
-- }
--
-- // Run the last test with storage.k8s.io/v1beta1 on pvc
-- if betaTest != nil {
-- ginkgo.By("Testing " + betaTest.Name + " with beta volume provisioning")
-- class := newBetaStorageClass(*betaTest, "beta")
-- // we need to create the class manually, testDynamicProvisioning does not accept beta class
-- class, err := c.StorageV1beta1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-- framework.ExpectNoError(err)
-- defer deleteStorageClass(c, class.Name)
--
-- betaTest.Client = c
-- betaTest.Class = nil
-- betaTest.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-- ClaimSize: betaTest.ClaimSize,
-- StorageClassName: &class.Name,
-- VolumeMode: &betaTest.VolumeMode,
-- }, ns)
-- betaTest.Claim.Spec.StorageClassName = &(class.Name)
-- (*betaTest).TestDynamicProvisioning()
-- }
-- })
--
-- ginkgo.It("should provision storage with non-default reclaim policy Retain", func() {
-- e2eskipper.SkipUnlessProviderIs("gce", "gke")
--
-- test := testsuites.StorageClassTest{
-- Client: c,
-- Name: "HDD PD on GCE/GKE",
-- CloudProviders: []string{"gce", "gke"},
-- Provisioner: "kubernetes.io/gce-pd",
-- Parameters: map[string]string{
-- "type": "pd-standard",
-- },
-- ClaimSize: "1Gi",
-- ExpectedSize: "1Gi",
-- PvCheck: func(claim *v1.PersistentVolumeClaim) {
-- volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-- gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
--
-- err := checkGCEPD(volume, "pd-standard")
-- framework.ExpectNoError(err, "checkGCEPD")
-- },
-- }
-- test.Class = newStorageClass(test, ns, "reclaimpolicy")
-- retain := v1.PersistentVolumeReclaimRetain
-- test.Class.ReclaimPolicy = &retain
-- test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-- ClaimSize: test.ClaimSize,
-- StorageClassName: &test.Class.Name,
-- VolumeMode: &test.VolumeMode,
-- }, ns)
-- pv := test.TestDynamicProvisioning()
--
-- ginkgo.By(fmt.Sprintf("waiting for the provisioned PV %q to enter phase %s", pv.Name, v1.VolumeReleased))
-- framework.ExpectNoError(e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 1*time.Second, 30*time.Second))
--
-- ginkgo.By(fmt.Sprintf("deleting the storage asset backing the PV %q", pv.Name))
-- framework.ExpectNoError(e2epv.DeletePDWithRetry(pv.Spec.GCEPersistentDisk.PDName))
--
-- ginkgo.By(fmt.Sprintf("deleting the PV %q", pv.Name))
-- framework.ExpectNoError(e2epv.DeletePersistentVolume(c, pv.Name), "Failed to delete PV ", pv.Name)
-- framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
-- })
--
-- ginkgo.It("should not provision a volume in an unmanaged GCE zone.", func() {
-- e2eskipper.SkipUnlessProviderIs("gce", "gke")
-- var suffix string = "unmananged"
--
-- ginkgo.By("Discovering an unmanaged zone")
-- allZones := sets.NewString() // all zones in the project
--
-- gceCloud, err := gce.GetGCECloud()
-- framework.ExpectNoError(err)
--
-- // Get all k8s managed zones (same as zones with nodes in them for test)
-- managedZones, err := gceCloud.GetAllZonesFromCloudProvider()
-- framework.ExpectNoError(err)
--
-- // Get a list of all zones in the project
-- zones, err := gceCloud.ComputeServices().GA.Zones.List(framework.TestContext.CloudConfig.ProjectID).Do()
-- framework.ExpectNoError(err)
-- for _, z := range zones.Items {
-- allZones.Insert(z.Name)
-- }
--
-- // Get the subset of zones not managed by k8s
-- var unmanagedZone string
-- var popped bool
-- unmanagedZones := allZones.Difference(managedZones)
-- // And select one of them at random.
-- if unmanagedZone, popped = unmanagedZones.PopAny(); !popped {
-- e2eskipper.Skipf("No unmanaged zones found.")
-- }
--
-- ginkgo.By("Creating a StorageClass for the unmanaged zone")
-- test := testsuites.StorageClassTest{
-- Name: "unmanaged_zone",
-- Provisioner: "kubernetes.io/gce-pd",
-- Parameters: map[string]string{"zone": unmanagedZone},
-- ClaimSize: "1Gi",
-- }
-- sc := newStorageClass(test, ns, suffix)
-- sc, err = c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{})
-- framework.ExpectNoError(err)
-- defer deleteStorageClass(c, sc.Name)
--
-- ginkgo.By("Creating a claim and expecting it to timeout")
-- pvc := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-- ClaimSize: test.ClaimSize,
-- StorageClassName: &sc.Name,
-- VolumeMode: &test.VolumeMode,
-- }, ns)
-- pvc, err = c.CoreV1().PersistentVolumeClaims(ns).Create(context.TODO(), pvc, metav1.CreateOptions{})
-- framework.ExpectNoError(err)
-- defer func() {
-- framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
-- }()
--
-- // The claim should timeout phase:Pending
-- err = e2epv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, 2*time.Second, framework.ClaimProvisionShortTimeout)
-- framework.ExpectError(err)
-- framework.Logf(err.Error())
-- })
--
-- ginkgo.It("should test that deleting a claim before the volume is provisioned deletes the volume.", func() {
-- // This case tests for the regressions of a bug fixed by PR #21268
-- // REGRESSION: Deleting the PVC before the PV is provisioned can result in the PV
-- // not being deleted.
-- // NOTE: Polls until no PVs are detected, times out at 5 minutes.
--
-- e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
--
-- const raceAttempts int = 100
-- var residualPVs []*v1.PersistentVolume
-- ginkgo.By(fmt.Sprintf("Creating and deleting PersistentVolumeClaims %d times", raceAttempts))
-- test := testsuites.StorageClassTest{
-- Name: "deletion race",
-- Provisioner: "", // Use a native one based on current cloud provider
-- ClaimSize: "1Gi",
-- }
--
-- class := newStorageClass(test, ns, "race")
-- class, err := c.StorageV1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-- framework.ExpectNoError(err)
-- defer deleteStorageClass(c, class.Name)
--
-- // To increase chance of detection, attempt multiple iterations
-- for i := 0; i < raceAttempts; i++ {
-- prefix := fmt.Sprintf("race-%d", i)
-- claim := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-- NamePrefix: prefix,
-- ClaimSize: test.ClaimSize,
-- StorageClassName: &class.Name,
-- VolumeMode: &test.VolumeMode,
-- }, ns)
-- tmpClaim, err := e2epv.CreatePVC(c, ns, claim)
-- framework.ExpectNoError(err)
-- framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, tmpClaim.Name, ns))
-- }
--
-- ginkgo.By(fmt.Sprintf("Checking for residual PersistentVolumes associated with StorageClass %s", class.Name))
-- residualPVs, err = waitForProvisionedVolumesDeleted(c, class.Name)
-- // Cleanup the test resources before breaking
-- defer deleteProvisionedVolumesAndDisks(c, residualPVs)
-- framework.ExpectNoError(err, "PersistentVolumes were not deleted as expected. %d remain", len(residualPVs))
--
-- framework.Logf("0 PersistentVolumes remain.")
-- })
--
-- ginkgo.It("deletion should be idempotent", func() {
-- // This test ensures that deletion of a volume is idempotent.
-- // It creates a PV with Retain policy, deletes underlying AWS / GCE
-- // volume and changes the reclaim policy to Delete.
-- // PV controller should delete the PV even though the underlying volume
-- // is already deleted.
-- e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
-- ginkgo.By("creating PD")
-- diskName, err := e2epv.CreatePDWithRetry()
-- framework.ExpectNoError(err)
--
-- ginkgo.By("creating PV")
-- pv := e2epv.MakePersistentVolume(e2epv.PersistentVolumeConfig{
-- NamePrefix: "volume-idempotent-delete-",
-- // Use Retain to keep the PV, the test will change it to Delete
-- // when the time comes.
-- ReclaimPolicy: v1.PersistentVolumeReclaimRetain,
-- AccessModes: []v1.PersistentVolumeAccessMode{
-- v1.ReadWriteOnce,
-- },
-- Capacity: "1Gi",
-- // PV is bound to non-existing PVC, so it's reclaim policy is
-- // executed immediately
-- Prebind: &v1.PersistentVolumeClaim{
-- ObjectMeta: metav1.ObjectMeta{
-- Name: "dummy-claim-name",
-- Namespace: ns,
-- UID: types.UID("01234567890"),
-- },
-- },
-- })
-- switch framework.TestContext.Provider {
-- case "aws":
-- pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-- AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-- VolumeID: diskName,
-- },
-- }
-- case "gce", "gke":
-- pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-- GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-- PDName: diskName,
-- },
-- }
-- }
-- pv, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
-- framework.ExpectNoError(err)
--
-- ginkgo.By("waiting for the PV to get Released")
-- err = e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 2*time.Second, e2epv.PVReclaimingTimeout)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("deleting the PD")
-- err = e2epv.DeletePVSource(&pv.Spec.PersistentVolumeSource)
-- framework.ExpectNoError(err)
--
-- ginkgo.By("changing the PV reclaim policy")
-- pv, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pv.Name, metav1.GetOptions{})
-- framework.ExpectNoError(err)
-- pv.Spec.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimDelete
-- pv, err = c.CoreV1().PersistentVolumes().Update(context.TODO(), pv, metav1.UpdateOptions{})
-- framework.ExpectNoError(err)
--
-- ginkgo.By("waiting for the PV to get deleted")
-- err = e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
-- framework.ExpectNoError(err)
-- })
-- })
--
- ginkgo.Describe("DynamicProvisioner External", func() {
- ginkgo.It("should let an external dynamic provisioner create and delete persistent volumes [Slow]", func() {
- // external dynamic provisioner pods need additional permissions provided by the
-diff --git a/test/e2e/storage/volume_provisioning_providers.go b/test/e2e/storage/volume_provisioning_providers.go
-new file mode 100644
-index 00000000000..932c644af7a
---- /dev/null
-+++ b/test/e2e/storage/volume_provisioning_providers.go
-@@ -0,0 +1,577 @@
-+// +build !providerless
-+
-+/*
-+Copyright 2016 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 storage
-+
-+import (
-+ "context"
-+ "fmt"
-+ "strings"
-+ "time"
-+
-+ "github.com/aws/aws-sdk-go/aws"
-+ "github.com/aws/aws-sdk-go/aws/session"
-+ "github.com/aws/aws-sdk-go/service/ec2"
-+ "github.com/onsi/ginkgo"
-+ "github.com/onsi/gomega"
-+
-+ v1 "k8s.io/api/core/v1"
-+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-+ "k8s.io/apimachinery/pkg/types"
-+ "k8s.io/apimachinery/pkg/util/sets"
-+ clientset "k8s.io/client-go/kubernetes"
-+ "k8s.io/kubernetes/test/e2e/framework"
-+ e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
-+ "k8s.io/kubernetes/test/e2e/framework/providers/gce"
-+ e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
-+ e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
-+ "k8s.io/kubernetes/test/e2e/storage/testsuites"
-+ "k8s.io/kubernetes/test/e2e/storage/utils"
-+)
-+
-+// checkAWSEBS checks properties of an AWS EBS. Test framework does not
-+// instantiate full AWS provider, therefore we need use ec2 API directly.
-+func checkAWSEBS(volume *v1.PersistentVolume, volumeType string, encrypted bool) error {
-+ diskName := volume.Spec.AWSElasticBlockStore.VolumeID
-+
-+ var client *ec2.EC2
-+
-+ tokens := strings.Split(diskName, "/")
-+ volumeID := tokens[len(tokens)-1]
-+
-+ zone := framework.TestContext.CloudConfig.Zone
-+
-+ awsSession, err := session.NewSession()
-+ if err != nil {
-+ return fmt.Errorf("error creating session: %v", err)
-+ }
-+
-+ if len(zone) > 0 {
-+ region := zone[:len(zone)-1]
-+ cfg := aws.Config{Region: ®ion}
-+ framework.Logf("using region %s", region)
-+ client = ec2.New(awsSession, &cfg)
-+ } else {
-+ framework.Logf("no region configured")
-+ client = ec2.New(awsSession)
-+ }
-+
-+ request := &ec2.DescribeVolumesInput{
-+ VolumeIds: []*string{&volumeID},
-+ }
-+ info, err := client.DescribeVolumes(request)
-+ if err != nil {
-+ return fmt.Errorf("error querying ec2 for volume %q: %v", volumeID, err)
-+ }
-+ if len(info.Volumes) == 0 {
-+ return fmt.Errorf("no volumes found for volume %q", volumeID)
-+ }
-+ if len(info.Volumes) > 1 {
-+ return fmt.Errorf("multiple volumes found for volume %q", volumeID)
-+ }
-+
-+ awsVolume := info.Volumes[0]
-+ if awsVolume.VolumeType == nil {
-+ return fmt.Errorf("expected volume type %q, got nil", volumeType)
-+ }
-+ if *awsVolume.VolumeType != volumeType {
-+ return fmt.Errorf("expected volume type %q, got %q", volumeType, *awsVolume.VolumeType)
-+ }
-+ if encrypted && awsVolume.Encrypted == nil {
-+ return fmt.Errorf("expected encrypted volume, got no encryption")
-+ }
-+ if encrypted && !*awsVolume.Encrypted {
-+ return fmt.Errorf("expected encrypted volume, got %v", *awsVolume.Encrypted)
-+ }
-+ return nil
-+}
-+
-+func checkGCEPD(volume *v1.PersistentVolume, volumeType string) error {
-+ cloud, err := gce.GetGCECloud()
-+ if err != nil {
-+ return err
-+ }
-+ diskName := volume.Spec.GCEPersistentDisk.PDName
-+ disk, err := cloud.GetDiskByNameUnknownZone(diskName)
-+ if err != nil {
-+ return err
-+ }
-+
-+ if !strings.HasSuffix(disk.Type, volumeType) {
-+ return fmt.Errorf("unexpected disk type %q, expected suffix %q", disk.Type, volumeType)
-+ }
-+ return nil
-+}
-+
-+var _ = utils.SIGDescribe("Dynamic Provisioning with cloud providers", func() {
-+ f := framework.NewDefaultFramework("volume-provisioning")
-+
-+ // filled in BeforeEach
-+ var c clientset.Interface
-+ var ns string
-+
-+ ginkgo.BeforeEach(func() {
-+ c = f.ClientSet
-+ ns = f.Namespace.Name
-+ })
-+
-+ ginkgo.Describe("DynamicProvisioner [Slow]", func() {
-+ ginkgo.It("should provision storage with different parameters", func() {
-+
-+ // This test checks that dynamic provisioning can provision a volume
-+ // that can be used to persist data among pods.
-+ tests := []testsuites.StorageClassTest{
-+ // GCE/GKE
-+ {
-+ Name: "SSD PD on GCE/GKE",
-+ CloudProviders: []string{"gce", "gke"},
-+ Provisioner: "kubernetes.io/gce-pd",
-+ Parameters: map[string]string{
-+ "type": "pd-ssd",
-+ "zone": getRandomClusterZone(c),
-+ },
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "2Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkGCEPD(volume, "pd-ssd")
-+ framework.ExpectNoError(err, "checkGCEPD pd-ssd")
-+ },
-+ },
-+ {
-+ Name: "HDD PD on GCE/GKE",
-+ CloudProviders: []string{"gce", "gke"},
-+ Provisioner: "kubernetes.io/gce-pd",
-+ Parameters: map[string]string{
-+ "type": "pd-standard",
-+ },
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "2Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkGCEPD(volume, "pd-standard")
-+ framework.ExpectNoError(err, "checkGCEPD pd-standard")
-+ },
-+ },
-+ // AWS
-+ {
-+ Name: "gp2 EBS on AWS",
-+ CloudProviders: []string{"aws"},
-+ Provisioner: "kubernetes.io/aws-ebs",
-+ Parameters: map[string]string{
-+ "type": "gp2",
-+ "zone": getRandomClusterZone(c),
-+ },
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "2Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkAWSEBS(volume, "gp2", false)
-+ framework.ExpectNoError(err, "checkAWSEBS gp2")
-+ },
-+ },
-+ {
-+ Name: "io1 EBS on AWS",
-+ CloudProviders: []string{"aws"},
-+ Provisioner: "kubernetes.io/aws-ebs",
-+ Parameters: map[string]string{
-+ "type": "io1",
-+ "iopsPerGB": "50",
-+ },
-+ ClaimSize: "3.5Gi",
-+ ExpectedSize: "4Gi", // 4 GiB is minimum for io1
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkAWSEBS(volume, "io1", false)
-+ framework.ExpectNoError(err, "checkAWSEBS io1")
-+ },
-+ },
-+ {
-+ Name: "sc1 EBS on AWS",
-+ CloudProviders: []string{"aws"},
-+ Provisioner: "kubernetes.io/aws-ebs",
-+ Parameters: map[string]string{
-+ "type": "sc1",
-+ },
-+ ClaimSize: "500Gi", // minimum for sc1
-+ ExpectedSize: "500Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkAWSEBS(volume, "sc1", false)
-+ framework.ExpectNoError(err, "checkAWSEBS sc1")
-+ },
-+ },
-+ {
-+ Name: "st1 EBS on AWS",
-+ CloudProviders: []string{"aws"},
-+ Provisioner: "kubernetes.io/aws-ebs",
-+ Parameters: map[string]string{
-+ "type": "st1",
-+ },
-+ ClaimSize: "500Gi", // minimum for st1
-+ ExpectedSize: "500Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkAWSEBS(volume, "st1", false)
-+ framework.ExpectNoError(err, "checkAWSEBS st1")
-+ },
-+ },
-+ {
-+ Name: "encrypted EBS on AWS",
-+ CloudProviders: []string{"aws"},
-+ Provisioner: "kubernetes.io/aws-ebs",
-+ Parameters: map[string]string{
-+ "encrypted": "true",
-+ },
-+ ClaimSize: "1Gi",
-+ ExpectedSize: "1Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkAWSEBS(volume, "gp2", true)
-+ framework.ExpectNoError(err, "checkAWSEBS gp2 encrypted")
-+ },
-+ },
-+ // OpenStack generic tests (works on all OpenStack deployments)
-+ {
-+ Name: "generic Cinder volume on OpenStack",
-+ CloudProviders: []string{"openstack"},
-+ Provisioner: "kubernetes.io/cinder",
-+ Parameters: map[string]string{},
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "2Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ },
-+ },
-+ {
-+ Name: "Cinder volume with empty volume type and zone on OpenStack",
-+ CloudProviders: []string{"openstack"},
-+ Provisioner: "kubernetes.io/cinder",
-+ Parameters: map[string]string{
-+ "type": "",
-+ "availability": "",
-+ },
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "2Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ },
-+ },
-+ // vSphere generic test
-+ {
-+ Name: "generic vSphere volume",
-+ CloudProviders: []string{"vsphere"},
-+ Provisioner: "kubernetes.io/vsphere-volume",
-+ Parameters: map[string]string{},
-+ ClaimSize: "1.5Gi",
-+ ExpectedSize: "1.5Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ },
-+ },
-+ // Azure
-+ {
-+ Name: "Azure disk volume with empty sku and location",
-+ CloudProviders: []string{"azure"},
-+ Provisioner: "kubernetes.io/azure-disk",
-+ Parameters: map[string]string{},
-+ ClaimSize: "1Gi",
-+ ExpectedSize: "1Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ },
-+ },
-+ }
-+
-+ var betaTest *testsuites.StorageClassTest
-+ for i, t := range tests {
-+ // Beware of clojure, use local variables instead of those from
-+ // outer scope
-+ test := t
-+
-+ if !framework.ProviderIs(test.CloudProviders...) {
-+ framework.Logf("Skipping %q: cloud providers is not %v", test.Name, test.CloudProviders)
-+ continue
-+ }
-+
-+ // Remember the last supported test for subsequent test of beta API
-+ betaTest = &test
-+
-+ ginkgo.By("Testing " + test.Name)
-+ suffix := fmt.Sprintf("%d", i)
-+ test.Client = c
-+ test.Class = newStorageClass(test, ns, suffix)
-+ test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+ ClaimSize: test.ClaimSize,
-+ StorageClassName: &test.Class.Name,
-+ VolumeMode: &test.VolumeMode,
-+ }, ns)
-+ test.TestDynamicProvisioning()
-+ }
-+
-+ // Run the last test with storage.k8s.io/v1beta1 on pvc
-+ if betaTest != nil {
-+ ginkgo.By("Testing " + betaTest.Name + " with beta volume provisioning")
-+ class := newBetaStorageClass(*betaTest, "beta")
-+ // we need to create the class manually, testDynamicProvisioning does not accept beta class
-+ class, err := c.StorageV1beta1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-+ framework.ExpectNoError(err)
-+ defer deleteStorageClass(c, class.Name)
-+
-+ betaTest.Client = c
-+ betaTest.Class = nil
-+ betaTest.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+ ClaimSize: betaTest.ClaimSize,
-+ StorageClassName: &class.Name,
-+ VolumeMode: &betaTest.VolumeMode,
-+ }, ns)
-+ betaTest.Claim.Spec.StorageClassName = &(class.Name)
-+ (*betaTest).TestDynamicProvisioning()
-+ }
-+ })
-+
-+ ginkgo.It("should provision storage with non-default reclaim policy Retain", func() {
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+
-+ test := testsuites.StorageClassTest{
-+ Client: c,
-+ Name: "HDD PD on GCE/GKE",
-+ CloudProviders: []string{"gce", "gke"},
-+ Provisioner: "kubernetes.io/gce-pd",
-+ Parameters: map[string]string{
-+ "type": "pd-standard",
-+ },
-+ ClaimSize: "1Gi",
-+ ExpectedSize: "1Gi",
-+ PvCheck: func(claim *v1.PersistentVolumeClaim) {
-+ volume := testsuites.PVWriteReadSingleNodeCheck(c, claim, e2epod.NodeSelection{})
-+ gomega.Expect(volume).NotTo(gomega.BeNil(), "get bound PV")
-+
-+ err := checkGCEPD(volume, "pd-standard")
-+ framework.ExpectNoError(err, "checkGCEPD")
-+ },
-+ }
-+ test.Class = newStorageClass(test, ns, "reclaimpolicy")
-+ retain := v1.PersistentVolumeReclaimRetain
-+ test.Class.ReclaimPolicy = &retain
-+ test.Claim = e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+ ClaimSize: test.ClaimSize,
-+ StorageClassName: &test.Class.Name,
-+ VolumeMode: &test.VolumeMode,
-+ }, ns)
-+ pv := test.TestDynamicProvisioning()
-+
-+ ginkgo.By(fmt.Sprintf("waiting for the provisioned PV %q to enter phase %s", pv.Name, v1.VolumeReleased))
-+ framework.ExpectNoError(e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 1*time.Second, 30*time.Second))
-+
-+ ginkgo.By(fmt.Sprintf("deleting the storage asset backing the PV %q", pv.Name))
-+ framework.ExpectNoError(e2epv.DeletePDWithRetry(pv.Spec.GCEPersistentDisk.PDName))
-+
-+ ginkgo.By(fmt.Sprintf("deleting the PV %q", pv.Name))
-+ framework.ExpectNoError(e2epv.DeletePersistentVolume(c, pv.Name), "Failed to delete PV ", pv.Name)
-+ framework.ExpectNoError(e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 1*time.Second, 30*time.Second))
-+ })
-+
-+ ginkgo.It("should not provision a volume in an unmanaged GCE zone.", func() {
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke")
-+ var suffix string = "unmananged"
-+
-+ ginkgo.By("Discovering an unmanaged zone")
-+ allZones := sets.NewString() // all zones in the project
-+
-+ gceCloud, err := gce.GetGCECloud()
-+ framework.ExpectNoError(err)
-+
-+ // Get all k8s managed zones (same as zones with nodes in them for test)
-+ managedZones, err := gceCloud.GetAllZonesFromCloudProvider()
-+ framework.ExpectNoError(err)
-+
-+ // Get a list of all zones in the project
-+ zones, err := gceCloud.ComputeServices().GA.Zones.List(framework.TestContext.CloudConfig.ProjectID).Do()
-+ framework.ExpectNoError(err)
-+ for _, z := range zones.Items {
-+ allZones.Insert(z.Name)
-+ }
-+
-+ // Get the subset of zones not managed by k8s
-+ var unmanagedZone string
-+ var popped bool
-+ unmanagedZones := allZones.Difference(managedZones)
-+ // And select one of them at random.
-+ if unmanagedZone, popped = unmanagedZones.PopAny(); !popped {
-+ e2eskipper.Skipf("No unmanaged zones found.")
-+ }
-+
-+ ginkgo.By("Creating a StorageClass for the unmanaged zone")
-+ test := testsuites.StorageClassTest{
-+ Name: "unmanaged_zone",
-+ Provisioner: "kubernetes.io/gce-pd",
-+ Parameters: map[string]string{"zone": unmanagedZone},
-+ ClaimSize: "1Gi",
-+ }
-+ sc := newStorageClass(test, ns, suffix)
-+ sc, err = c.StorageV1().StorageClasses().Create(context.TODO(), sc, metav1.CreateOptions{})
-+ framework.ExpectNoError(err)
-+ defer deleteStorageClass(c, sc.Name)
-+
-+ ginkgo.By("Creating a claim and expecting it to timeout")
-+ pvc := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+ ClaimSize: test.ClaimSize,
-+ StorageClassName: &sc.Name,
-+ VolumeMode: &test.VolumeMode,
-+ }, ns)
-+ pvc, err = c.CoreV1().PersistentVolumeClaims(ns).Create(context.TODO(), pvc, metav1.CreateOptions{})
-+ framework.ExpectNoError(err)
-+ defer func() {
-+ framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
-+ }()
-+
-+ // The claim should timeout phase:Pending
-+ err = e2epv.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, c, ns, pvc.Name, 2*time.Second, framework.ClaimProvisionShortTimeout)
-+ framework.ExpectError(err)
-+ framework.Logf(err.Error())
-+ })
-+
-+ ginkgo.It("should test that deleting a claim before the volume is provisioned deletes the volume.", func() {
-+ // This case tests for the regressions of a bug fixed by PR #21268
-+ // REGRESSION: Deleting the PVC before the PV is provisioned can result in the PV
-+ // not being deleted.
-+ // NOTE: Polls until no PVs are detected, times out at 5 minutes.
-+
-+ e2eskipper.SkipUnlessProviderIs("openstack", "gce", "aws", "gke", "vsphere", "azure")
-+
-+ const raceAttempts int = 100
-+ var residualPVs []*v1.PersistentVolume
-+ ginkgo.By(fmt.Sprintf("Creating and deleting PersistentVolumeClaims %d times", raceAttempts))
-+ test := testsuites.StorageClassTest{
-+ Name: "deletion race",
-+ Provisioner: "", // Use a native one based on current cloud provider
-+ ClaimSize: "1Gi",
-+ }
-+
-+ class := newStorageClass(test, ns, "race")
-+ class, err := c.StorageV1().StorageClasses().Create(context.TODO(), class, metav1.CreateOptions{})
-+ framework.ExpectNoError(err)
-+ defer deleteStorageClass(c, class.Name)
-+
-+ // To increase chance of detection, attempt multiple iterations
-+ for i := 0; i < raceAttempts; i++ {
-+ prefix := fmt.Sprintf("race-%d", i)
-+ claim := e2epv.MakePersistentVolumeClaim(e2epv.PersistentVolumeClaimConfig{
-+ NamePrefix: prefix,
-+ ClaimSize: test.ClaimSize,
-+ StorageClassName: &class.Name,
-+ VolumeMode: &test.VolumeMode,
-+ }, ns)
-+ tmpClaim, err := e2epv.CreatePVC(c, ns, claim)
-+ framework.ExpectNoError(err)
-+ framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, tmpClaim.Name, ns))
-+ }
-+
-+ ginkgo.By(fmt.Sprintf("Checking for residual PersistentVolumes associated with StorageClass %s", class.Name))
-+ residualPVs, err = waitForProvisionedVolumesDeleted(c, class.Name)
-+ // Cleanup the test resources before breaking
-+ defer deleteProvisionedVolumesAndDisks(c, residualPVs)
-+ framework.ExpectNoError(err, "PersistentVolumes were not deleted as expected. %d remain", len(residualPVs))
-+
-+ framework.Logf("0 PersistentVolumes remain.")
-+ })
-+
-+ ginkgo.It("deletion should be idempotent", func() {
-+ // This test ensures that deletion of a volume is idempotent.
-+ // It creates a PV with Retain policy, deletes underlying AWS / GCE
-+ // volume and changes the reclaim policy to Delete.
-+ // PV controller should delete the PV even though the underlying volume
-+ // is already deleted.
-+ e2eskipper.SkipUnlessProviderIs("gce", "gke", "aws")
-+ ginkgo.By("creating PD")
-+ diskName, err := e2epv.CreatePDWithRetry()
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("creating PV")
-+ pv := e2epv.MakePersistentVolume(e2epv.PersistentVolumeConfig{
-+ NamePrefix: "volume-idempotent-delete-",
-+ // Use Retain to keep the PV, the test will change it to Delete
-+ // when the time comes.
-+ ReclaimPolicy: v1.PersistentVolumeReclaimRetain,
-+ AccessModes: []v1.PersistentVolumeAccessMode{
-+ v1.ReadWriteOnce,
-+ },
-+ Capacity: "1Gi",
-+ // PV is bound to non-existing PVC, so it's reclaim policy is
-+ // executed immediately
-+ Prebind: &v1.PersistentVolumeClaim{
-+ ObjectMeta: metav1.ObjectMeta{
-+ Name: "dummy-claim-name",
-+ Namespace: ns,
-+ UID: types.UID("01234567890"),
-+ },
-+ },
-+ })
-+ switch framework.TestContext.Provider {
-+ case "aws":
-+ pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-+ AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
-+ VolumeID: diskName,
-+ },
-+ }
-+ case "gce", "gke":
-+ pv.Spec.PersistentVolumeSource = v1.PersistentVolumeSource{
-+ GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
-+ PDName: diskName,
-+ },
-+ }
-+ }
-+ pv, err = c.CoreV1().PersistentVolumes().Create(context.TODO(), pv, metav1.CreateOptions{})
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("waiting for the PV to get Released")
-+ err = e2epv.WaitForPersistentVolumePhase(v1.VolumeReleased, c, pv.Name, 2*time.Second, e2epv.PVReclaimingTimeout)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("deleting the PD")
-+ err = e2epv.DeletePVSource(&pv.Spec.PersistentVolumeSource)
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("changing the PV reclaim policy")
-+ pv, err = c.CoreV1().PersistentVolumes().Get(context.TODO(), pv.Name, metav1.GetOptions{})
-+ framework.ExpectNoError(err)
-+ pv.Spec.PersistentVolumeReclaimPolicy = v1.PersistentVolumeReclaimDelete
-+ pv, err = c.CoreV1().PersistentVolumes().Update(context.TODO(), pv, metav1.UpdateOptions{})
-+ framework.ExpectNoError(err)
-+
-+ ginkgo.By("waiting for the PV to get deleted")
-+ err = e2epv.WaitForPersistentVolumeDeleted(c, pv.Name, 5*time.Second, e2epv.PVDeletingTimeout)
-+ framework.ExpectNoError(err)
-+ })
-+ })
-+})
-diff --git a/test/e2e/upgrades/nvidia-gpu.go b/test/e2e/upgrades/nvidia-gpu.go
-index cf3b8c0cda3..30515197ef7 100644
---- a/test/e2e/upgrades/nvidia-gpu.go
-+++ b/test/e2e/upgrades/nvidia-gpu.go
-@@ -1,3 +1,5 @@
-+// +build !providerless
-+
- /*
- Copyright 2018 The Kubernetes Authors.
-
---
-2.26.2
-
diff --git a/third_party/go/patches/k8s-fix-paths.patch b/third_party/go/patches/k8s-fix-paths.patch
deleted file mode 100644
index ba39a43..0000000
--- a/third_party/go/patches/k8s-fix-paths.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From db9ab831cd17f9be540917a77bbb3e0551f4fb4f Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Mon, 25 Jan 2021 15:08:20 +0100
-Subject: [PATCH] Make DeviceManager socket relative to RootDir
-
----
- pkg/kubelet/cm/container_manager_linux.go | 2 +-
- pkg/kubelet/cm/devicemanager/manager.go | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go
-index 57110ed7745..15cf010074e 100644
---- a/pkg/kubelet/cm/container_manager_linux.go
-+++ b/pkg/kubelet/cm/container_manager_linux.go
-@@ -315,7 +315,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I
-
- klog.Infof("Creating device plugin manager: %t", devicePluginEnabled)
- if devicePluginEnabled {
-- cm.deviceManager, err = devicemanager.NewManagerImpl(numaNodeInfo, cm.topologyManager)
-+ cm.deviceManager, err = devicemanager.NewManagerImpl(numaNodeInfo, cm.topologyManager, nodeConfig.KubeletRootDir)
- cm.topologyManager.AddHintProvider(cm.deviceManager)
- } else {
- cm.deviceManager, err = devicemanager.NewManagerStub()
-diff --git a/pkg/kubelet/cm/devicemanager/manager.go b/pkg/kubelet/cm/devicemanager/manager.go
-index 5d1925f9458..bfff3c50fcc 100644
---- a/pkg/kubelet/cm/devicemanager/manager.go
-+++ b/pkg/kubelet/cm/devicemanager/manager.go
-@@ -124,8 +124,8 @@ func (s *sourcesReadyStub) AddSource(source string) {}
- func (s *sourcesReadyStub) AllReady() bool { return true }
-
- // NewManagerImpl creates a new manager.
--func NewManagerImpl(numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) {
-- return newManagerImpl(pluginapi.KubeletSocket, numaNodeInfo, topologyAffinityStore)
-+func NewManagerImpl(numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store, kubeletRootDir string) (*ManagerImpl, error) {
-+ return newManagerImpl(filepath.Join(kubeletRootDir, "device-plugins/kubelet.sock"), numaNodeInfo, topologyAffinityStore)
- }
-
- func newManagerImpl(socketPath string, numaNodeInfo cputopology.NUMANodeInfo, topologyAffinityStore topologymanager.Store) (*ManagerImpl, error) {
---
-2.25.1
-
diff --git a/third_party/go/patches/k8s-infra-bzl4-compat.patch b/third_party/go/patches/k8s-infra-bzl4-compat.patch
deleted file mode 100644
index 4be0fe8..0000000
--- a/third_party/go/patches/k8s-infra-bzl4-compat.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 6313aef65ed37aa971737058af391f5be1ae976c Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@nexantic.com>
-Date: Wed, 3 Feb 2021 18:11:03 +0100
-Subject: [PATCH] Don't use run_shell with list as cmd
-
-Going upstream at https://github.com/kubernetes/repo-infra/pull/225
----
- defs/go.bzl | 26 ++++++++++++++------------
- 1 file changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/defs/go.bzl b/defs/go.bzl
-index 21cffdd..f4617e1 100644
---- a/defs/go.bzl
-+++ b/defs/go.bzl
-@@ -63,16 +63,7 @@ def _go_genrule_impl(ctx):
-
- srcs = [src for srcs in ctx.attr.srcs for src in srcs.files.to_list()]
-
-- deps = depset(
-- gopath_files + srcs,
-- transitive =
-- # tools
-- [dep.files for dep in ctx.attr.tools] +
-- # go toolchain
-- [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
-- )
--
-- _, cmd, _ = ctx.resolve_command(
-+ inputs, cmd, input_manifests = ctx.resolve_command(
- command = ctx.attr.cmd,
- attribute = "cmd",
- expand_locations = True,
-@@ -83,6 +74,15 @@ def _go_genrule_impl(ctx):
- tools = ctx.attr.tools,
- )
-
-+ deps = depset(
-+ gopath_files + srcs + inputs,
-+ transitive =
-+ # tools
-+ [dep.files for dep in ctx.attr.tools] +
-+ # go toolchain
-+ [depset(go.sdk.libs + go.sdk.srcs + go.sdk.tools + [go.sdk.go])],
-+ )
-+
- env = dict()
- env.update(ctx.configuration.default_shell_env)
- env.update(go.env)
-@@ -92,11 +92,13 @@ def _go_genrule_impl(ctx):
- "GOROOT": paths.dirname(go.sdk.root_file.path),
- })
-
-- ctx.actions.run_shell(
-+ ctx.actions.run(
- inputs = deps,
- outputs = ctx.outputs.outs,
- env = env,
-- command = cmd,
-+ executable = cmd[0],
-+ arguments = cmd[1:],
-+ input_manifests = input_manifests,
- progress_message = "%s %s" % (ctx.attr.message, ctx),
- mnemonic = "GoGenrule",
- )
---
-2.25.1
-
diff --git a/third_party/go/patches/k8s-infra-fix-go116.patch b/third_party/go/patches/k8s-infra-fix-go116.patch
deleted file mode 100644
index bf35938..0000000
--- a/third_party/go/patches/k8s-infra-fix-go116.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 5cf776eb8f872f78cf7325c39fbfe1777f702407 Mon Sep 17 00:00:00 2001
-From: Mike Danese <mikedanese@google.com>
-Date: Fri, 26 Feb 2021 13:39:16 -0800
-Subject: [PATCH] fix go_genrule for 1.16
-
----
- defs/go.bzl | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/defs/go.bzl b/defs/go.bzl
-index f4617e1..8873253 100644
---- a/defs/go.bzl
-+++ b/defs/go.bzl
-@@ -90,6 +90,9 @@ def _go_genrule_impl(ctx):
- "PATH": ctx.configuration.host_path_separator.join(["/usr/local/bin", "/bin", "/usr/bin"]),
- "GOPATH": paths.dirname(gopath_placeholder.path),
- "GOROOT": paths.dirname(go.sdk.root_file.path),
-+ # hack to tie us over until we fix this to use modules or stop using
-+ # it.
-+ "GO111MODULE": "off",
- })
-
- ctx.actions.run(
diff --git a/third_party/go/patches/k8s-jose-semver-fix.patch b/third_party/go/patches/k8s-jose-semver-fix.patch
new file mode 100644
index 0000000..423485a
--- /dev/null
+++ b/third_party/go/patches/k8s-jose-semver-fix.patch
@@ -0,0 +1,34 @@
+From b0b42e86e834a1d02fe83f7be3663d19f6a1ee80 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Thu, 17 Mar 2022 16:56:29 +0100
+Subject: [PATCH] Fix for semver breakage in go-jose
+
+---
+ pkg/serviceaccount/claims.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pkg/serviceaccount/claims.go b/pkg/serviceaccount/claims.go
+index 1e1475c779f..06620f7a420 100644
+--- a/pkg/serviceaccount/claims.go
++++ b/pkg/serviceaccount/claims.go
+@@ -50,7 +50,7 @@ type kubernetes struct {
+ Svcacct ref `json:"serviceaccount,omitempty"`
+ Pod *ref `json:"pod,omitempty"`
+ Secret *ref `json:"secret,omitempty"`
+- WarnAfter jwt.NumericDate `json:"warnafter,omitempty"`
++ WarnAfter *jwt.NumericDate `json:"warnafter,omitempty"`
+ }
+
+ type ref struct {
+@@ -198,7 +198,7 @@ func (v *validator) Validate(ctx context.Context, _ string, public *jwt.Claims,
+
+ // Check special 'warnafter' field for projected service account token transition.
+ warnafter := private.Kubernetes.WarnAfter
+- if warnafter != 0 {
++ if warnafter != nil {
+ if nowTime.After(warnafter.Time()) {
+ secondsAfterWarn := nowTime.Unix() - warnafter.Time().Unix()
+ auditInfo := fmt.Sprintf("subject: %s, seconds after warning threshold: %d", public.Subject, secondsAfterWarn)
+--
+2.25.1
+
diff --git a/third_party/go/patches/k8s-kubernetes-build.patch b/third_party/go/patches/k8s-kubernetes-build.patch
deleted file mode 100644
index 7debfda..0000000
--- a/third_party/go/patches/k8s-kubernetes-build.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This patch updates BUILD files to reflect changes in Go sources. This only needs to be applied because Gazelle applies patches after BUILDfile generation.
-
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go io_k8s_kubernetes/cmd/kubelet/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kubelet/app/BUILD 15:12:22.682316924 +0200
-@@ -45,8 +45,6 @@
- "//pkg/capabilities:go_default_library",
- "//pkg/cloudprovider/providers:go_default_library",
- "//pkg/credentialprovider:go_default_library",
-- "//pkg/credentialprovider/aws:go_default_library",
-- "//pkg/credentialprovider/azure:go_default_library",
- "//pkg/credentialprovider/gcp:go_default_library",
- "//pkg/features:go_default_library",
- "//pkg/kubelet:go_default_library",
-@@ -78,25 +76,13 @@
- "//pkg/util/oom:go_default_library",
- "//pkg/util/rlimit:go_default_library",
- "//pkg/volume:go_default_library",
-- "//pkg/volume/cephfs:go_default_library",
- "//pkg/volume/configmap:go_default_library",
- "//pkg/volume/csi:go_default_library",
- "//pkg/volume/downwardapi:go_default_library",
- "//pkg/volume/emptydir:go_default_library",
-- "//pkg/volume/fc:go_default_library",
- "//pkg/volume/flexvolume:go_default_library",
-- "//pkg/volume/flocker:go_default_library",
-- "//pkg/volume/git_repo:go_default_library",
-- "//pkg/volume/glusterfs:go_default_library",
- "//pkg/volume/hostpath:go_default_library",
-- "//pkg/volume/iscsi:go_default_library",
- "//pkg/volume/local:go_default_library",
-- "//pkg/volume/nfs:go_default_library",
-- "//pkg/volume/portworx:go_default_library",
- "//pkg/volume/projected:go_default_library",
-- "//pkg/volume/quobyte:go_default_library",
-- "//pkg/volume/rbd:go_default_library",
-- "//pkg/volume/scaleio:go_default_library",
- "//pkg/volume/secret:go_default_library",
-- "//pkg/volume/storageos:go_default_library",
- "//pkg/volume/util/hostutil:go_default_library",
---- io_k8s_kubernetes.orig/cmd/kubelet/app/options/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kubelet/app/options/BUILD 15:12:22.682316924 +0200
-@@ -20,8 +20,6 @@
- importpath = "k8s.io/kubernetes/cmd/kubelet/app/options",
- deps = [
- "//pkg/apis/core:go_default_library",
-- "//pkg/credentialprovider/azure:go_default_library",
-- "//pkg/credentialprovider/gcp:go_default_library",
- "//pkg/features:go_default_library",
- "//pkg/kubelet/apis:go_default_library",
- "//pkg/kubelet/apis/config:go_default_library",
---- io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/pkg/kubelet/cadvisor/BUILD 15:12:22.682316924 +0200
-@@ -37,8 +37,6 @@
- "@com_github_google_cadvisor//container/systemd/install:go_default_library",
- "@com_github_google_cadvisor//fs:go_default_library",
- "@com_github_google_cadvisor//manager:go_default_library",
-- "@com_github_google_cadvisor//utils/cloudinfo/aws:go_default_library",
-- "@com_github_google_cadvisor//utils/cloudinfo/azure:go_default_library",
- "@com_github_google_cadvisor//utils/cloudinfo/gce:go_default_library",
- "@com_github_google_cadvisor//utils/sysfs:go_default_library",
- "@io_k8s_klog//:go_default_library",
-@@ -52,8 +50,6 @@
- "@com_github_google_cadvisor//container/systemd/install:go_default_library",
- "@com_github_google_cadvisor//fs:go_default_library",
- "@com_github_google_cadvisor//manager:go_default_library",
-- "@com_github_google_cadvisor//utils/cloudinfo/aws:go_default_library",
-- "@com_github_google_cadvisor//utils/cloudinfo/azure:go_default_library",
- "@com_github_google_cadvisor//utils/cloudinfo/gce:go_default_library",
- "@com_github_google_cadvisor//utils/sysfs:go_default_library",
- "@io_k8s_klog//:go_default_library",
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/BUILD 13:43:57.827669732 +0200
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/BUILD 15:12:22.682316924 +0200
-@@ -90,19 +90,9 @@
- "//pkg/volume:go_default_library",
- "//pkg/volume/csi:go_default_library",
- "//pkg/volume/csimigration:go_default_library",
-- "//pkg/volume/fc:go_default_library",
- "//pkg/volume/flexvolume:go_default_library",
-- "//pkg/volume/flocker:go_default_library",
-- "//pkg/volume/glusterfs:go_default_library",
- "//pkg/volume/hostpath:go_default_library",
-- "//pkg/volume/iscsi:go_default_library",
- "//pkg/volume/local:go_default_library",
-- "//pkg/volume/nfs:go_default_library",
-- "//pkg/volume/portworx:go_default_library",
-- "//pkg/volume/quobyte:go_default_library",
-- "//pkg/volume/rbd:go_default_library",
-- "//pkg/volume/scaleio:go_default_library",
-- "//pkg/volume/storageos:go_default_library",
- "//pkg/volume/util:go_default_library",
- "@com_github_spf13_cobra//:go_default_library",
- "@io_k8s_api//core/v1:go_default_library",
diff --git a/third_party/go/patches/k8s-kubernetes.patch b/third_party/go/patches/k8s-kubernetes.patch
deleted file mode 100644
index 0efaa37..0000000
--- a/third_party/go/patches/k8s-kubernetes.patch
+++ /dev/null
@@ -1,399 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-This fixes OpenAPI codegen for when included from the Monogon workspace. It basically undoes vendorification.
-
-diff -ur io_k8s_kubernetes.orig/build/code_generation.bzl io_k8s_kubernetes/build/code_generation.bzl
---- io_k8s_kubernetes.orig/build/code_generation.bzl 2021-01-26 12:10:52.593725692 +0100
-+++ io_k8s_kubernetes/build/code_generation.bzl 2021-01-26 12:11:04.571786562 +0100
-@@ -27,6 +27,12 @@
- ...
- )
- """
-+ if pkg.startswith('staging/src/k8s.io/'):
-+ parts = pkg.split('/', 4)
-+ project = parts[3]
-+ project = project.replace('-', '_')
-+ path = parts[4]
-+ return "@io_k8s_%s//%s:go_default_library" % (project, path)
- return "//%s:go_default_library" % pkg
-
- def go_pkg(pkg):
-@@ -42,6 +48,8 @@
- ...
- )
- """
-+ if pkg.startswith('staging/src/'):
-+ return pkg[len('staging/src/'):]
- for prefix in ["staging/src", "vendor"]:
- if pkg.startswith(prefix):
- return paths.relativize(pkg, prefix)
-@@ -49,8 +57,8 @@
-
- def openapi_deps():
- deps = [
-- "//vendor/github.com/go-openapi/spec:go_default_library",
-- "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library",
-+ "@com_github_go_openapi_spec//:go_default_library",
-+ "@io_k8s_kube_openapi//pkg/common:go_default_library",
- ]
- deps.extend([bazel_go_library(pkg) for pkg in tags_values_pkgs["openapi-gen"]["true"]])
- return deps
-@@ -76,7 +84,7 @@
- # the generator must run from the repo root inside the generated GOPATH.
- # All of bazel's $(location)s are relative to the original working directory, however.
- cmd = " ".join([
-- "$(location //vendor/k8s.io/kube-openapi/cmd/openapi-gen)",
-+ "$(location @io_k8s_kube_openapi//cmd/openapi-gen)",
- "--v 1",
- "--logtostderr",
- "--go-header-file $(location //" + openapi_vendor_prefix + "hack/boilerplate:boilerplate.generatego.txt)",
-@@ -88,6 +96,6 @@
- "&& rm tmp_api_violations.report",
- ]),
- go_deps = openapi_deps(),
-- tools = ["//vendor/k8s.io/kube-openapi/cmd/openapi-gen"],
-+ tools = ["@io_k8s_kube_openapi//cmd/openapi-gen"],
- message = "GenOpenAPI",
- )
-diff -ur io_k8s_kubernetes.orig/cmd/kube-apiserver/app/options/globalflags.go io_k8s_kubernetes/cmd/kube-apiserver/app/options/globalflags.go
---- io_k8s_kubernetes.orig/cmd/kube-apiserver/app/options/globalflags.go 2021-01-26 12:10:52.605725751 +0100
-+++ io_k8s_kubernetes/cmd/kube-apiserver/app/options/globalflags.go 2021-01-26 12:11:04.572786567 +0100
-@@ -32,9 +32,6 @@
- func AddCustomGlobalFlags(fs *pflag.FlagSet) {
- // Lookup flags in global flag set and re-register the values with our flagset.
-
-- // Adds flags from k8s.io/kubernetes/pkg/cloudprovider/providers.
-- registerLegacyGlobalFlags(fs)
--
- // Adds flags from k8s.io/apiserver/pkg/admission.
- globalflag.Register(fs, "default-not-ready-toleration-seconds")
- globalflag.Register(fs, "default-unreachable-toleration-seconds")
-diff -ur io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/controllermanager.go io_k8s_kubernetes/cmd/kube-controller-manager/app/controllermanager.go
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/controllermanager.go 2021-01-26 12:10:52.605725751 +0100
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/controllermanager.go 2021-01-26 12:11:04.572786567 +0100
-@@ -140,7 +140,6 @@
- namedFlagSets := s.Flags(KnownControllers(), ControllersDisabledByDefault.List())
- verflag.AddFlags(namedFlagSets.FlagSet("global"))
- globalflag.AddGlobalFlags(namedFlagSets.FlagSet("global"), cmd.Name())
-- registerLegacyGlobalFlags(namedFlagSets)
- for _, f := range namedFlagSets.FlagSets {
- fs.AddFlagSet(f)
- }
-Only in io_k8s_kubernetes/cmd/kube-controller-manager/app: controllermanager.go.orig
-diff -ur io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/plugins.go io_k8s_kubernetes/cmd/kube-controller-manager/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kube-controller-manager/app/plugins.go 2021-01-26 12:10:52.606725757 +0100
-+++ io_k8s_kubernetes/cmd/kube-controller-manager/app/plugins.go 2021-01-26 12:11:04.572786567 +0100
-@@ -32,19 +32,9 @@
- // Volume plugins
- "k8s.io/kubernetes/pkg/volume"
- "k8s.io/kubernetes/pkg/volume/csi"
-- "k8s.io/kubernetes/pkg/volume/fc"
- "k8s.io/kubernetes/pkg/volume/flexvolume"
-- "k8s.io/kubernetes/pkg/volume/flocker"
-- "k8s.io/kubernetes/pkg/volume/glusterfs"
- "k8s.io/kubernetes/pkg/volume/hostpath"
-- "k8s.io/kubernetes/pkg/volume/iscsi"
- "k8s.io/kubernetes/pkg/volume/local"
-- "k8s.io/kubernetes/pkg/volume/nfs"
-- "k8s.io/kubernetes/pkg/volume/portworx"
-- "k8s.io/kubernetes/pkg/volume/quobyte"
-- "k8s.io/kubernetes/pkg/volume/rbd"
-- "k8s.io/kubernetes/pkg/volume/scaleio"
-- "k8s.io/kubernetes/pkg/volume/storageos"
- volumeutil "k8s.io/kubernetes/pkg/volume/util"
-
- utilfeature "k8s.io/apiserver/pkg/util/feature"
-@@ -58,18 +48,7 @@
- // The list of plugins is manually compiled. This code and the plugin
- // initialization code for kubelet really, really need a through refactor.
- func ProbeAttachableVolumePlugins() ([]volume.VolumePlugin, error) {
-- var err error
- allPlugins := []volume.VolumePlugin{}
-- allPlugins, err = appendAttachableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
-- if err != nil {
-- return allPlugins, err
-- }
-- allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
- return allPlugins, nil
- }
-@@ -83,18 +62,7 @@
-
- // ProbeExpandableVolumePlugins returns volume plugins which are expandable
- func ProbeExpandableVolumePlugins(config persistentvolumeconfig.VolumeConfiguration) ([]volume.VolumePlugin, error) {
-- var err error
- allPlugins := []volume.VolumePlugin{}
-- allPlugins, err = appendExpandableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
-- if err != nil {
-- return allPlugins, err
-- }
-- allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
- return allPlugins, nil
- }
-
-@@ -124,30 +92,7 @@
- }
- allPlugins = append(allPlugins, hostpath.ProbeVolumePlugins(hostPathConfig)...)
-
-- nfsConfig := volume.VolumeConfig{
-- RecyclerMinimumTimeout: int(config.PersistentVolumeRecyclerConfiguration.MinimumTimeoutNFS),
-- RecyclerTimeoutIncrement: int(config.PersistentVolumeRecyclerConfiguration.IncrementTimeoutNFS),
-- RecyclerPodTemplate: volume.NewPersistentVolumeRecyclerPodTemplate(),
-- }
-- if err := AttemptToLoadRecycler(config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, &nfsConfig); err != nil {
-- klog.Fatalf("Could not create NFS recycler pod from file %s: %+v", config.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS, err)
-- }
-- allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(nfsConfig)...)
-- allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
-- // add rbd provisioner
-- allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, quobyte.ProbeVolumePlugins()...)
-- var err error
-- allPlugins, err = appendExpandableLegacyProviderVolumes(allPlugins, utilfeature.DefaultFeatureGate)
-- if err != nil {
-- return allPlugins, err
-- }
--
-- allPlugins = append(allPlugins, flocker.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, local.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
-
- if utilfeature.DefaultFeatureGate.Enabled(features.CSIInlineVolume) {
- allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
-diff -ur io_k8s_kubernetes.orig/cmd/kubectl/BUILD io_k8s_kubernetes/cmd/kubectl/BUILD
---- io_k8s_kubernetes.orig/cmd/kubectl/BUILD 2021-01-26 12:10:52.616725807 +0100
-+++ io_k8s_kubernetes/cmd/kubectl/BUILD 2021-01-26 12:11:04.572786567 +0100
-@@ -3,7 +3,7 @@
- "go_binary",
- "go_library",
- )
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
-
- go_binary(
- name = "kubectl",
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/options/globalflags.go io_k8s_kubernetes/cmd/kubelet/app/options/globalflags.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/options/globalflags.go 2021-01-26 12:10:52.617725812 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/app/options/globalflags.go 2021-01-26 12:12:03.724087183 +0100
-@@ -28,10 +28,6 @@
- "k8s.io/component-base/logs"
- "k8s.io/component-base/version/verflag"
- "k8s.io/klog/v2"
--
-- // ensure libs have a chance to globally register their flags
-- _ "k8s.io/kubernetes/pkg/credentialprovider/azure"
-- _ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
- )
-
- // AddGlobalFlags explicitly registers flags that libraries (glog, verflag, etc.) register
-@@ -80,12 +76,8 @@
-
- // addCredentialProviderFlags adds flags from k8s.io/kubernetes/pkg/credentialprovider
- func addCredentialProviderFlags(fs *pflag.FlagSet) {
-- // lookup flags in global flag set and re-register the values with our flagset
-- global := pflag.CommandLine
- local := pflag.NewFlagSet(os.Args[0], pflag.ExitOnError)
-
-- addLegacyCloudProviderCredentialProviderFlags(global, local)
--
- fs.AddFlagSet(local)
- }
-
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go io_k8s_kubernetes/cmd/kubelet/app/plugins.go
---- io_k8s_kubernetes.orig/cmd/kubelet/app/plugins.go 2021-01-26 12:10:52.617725812 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/app/plugins.go 2021-01-26 12:11:04.573786572 +0100
-@@ -19,8 +19,6 @@
- // This file exists to force the desired plugin implementations to be linked.
- import (
- // Credential providers
-- _ "k8s.io/kubernetes/pkg/credentialprovider/aws"
-- _ "k8s.io/kubernetes/pkg/credentialprovider/azure"
- _ "k8s.io/kubernetes/pkg/credentialprovider/gcp"
-
- "k8s.io/component-base/featuregate"
-@@ -28,27 +26,15 @@
-
- // Volume plugins
- "k8s.io/kubernetes/pkg/volume"
-- "k8s.io/kubernetes/pkg/volume/cephfs"
- "k8s.io/kubernetes/pkg/volume/configmap"
- "k8s.io/kubernetes/pkg/volume/csi"
- "k8s.io/kubernetes/pkg/volume/downwardapi"
- "k8s.io/kubernetes/pkg/volume/emptydir"
-- "k8s.io/kubernetes/pkg/volume/fc"
- "k8s.io/kubernetes/pkg/volume/flexvolume"
-- "k8s.io/kubernetes/pkg/volume/flocker"
-- "k8s.io/kubernetes/pkg/volume/git_repo"
-- "k8s.io/kubernetes/pkg/volume/glusterfs"
- "k8s.io/kubernetes/pkg/volume/hostpath"
-- "k8s.io/kubernetes/pkg/volume/iscsi"
- "k8s.io/kubernetes/pkg/volume/local"
-- "k8s.io/kubernetes/pkg/volume/nfs"
-- "k8s.io/kubernetes/pkg/volume/portworx"
- "k8s.io/kubernetes/pkg/volume/projected"
-- "k8s.io/kubernetes/pkg/volume/quobyte"
-- "k8s.io/kubernetes/pkg/volume/rbd"
-- "k8s.io/kubernetes/pkg/volume/scaleio"
- "k8s.io/kubernetes/pkg/volume/secret"
-- "k8s.io/kubernetes/pkg/volume/storageos"
-
- // Cloud providers
- _ "k8s.io/kubernetes/pkg/cloudprovider/providers"
-@@ -64,30 +50,13 @@
- //
- // Kubelet does not currently need to configure volume plugins.
- // If/when it does, see kube-controller-manager/app/plugins.go for example of using volume.VolumeConfig
-- var err error
-- allPlugins, err = appendLegacyProviderVolumes(allPlugins, featureGate)
-- if err != nil {
-- return allPlugins, err
-- }
- allPlugins = append(allPlugins, emptydir.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, git_repo.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, hostpath.ProbeVolumePlugins(volume.VolumeConfig{})...)
-- allPlugins = append(allPlugins, nfs.ProbeVolumePlugins(volume.VolumeConfig{})...)
- allPlugins = append(allPlugins, secret.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, glusterfs.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, quobyte.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, cephfs.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, downwardapi.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, flocker.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, configmap.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, projected.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, portworx.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, local.ProbeVolumePlugins()...)
-- allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
- allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
- return allPlugins, nil
- }
-diff -ur io_k8s_kubernetes.orig/cmd/kubelet/BUILD io_k8s_kubernetes/cmd/kubelet/BUILD
---- io_k8s_kubernetes.orig/cmd/kubelet/BUILD 2021-01-26 12:10:52.616725807 +0100
-+++ io_k8s_kubernetes/cmd/kubelet/BUILD 2021-01-26 12:11:04.573786572 +0100
-@@ -5,7 +5,7 @@
- go_binary = "go_binary_conditional_pure",
- )
- load("@io_bazel_rules_go//go:def.bzl", "go_library")
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
-
- go_binary(
- name = "kubelet",
-diff -ur io_k8s_kubernetes.orig/pkg/controller/nodeipam/ipam/cidr_allocator.go io_k8s_kubernetes/pkg/controller/nodeipam/ipam/cidr_allocator.go
---- io_k8s_kubernetes.orig/pkg/controller/nodeipam/ipam/cidr_allocator.go 2021-01-26 12:10:52.664726051 +0100
-+++ io_k8s_kubernetes/pkg/controller/nodeipam/ipam/cidr_allocator.go 2021-01-26 12:11:04.573786572 +0100
-@@ -112,8 +112,6 @@
- switch allocatorType {
- case RangeAllocatorType:
- return NewCIDRRangeAllocator(kubeClient, nodeInformer, allocatorParams, nodeList)
-- case CloudAllocatorType:
-- return NewCloudCIDRAllocator(kubeClient, cloud, nodeInformer)
- default:
- return nil, fmt.Errorf("invalid CIDR allocator type: %v", allocatorType)
- }
-Only in io_k8s_kubernetes/pkg/controller/nodeipam/ipam: cidr_allocator.go.orig
-diff -ur io_k8s_kubernetes.orig/pkg/controller/nodeipam/nolegacyprovider.go io_k8s_kubernetes/pkg/controller/nodeipam/nolegacyprovider.go
---- io_k8s_kubernetes.orig/pkg/controller/nodeipam/nolegacyprovider.go 2021-01-26 12:10:52.665726056 +0100
-+++ io_k8s_kubernetes/pkg/controller/nodeipam/nolegacyprovider.go 2021-01-26 12:11:04.573786572 +0100
-@@ -1,5 +1,3 @@
--// +build providerless
--
- /*
- Copyright 2019 The Kubernetes Authors.
-
-diff -ur io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/cadvisor_linux.go io_k8s_kubernetes/pkg/kubelet/cadvisor/cadvisor_linux.go
---- io_k8s_kubernetes.orig/pkg/kubelet/cadvisor/cadvisor_linux.go 2021-01-26 12:10:52.676726112 +0100
-+++ io_k8s_kubernetes/pkg/kubelet/cadvisor/cadvisor_linux.go 2021-01-26 12:11:04.573786572 +0100
-@@ -33,8 +33,6 @@
-
- // Register cloud info providers.
- // TODO(#68522): Remove this in 1.20+ once the cAdvisor endpoints are removed.
-- _ "github.com/google/cadvisor/utils/cloudinfo/aws"
-- _ "github.com/google/cadvisor/utils/cloudinfo/azure"
- _ "github.com/google/cadvisor/utils/cloudinfo/gce"
-
- "github.com/google/cadvisor/cache/memory"
-Only in io_k8s_kubernetes/pkg/kubelet/cadvisor: cadvisor_linux.go.orig
-diff -ur io_k8s_kubernetes.orig/test/e2e/BUILD io_k8s_kubernetes/test/e2e/BUILD
---- io_k8s_kubernetes.orig/test/e2e/BUILD 2021-01-26 12:10:52.736726417 +0100
-+++ io_k8s_kubernetes/test/e2e/BUILD 2021-01-26 12:11:04.573786572 +0100
-@@ -5,7 +5,7 @@
- go_test = "go_test_conditional_pure",
- )
- load("@io_bazel_rules_go//go:def.bzl", "go_library")
--load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")
-+load("@//third_party/go:kubernetes_version_def.bzl", "version_x_defs")
-
- go_test(
- name = "go_default_test",
-diff -ur io_k8s_kubernetes.orig/test/e2e/generated/BUILD io_k8s_kubernetes/test/e2e/generated/BUILD
---- io_k8s_kubernetes.orig/test/e2e/generated/BUILD 2021-01-26 12:10:52.743726453 +0100
-+++ io_k8s_kubernetes/test/e2e/generated/BUILD 2021-01-26 12:11:04.573786572 +0100
-@@ -4,23 +4,24 @@
- "@io_bazel_rules_go//go:def.bzl",
- "go_library",
- )
--load("//build:bindata.bzl", "go_bindata")
-+load("@dev_source_monogon//build/bindata:bindata.bzl", "bindata")
-
- go_library(
- name = "go_default_library",
- srcs = [
-- "bindata.go",
- "gobindata_util.go",
- "main.go",
- ],
-+ embed = [
-+ ":bindata",
-+ ],
- importpath = "k8s.io/kubernetes/test/e2e/generated",
- deps = [
- "@io_k8s_klog_v2//:go_default_library",
- ],
- )
-
--# IMPORTANT: if you make any changes here, you must also update hack/generate-bindata.sh.
--go_bindata(
-+bindata(
- name = "bindata",
- srcs = [
- "//test/conformance/testdata:all-srcs",
-@@ -29,9 +30,7 @@
- "//test/fixtures:all-srcs",
- "//test/images:all-srcs",
- ],
-- outs = ["bindata.go"],
-- compress = True,
-- include_metadata = False,
-+ package = "generated",
- )
-
- filegroup(
diff --git a/third_party/go/patches/k8s-native-metrics.patch b/third_party/go/patches/k8s-native-metrics.patch
index 859ee74..2edc60d 100644
--- a/third_party/go/patches/k8s-native-metrics.patch
+++ b/third_party/go/patches/k8s-native-metrics.patch
@@ -1,59 +1,15 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From b16e57cc52a437465bbd12c24fb05fe5790afe1d Mon Sep 17 00:00:00 2001
+From e3b5a31bff00c89fc95f85212bf0943d46692616 Mon Sep 17 00:00:00 2001
From: Lorenz Brun <lorenz@brun.one>
Date: Tue, 17 Mar 2020 21:41:08 +0100
-Subject: [PATCH 2/3] Add a native volume metrics implementation
+Subject: [PATCH 2/2] Add a native volume metrics implementation
---
- pkg/volume/BUILD | 3 +
pkg/volume/metrics_native.go | 101 +++++++++++++++++++++++++++++
pkg/volume/metrics_native_test.go | 102 ++++++++++++++++++++++++++++++
- 3 files changed, 206 insertions(+)
+ 2 files changed, 203 insertions(+)
create mode 100644 pkg/volume/metrics_native.go
create mode 100644 pkg/volume/metrics_native_test.go
-diff --git a/pkg/volume/BUILD b/pkg/volume/BUILD
-index 720b13406dc..b6e4b7e6d6f 100644
---- a/pkg/volume/BUILD
-+++ b/pkg/volume/BUILD
-@@ -7,6 +7,7 @@ go_library(
- "metrics_cached.go",
- "metrics_du.go",
- "metrics_errors.go",
-+ "metrics_native.go",
- "metrics_nil.go",
- "metrics_statfs.go",
- "noop_expandable_plugin.go",
-@@ -35,6 +36,7 @@ go_library(
- "@io_k8s_client_go//tools/cache:go_default_library",
- "@io_k8s_client_go//tools/record:go_default_library",
- "@io_k8s_cloud_provider//:go_default_library",
-+ "@org_golang_x_sys//unix:go_default_library",
- "@io_k8s_klog_v2//:go_default_library",
- "@io_k8s_utils//exec:go_default_library",
- "@io_k8s_utils//mount:go_default_library",
-@@ -55,6 +57,7 @@ go_test(
- name = "go_default_test",
- srcs = [
- "metrics_du_test.go",
-+ "metrics_native_test.go",
- "metrics_nil_test.go",
- "metrics_statfs_test.go",
- "plugins_test.go",
diff --git a/pkg/volume/metrics_native.go b/pkg/volume/metrics_native.go
new file mode 100644
index 00000000000..3934b946f2e
diff --git a/third_party/go/patches/k8s-native-mounter.patch b/third_party/go/patches/k8s-native-mounter.patch
index 2f754b6..a5ced4d 100644
--- a/third_party/go/patches/k8s-native-mounter.patch
+++ b/third_party/go/patches/k8s-native-mounter.patch
@@ -1,69 +1,33 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 8335005ed1983ca5ac036af15dd04b8717898c35 Mon Sep 17 00:00:00 2001
+From 6c346b4fbfd800af47ffa2ec24456f9f58a1b0f2 Mon Sep 17 00:00:00 2001
From: Lorenz Brun <lorenz@brun.one>
Date: Mon, 16 Mar 2020 22:13:08 +0100
-Subject: [PATCH 1/3] Provide native mounter implementation for Linux
+Subject: [PATCH 1/7] Provide native mounter implementation for Linux
---
- BUILD.bazel | 2 +
- mount/mount_linux.go | 141 ++++++++++++++++++++++-
- 2 files changed, 139 insertions(+), 4 deletions(-)
+ mount_linux.go | 148 +++++++++++++++++-
+ 1 file changed, 144 insertions(+), 4 deletions(-)
-diff --git a/mount/BUILD b/mount/BUILD.bazel
-index bef3ec2cf55..6f997103dac 100644
---- a/mount/BUILD.bazel
-+++ b/mount/BUILD.bazel
-@@ -21,6 +21,7 @@ go_library(
- "//exec:go_default_library",
- ] + select({
- "@io_bazel_rules_go//go/platform:android": [
-+ "@org_golang_x_sys//unix:go_default_library",
- "//io:go_default_library",
- ],
- "@io_bazel_rules_go//go/platform:darwin": [
-@@ -36,6 +37,7 @@ go_library(
- "//io:go_default_library",
- ],
- "@io_bazel_rules_go//go/platform:linux": [
-+ "@org_golang_x_sys//unix:go_default_library",
- "//io:go_default_library",
- ],
- "@io_bazel_rules_go//go/platform:nacl": [
-diff --git a/mount/mount_linux.go b/mount/mount_linux.go
-index 41f69efe3f0..01182684653 100644
---- a/mount/mount_linux.go
-+++ b/mount/mount_linux.go
-@@ -20,6 +20,7 @@ package mount
-
+diff --git a/mount_linux.go b/mount_linux.go
+index aaa592161d4..517bf0b2541 100644
+--- a/mount_linux.go
++++ b/mount_linux.go
+@@ -22,6 +22,7 @@ package mount
import (
+ "context"
"fmt"
+ "io/ioutil"
"os"
"os/exec"
"path/filepath"
-@@ -27,6 +28,7 @@ import (
- "strings"
+@@ -30,6 +31,7 @@ import (
"syscall"
+ "time"
+ "golang.org/x/sys/unix"
"k8s.io/klog/v2"
utilexec "k8s.io/utils/exec"
utilio "k8s.io/utils/io"
-@@ -49,8 +51,10 @@ const (
+@@ -54,8 +56,10 @@ const (
// for the linux platform. This implementation assumes that the
// kubelet is running in the host's root mount namespace.
type Mounter struct {
@@ -75,8 +39,8 @@
+ nativeSupportedFstypes map[string]struct{}
}
- // New returns a mount.Interface for the current system.
-@@ -58,8 +62,10 @@ type Mounter struct {
+ var _ MounterForceUnmounter = &Mounter{}
+@@ -65,11 +69,36 @@ var _ MounterForceUnmounter = &Mounter{}
// mounterPath allows using an alternative to `/bin/mount` for mounting.
func New(mounterPath string) Interface {
return &Mounter{
@@ -89,38 +53,55 @@
}
}
-@@ -78,6 +84,29 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio
++func (mounter *Mounter) mountNative(source string, target string, fstype string, options []string, sensitiveOptions []string) error {
++ flags, pflags, fsoptions := parseMountOptions(options)
++ if len(pflags) > 0 {
++ return fmt.Errorf("the native mounter is active and does not support mount propagation at the moment")
++ }
++
++ if !mounter.nativeSupportsFstype(fstype) && flags&unix.MS_BIND == 0 {
++ return fmt.Errorf("the native mounter is active and cannot mount filesystems of type \"%v\"", fstype)
++ }
++
++ if flags&unix.MS_BIND != 0 && flags & ^uintptr(unix.MS_BIND) != 0 {
++ if err := unix.Mount(source, target, "", unix.MS_BIND, ""); err != nil {
++ return fmt.Errorf("bind pre-mount failed: %w", err)
++ }
++ flags |= unix.MS_REMOUNT
++ }
++
++ if err := unix.Mount(source, target, fstype, flags, fsoptions); err != nil {
++ return fmt.Errorf("failed to mount filesystem: %w", err)
++ }
++ return nil
++}
++
+ // Mount mounts source to target as fstype with given options. 'source' and 'fstype' must
+ // be an empty string in case it's not required, e.g. for remount, or for auto filesystem
+ // type, where kernel handles fstype for you. The mount 'options' is a list of options,
+@@ -85,6 +114,10 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio
// method should be used by callers that pass sensitive material (like
// passwords) as mount options.
func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error {
+ if !mounter.withLinuxUtils {
-+ flags, pflags, fsoptions := parseMountOptions(options)
-+ if len(pflags) > 0 {
-+ return fmt.Errorf("the native mounter is active and does not support mount propagation at the moment")
-+ }
-+
-+ if !mounter.nativeSupportsFstype(fstype) && flags&unix.MS_BIND == 0 {
-+ return fmt.Errorf("the native mounter is active and cannot mount filesystems of type \"%v\"", fstype)
-+ }
-+
-+ if flags&unix.MS_BIND != 0 && flags & ^uintptr(unix.MS_BIND) != 0 {
-+ if err := unix.Mount(source, target, "", unix.MS_BIND, ""); err != nil {
-+ return fmt.Errorf("bind pre-mount failed: %w", err)
-+ }
-+ flags |= unix.MS_REMOUNT
-+ }
-+
-+ if err := unix.Mount(source, target, fstype, flags, fsoptions); err != nil {
-+ return fmt.Errorf("failed to mount filesystem: %w", err)
-+ }
-+ return nil
++ return mounter.mountNative(source, target, fstype, options, sensitiveOptions)
+ }
+
// Path to mounter binary if containerized mounter is needed. Otherwise, it is set to empty.
// All Linux distros are expected to be shipped with a mount utility that a support bind mounts.
mounterPath := ""
-@@ -102,6 +131,80 @@ func (mounter *Mounter) MountSensitive(source string, target string, fstype stri
- return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions)
+@@ -116,6 +149,9 @@ func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target strin
+
+ // MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags.
+ func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error {
++ if !mounter.withLinuxUtils {
++ return mounter.mountNative(source, target, fstype, options, sensitiveOptions)
++ }
+ mounterPath := ""
+ bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions)
+ if bind {
+@@ -138,6 +174,80 @@ func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string
+ return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, mountFlags, false)
}
+// nativeSupportsFstype checks if the native mounter can mount the given fstype
@@ -198,9 +179,9 @@
+}
+
// doMount runs the mount command. mounterPath is the path to mounter binary if containerized mounter is used.
- // sensitiveOptions is an extention of options except they will not be logged (because they may contain sensitive material)
- func (mounter *Mounter) doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string, sensitiveOptions []string) error {
-@@ -179,6 +282,30 @@ func detectSystemd() bool {
+ // sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material)
+ // systemdMountRequired is an extension of option to decide whether uses systemd mount.
+@@ -223,6 +333,30 @@ func detectSystemd() bool {
return true
}
@@ -231,7 +212,7 @@
// MakeMountArgs makes the arguments to the mount(8) command.
// options MUST not contain sensitive material (like passwords).
func MakeMountArgs(source, target, fstype string, options []string) (mountArgs []string) {
-@@ -236,6 +363,12 @@ func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []
+@@ -292,6 +426,12 @@ func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []
// Unmount unmounts the target.
func (mounter *Mounter) Unmount(target string) error {
klog.V(4).Infof("Unmounting %s", target)
diff --git a/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch b/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch
deleted file mode 100644
index d8377b5..0000000
--- a/third_party/go/patches/k8s-revert-seccomp-runtime-default.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From 2adf4ec9796839014a708761b8fb6ad815306def Mon Sep 17 00:00:00 2001
-From: Serge Bazanski <serge@nexantic.com>
-Date: Tue, 26 Jan 2021 11:37:01 +0100
-Subject: [PATCH] Manually revert
- https://github.com/kubernetes/kubernetes/pull/90949
-
-This reverts PR 90494 which breaks runc within Metropolis. See T916.
-
----
- pkg/kubelet/kuberuntime/kuberuntime_sandbox.go | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-index 0978044f753..c46436f2a41 100644
---- a/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-+++ b/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
-@@ -148,11 +148,8 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *v1.Pod) (
- lc := &runtimeapi.LinuxPodSandboxConfig{
- CgroupParent: cgroupParent,
- SecurityContext: &runtimeapi.LinuxSandboxSecurityContext{
-- Privileged: kubecontainer.HasPrivilegedContainer(pod),
--
-- // Forcing sandbox to run as `runtime/default` allow users to
-- // use least privileged seccomp profiles at pod level. Issue #84623
-- SeccompProfilePath: v1.SeccompProfileRuntimeDefault,
-+ Privileged: kubecontainer.HasPrivilegedContainer(pod),
-+ SeccompProfilePath: m.getSeccompProfile(pod.Annotations, "", pod.Spec.SecurityContext, nil),
- },
- }
-
---
-2.26.2
-
diff --git a/third_party/go/patches/k8s-use-native.patch b/third_party/go/patches/k8s-use-native.patch
deleted file mode 100644
index 61001da..0000000
--- a/third_party/go/patches/k8s-use-native.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-From ee4a7df588550ee5cbc3b8419e1ce185a8abb302 Mon Sep 17 00:00:00 2001
-From: Lorenz Brun <lorenz@brun.one>
-Date: Tue, 17 Mar 2020 22:07:24 +0100
-Subject: [PATCH 3/3] Use StatFS and Native volume metrics instead of du
-
----
- pkg/kubelet/stats/log_metrics_provider.go | 2 +-
- pkg/volume/configmap/configmap.go | 4 ++--
- pkg/volume/downwardapi/downwardapi.go | 4 ++--
- pkg/volume/emptydir/empty_dir.go | 4 ++--
- pkg/volume/projected/projected.go | 4 ++--
- pkg/volume/secret/secret.go | 4 ++--
- 6 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/pkg/kubelet/stats/log_metrics_provider.go b/pkg/kubelet/stats/log_metrics_provider.go
-index 4a53eef74a3..ff87fec5ec3 100644
---- a/pkg/kubelet/stats/log_metrics_provider.go
-+++ b/pkg/kubelet/stats/log_metrics_provider.go
-@@ -33,5 +33,5 @@ func NewLogMetricsService() LogMetricsService {
- }
-
- func (l logMetrics) createLogMetricsProvider(path string) volume.MetricsProvider {
-- return volume.NewMetricsDu(path)
-+ return volume.NewMetricsNative(path)
- }
-diff --git a/pkg/volume/configmap/configmap.go b/pkg/volume/configmap/configmap.go
-index 0e74dd0a1d8..430d739aab7 100644
---- a/pkg/volume/configmap/configmap.go
-+++ b/pkg/volume/configmap/configmap.go
-@@ -97,7 +97,7 @@ func (plugin *configMapPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
- pod.UID,
- plugin,
- plugin.host.GetMounter(plugin.GetPluginName()),
-- volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+ volume.NewCachedMetrics(volume.NewMetricsNative(getPath(pod.UID, spec.Name(), plugin.host))),
- },
- source: *spec.Volume.ConfigMap,
- pod: *pod,
-@@ -113,7 +113,7 @@ func (plugin *configMapPlugin) NewUnmounter(volName string, podUID types.UID) (v
- podUID,
- plugin,
- plugin.host.GetMounter(plugin.GetPluginName()),
-- volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+ volume.NewCachedMetrics(volume.NewMetricsNative(getPath(podUID, volName, plugin.host))),
- },
- }, nil
- }
-diff --git a/pkg/volume/downwardapi/downwardapi.go b/pkg/volume/downwardapi/downwardapi.go
-index a1779c0dac9..f0a0f99b318 100644
---- a/pkg/volume/downwardapi/downwardapi.go
-+++ b/pkg/volume/downwardapi/downwardapi.go
-@@ -99,7 +99,7 @@ func (plugin *downwardAPIPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts
- pod: pod,
- podUID: pod.UID,
- plugin: plugin,
-- MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+ MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- }
- return &downwardAPIVolumeMounter{
- downwardAPIVolume: v,
-@@ -114,7 +114,7 @@ func (plugin *downwardAPIPlugin) NewUnmounter(volName string, podUID types.UID)
- volName: volName,
- podUID: podUID,
- plugin: plugin,
-- MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+ MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- },
- }, nil
- }
-diff --git a/pkg/volume/emptydir/empty_dir.go b/pkg/volume/emptydir/empty_dir.go
-index 0a25d2b684c..5dc83b90c5b 100644
---- a/pkg/volume/emptydir/empty_dir.go
-+++ b/pkg/volume/emptydir/empty_dir.go
-@@ -121,7 +121,7 @@ func (plugin *emptyDirPlugin) newMounterInternal(spec *volume.Spec, pod *v1.Pod,
- mounter: mounter,
- mountDetector: mountDetector,
- plugin: plugin,
-- MetricsProvider: volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host)),
-+ MetricsProvider: volume.NewMetricsNative(getPath(pod.UID, spec.Name(), plugin.host)),
- }, nil
- }
-
-@@ -138,7 +138,7 @@ func (plugin *emptyDirPlugin) newUnmounterInternal(volName string, podUID types.
- mounter: mounter,
- mountDetector: mountDetector,
- plugin: plugin,
-- MetricsProvider: volume.NewMetricsDu(getPath(podUID, volName, plugin.host)),
-+ MetricsProvider: volume.NewMetricsNative(getPath(podUID, volName, plugin.host)),
- }
- return ed, nil
- }
-diff --git a/pkg/volume/projected/projected.go b/pkg/volume/projected/projected.go
-index 0f65a97610c..890f9c1c7bc 100644
---- a/pkg/volume/projected/projected.go
-+++ b/pkg/volume/projected/projected.go
-@@ -114,7 +114,7 @@ func (plugin *projectedPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts v
- sources: spec.Volume.Projected.Sources,
- podUID: pod.UID,
- plugin: plugin,
-- MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+ MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- },
- source: *spec.Volume.Projected,
- pod: pod,
-@@ -128,7 +128,7 @@ func (plugin *projectedPlugin) NewUnmounter(volName string, podUID types.UID) (v
- volName: volName,
- podUID: podUID,
- plugin: plugin,
-- MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+ MetricsProvider: volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- },
- }, nil
- }
-diff --git a/pkg/volume/secret/secret.go b/pkg/volume/secret/secret.go
-index a195c59ddd8..4c290cb8f24 100644
---- a/pkg/volume/secret/secret.go
-+++ b/pkg/volume/secret/secret.go
-@@ -100,7 +100,7 @@ func (plugin *secretPlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, opts volu
- pod.UID,
- plugin,
- plugin.host.GetMounter(plugin.GetPluginName()),
-- volume.NewCachedMetrics(volume.NewMetricsDu(getPath(pod.UID, spec.Name(), plugin.host))),
-+ volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host))),
- },
- source: *spec.Volume.Secret,
- pod: *pod,
-@@ -116,7 +116,7 @@ func (plugin *secretPlugin) NewUnmounter(volName string, podUID types.UID) (volu
- podUID,
- plugin,
- plugin.host.GetMounter(plugin.GetPluginName()),
-- volume.NewCachedMetrics(volume.NewMetricsDu(getPath(podUID, volName, plugin.host))),
-+ volume.NewCachedMetrics(volume.NewMetricsStatFS(getPath(podUID, volName, plugin.host))),
- },
- }, nil
- }
---
-2.25.1
-
diff --git a/third_party/go/patches/kubelet-fix-path.patch b/third_party/go/patches/kubelet-fix-path.patch
new file mode 100644
index 0000000..069dece
--- /dev/null
+++ b/third_party/go/patches/kubelet-fix-path.patch
@@ -0,0 +1,25 @@
+From 500aace7a0bf5904c740e14ad18cd073df080d37 Mon Sep 17 00:00:00 2001
+From: Lorenz Brun <lorenz@monogon.tech>
+Date: Wed, 16 Mar 2022 18:05:54 +0100
+Subject: [PATCH] Change device plugin path
+
+---
+ pkg/apis/deviceplugin/v1beta1/constants.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pkg/apis/deviceplugin/v1beta1/constants.go b/pkg/apis/deviceplugin/v1beta1/constants.go
+index 3bed214..30f06fe 100644
+--- a/pkg/apis/deviceplugin/v1beta1/constants.go
++++ b/pkg/apis/deviceplugin/v1beta1/constants.go
+@@ -27,7 +27,7 @@ const (
+ // DevicePluginPath is the folder the Device Plugin is expecting sockets to be on
+ // Only privileged pods have access to this path
+ // Note: Placeholder until we find a "standard path"
+- DevicePluginPath = "/var/lib/kubelet/device-plugins/"
++ DevicePluginPath = "/data/kubernetes/kubelet/device-plugins/"
+ // KubeletSocket is the path of the Kubelet registry socket
+ KubeletSocket = DevicePluginPath + "kubelet.sock"
+
+--
+2.25.1
+
diff --git a/third_party/go/patches/libseccomp.patch b/third_party/go/patches/libseccomp.patch
new file mode 100644
index 0000000..0778f33
--- /dev/null
+++ b/third_party/go/patches/libseccomp.patch
@@ -0,0 +1,12 @@
+--- a/BUILD.bazel 2022-03-21 17:04:56.160536936 +0100
++++ b/BUILD.bazel 2022-03-21 17:05:52.439616250 +0100
+@@ -6,6 +6,9 @@
+ "seccomp.go",
+ "seccomp_internal.go",
+ ],
++ cdeps = [
++ "@seccomp",
++ ],
+ cgo = True,
+ importpath = "github.com/seccomp/libseccomp-golang",
+ visibility = ["//visibility:public"],
diff --git a/third_party/go/patches/nfproxy.patch b/third_party/go/patches/nfproxy.patch
deleted file mode 100644
index 307d3d4..0000000
--- a/third_party/go/patches/nfproxy.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Copyright 2020 The Monogon Project 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.
-
-
-Fix nfproxy compatibility with our version of Kubernetes/utilproxy
---- com_github_sbezverk_nfproxy.orig/pkg/proxy/proxy_service.go 2020-07-16 14:24:06.901176302 +0200
-+++ com_github_sbezverk_nfproxy/pkg/proxy/proxy_service.go 2020-07-16 14:08:34.118927035 +0200
-@@ -22,7 +22,6 @@
- utilnftables "github.com/google/nftables"
- "github.com/sbezverk/nfproxy/pkg/nftables"
- v1 "k8s.io/api/core/v1"
-- "k8s.io/apimachinery/pkg/types"
- "k8s.io/klog"
- utilproxy "k8s.io/kubernetes/pkg/proxy/util"
- utilnet "k8s.io/utils/net"
-@@ -44,8 +43,7 @@
- stickySeconds := int(*svc.Spec.SessionAffinityConfig.ClientIP.TimeoutSeconds)
- klog.V(5).Infof("Service %s/%s has SessionAffinity set for %d seconds", svc.Namespace, svc.Name, stickySeconds)
- }
-- svcName := types.NamespacedName{Namespace: svc.Namespace, Name: svc.Name}
-- if utilproxy.ShouldSkipService(svcName, svc) {
-+ if utilproxy.ShouldSkipService(svc) {
- return
- }
- for i := range svc.Spec.Ports {
diff --git a/third_party/go/patches/runc-add-cdeps.patch b/third_party/go/patches/runc-add-cdeps.patch
new file mode 100644
index 0000000..fd15c15
--- /dev/null
+++ b/third_party/go/patches/runc-add-cdeps.patch
@@ -0,0 +1,10 @@
+--- a/libcontainer/seccomp/patchbpf/BUILD.bazel 2022-03-24 20:12:34.325421847 +0100
++++ b/libcontainer/seccomp/patchbpf/BUILD.bazel 2022-03-24 20:12:59.777602881 +0100
+@@ -7,6 +7,7 @@
+ "enosys_unsupported.go",
+ ],
+ cgo = True,
++ cdeps = ["@seccomp"],
+ importpath = "github.com/opencontainers/runc/libcontainer/seccomp/patchbpf",
+ visibility = ["//visibility:public"],
+ deps = select({
diff --git a/third_party/go/repositories.bzl b/third_party/go/repositories.bzl
index e6b69e1..ea1a43e 100644
--- a/third_party/go/repositories.bzl
+++ b/third_party/go/repositories.bzl
@@ -2,2883 +2,5127 @@
def go_repositories():
go_repository(
- name = "com_google_cloud_go",
- importpath = "cloud.google.com/go",
- version = "v0.51.0",
- sum = "h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "ag_pack_amqp",
+ importpath = "pack.ag/amqp",
+ sum = "h1:cuNDWLUTbKRtEZwhB0WQBXf9pGbm87pUBXQhvcFxBWg=",
+ version = "v0.11.2",
)
go_repository(
- name = "com_github_azure_go_ansiterm",
- importpath = "github.com/Azure/go-ansiterm",
- version = "v0.0.0-20170929234023-d6e3b3328b78",
- sum = "h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "cc_mvdan_interfacer",
+ importpath = "mvdan.cc/interfacer",
+ sum = "h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I=",
+ version = "v0.0.0-20180901003855-c20040233aed",
)
go_repository(
- name = "com_github_burntsushi_toml",
- importpath = "github.com/BurntSushi/toml",
- version = "v0.3.1",
- sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "cc_mvdan_lint",
+ importpath = "mvdan.cc/lint",
+ sum = "h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo=",
+ version = "v0.0.0-20170908181259-adc824a0674b",
+ )
+
+ go_repository(
+ name = "co_honnef_go_tools",
+ importpath = "honnef.co/go/tools",
+ sum = "h1:MNh1AVMyVX23VUHE2O27jm6lNj3vjO5DexS4A1xvnzk=",
+ version = "v0.2.2",
)
go_repository(
- name = "com_github_makenowjust_heredoc",
- importpath = "github.com/MakeNowJust/heredoc",
- version = "v0.0.0-20170808103936-bb23615498cd",
- sum = "h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_4d63_gochecknoinits",
+ importpath = "4d63.com/gochecknoinits",
+ sum = "h1:bf5qocEKjrY58JO2GwywfLsb1199lIVs7qHkiplwHy0=",
+ version = "v0.0.0-20200108094044-eb73b47b9fc4",
)
go_repository(
- name = "com_github_masterminds_semver",
- importpath = "github.com/Masterminds/semver",
- version = "v1.4.2",
- sum = "h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_adalogics_go_fuzz_headers",
+ importpath = "github.com/AdaLogics/go-fuzz-headers",
+ sum = "h1:V8krnnfGj4pV65YLUm3C0/8bl7V5Nry2Pwvy3ru/wLc=",
+ version = "v0.0.0-20210715213245-6c3934b029d8",
)
- go_repository(
- name = "com_github_masterminds_sprig",
- importpath = "github.com/Masterminds/sprig",
- version = "v2.15.0+incompatible",
- sum = "h1:0gSxPGWS9PAr7U2NsQ2YQg6juRDINkUyuvbb4b2Xm8w=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_microsoft_go_winio",
- importpath = "github.com/Microsoft/go-winio",
- version = "v0.4.14",
- sum = "h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_microsoft_hcsshim",
- importpath = "github.com/Microsoft/hcsshim",
- version = "v0.8.10",
- sum = "h1:k5wTrpnVU2/xv8ZuzGkbXVd3js5zJ8RnumPo5RxiIxU=",
- build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_nytimes_gziphandler",
- importpath = "github.com/NYTimes/gziphandler",
- version = "v0.0.0-20170623195520-56545f4a5d46",
- sum = "h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_puerkitobio_purell",
- importpath = "github.com/PuerkitoBio/purell",
- version = "v1.1.1",
- sum = "h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_puerkitobio_urlesc",
- importpath = "github.com/PuerkitoBio/urlesc",
- version = "v0.0.0-20170810143723-de5bf2ad4578",
- sum = "h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
+
go_repository(
name = "com_github_adrg_xdg",
importpath = "github.com/adrg/xdg",
- version = "v0.4.0",
sum = "h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.4.0",
)
go_repository(
+ name = "com_github_afex_hystrix_go",
+ importpath = "github.com/afex/hystrix-go",
+ sum = "h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw=",
+ version = "v0.0.0-20180502004556-fa1af6a1f4f5",
+ )
+ go_repository(
+ name = "com_github_agnivade_levenshtein",
+ importpath = "github.com/agnivade/levenshtein",
+ sum = "h1:3oJU7J3FGFmyhn8KHjmVaZCN5hxTr7GxgRue+sxIXdQ=",
+ version = "v1.0.1",
+ )
+
+ go_repository(
+ name = "com_github_ajstarks_svgo",
+ importpath = "github.com/ajstarks/svgo",
+ sum = "h1:wVe6/Ea46ZMeNkQjjBW6xcqyQA/j5e0D6GytH95g0gQ=",
+ version = "v0.0.0-20180226025133-644b8db467af",
+ )
+ go_repository(
+ name = "com_github_alcortesm_tgz",
+ importpath = "github.com/alcortesm/tgz",
+ sum = "h1:uSoVVbwJiQipAclBbw+8quDsfcvFjOpI5iCf4p/cqCs=",
+ version = "v0.0.0-20161220082320-9c5fe88206d7",
+ )
+ go_repository(
+ name = "com_github_alecthomas_kingpin",
+ importpath = "github.com/alecthomas/kingpin",
+ sum = "h1:5svnBTFgJjZvGKyYBtMB0+m5wvrbUHiqye8wRJMlnYI=",
+ version = "v2.2.6+incompatible",
+ )
+ go_repository(
+ name = "com_github_alecthomas_template",
+ importpath = "github.com/alecthomas/template",
+ sum = "h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=",
+ version = "v0.0.0-20190718012654-fb15b899a751",
+ )
+ go_repository(
+ name = "com_github_alecthomas_units",
+ importpath = "github.com/alecthomas/units",
+ sum = "h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=",
+ version = "v0.0.0-20190924025748-f65c72e2690d",
+ )
+
+ go_repository(
name = "com_github_alexflint_go_filemutex",
importpath = "github.com/alexflint/go-filemutex",
- version = "v0.0.0-20171022225611-72bdc8eae2ae",
- sum = "h1:AMzIhMUqU3jMrZiTuW0zkYeKlKDAFD+DG20IoO421/Y=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:IAWuUuRYL2hETx5b8vCgwnD+xSdlsTQY6s2JjBsqLdg=",
+ version = "v1.1.0",
)
go_repository(
+ name = "com_github_andreyvit_diff",
+ importpath = "github.com/andreyvit/diff",
+ sum = "h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=",
+ version = "v0.0.0-20170406064948-c7f18ee00883",
+ )
+
+ go_repository(
+ name = "com_github_anmitsu_go_shlex",
+ importpath = "github.com/anmitsu/go-shlex",
+ sum = "h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA=",
+ version = "v0.0.0-20161002113705-648efa622239",
+ )
+ go_repository(
+ name = "com_github_antihax_optional",
+ importpath = "github.com/antihax/optional",
+ sum = "h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_antlr_antlr4_runtime_go_antlr",
+ importpath = "github.com/antlr/antlr4/runtime/Go/antlr",
+ sum = "h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=",
+ version = "v0.0.0-20210826220005-b48c857c3a0e",
+ )
+
+ go_repository(
name = "com_github_aokoli_goutils",
importpath = "github.com/aokoli/goutils",
- version = "v1.0.1",
sum = "h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.1",
)
go_repository(
+ name = "com_github_apache_beam",
+ importpath = "github.com/apache/beam",
+ sum = "h1:8MOeoZwBgORfaJjrZxpkqJWEIzwupRGLqUqG0/mvEtQ=",
+ version = "v2.32.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_apache_thrift",
+ importpath = "github.com/apache/thrift",
+ sum = "h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI=",
+ version = "v0.13.0",
+ )
+ go_repository(
+ name = "com_github_apex_log",
+ importpath = "github.com/apex/log",
+ sum = "h1:3Zk+boorIQAAGBrHn0JUtAau4ihMamT4WdnfdnXM1zQ=",
+ version = "v1.1.4",
+ )
+ go_repository(
+ name = "com_github_apex_logs",
+ importpath = "github.com/apex/logs",
+ sum = "h1:KmEBVwfDUOTFcBO8cfkJYwdQ5487UZSN+GteOGPmiro=",
+ version = "v0.0.4",
+ )
+ go_repository(
+ name = "com_github_aphistic_golf",
+ importpath = "github.com/aphistic/golf",
+ sum = "h1:2KLQMJ8msqoPHIPDufkxVcoTtcmE5+1sL9950m4R9Pk=",
+ version = "v0.0.0-20180712155816-02c07f170c5a",
+ )
+ go_repository(
+ name = "com_github_aphistic_sweet",
+ importpath = "github.com/aphistic/sweet",
+ sum = "h1:I4z+fAUqvKfvZV/CHi5dV0QuwbmIvYYFDjG0Ss5QpAs=",
+ version = "v0.2.0",
+ )
+ go_repository(
+ name = "com_github_apparentlymart_go_cidr",
+ importpath = "github.com/apparentlymart/go-cidr",
+ sum = "h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
name = "com_github_armon_circbuf",
importpath = "github.com/armon/circbuf",
- version = "v0.0.0-20150827004946-bbbad097214e",
sum = "h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20150827004946-bbbad097214e",
)
go_repository(
+ name = "com_github_armon_consul_api",
+ importpath = "github.com/armon/consul-api",
+ sum = "h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA=",
+ version = "v0.0.0-20180202201655-eb2c6b5be1b6",
+ )
+ go_repository(
+ name = "com_github_armon_go_metrics",
+ importpath = "github.com/armon/go-metrics",
+ sum = "h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I=",
+ version = "v0.0.0-20180917152333-f0300d1749da",
+ )
+ go_repository(
+ name = "com_github_armon_go_radix",
+ importpath = "github.com/armon/go-radix",
+ sum = "h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to=",
+ version = "v0.0.0-20180808171621-7fddfc383310",
+ )
+ go_repository(
+ name = "com_github_armon_go_socks5",
+ importpath = "github.com/armon/go-socks5",
+ sum = "h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=",
+ version = "v0.0.0-20160902184237-e75332964ef5",
+ )
+ go_repository(
+ name = "com_github_aryann_difflib",
+ importpath = "github.com/aryann/difflib",
+ sum = "h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw=",
+ version = "v0.0.0-20170710044230-e206f873d14a",
+ )
+
+ go_repository(
name = "com_github_asaskevich_govalidator",
importpath = "github.com/asaskevich/govalidator",
- version = "v0.0.0-20190424111038-f61b66f89f4a",
sum = "h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20190424111038-f61b66f89f4a",
)
go_repository(
+ name = "com_github_auth0_go_jwt_middleware",
+ importpath = "github.com/auth0/go-jwt-middleware",
+ sum = "h1:/fsQ4vRr4zod1wKReUH+0A3ySRjGiT9G34kypO/EKwI=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_aws_aws_lambda_go",
+ importpath = "github.com/aws/aws-lambda-go",
+ sum = "h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY=",
+ version = "v1.13.3",
+ )
+ go_repository(
+ name = "com_github_aws_aws_sdk_go",
+ importpath = "github.com/aws/aws-sdk-go",
+ sum = "h1:wOdx6+reSDpUBFEuJDA6edCrojzy8rOtMzhS2rD9+7M=",
+ version = "v1.43.12",
+ )
+ go_repository(
+ name = "com_github_aws_aws_sdk_go_v2",
+ importpath = "github.com/aws/aws-sdk-go-v2",
+ sum = "h1:qZ+woO4SamnH/eEbjM2IDLhRNwIwND/RQyVlBLp3Jqg=",
+ version = "v0.18.0",
+ )
+ go_repository(
+ name = "com_github_aybabtme_rgbterm",
+ importpath = "github.com/aybabtme/rgbterm",
+ sum = "h1:WWB576BN5zNSZc/M9d/10pqEx5VHNhaQ/yOVAkmj5Yo=",
+ version = "v0.0.0-20170906152045-cc83f3b3ce59",
+ )
+ go_repository(
+ name = "com_github_azure_azure_amqp_common_go_v2",
+ importpath = "github.com/Azure/azure-amqp-common-go/v2",
+ sum = "h1:+QbFgmWCnPzdaRMfsI0Yb6GrRdBj5jVL8N3EXuEUcBQ=",
+ version = "v2.1.0",
+ )
+ go_repository(
+ name = "com_github_azure_azure_pipeline_go",
+ importpath = "github.com/Azure/azure-pipeline-go",
+ sum = "h1:OLBdZJ3yvOn2MezlWvbrBMTEUQC72zAftRZOMdj5HYo=",
+ version = "v0.2.1",
+ )
+ go_repository(
+ name = "com_github_azure_azure_sdk_for_go",
+ importpath = "github.com/Azure/azure-sdk-for-go",
+ sum = "h1:FKtAafvCGabH4hzycX4uGq/mSTKN+zaeRTUdnJB5Yag=",
+ version = "v62.1.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_azure_azure_service_bus_go",
+ importpath = "github.com/Azure/azure-service-bus-go",
+ sum = "h1:G1qBLQvHCFDv9pcpgwgFkspzvnGknJRR0PYJ9ytY/JA=",
+ version = "v0.9.1",
+ )
+ go_repository(
+ name = "com_github_azure_azure_storage_blob_go",
+ importpath = "github.com/Azure/azure-storage-blob-go",
+ sum = "h1:53qhf0Oxa0nOjgbDeeYPUeyiNmafAFEY95rZLK0Tj6o=",
+ version = "v0.8.0",
+ )
+
+ go_repository(
+ name = "com_github_azure_go_ansiterm",
+ importpath = "github.com/Azure/go-ansiterm",
+ sum = "h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=",
+ version = "v0.0.0-20210617225240-d185dfc1b5a1",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest",
+ importpath = "github.com/Azure/go-autorest",
+ sum = "h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=",
+ version = "v14.2.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest",
+ importpath = "github.com/Azure/go-autorest/autorest",
+ sum = "h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE=",
+ version = "v0.11.24",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_adal",
+ importpath = "github.com/Azure/go-autorest/autorest/adal",
+ sum = "h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ=",
+ version = "v0.9.18",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_azure_auth",
+ importpath = "github.com/Azure/go-autorest/autorest/azure/auth",
+ sum = "h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA=",
+ version = "v0.5.11",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_azure_cli",
+ importpath = "github.com/Azure/go-autorest/autorest/azure/cli",
+ sum = "h1:0W/yGmFdTIT77fvdlGZ0LMISoLHFJ7Tx4U0yeB+uFs4=",
+ version = "v0.4.5",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_date",
+ importpath = "github.com/Azure/go-autorest/autorest/date",
+ sum = "h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=",
+ version = "v0.3.0",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_mocks",
+ importpath = "github.com/Azure/go-autorest/autorest/mocks",
+ sum = "h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk=",
+ version = "v0.4.1",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_to",
+ importpath = "github.com/Azure/go-autorest/autorest/to",
+ sum = "h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=",
+ version = "v0.4.0",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_autorest_validation",
+ importpath = "github.com/Azure/go-autorest/autorest/validation",
+ sum = "h1:ISSNzGUh+ZSzizJWOWzs8bwpXIePbGLW4z/AmUFGH5A=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_logger",
+ importpath = "github.com/Azure/go-autorest/logger",
+ sum = "h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=",
+ version = "v0.2.1",
+ )
+ go_repository(
+ name = "com_github_azure_go_autorest_tracing",
+ importpath = "github.com/Azure/go-autorest/tracing",
+ sum = "h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=",
+ version = "v0.6.0",
+ )
+ go_repository(
+ name = "com_github_bazelbuild_bazel_gazelle",
+ importpath = "github.com/bazelbuild/bazel-gazelle",
+ sum = "h1:gPaI2C0hRAhNT4w3bdSCift3nFjq0j07I4bmSDeneA4=",
+ version = "v0.24.0",
+ )
+ go_repository(
+ name = "com_github_bazelbuild_buildtools",
+ importpath = "github.com/bazelbuild/buildtools",
+ sum = "h1:VMFMISXa1RypQNG0j4KVCbsUcrxFudkY/IvWzEJCyO8=",
+ version = "v0.0.0-20211007154642-8dd79e56e98e",
+ )
+ go_repository(
+ name = "com_github_bazelbuild_rules_go",
+ importpath = "github.com/bazelbuild/rules_go",
+ sum = "h1:kX4jVcstqrsRqKPJSn2mq2o+TI21edRzEJSrEOMQtr0=",
+ version = "v0.30.0",
+ )
+ go_repository(
+ name = "com_github_benbjohnson_clock",
+ importpath = "github.com/benbjohnson/clock",
+ sum = "h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
name = "com_github_beorn7_perks",
importpath = "github.com/beorn7/perks",
- version = "v1.0.1",
sum = "h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.1",
)
go_repository(
name = "com_github_bgentry_speakeasy",
importpath = "github.com/bgentry/speakeasy",
- version = "v0.1.0",
sum = "h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.1.0",
)
go_repository(
+ name = "com_github_bifurcation_mint",
+ importpath = "github.com/bifurcation/mint",
+ sum = "h1:fUjoj2bT6dG8LoEe+uNsKk8J+sLkDbQkJnB6Z1F02Bc=",
+ version = "v0.0.0-20180715133206-93c51c6ce115",
+ )
+
+ go_repository(
+ name = "com_github_bitly_go_simplejson",
+ importpath = "github.com/bitly/go-simplejson",
+ sum = "h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y=",
+ version = "v0.5.0",
+ )
+ go_repository(
+ name = "com_github_bits_and_blooms_bitset",
+ importpath = "github.com/bits-and-blooms/bitset",
+ sum = "h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_bketelsen_crypt",
+ importpath = "github.com/bketelsen/crypt",
+ sum = "h1:w/jqZtC9YD4DS/Vp9GhWfWcCpuAL58oTnLoI8vE9YHU=",
+ version = "v0.0.4",
+ )
+ go_repository(
+ name = "com_github_blakesmith_ar",
+ importpath = "github.com/blakesmith/ar",
+ sum = "h1:m935MPodAbYS46DG4pJSv7WO+VECIWUQ7OJYSoTrMh4=",
+ version = "v0.0.0-20190502131153-809d4375e1fb",
+ )
+
+ go_repository(
name = "com_github_blang_semver",
importpath = "github.com/blang/semver",
- version = "v3.5.0+incompatible",
- sum = "h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=",
+ version = "v3.5.1+incompatible",
)
go_repository(
+ name = "com_github_bmatcuk_doublestar",
+ importpath = "github.com/bmatcuk/doublestar",
+ sum = "h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0=",
+ version = "v1.3.4",
+ )
+ go_repository(
+ name = "com_github_bmizerany_assert",
+ importpath = "github.com/bmizerany/assert",
+ sum = "h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY=",
+ version = "v0.0.0-20160611221934-b7ed37b82869",
+ )
+ go_repository(
+ name = "com_github_boltdb_bolt",
+ importpath = "github.com/boltdb/bolt",
+ sum = "h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=",
+ version = "v1.3.1",
+ )
+
+ go_repository(
+ name = "com_github_bshuster_repo_logrus_logstash_hook",
+ importpath = "github.com/bshuster-repo/logrus-logstash-hook",
+ sum = "h1:pgAtgj+A31JBVtEHu2uHuEx0n+2ukqUJnS2vVe5pQNA=",
+ version = "v0.4.1",
+ )
+ go_repository(
+ name = "com_github_buger_jsonparser",
+ importpath = "github.com/buger/jsonparser",
+ sum = "h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=",
+ version = "v1.1.1",
+ )
+ go_repository(
+ name = "com_github_bugsnag_bugsnag_go",
+ importpath = "github.com/bugsnag/bugsnag-go",
+ sum = "h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng=",
+ version = "v0.0.0-20141110184014-b1d153021fcd",
+ )
+ go_repository(
+ name = "com_github_bugsnag_osext",
+ importpath = "github.com/bugsnag/osext",
+ sum = "h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ=",
+ version = "v0.0.0-20130617224835-0dd3f918b21b",
+ )
+ go_repository(
+ name = "com_github_bugsnag_panicwrap",
+ importpath = "github.com/bugsnag/panicwrap",
+ sum = "h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o=",
+ version = "v0.0.0-20151223152923-e2c28503fcd0",
+ )
+
+ go_repository(
+ name = "com_github_burntsushi_toml",
+ importpath = "github.com/BurntSushi/toml",
+ sum = "h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=",
+ version = "v0.4.1",
+ )
+ go_repository(
+ name = "com_github_burntsushi_xgb",
+ importpath = "github.com/BurntSushi/xgb",
+ sum = "h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc=",
+ version = "v0.0.0-20160522181843-27f122750802",
+ )
+ go_repository(
+ name = "com_github_caarlos0_ctrlc",
+ importpath = "github.com/caarlos0/ctrlc",
+ sum = "h1:2DtF8GSIcajgffDFJzyG15vO+1PuBWOMUdFut7NnXhw=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_caddyserver_caddy",
importpath = "github.com/caddyserver/caddy",
- version = "v1.0.5",
- sum = "h1:5B1Hs0UF2x2tggr2X9jL2qOZtDXbIWQb9YLbmlxHSuM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w=",
+ version = "v1.0.3",
)
go_repository(
+ name = "com_github_campoy_unique",
+ importpath = "github.com/campoy/unique",
+ sum = "h1:V9a67dfYqPLAvzk5hMQOXYJlZ4SLIXgyKIE+ZiHzgGQ=",
+ version = "v0.0.0-20180121183637-88950e537e7e",
+ )
+ go_repository(
+ name = "com_github_casbin_casbin_v2",
+ importpath = "github.com/casbin/casbin/v2",
+ sum = "h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g=",
+ version = "v2.1.2",
+ )
+ go_repository(
+ name = "com_github_cavaliercoder_go_cpio",
+ importpath = "github.com/cavaliercoder/go-cpio",
+ sum = "h1:hHg27A0RSSp2Om9lubZpiMgVbvn39bsUmW9U5h0twqc=",
+ version = "v0.0.0-20180626203310-925f9528c45e",
+ )
+
+ go_repository(
name = "com_github_cavaliergopher_cpio",
importpath = "github.com/cavaliergopher/cpio",
- version = "v1.0.0",
- sum = "h1:r03k5NVg5kuFMbtRnldtwsm/8mt8qmHg/QBl7y/PUiE=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:KQFSeKmZhv0cr+kawA3a0xTQCU4QxXF1vhU7P7av2KM=",
+ version = "v1.0.1",
)
go_repository(
name = "com_github_cenkalti_backoff",
importpath = "github.com/cenkalti/backoff",
- version = "v1.1.1-0.20190506075156-2146c9339422",
- sum = "h1:8eZxmY1yvxGHzdzTEhI09npjMVGzNAdrqzruTX6jcK4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=",
+ version = "v2.2.1+incompatible",
)
go_repository(
name = "com_github_cenkalti_backoff_v4",
importpath = "github.com/cenkalti/backoff/v4",
- version = "v4.0.2",
- sum = "h1:JIufpQLbh4DkbQoii76ItQIUFzevQSqOLZca4eamEDs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo=",
+ version = "v4.1.2",
)
go_repository(
+ name = "com_github_census_instrumentation_opencensus_proto",
+ importpath = "github.com/census-instrumentation/opencensus-proto",
+ sum = "h1:t/LhUZLVitR1Ow2YOnduCsavhwFUklBMoGVYUCqmCqk=",
+ version = "v0.3.0",
+ )
+ go_repository(
+ name = "com_github_certifi_gocertifi",
+ importpath = "github.com/certifi/gocertifi",
+ sum = "h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=",
+ version = "v0.0.0-20200922220541-2c3bb06c6054",
+ )
+
+ go_repository(
+ name = "com_github_cespare_xxhash",
+ importpath = "github.com/cespare/xxhash",
+ sum = "h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
name = "com_github_cespare_xxhash_v2",
importpath = "github.com/cespare/xxhash/v2",
- version = "v2.1.1",
- sum = "h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=",
+ version = "v2.1.2",
)
go_repository(
name = "com_github_chai2010_gettext_go",
importpath = "github.com/chai2010/gettext-go",
- version = "v0.0.0-20160711120539-c6fed771bfd5",
sum = "h1:7aWHqerlJ41y6FOsEUvknqgXnGmJyJSbjhAWq5pO4F8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20160711120539-c6fed771bfd5",
)
+
go_repository(
name = "com_github_checkpoint_restore_go_criu_v4",
importpath = "github.com/checkpoint-restore/go-criu/v4",
- version = "v4.1.0",
sum = "h1:WW2B2uxx9KWF6bGlHqhm8Okiafwwx7Y2kcpn8lCpjgo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v4.1.0",
)
go_repository(
+ name = "com_github_checkpoint_restore_go_criu_v5",
+ importpath = "github.com/checkpoint-restore/go-criu/v5",
+ sum = "h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8=",
+ version = "v5.3.0",
+ )
+ go_repository(
+ name = "com_github_cheekybits_genny",
+ importpath = "github.com/cheekybits/genny",
+ sum = "h1:a1zrFsLFac2xoM6zG1u72DWJwZG3ayttYLfmLbxVETk=",
+ version = "v0.0.0-20170328200008-9127e812e1e9",
+ )
+
+ go_repository(
+ name = "com_github_chzyer_logex",
+ importpath = "github.com/chzyer/logex",
+ sum = "h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=",
+ version = "v1.1.10",
+ )
+ go_repository(
+ name = "com_github_chzyer_readline",
+ importpath = "github.com/chzyer/readline",
+ sum = "h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=",
+ version = "v0.0.0-20180603132655-2972be24d48e",
+ )
+ go_repository(
+ name = "com_github_chzyer_test",
+ importpath = "github.com/chzyer/test",
+ sum = "h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=",
+ version = "v0.0.0-20180213035817-a1ea475d72b1",
+ )
+
+ go_repository(
name = "com_github_cilium_ebpf",
importpath = "github.com/cilium/ebpf",
- version = "v0.0.0-20200702112145-1c8d4c9ef775",
- sum = "h1:cHzBGGVew0ezFsq2grfy2RsB8hO/eNyBgOLHBCqfR1U=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k=",
+ version = "v0.7.0",
)
go_repository(
+ name = "com_github_clbanning_x2j",
+ importpath = "github.com/clbanning/x2j",
+ sum = "h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo=",
+ version = "v0.0.0-20191024224557-825249438eec",
+ )
+ go_repository(
+ name = "com_github_client9_misspell",
+ importpath = "github.com/client9/misspell",
+ sum = "h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=",
+ version = "v0.3.4",
+ )
+ go_repository(
+ name = "com_github_clusterhq_flocker_go",
+ importpath = "github.com/clusterhq/flocker-go",
+ sum = "h1:eIHD9GNM3Hp7kcRW5mvcz7WTR3ETeoYYKwpgA04kaXE=",
+ version = "v0.0.0-20160920122132-2b8b7259d313",
+ )
+ go_repository(
+ name = "com_github_cncf_udpa_go",
+ importpath = "github.com/cncf/udpa/go",
+ sum = "h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI=",
+ version = "v0.0.0-20210930031921-04548b0d99d4",
+ )
+ go_repository(
+ name = "com_github_cncf_xds_go",
+ importpath = "github.com/cncf/xds/go",
+ sum = "h1:zH8ljVhhq7yC0MIeUL/IviMtY8hx2mK8cN9wEYb8ggw=",
+ version = "v0.0.0-20211011173535-cb28da3451f1",
+ )
+ go_repository(
+ name = "com_github_cockroachdb_datadriven",
+ importpath = "github.com/cockroachdb/datadriven",
+ sum = "h1:xD/lrqdvwsc+O2bjSSi3YqY73Ke3LAiSCx49aCesA0E=",
+ version = "v0.0.0-20200714090401-bf6692d28da5",
+ )
+ go_repository(
+ name = "com_github_cockroachdb_errors",
+ importpath = "github.com/cockroachdb/errors",
+ sum = "h1:Lap807SXTH5tri2TivECb/4abUkMZC9zRoLarvcKDqs=",
+ version = "v1.2.4",
+ )
+ go_repository(
+ name = "com_github_cockroachdb_logtags",
+ importpath = "github.com/cockroachdb/logtags",
+ sum = "h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=",
+ version = "v0.0.0-20190617123548-eb05cc24525f",
+ )
+ go_repository(
+ name = "com_github_codahale_hdrhistogram",
+ importpath = "github.com/codahale/hdrhistogram",
+ sum = "h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w=",
+ version = "v0.0.0-20161010025455-3a0bb77429bd",
+ )
+ go_repository(
+ name = "com_github_codegangsta_negroni",
+ importpath = "github.com/codegangsta/negroni",
+ sum = "h1:+aYywywx4bnKXWvoWtRfJ91vC59NbEhEY03sZjQhbVY=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_container_storage_interface_spec",
importpath = "github.com/container-storage-interface/spec",
- version = "v1.2.0",
- sum = "h1:bD9KIVgaVKKkQ/UbVUY9kCaH/CJbhNxe0eeB4JeJV2s=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:lvKxe3uLgqQeVQcrnL2CPQKISoKjTJxojEs9cBk+HXo=",
+ version = "v1.5.0",
)
go_repository(
+ name = "com_github_containerd_aufs",
+ importpath = "github.com/containerd/aufs",
+ sum = "h1:2oeJiwX5HstO7shSrPZjrohJZLzK36wvpdmzDRkL/LY=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_containerd_btrfs",
importpath = "github.com/containerd/btrfs",
- version = "v0.0.0-20201111183144-404b9149801e",
- sum = "h1:chFw/cg0TDyK43qm8DKbblny2WHc4ML+j1KOkdEp9pI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:osn1exbzdub9L5SouXO5swW4ea/xVdJZ3wokxN5GrnA=",
+ version = "v1.0.0",
)
go_repository(
name = "com_github_containerd_cgroups",
- importpath = "github.com/containerd/cgroups",
- version = "v0.0.0-20200710171044-318312a37340",
- sum = "h1:9atoWyI9RtXFwf7UDbme/6M8Ud0rFrx+Q3ZWgSnsxtw=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "github.com/containerd/cgroups",
+ sum = "h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4=",
+ version = "v1.0.3",
)
go_repository(
name = "com_github_containerd_console",
importpath = "github.com/containerd/console",
- version = "v1.0.0",
- sum = "h1:fU3UuQapBs+zLJu82NhR11Rif1ny2zfMMAyPJzSN5tQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=",
+ version = "v1.0.3",
)
go_repository(
name = "com_github_containerd_containerd",
- importpath = "github.com/containerd/containerd",
- version = "v1.4.3",
- sum = "h1:ijQT13JedHSHrQGWFcGEwzcNKrAGIiZ+jSD5QQG07SY=",
build_file_proto_mode = "disable",
- build_tags = [
- "no_zfs",
- "no_aufs",
- "no_devicemapper",
- "no_btrfs",
+ importpath = "github.com/containerd/containerd",
+ patch_args = ["-p1"],
+ pre_patches = [
+ "//third_party/go/patches:containerd-no-tracing.patch",
],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o=",
+ version = "v1.6.1",
)
go_repository(
name = "com_github_containerd_continuity",
importpath = "github.com/containerd/continuity",
- version = "v0.0.0-20200710164510-efbc4488d8fe",
- sum = "h1:PEmIrUvwG9Yyv+0WKZqjXfSFDeZjs/q15g0m08BYS9k=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
- go_repository(
- name = "com_github_containerd_cri",
- importpath = "github.com/containerd/cri",
- version = "v1.19.1-0.20201126003523-adc0b6a578ed",
- sum = "h1:M2yIwrNSafh4rW/yXAiAlSqpydW7vjvDjZ0ClMb+EMQ=",
- build_file_proto_mode = "disable",
- patches = [
- "//third_party/go/patches:containerd-netns-statedir.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA=",
+ version = "v0.2.2",
)
go_repository(
name = "com_github_containerd_fifo",
importpath = "github.com/containerd/fifo",
- version = "v0.0.0-20200410184934-f15a3290365b",
- sum = "h1:qUtCegLdOUVfVJOw+KDg6eJyE1TGvLlkGEd1091kSSQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU=",
+ version = "v1.0.0",
)
go_repository(
name = "com_github_containerd_go_cni",
importpath = "github.com/containerd/go-cni",
- version = "v1.0.1",
- sum = "h1:VXr2EkOPD0v1gu7CKfof6XzEIDzsE/dI9yj/W7PSWLs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:t0MQwrtM96SH71Md8tH0uKrVE9v+jxkDTbvFSm3B9VE=",
+ version = "v1.1.3",
)
go_repository(
name = "com_github_containerd_go_runc",
importpath = "github.com/containerd/go-runc",
- version = "v0.0.0-20200220073739-7016d3ce2328",
- sum = "h1:PRTagVMbJcCezLcHXe8UJvR1oBzp2lG3CEumeFOLOds=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:oU+lLv1ULm5taqgV/CJivypVODI4SUz1znWjv3nNYS0=",
+ version = "v1.0.0",
)
go_repository(
name = "com_github_containerd_imgcrypt",
importpath = "github.com/containerd/imgcrypt",
- version = "v1.0.1",
- sum = "h1:IyI3IIP4m6zrNFuNFT7HizGVcuD6BYJFpdM1JvPKCbQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:69UKRsA3Q/lAwo2eDzWshdjimqhmprrWXfNtBeO0fBc=",
+ version = "v1.1.3",
)
go_repository(
+ name = "com_github_containerd_nri",
+ importpath = "github.com/containerd/nri",
+ sum = "h1:6QioHRlThlKh2RkRTR4kIT3PKAcrLo3gIWnjkM4dQmQ=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_containerd_stargz_snapshotter_estargz",
+ importpath = "github.com/containerd/stargz-snapshotter/estargz",
+ sum = "h1:5e7heayhB7CcgdTkqfZqrNaNv15gABwr3Q2jBTbLlt4=",
+ version = "v0.4.1",
+ )
+
+ go_repository(
name = "com_github_containerd_ttrpc",
importpath = "github.com/containerd/ttrpc",
- version = "v1.0.2-0.20210119122237-222b428f008e",
- sum = "h1:+Fbjfo26pg4HtkAw9sC/YhUwaAb16355o/J/oHkyCDc=",
replace = "github.com/monogon-dev/ttrpc",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:+Fbjfo26pg4HtkAw9sC/YhUwaAb16355o/J/oHkyCDc=",
+ version = "v1.0.2-0.20210119122237-222b428f008e",
)
go_repository(
name = "com_github_containerd_typeurl",
importpath = "github.com/containerd/typeurl",
- version = "v1.0.1",
- sum = "h1:PvuK4E3D5S5q6IqsPDCy928FhP0LUIGcmZ/Yhgp5Djw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=",
+ version = "v1.0.2",
)
go_repository(
+ name = "com_github_containerd_zfs",
+ importpath = "github.com/containerd/zfs",
+ sum = "h1:cXLJbx+4Jj7rNsTiqVfm6i+RNLx6FFA2fMmDlEf+Wm8=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_containernetworking_cni",
importpath = "github.com/containernetworking/cni",
- version = "v0.8.0",
- sum = "h1:BT9lpgGoH4jw3lFC7Odz2prU5ruiYKcgAjMCbgybcKI=",
+ patch_args = ["-p1"],
patches = [
"//third_party/go/patches:cni-fix-cachepath.patch",
],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:9OIL/sZmMYDBe+G8svzILAlulUpaDTUjeAbtH/JNLBo=",
+ version = "v1.0.1",
)
go_repository(
name = "com_github_containernetworking_plugins",
importpath = "github.com/containernetworking/plugins",
- version = "v0.8.2",
- sum = "h1:5lnwfsAYO+V7yXhysJKy3E1A2Gy9oVut031zfdOzI9w=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:wwCfYbTCj5FC0EJgyzyjTXmqysOiJE9r712Z+2KVZAk=",
+ version = "v1.0.1",
)
go_repository(
name = "com_github_containers_ocicrypt",
importpath = "github.com/containers/ocicrypt",
- version = "v1.0.1",
- sum = "h1:EToign46OSLTFWnb2oNj9RG3XDnkOX8r28ZIXUuk5Pc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Ez+GAMP/4GLix5Ywo/fL7O0nY771gsBIigiqUm1aXz0=",
+ version = "v1.1.2",
)
go_repository(
+ name = "com_github_coredns_caddy",
+ importpath = "github.com/coredns/caddy",
+ sum = "h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0=",
+ version = "v1.1.1",
+ )
+
+ go_repository(
name = "com_github_coredns_coredns",
importpath = "github.com/coredns/coredns",
- version = "v1.7.0",
- sum = "h1:Tm2ZSdhTk+4okgjUp4K6KYzvBI2u34cdD4fKQRC4Eeo=",
+ patch_args = ["-p1"],
pre_patches = [
"//third_party/go/patches:coredns-remove-unused-plugins.patch",
],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:m57Yuyjby5TEwHxKFAjx0q9Tj6r1coH2oRrEO4CVZdM=",
+ version = "v1.9.1",
)
go_repository(
+ name = "com_github_coredns_corefile_migration",
+ importpath = "github.com/coredns/corefile-migration",
+ sum = "h1:Tz3WZhoj2NdP8drrQH86NgnCng+VrPjNeg2Oe1ALKag=",
+ version = "v1.0.14",
+ )
+ go_repository(
+ name = "com_github_coreos_bbolt",
+ importpath = "github.com/coreos/bbolt",
+ sum = "h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s=",
+ version = "v1.3.2",
+ )
+ go_repository(
+ name = "com_github_coreos_etcd",
+ importpath = "github.com/coreos/etcd",
+ sum = "h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ=",
+ version = "v3.3.13+incompatible",
+ )
+ go_repository(
+ name = "com_github_coreos_go_etcd",
+ importpath = "github.com/coreos/go-etcd",
+ sum = "h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo=",
+ version = "v2.0.0+incompatible",
+ )
+
+ go_repository(
name = "com_github_coreos_go_iptables",
importpath = "github.com/coreos/go-iptables",
- version = "v0.4.2",
- sum = "h1:KH0EwId05JwWIfb96gWvkiT2cbuOu8ygqUaB+yPAwIg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk=",
+ version = "v0.6.0",
)
go_repository(
name = "com_github_coreos_go_oidc",
importpath = "github.com/coreos/go-oidc",
- version = "v2.1.0+incompatible",
sum = "h1:sdJrfw8akMnCuUlaZU3tE/uYXFgfqom8DBE9so9EBsM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.1.0+incompatible",
)
go_repository(
name = "com_github_coreos_go_semver",
importpath = "github.com/coreos/go-semver",
- version = "v0.3.0",
sum = "h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.3.0",
)
go_repository(
name = "com_github_coreos_go_systemd",
importpath = "github.com/coreos/go-systemd",
- version = "v0.0.0-20190321100706-95778dfbb74e",
- sum = "h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:W8b4lQ4tFF21aspRGoBuCNV6V2fFJBF+pm1J6OY8Lys=",
+ version = "v0.0.0-20190620071333-e64a0ec8b42a",
)
go_repository(
name = "com_github_coreos_go_systemd_v22",
importpath = "github.com/coreos/go-systemd/v22",
- version = "v22.1.0",
- sum = "h1:kq/SbG2BCKLkDKkjQf5OWwKWUKj1lgs3lFI4PxnR5lg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=",
+ version = "v22.3.2",
)
go_repository(
name = "com_github_coreos_pkg",
importpath = "github.com/coreos/pkg",
- version = "v0.0.0-20180928190104-399ea9e2e55f",
sum = "h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20180928190104-399ea9e2e55f",
)
go_repository(
name = "com_github_corverroos_commentwrap",
importpath = "github.com/corverroos/commentwrap",
- version = "v0.0.0-20191204065359-2926638be44c",
sum = "h1:toeMwwechJKH0iwOoGJLZK6x42Ba9si+816KxqmgFc8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20191204065359-2926638be44c",
)
+
go_repository(
name = "com_github_cosiner_argv",
importpath = "github.com/cosiner/argv",
- version = "v0.0.0-20170225145430-13bacc38a0a5",
- sum = "h1:rIXlvz2IWiupMFlC45cZCXZFvKX/ExBcSLrDy2G0Lp8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=",
+ version = "v0.1.0",
)
go_repository(
+ name = "com_github_cpuguy83_go_md2man",
+ importpath = "github.com/cpuguy83/go-md2man",
+ sum = "h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk=",
+ version = "v1.0.10",
+ )
+
+ go_repository(
name = "com_github_cpuguy83_go_md2man_v2",
importpath = "github.com/cpuguy83/go-md2man/v2",
- version = "v2.0.0",
- sum = "h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=",
+ version = "v2.0.1",
)
go_repository(
+ name = "com_github_creack_pty",
+ importpath = "github.com/creack/pty",
+ sum = "h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=",
+ version = "v1.1.11",
+ )
+
+ go_repository(
name = "com_github_cyphar_filepath_securejoin",
importpath = "github.com/cyphar/filepath-securejoin",
- version = "v0.2.2",
- sum = "h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=",
+ version = "v0.2.3",
)
go_repository(
+ name = "com_github_d2g_dhcp4",
+ importpath = "github.com/d2g/dhcp4",
+ sum = "h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc=",
+ version = "v0.0.0-20170904100407-a1d1b6c41b1c",
+ )
+ go_repository(
+ name = "com_github_d2g_dhcp4client",
+ importpath = "github.com/d2g/dhcp4client",
+ sum = "h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_d2g_dhcp4server",
+ importpath = "github.com/d2g/dhcp4server",
+ sum = "h1:+CpLbZIeUn94m02LdEKPcgErLJ347NUwxPKs5u8ieiY=",
+ version = "v0.0.0-20181031114812-7d4a0a7f59a5",
+ )
+ go_repository(
+ name = "com_github_d2g_hardwareaddr",
+ importpath = "github.com/d2g/hardwareaddr",
+ sum = "h1:itqmmf1PFpC4n5JW+j4BU7X4MTfVurhYRTjODoPb2Y8=",
+ version = "v0.0.0-20190221164911-e7d9fbe030e4",
+ )
+ go_repository(
+ name = "com_github_datadog_datadog_agent_pkg_obfuscate",
+ importpath = "github.com/DataDog/datadog-agent/pkg/obfuscate",
+ sum = "h1:3nVO1nQyh64IUY6BPZUpMYMZ738Pu+LsMt3E0eqqIYw=",
+ version = "v0.0.0-20211129110424-6491aa3bf583",
+ )
+ go_repository(
+ name = "com_github_datadog_datadog_go",
+ importpath = "github.com/DataDog/datadog-go",
+ sum = "h1:qbcKSx29aBLD+5QLvlQZlGmRMF/FfGqFLFev/1TDzRo=",
+ version = "v4.8.2+incompatible",
+ )
+ go_repository(
+ name = "com_github_datadog_datadog_go_v5",
+ importpath = "github.com/DataDog/datadog-go/v5",
+ sum = "h1:UFtEe7662/Qojxkw1d6SboAeA0CPI3naKhVASwFn+04=",
+ version = "v5.0.2",
+ )
+ go_repository(
+ name = "com_github_datadog_gostackparse",
+ importpath = "github.com/DataDog/gostackparse",
+ sum = "h1:jb72P6GFHPHz2W0onsN51cS3FkaMDcjb0QzgxxA4gDk=",
+ version = "v0.5.0",
+ )
+ go_repository(
+ name = "com_github_datadog_sketches_go",
+ importpath = "github.com/DataDog/sketches-go",
+ sum = "h1:chm5KSXO7kO+ywGWJ0Zs6tdmWU8PBXSbywFVciL6BG4=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_davecgh_go_spew",
importpath = "github.com/davecgh/go-spew",
- version = "v1.1.1",
sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.1.1",
)
go_repository(
name = "com_github_daviddengcn_go_colortext",
importpath = "github.com/daviddengcn/go-colortext",
- version = "v0.0.0-20160507010035-511bcaf42ccd",
sum = "h1:uVsMphB1eRx7xB1njzL3fuMdWRN8HtVzoUOItHMwv5c=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20160507010035-511bcaf42ccd",
)
go_repository(
+ name = "com_github_denverdino_aliyungo",
+ importpath = "github.com/denverdino/aliyungo",
+ sum = "h1:p6poVbjHDkKa+wtC8frBMwQtT3BmqGYBjzMwJ63tuR4=",
+ version = "v0.0.0-20190125010748-a747050bb1ba",
+ )
+ go_repository(
+ name = "com_github_derekparker_trie",
+ importpath = "github.com/derekparker/trie",
+ sum = "h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=",
+ version = "v0.0.0-20200317170641-1fdf38b7b0e9",
+ )
+ go_repository(
+ name = "com_github_devigned_tab",
+ importpath = "github.com/devigned/tab",
+ sum = "h1:3mD6Kb1mUOYeLpJvTVSDwSg5ZsfSxfvxGRTxRsJsITA=",
+ version = "v0.1.1",
+ )
+ go_repository(
+ name = "com_github_dgraph_io_ristretto",
+ importpath = "github.com/dgraph-io/ristretto",
+ sum = "h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI=",
+ version = "v0.1.0",
+ )
+
+ go_repository(
name = "com_github_dgrijalva_jwt_go",
importpath = "github.com/dgrijalva/jwt-go",
- version = "v3.2.0+incompatible",
sum = "h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v3.2.0+incompatible",
)
go_repository(
+ name = "com_github_dgryski_go_farm",
+ importpath = "github.com/dgryski/go-farm",
+ sum = "h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=",
+ version = "v0.0.0-20190423205320-6a90982ecee2",
+ )
+ go_repository(
+ name = "com_github_dgryski_go_sip13",
+ importpath = "github.com/dgryski/go-sip13",
+ sum = "h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4=",
+ version = "v0.0.0-20181026042036-e10d5fee7954",
+ )
+ go_repository(
+ name = "com_github_dimchansky_utfbom",
+ importpath = "github.com/dimchansky/utfbom",
+ sum = "h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=",
+ version = "v1.1.1",
+ )
+
+ go_repository(
name = "com_github_diskfs_go_diskfs",
importpath = "github.com/diskfs/go-diskfs",
- version = "v1.2.0",
sum = "h1:Ow4xorEDw1VNYKbC+SA/qQNwi5gWIwdKUxmUcLFST24=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0",
)
go_repository(
+ name = "com_github_dnaeon_go_vcr",
+ importpath = "github.com/dnaeon/go-vcr",
+ sum = "h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY=",
+ version = "v1.0.1",
+ )
+
+ go_repository(
name = "com_github_dnstap_golang_dnstap",
importpath = "github.com/dnstap/golang-dnstap",
- version = "v0.2.0",
- sum = "h1:+NrmP4mkaTeKYV7xJ5FXpUxRn0RpcgoQcsOCTS8WQPk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:KRHBoURygdGtBjDI2w4HifJfMAhhOqDuktAokaSa234=",
+ version = "v0.4.0",
)
go_repository(
+ name = "com_github_docker_cli",
+ importpath = "github.com/docker/cli",
+ sum = "h1:2HQmlpI3yI9deH18Q6xiSOIjXD4sLI55Y/gfpa8/558=",
+ version = "v0.0.0-20191017083524-a8ff7f821017",
+ )
+
+ go_repository(
name = "com_github_docker_distribution",
importpath = "github.com/docker/distribution",
- version = "v2.7.1+incompatible",
- sum = "h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:l9EaZDICImO1ngI+uTifW+ZYvvz7fKISBAKpg+MbWbY=",
+ version = "v2.8.0+incompatible",
)
go_repository(
name = "com_github_docker_docker",
importpath = "github.com/docker/docker",
- version = "v17.12.0-ce-rc1.0.20200310163718-4634ce647cf2+incompatible",
- sum = "h1:ax4NateCD5bjRTqLvQBlFrSUPOoZRgEXWpJ6Bmu6OO0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:CEeNmFM0QZIsJCZKMkZx0ZcahTiewkrgiwfYD+dfl1U=",
+ version = "v20.10.12+incompatible",
)
go_repository(
+ name = "com_github_docker_docker_credential_helpers",
+ importpath = "github.com/docker/docker-credential-helpers",
+ sum = "h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ=",
+ version = "v0.6.3",
+ )
+
+ go_repository(
name = "com_github_docker_go_connections",
importpath = "github.com/docker/go-connections",
- version = "v0.4.0",
sum = "h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.4.0",
)
go_repository(
name = "com_github_docker_go_events",
importpath = "github.com/docker/go-events",
- version = "v0.0.0-20190806004212-e31b211e4f1c",
sum = "h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20190806004212-e31b211e4f1c",
)
go_repository(
name = "com_github_docker_go_metrics",
importpath = "github.com/docker/go-metrics",
- version = "v0.0.1",
sum = "h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.1",
)
go_repository(
name = "com_github_docker_go_units",
importpath = "github.com/docker/go-units",
- version = "v0.4.0",
sum = "h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.4.0",
)
+
go_repository(
- name = "com_github_docker_spdystream",
- importpath = "github.com/docker/spdystream",
- version = "v0.0.0-20160310174837-449fdfce4d96",
- sum = "h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_docker_libtrust",
+ importpath = "github.com/docker/libtrust",
+ sum = "h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4=",
+ version = "v0.0.0-20150114040149-fa567046d9b1",
)
+
+ go_repository(
+ name = "com_github_docopt_docopt_go",
+ importpath = "github.com/docopt/docopt-go",
+ sum = "h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=",
+ version = "v0.0.0-20180111231733-ee0de3bc6815",
+ )
+
go_repository(
name = "com_github_dustin_go_humanize",
importpath = "github.com/dustin/go-humanize",
- version = "v1.0.0",
sum = "h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
+ name = "com_github_eapache_go_resiliency",
+ importpath = "github.com/eapache/go-resiliency",
+ sum = "h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_eapache_go_xerial_snappy",
+ importpath = "github.com/eapache/go-xerial-snappy",
+ sum = "h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=",
+ version = "v0.0.0-20180814174437-776d5712da21",
+ )
+ go_repository(
+ name = "com_github_eapache_queue",
+ importpath = "github.com/eapache/queue",
+ sum = "h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_edsrzf_mmap_go",
+ importpath = "github.com/edsrzf/mmap-go",
+ sum = "h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_elazarl_goproxy",
importpath = "github.com/elazarl/goproxy",
- version = "v0.0.0-20180725130230-947c36da3153",
sum = "h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20180725130230-947c36da3153",
)
go_repository(
name = "com_github_emicklei_go_restful",
importpath = "github.com/emicklei/go-restful",
- version = "v2.9.5+incompatible",
sum = "h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.9.5+incompatible",
)
go_repository(
+ name = "com_github_emirpasic_gods",
+ importpath = "github.com/emirpasic/gods",
+ sum = "h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=",
+ version = "v1.12.0",
+ )
+ go_repository(
+ name = "com_github_envoyproxy_go_control_plane",
+ importpath = "github.com/envoyproxy/go-control-plane",
+ sum = "h1:fP+fF0up6oPY49OrjPrhIJ8yQfdIM85NXMLkMg1EXVs=",
+ version = "v0.9.10-0.20210907150352-cf90f659a021",
+ )
+ go_repository(
+ name = "com_github_envoyproxy_protoc_gen_validate",
+ importpath = "github.com/envoyproxy/protoc-gen-validate",
+ sum = "h1:bV5JGEB1ouEzZa0hgVDFFiClrUEuGWRaAc/3mxR2QK0=",
+ version = "v0.3.0-java",
+ )
+ go_repository(
+ name = "com_github_etcd_io_gofail",
+ importpath = "github.com/etcd-io/gofail",
+ sum = "h1:Y2I0lxOttdUKz+hNaIdG3FtjuQrTmwXun1opRV65IZc=",
+ version = "v0.0.0-20190801230047-ad7f989257ca",
+ )
+
+ go_repository(
name = "com_github_euank_go_kmsg_parser",
importpath = "github.com/euank/go-kmsg-parser",
- version = "v2.0.0+incompatible",
sum = "h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.0.0+incompatible",
)
go_repository(
name = "com_github_evanphx_json_patch",
importpath = "github.com/evanphx/json-patch",
- version = "v4.9.0+incompatible",
- sum = "h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=",
+ version = "v4.12.0+incompatible",
)
go_repository(
name = "com_github_exponent_io_jsonpath",
importpath = "github.com/exponent-io/jsonpath",
- version = "v0.0.0-20151013193312-d6023ce2651d",
sum = "h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20151013193312-d6023ce2651d",
)
go_repository(
+ name = "com_github_fanliao_go_promise",
+ importpath = "github.com/fanliao/go-promise",
+ sum = "h1:0eU/faU2oDIB2BkQVM02hgRLJjGzzUuRf19HUhp0394=",
+ version = "v0.0.0-20141029170127-1890db352a72",
+ )
+
+ go_repository(
name = "com_github_farsightsec_golang_framestream",
importpath = "github.com/farsightsec/golang-framestream",
- version = "v0.0.0-20190425193708-fa4b164d59b8",
- sum = "h1:/iPdQppoAsTfML+yqFSq2EBChiEMnRkh5WvhFgtWwcU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:/spFQHucTle/ZIPkYqrfshQqPe2VQEzesH243TjIwqA=",
+ version = "v0.3.0",
)
go_repository(
name = "com_github_fatih_camelcase",
importpath = "github.com/fatih/camelcase",
- version = "v1.0.0",
sum = "h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
name = "com_github_fatih_color",
importpath = "github.com/fatih/color",
- version = "v1.7.0",
- sum = "h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=",
+ version = "v1.9.0",
)
go_repository(
+ name = "com_github_felixge_httpsnoop",
+ importpath = "github.com/felixge/httpsnoop",
+ sum = "h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ=",
+ version = "v1.0.1",
+ )
+
+ go_repository(
name = "com_github_flynn_go_shlex",
importpath = "github.com/flynn/go-shlex",
- version = "v0.0.0-20150515145356-3f9db97f8568",
sum = "h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20150515145356-3f9db97f8568",
)
go_repository(
+ name = "com_github_fogleman_gg",
+ importpath = "github.com/fogleman/gg",
+ sum = "h1:WXb3TSNmHp2vHoCroCIB1foO/yQ36swABL8aOVeDpgg=",
+ version = "v1.2.1-0.20190220221249-0403632d5b90",
+ )
+ go_repository(
+ name = "com_github_form3tech_oss_jwt_go",
+ importpath = "github.com/form3tech-oss/jwt-go",
+ sum = "h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c=",
+ version = "v3.2.3+incompatible",
+ )
+ go_repository(
+ name = "com_github_fortytw2_leaktest",
+ importpath = "github.com/fortytw2/leaktest",
+ sum = "h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "com_github_franela_goblin",
+ importpath = "github.com/franela/goblin",
+ sum = "h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw=",
+ version = "v0.0.0-20200105215937-c9ffbefa60db",
+ )
+ go_repository(
+ name = "com_github_franela_goreq",
+ importpath = "github.com/franela/goreq",
+ sum = "h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54=",
+ version = "v0.0.0-20171204163338-bcd34c9993f8",
+ )
+ go_repository(
+ name = "com_github_frankban_quicktest",
+ importpath = "github.com/frankban/quicktest",
+ sum = "h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=",
+ version = "v1.11.3",
+ )
+ go_repository(
+ name = "com_github_fsnotify_fsnotify",
+ importpath = "github.com/fsnotify/fsnotify",
+ sum = "h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=",
+ version = "v1.5.1",
+ )
+
+ go_repository(
name = "com_github_fullsailor_pkcs7",
importpath = "github.com/fullsailor/pkcs7",
- version = "v0.0.0-20180613152042-8306686428a5",
- sum = "h1:v+vxrd9XS8uWIXG2RK0BHCnXc30qLVQXVqbK+IOmpXk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:RDBNVkRviHZtvDvId8XSGPu3rmpmSe+wKRcEWNgsfWU=",
+ version = "v0.0.0-20190404230743-d7302db945fa",
)
go_repository(
+ name = "com_github_fullstorydev_grpcurl",
+ importpath = "github.com/fullstorydev/grpcurl",
+ sum = "h1:2II5e++aFnctnPJir3GL6cPSwF69Ord1u/9O+fv1vrI=",
+ version = "v1.8.2",
+ )
+ go_repository(
+ name = "com_github_fvbommel_sortorder",
+ importpath = "github.com/fvbommel/sortorder",
+ sum = "h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_garyburd_redigo",
+ importpath = "github.com/garyburd/redigo",
+ sum = "h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko=",
+ version = "v0.0.0-20150301180006-535138d7bcd7",
+ )
+ go_repository(
+ name = "com_github_getkin_kin_openapi",
+ importpath = "github.com/getkin/kin-openapi",
+ sum = "h1:j77zg3Ec+k+r+GA3d8hBoXpAc6KX9TbBPrwQGBIy2sY=",
+ version = "v0.76.0",
+ )
+ go_repository(
+ name = "com_github_getsentry_raven_go",
+ importpath = "github.com/getsentry/raven-go",
+ sum = "h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_ghodss_yaml",
importpath = "github.com/ghodss/yaml",
- version = "v1.0.0",
sum = "h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
+ name = "com_github_gin_contrib_sse",
+ importpath = "github.com/gin-contrib/sse",
+ sum = "h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_gin_gonic_gin",
+ importpath = "github.com/gin-gonic/gin",
+ sum = "h1:fi+bqFAx/oLK54somfCtEZs9HeH1LHVoEPUgARpTqyc=",
+ version = "v1.5.0",
+ )
+ go_repository(
+ name = "com_github_gliderlabs_ssh",
+ importpath = "github.com/gliderlabs/ssh",
+ sum = "h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=",
+ version = "v0.2.2",
+ )
+ go_repository(
+ name = "com_github_globalsign_mgo",
+ importpath = "github.com/globalsign/mgo",
+ sum = "h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is=",
+ version = "v0.0.0-20181015135952-eeefdecb41b8",
+ )
+ go_repository(
+ name = "com_github_go_acme_lego",
+ importpath = "github.com/go-acme/lego",
+ sum = "h1:5fNN9yRQfv8ymH3DSsxla+4aYeQt2IgfZqHKVnK8f0s=",
+ version = "v2.5.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_go_bindata_go_bindata",
+ importpath = "github.com/go-bindata/go-bindata",
+ sum = "h1:tR4f0e4VTO7LK6B2YWyAoVEzG9ByG1wrXB4TL9+jiYg=",
+ version = "v3.1.1+incompatible",
+ )
+
+ go_repository(
name = "com_github_go_delve_delve",
importpath = "github.com/go-delve/delve",
- version = "v1.4.1",
- sum = "h1:kZs0umEv+VKnK84kY9/ZXWrakdLTeRTyYjFdgLelZCQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:delve-fix-cgo.patch",
],
+ sum = "h1:gsRTPR3Yi61RpeuCFvJb6vIxB3xABx6pnNKGISxdsSU=",
+ version = "v1.8.2",
)
go_repository(
+ name = "com_github_go_delve_liner",
+ importpath = "github.com/go-delve/liner",
+ sum = "h1:0hGpZh6vjI6LFTlXuHFCX9PebaluzDzps2owdMrrSuk=",
+ version = "v1.2.2-1",
+ )
+ go_repository(
+ name = "com_github_go_errors_errors",
+ importpath = "github.com/go-errors/errors",
+ sum = "h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_go_gl_glfw",
+ importpath = "github.com/go-gl/glfw",
+ sum = "h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=",
+ version = "v0.0.0-20190409004039-e6da0acd62b1",
+ )
+ go_repository(
+ name = "com_github_go_gl_glfw_v3_3_glfw",
+ importpath = "github.com/go-gl/glfw/v3.3/glfw",
+ sum = "h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I=",
+ version = "v0.0.0-20200222043503-6f7a984d4dc4",
+ )
+ go_repository(
+ name = "com_github_go_ini_ini",
+ importpath = "github.com/go-ini/ini",
+ sum = "h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo=",
+ version = "v1.25.4",
+ )
+ go_repository(
+ name = "com_github_go_kit_kit",
+ importpath = "github.com/go-kit/kit",
+ sum = "h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo=",
+ version = "v0.10.0",
+ )
+ go_repository(
+ name = "com_github_go_kit_log",
+ importpath = "github.com/go-kit/log",
+ sum = "h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ=",
+ version = "v0.1.0",
+ )
+
+ go_repository(
+ name = "com_github_go_logfmt_logfmt",
+ importpath = "github.com/go-logfmt/logfmt",
+ sum = "h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4=",
+ version = "v0.5.0",
+ )
+
+ go_repository(
name = "com_github_go_logr_logr",
importpath = "github.com/go-logr/logr",
- version = "v0.2.0",
- sum = "h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs=",
+ version = "v1.2.2",
)
go_repository(
+ name = "com_github_go_logr_stdr",
+ importpath = "github.com/go-logr/stdr",
+ sum = "h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=",
+ version = "v1.2.2",
+ )
+ go_repository(
+ name = "com_github_go_logr_zapr",
+ importpath = "github.com/go-logr/zapr",
+ sum = "h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=",
+ version = "v1.2.0",
+ )
+
+ go_repository(
name = "com_github_go_openapi_analysis",
importpath = "github.com/go-openapi/analysis",
- version = "v0.19.5",
sum = "h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.5",
)
go_repository(
name = "com_github_go_openapi_errors",
importpath = "github.com/go-openapi/errors",
- version = "v0.19.2",
sum = "h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.2",
)
go_repository(
name = "com_github_go_openapi_jsonpointer",
importpath = "github.com/go-openapi/jsonpointer",
- version = "v0.19.3",
- sum = "h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=",
+ version = "v0.19.5",
)
go_repository(
name = "com_github_go_openapi_jsonreference",
importpath = "github.com/go-openapi/jsonreference",
- version = "v0.19.3",
- sum = "h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=",
+ version = "v0.19.5",
)
go_repository(
name = "com_github_go_openapi_loads",
importpath = "github.com/go-openapi/loads",
- version = "v0.19.4",
sum = "h1:5I4CCSqoWzT+82bBkNIvmLc0UOsoKKQ4Fz+3VxOB7SY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.4",
)
go_repository(
name = "com_github_go_openapi_runtime",
importpath = "github.com/go-openapi/runtime",
- version = "v0.19.4",
sum = "h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.4",
)
go_repository(
name = "com_github_go_openapi_spec",
importpath = "github.com/go-openapi/spec",
- version = "v0.19.3",
sum = "h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.3",
)
go_repository(
name = "com_github_go_openapi_strfmt",
importpath = "github.com/go-openapi/strfmt",
- version = "v0.19.3",
sum = "h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.3",
)
go_repository(
name = "com_github_go_openapi_swag",
importpath = "github.com/go-openapi/swag",
- version = "v0.19.5",
- sum = "h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=",
+ version = "v0.19.14",
)
go_repository(
name = "com_github_go_openapi_validate",
importpath = "github.com/go-openapi/validate",
- version = "v0.19.5",
sum = "h1:QhCBKRYqZR+SKo4gl1lPhPahope8/RLt6EVgY8X80w0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.19.5",
)
go_repository(
+ name = "com_github_go_ozzo_ozzo_validation",
+ importpath = "github.com/go-ozzo/ozzo-validation",
+ sum = "h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM=",
+ version = "v3.5.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_go_playground_locales",
+ importpath = "github.com/go-playground/locales",
+ sum = "h1:2FITxuFt/xuCNP1Acdhv62OzaCiviiE4kotfhkmOqEc=",
+ version = "v0.12.1",
+ )
+ go_repository(
+ name = "com_github_go_playground_universal_translator",
+ importpath = "github.com/go-playground/universal-translator",
+ sum = "h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM=",
+ version = "v0.16.0",
+ )
+ go_repository(
+ name = "com_github_go_redis_redis",
+ importpath = "github.com/go-redis/redis",
+ sum = "h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg=",
+ version = "v6.15.9+incompatible",
+ )
+ go_repository(
+ name = "com_github_go_sql_driver_mysql",
+ importpath = "github.com/go-sql-driver/mysql",
+ sum = "h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=",
+ version = "v1.6.0",
+ )
+
+ go_repository(
name = "com_github_go_stack_stack",
importpath = "github.com/go-stack/stack",
- version = "v1.8.0",
sum = "h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.8.0",
)
+
+ go_repository(
+ name = "com_github_godbus_dbus",
+ importpath = "github.com/godbus/dbus",
+ sum = "h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8=",
+ version = "v0.0.0-20190422162347-ade71ed3457e",
+ )
+
go_repository(
name = "com_github_godbus_dbus_v5",
importpath = "github.com/godbus/dbus/v5",
- version = "v5.0.3",
- sum = "h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro=",
+ version = "v5.0.6",
)
go_repository(
name = "com_github_gofrs_flock",
importpath = "github.com/gofrs/flock",
- version = "v0.8.0",
sum = "h1:MSdYClljsF3PbENUUEx85nkWfJSGfzYI9yEBZOJz6CY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.8.0",
)
go_repository(
+ name = "com_github_gofrs_uuid",
+ importpath = "github.com/gofrs/uuid",
+ sum = "h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=",
+ version = "v4.0.0+incompatible",
+ )
+
+ go_repository(
name = "com_github_gogo_googleapis",
- importpath = "github.com/gogo/googleapis",
- version = "v1.3.2",
- sum = "h1:kX1es4djPJrsDhY7aZKJy7aZasdcB5oSOEphMjSB53c=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "github.com/gogo/googleapis",
+ sum = "h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=",
+ version = "v1.4.0",
)
go_repository(
name = "com_github_gogo_protobuf",
+ build_file_proto_mode = "disable",
importpath = "github.com/gogo/protobuf",
- version = "v1.3.1",
- sum = "h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=",
+ version = "v1.3.2",
)
go_repository(
+ name = "com_github_golang_freetype",
+ importpath = "github.com/golang/freetype",
+ sum = "h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=",
+ version = "v0.0.0-20170609003504-e2365dfdc4a0",
+ )
+ go_repository(
+ name = "com_github_golang_glog",
+ importpath = "github.com/golang/glog",
+ sum = "h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_golang_groupcache",
importpath = "github.com/golang/groupcache",
- version = "v0.0.0-20191227052852-215e87163ea7",
- sum = "h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=",
+ version = "v0.0.0-20210331224755-41bb18bfe9da",
)
go_repository(
+ name = "com_github_golang_jwt_jwt_v4",
+ importpath = "github.com/golang-jwt/jwt/v4",
+ sum = "h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU=",
+ version = "v4.2.0",
+ )
+ go_repository(
+ name = "com_github_golang_mock",
+ importpath = "github.com/golang/mock",
+ sum = "h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=",
+ version = "v1.6.0",
+ )
+ go_repository(
+ name = "com_github_golang_protobuf",
+ importpath = "github.com/golang/protobuf",
+ sum = "h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=",
+ version = "v1.5.2",
+ )
+ go_repository(
+ name = "com_github_golang_snappy",
+ importpath = "github.com/golang/snappy",
+ sum = "h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=",
+ version = "v0.0.4",
+ )
+
+ go_repository(
+ name = "com_github_golangplus_testing",
+ importpath = "github.com/golangplus/testing",
+ sum = "h1:KhcknUwkWHKZPbFy2P7jH5LKJ3La+0ZeknkkmrSgqb0=",
+ version = "v0.0.0-20180327235837-af21d9c3145e",
+ )
+
+ go_repository(
name = "com_github_google_btree",
importpath = "github.com/google/btree",
- version = "v1.0.0",
- sum = "h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=",
+ version = "v1.0.1",
)
go_repository(
name = "com_github_google_cadvisor",
importpath = "github.com/google/cadvisor",
- version = "v0.37.3",
- sum = "h1:qsH/np74sg1/tEe+bn+e2JIPFxrw6En3gCVuQdolc74=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:523mBK94XHKAsU1TIQl/tYoPyYpWQdalf2CQ8Gv2Xek=",
+ version = "v0.44.0",
)
go_repository(
+ name = "com_github_google_cel_go",
+ build_naming_convention = "go_default_library",
+ importpath = "github.com/google/cel-go",
+ patch_args = ["-p1"],
+ pre_patches = [
+ "//third_party/go/patches:cel-fix-antlr.patch",
+ "//third_party/go/patches:cel-fix-googleapis.patch",
+ ],
+ sum = "h1:u1hg7lcZ/XWw2d3aV1jFS30ijQQ6q0/h1C2ZBeBD1gY=",
+ version = "v0.9.0",
+ )
+ go_repository(
+ name = "com_github_google_cel_spec",
+ importpath = "github.com/google/cel-spec",
+ sum = "h1:xuthJSiJGoSzq+lVEBIW1MTpaaZXknMCYC4WzVAWOsE=",
+ version = "v0.6.0",
+ )
+
+ go_repository(
name = "com_github_google_certificate_transparency_go",
importpath = "github.com/google/certificate-transparency-go",
- version = "v1.1.0",
- sum = "h1:10MlrYzh5wfkToxWI4yJzffsxLfxcEDlOATMx/V9Kzw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:4hE0GEId6NAW28dFpC+LrRGwQX5dtmXQGDbg8+/MZOM=",
+ version = "v1.1.2",
)
go_repository(
+ name = "com_github_google_go_attestation",
+ importpath = "github.com/google/go-attestation",
+ sum = "h1:hHhPfym1TZm88L7sWmdc/moikHt80ls6mEiU+QvhRvk=",
+ version = "v0.4.3",
+ )
+
+ go_repository(
name = "com_github_google_go_cmp",
importpath = "github.com/google/go-cmp",
- version = "v0.4.0",
- sum = "h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=",
+ version = "v0.5.7",
)
go_repository(
+ name = "com_github_google_go_containerregistry",
+ importpath = "github.com/google/go-containerregistry",
+ sum = "h1:/+mFTs4AlwsJ/mJe8NDtKb7BxLtbZFpcn8vDsneEkwQ=",
+ version = "v0.5.1",
+ )
+
+ go_repository(
name = "com_github_google_go_dap",
importpath = "github.com/google/go-dap",
- version = "v0.2.0",
- sum = "h1:whjIGQRumwbR40qRU7CEKuFLmePUUc2s4Nt9DoXXxWk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=",
+ version = "v0.6.0",
)
+
+ go_repository(
+ name = "com_github_google_go_github_v28",
+ importpath = "github.com/google/go-github/v28",
+ sum = "h1:kORf5ekX5qwXO2mGzXXOjMe/g6ap8ahVe0sBEulhSxo=",
+ version = "v28.1.1",
+ )
+ go_repository(
+ name = "com_github_google_go_licenses",
+ importpath = "github.com/google/go-licenses",
+ sum = "h1:JtmsUf+m+KdwCOgLG578T0Mvd0+l+dezPrJh5KYnXZg=",
+ version = "v0.0.0-20210329231322-ce1d9163b77d",
+ )
+ go_repository(
+ name = "com_github_google_go_querystring",
+ importpath = "github.com/google/go-querystring",
+ sum = "h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_google_go_replayers_grpcreplay",
+ importpath = "github.com/google/go-replayers/grpcreplay",
+ sum = "h1:eNb1y9rZFmY4ax45uEEECSa8fsxGRU+8Bil52ASAwic=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_google_go_replayers_httpreplay",
+ importpath = "github.com/google/go-replayers/httpreplay",
+ sum = "h1:AX7FUb4BjrrzNvblr/OlgwrmFiep6soj5K2QSDW7BGk=",
+ version = "v0.1.0",
+ )
+
go_repository(
name = "com_github_google_go_tpm",
importpath = "github.com/google/go-tpm",
- version = "v0.1.2-0.20190725015402-ae6dd98980d4",
- sum = "h1:GNNkIb6NSjYfw+KvgUFW590mcgsSFihocSrbXct1sEw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:P/ZFNBZYXRxc+z7i5uyd8VP7MaDteuLZInzrH2idRGo=",
+ version = "v0.3.3",
)
go_repository(
name = "com_github_google_go_tpm_tools",
importpath = "github.com/google/go-tpm-tools",
- version = "v0.0.0-20190731025042-f8c04ff88181",
- sum = "h1:1Y5W2uh6E7I6hhI6c0WVSbV+Ae15uhemqi3RvSgtZpk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ patch_args = ["-p1"],
+ pre_patches = [
+ "//third_party/go/patches:go-tpm-tools-fix-proto-paths.patch",
],
+ sum = "h1:gcjAoa/iK98ybY41Icn2zkGlJLhVg44nOmI6fFju5IY=",
+ version = "v0.3.5",
)
go_repository(
+ name = "com_github_google_go_tspi",
+ importpath = "github.com/google/go-tspi",
+ sum = "h1:LnpS22S8V1HqbxjveESGAazHhi6BX9SwI2Rij7qZcXQ=",
+ version = "v0.2.1-0.20190423175329-115dea689aad",
+ )
+
+ go_repository(
name = "com_github_google_gofuzz",
importpath = "github.com/google/gofuzz",
- version = "v1.1.0",
- sum = "h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=",
+ version = "v1.2.0",
)
go_repository(
name = "com_github_google_gopacket",
importpath = "github.com/google/gopacket",
- version = "v1.1.17",
- sum = "h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=",
+ version = "v1.1.19",
)
go_repository(
- name = "com_github_google_gvisor",
- importpath = "github.com/google/gvisor",
- version = "v0.0.0-20211029210316-b822923b706d",
- sum = "h1:DLypxrLRMq0P4f96vlutTfJpM5/Y8q6rDafgBU1pxAs=",
- patches = [
- "//third_party/go/patches:gvisor.patch",
- "//third_party/go/patches:gvisor-build-against-newer-runtime-specs.patch",
- "//third_party/go/patches:gvisor-cgroup-fix.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_google_licenseclassifier",
+ importpath = "github.com/google/licenseclassifier",
+ sum = "h1:EfzlPF5MRmoWsCGvSkPZ1Nh9uVzHf4FfGnDQ6CXd2NA=",
+ version = "v0.0.0-20210325184830-bb04aff29e72",
)
go_repository(
+ name = "com_github_google_martian",
+ importpath = "github.com/google/martian",
+ sum = "h1:xmapqc1AyLoB+ddYT6r04bD9lIjlOqGaREovi0SzFaE=",
+ version = "v2.1.1-0.20190517191504-25dcb96d9e51+incompatible",
+ )
+ go_repository(
+ name = "com_github_google_martian_v3",
+ importpath = "github.com/google/martian/v3",
+ sum = "h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ=",
+ version = "v3.2.1",
+ )
+
+ go_repository(
name = "com_github_google_nftables",
importpath = "github.com/google/nftables",
- version = "v0.0.0-20200316075819-7127d9d22474",
- sum = "h1:D6bN82zzK92ywYsE+Zjca7EHZCRZbcNTU3At7WdxQ+c=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:UpwO4s4fHzquJ3SjQpZhcg1fga6RA4PsrKBGOj/ilvg=",
+ version = "v0.0.0-20220221214239-211824995dcb",
)
go_repository(
+ name = "com_github_google_pprof",
+ importpath = "github.com/google/pprof",
+ sum = "h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=",
+ version = "v0.0.0-20210720184732-4bb14d4b1be1",
+ )
+ go_repository(
+ name = "com_github_google_renameio",
+ importpath = "github.com/google/renameio",
+ sum = "h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_google_rpmpack",
+ importpath = "github.com/google/rpmpack",
+ sum = "h1:BW6OvS3kpT5UEPbCZ+KyX/OB4Ks9/MNMhWjqPPkZxsE=",
+ version = "v0.0.0-20191226140753-aa36bfddb3a0",
+ )
+ go_repository(
+ name = "com_github_google_shlex",
+ importpath = "github.com/google/shlex",
+ sum = "h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=",
+ version = "v0.0.0-20191202100458-e7afc7fbc510",
+ )
+
+ go_repository(
name = "com_github_google_subcommands",
importpath = "github.com/google/subcommands",
- version = "v1.0.2-0.20190508160503-636abe8753b8",
sum = "h1:8nlgEAjIalk6uj/CGKCdOO8CQqTeysvcW4RFZ6HbkGM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.2-0.20190508160503-636abe8753b8",
)
go_repository(
+ name = "com_github_google_trillian",
+ importpath = "github.com/google/trillian",
+ sum = "h1:Wa7XHCVzl8RLsUOr2SzoHUZHYjv0G8KMO1xZGamYkbA=",
+ version = "v1.4.0",
+ )
+
+ go_repository(
name = "com_github_google_uuid",
importpath = "github.com/google/uuid",
- version = "v1.1.1",
- sum = "h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=",
+ version = "v1.3.0",
)
go_repository(
- name = "com_github_googleapis_gnostic",
- importpath = "github.com/googleapis/gnostic",
- version = "v0.4.1",
- sum = "h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=",
- build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_google_wire",
+ importpath = "github.com/google/wire",
+ sum = "h1:imGQZGEVEHpje5056+K+cgdO72p0LQv2xIIFXNGUf60=",
+ version = "v0.3.0",
)
go_repository(
+ name = "com_github_googleapis_gax_go",
+ importpath = "github.com/googleapis/gax-go",
+ sum = "h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww=",
+ version = "v2.0.2+incompatible",
+ )
+ go_repository(
+ name = "com_github_googleapis_gax_go_v2",
+ importpath = "github.com/googleapis/gax-go/v2",
+ sum = "h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU=",
+ version = "v2.1.1",
+ )
+
+ go_repository(
+ name = "com_github_googleapis_gnostic",
+ build_file_proto_mode = "disable",
+ importpath = "github.com/googleapis/gnostic",
+ sum = "h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=",
+ version = "v0.5.5",
+ )
+ go_repository(
+ name = "com_github_googlecloudplatform_cloudsql_proxy",
+ importpath = "github.com/GoogleCloudPlatform/cloudsql-proxy",
+ sum = "h1:sTOp2Ajiew5XIH92YSdwhYc+bgpUX5j5TKK/Ac8Saw8=",
+ version = "v0.0.0-20191009163259-e802c2cb94ae",
+ )
+ go_repository(
+ name = "com_github_googlecloudplatform_k8s_cloud_provider",
+ importpath = "github.com/GoogleCloudPlatform/k8s-cloud-provider",
+ sum = "h1:FCalqNmQYSMCCHoCtAxZN/ZgLc8ufgeo5Z3wrIoJZvs=",
+ version = "v1.16.1-0.20210702024009-ea6160c1d0e3",
+ )
+ go_repository(
+ name = "com_github_gophercloud_gophercloud",
+ importpath = "github.com/gophercloud/gophercloud",
+ sum = "h1:P/nh25+rzXouhytV2pUHBb65fnds26Ghl8/391+sT5o=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_gopherjs_gopherjs",
+ importpath = "github.com/gopherjs/gopherjs",
+ sum = "h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0=",
+ version = "v0.0.0-20200217142428-fce0ec30dd00",
+ )
+ go_repository(
+ name = "com_github_gordonklaus_ineffassign",
+ importpath = "github.com/gordonklaus/ineffassign",
+ sum = "h1:vc7Dmrk4JwS0ZPS6WZvWlwDflgDTA26jItmbSj83nug=",
+ version = "v0.0.0-20200309095847-7953dde2c7bf",
+ )
+ go_repository(
+ name = "com_github_goreleaser_goreleaser",
+ importpath = "github.com/goreleaser/goreleaser",
+ sum = "h1:3ua5fSYvc/doKd5sVTzvXbyqW6H/eyuvy46woLrUFic=",
+ version = "v0.134.0",
+ )
+ go_repository(
+ name = "com_github_goreleaser_nfpm",
+ importpath = "github.com/goreleaser/nfpm",
+ sum = "h1:AEnu9XVmupRDTR930Z2rAs31Mj6sLIPxFcR9ESYvgDA=",
+ version = "v1.2.1",
+ )
+ go_repository(
+ name = "com_github_gorilla_context",
+ importpath = "github.com/gorilla/context",
+ sum = "h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=",
+ version = "v1.1.1",
+ )
+ go_repository(
+ name = "com_github_gorilla_handlers",
+ importpath = "github.com/gorilla/handlers",
+ sum = "h1:893HsJqtxp9z1SF76gg6hY70hRY1wVlTSnC/h1yUDCo=",
+ version = "v0.0.0-20150720190736-60c7bfde3e33",
+ )
+ go_repository(
+ name = "com_github_gorilla_mux",
+ importpath = "github.com/gorilla/mux",
+ sum = "h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=",
+ version = "v1.8.0",
+ )
+ go_repository(
+ name = "com_github_gorilla_securecookie",
+ importpath = "github.com/gorilla/securecookie",
+ sum = "h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=",
+ version = "v1.1.1",
+ )
+ go_repository(
+ name = "com_github_gorilla_sessions",
+ importpath = "github.com/gorilla/sessions",
+ sum = "h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=",
+ version = "v1.2.1",
+ )
+
+ go_repository(
name = "com_github_gorilla_websocket",
importpath = "github.com/gorilla/websocket",
- version = "v1.4.0",
- sum = "h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=",
+ version = "v1.4.2",
)
+
go_repository(
name = "com_github_gregjones_httpcache",
importpath = "github.com/gregjones/httpcache",
- version = "v0.0.0-20180305231024-9cad4c3443a7",
sum = "h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20180305231024-9cad4c3443a7",
)
go_repository(
name = "com_github_grpc_ecosystem_go_grpc_middleware",
importpath = "github.com/grpc-ecosystem/go-grpc-middleware",
- version = "v1.0.1-0.20190118093823-f849b5445de4",
- sum = "h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=",
+ version = "v1.3.0",
)
go_repository(
name = "com_github_grpc_ecosystem_go_grpc_prometheus",
importpath = "github.com/grpc-ecosystem/go-grpc-prometheus",
- version = "v1.2.0",
sum = "h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0",
)
go_repository(
name = "com_github_grpc_ecosystem_grpc_gateway",
+ build_naming_convention = "go_default_library",
importpath = "github.com/grpc-ecosystem/grpc-gateway",
- version = "v1.9.5",
- sum = "h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=",
+ version = "v1.16.0",
)
go_repository(
name = "com_github_grpc_ecosystem_grpc_opentracing",
importpath = "github.com/grpc-ecosystem/grpc-opentracing",
- version = "v0.0.0-20180507213350-8e809c8a8645",
sum = "h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20180507213350-8e809c8a8645",
+ )
+
+ go_repository(
+ name = "com_github_hashicorp_consul_api",
+ importpath = "github.com/hashicorp/consul/api",
+ sum = "h1:HXNYlRkkM/t+Y/Yhxtwcy02dlYwIaoxzvxPnS+cqy78=",
+ version = "v1.3.0",
)
go_repository(
- name = "com_github_grpc_grpc",
- importpath = "github.com/grpc/grpc",
- version = "v1.29.1",
- sum = "h1:oDOYav2X6WE7espebiQ//iP9N+/gGygUv6XuuyvkFMc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_hashicorp_consul_sdk",
+ importpath = "github.com/hashicorp/consul/sdk",
+ sum = "h1:UOxjlb4xVNF93jak1mzzoBatyFju9nrkxpVwIp/QqxQ=",
+ version = "v0.3.0",
)
+
go_repository(
name = "com_github_hashicorp_errwrap",
importpath = "github.com/hashicorp/errwrap",
- version = "v1.0.0",
- sum = "h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=",
+ version = "v1.1.0",
)
go_repository(
+ name = "com_github_hashicorp_go_cleanhttp",
+ importpath = "github.com/hashicorp/go-cleanhttp",
+ sum = "h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=",
+ version = "v0.5.1",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_hclog",
+ importpath = "github.com/hashicorp/go-hclog",
+ sum = "h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=",
+ version = "v0.9.2",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_immutable_radix",
+ importpath = "github.com/hashicorp/go-immutable-radix",
+ sum = "h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_msgpack",
+ importpath = "github.com/hashicorp/go-msgpack",
+ sum = "h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4=",
+ version = "v0.5.3",
+ )
+
+ go_repository(
name = "com_github_hashicorp_go_multierror",
importpath = "github.com/hashicorp/go-multierror",
- version = "v1.0.0",
- sum = "h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=",
+ version = "v1.1.1",
)
go_repository(
+ name = "com_github_hashicorp_go_net",
+ importpath = "github.com/hashicorp/go.net",
+ sum = "h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw=",
+ version = "v0.0.1",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_retryablehttp",
+ importpath = "github.com/hashicorp/go-retryablehttp",
+ sum = "h1:BbgctKO892xEyOXnGiaAwIoSq1QZ/SS4AhjoAh9DnfY=",
+ version = "v0.6.4",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_rootcerts",
+ importpath = "github.com/hashicorp/go-rootcerts",
+ sum = "h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_sockaddr",
+ importpath = "github.com/hashicorp/go-sockaddr",
+ sum = "h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_syslog",
+ importpath = "github.com/hashicorp/go-syslog",
+ sum = "h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_uuid",
+ importpath = "github.com/hashicorp/go-uuid",
+ sum = "h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=",
+ version = "v1.0.2",
+ )
+ go_repository(
+ name = "com_github_hashicorp_go_version",
+ importpath = "github.com/hashicorp/go-version",
+ sum = "h1:3vNe/fWF5CBgRIguda1meWhsZHy3m8gCJ5wx+dIzX/E=",
+ version = "v1.2.0",
+ )
+
+ go_repository(
name = "com_github_hashicorp_golang_lru",
importpath = "github.com/hashicorp/golang-lru",
- version = "v0.5.3",
- sum = "h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=",
+ version = "v0.5.4",
)
go_repository(
name = "com_github_hashicorp_hcl",
importpath = "github.com/hashicorp/hcl",
- version = "v1.0.0",
sum = "h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
+ name = "com_github_hashicorp_logutils",
+ importpath = "github.com/hashicorp/logutils",
+ sum = "h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_mdns",
+ importpath = "github.com/hashicorp/mdns",
+ sum = "h1:WhIgCr5a7AaVH6jPUwjtRuuE7/RDufnUvzIr48smyxs=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_hashicorp_memberlist",
+ importpath = "github.com/hashicorp/memberlist",
+ sum = "h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M=",
+ version = "v0.1.3",
+ )
+ go_repository(
+ name = "com_github_hashicorp_serf",
+ importpath = "github.com/hashicorp/serf",
+ sum = "h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0=",
+ version = "v0.8.2",
+ )
+ go_repository(
+ name = "com_github_heketi_heketi",
+ importpath = "github.com/heketi/heketi",
+ sum = "h1:X4DBFPzcyWZWhia32d94UhDECQJHH0M5kpRb1gxxUHk=",
+ version = "v10.3.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_heketi_tests",
+ importpath = "github.com/heketi/tests",
+ sum = "h1:oJ/NLadJn5HoxvonA6VxG31lg0d6XOURNA09BTtM4fY=",
+ version = "v0.0.0-20151005000721-f3775cbcefd6",
+ )
+
+ go_repository(
name = "com_github_hpcloud_tail",
importpath = "github.com/hpcloud/tail",
- version = "v1.0.0",
sum = "h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
name = "com_github_huandu_xstrings",
importpath = "github.com/huandu/xstrings",
- version = "v1.0.0",
- sum = "h1:pO2K/gKgKaat5LdpAhxhluX2GPQMaI3W5FUz/I/UnWk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:yPeWdRnmynF7p+lLYz0H2tthW9lqhMJrQV/U7yy4wX0=",
+ version = "v1.2.0",
)
go_repository(
+ name = "com_github_hudl_fargo",
+ importpath = "github.com/hudl/fargo",
+ sum = "h1:0U6+BtN6LhaYuTnIJq4Wyq5cpn6O2kWrxAtcqBmYY6w=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "com_github_hugelgupf_socketpair",
+ importpath = "github.com/hugelgupf/socketpair",
+ sum = "h1:/jC7qQFrv8CrSJVmaolDVOxTfS9kc36uB6H40kdbQq8=",
+ version = "v0.0.0-20190730060125-05d35a94e714",
+ )
+ go_repository(
+ name = "com_github_ianlancetaylor_demangle",
+ importpath = "github.com/ianlancetaylor/demangle",
+ sum = "h1:mV02weKRL81bEnm8A0HT1/CAelMQDBuQIfLw8n+d6xI=",
+ version = "v0.0.0-20200824232613-28f6c0f3b639",
+ )
+
+ go_repository(
name = "com_github_imdario_mergo",
importpath = "github.com/imdario/mergo",
- version = "v0.3.7",
- sum = "h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=",
+ version = "v0.3.12",
)
go_repository(
name = "com_github_inconshreveable_mousetrap",
importpath = "github.com/inconshreveable/mousetrap",
- version = "v1.0.0",
sum = "h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
+ name = "com_github_influxdata_influxdb1_client",
+ importpath = "github.com/influxdata/influxdb1-client",
+ sum = "h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA=",
+ version = "v0.0.0-20191209144304-8bf82d3c094d",
+ )
+
+ go_repository(
name = "com_github_infobloxopen_go_trees",
importpath = "github.com/infobloxopen/go-trees",
- version = "v0.0.0-20190313150506-2af4e13f9062",
- sum = "h1:d3VSuNcgTCn21dNMm8g412Fck/XWFmMj4nJhhHT7ZZ0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:w66aaP3c6SIQ0pi3QH1Tb4AMO3aWoEPxd1CNvLphbkA=",
+ version = "v0.0.0-20200715205103-96a057b8dfb9",
)
go_repository(
name = "com_github_insomniacslk_dhcp",
importpath = "github.com/insomniacslk/dhcp",
- version = "v0.0.0-20200922210017-67c425063dca",
- sum = "h1:zhwTlFGM8ZkD5J/c43IWkxSJQWzhm20QWou8zajbCck=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:efcJu2Vzz6DoSq245deWNzTz6l/gsqdphm3FjmI88/g=",
+ version = "v0.0.0-20220119180841-3c283ff8b7dd",
)
go_repository(
+ name = "com_github_intel_goresctrl",
+ importpath = "github.com/intel/goresctrl",
+ sum = "h1:JyZjdMQu9Kl/wLXe9xA6s1X+tF6BWsQPFGJMEeCfWzE=",
+ version = "v0.2.0",
+ )
+ go_repository(
+ name = "com_github_ishidawataru_sctp",
+ importpath = "github.com/ishidawataru/sctp",
+ sum = "h1:qPmlgoeRS18y2dT+iAH5vEKZgIqgiPi2Y8UCu/b7Aq8=",
+ version = "v0.0.0-20190723014705-7c296d48a2b5",
+ )
+
+ go_repository(
name = "com_github_j_keck_arping",
importpath = "github.com/j-keck/arping",
- version = "v0.0.0-20160618110441-2cf9dc699c56",
- sum = "h1:742eGXur0715JMq73aD95/FU0XpVKXqNuTnEfXsLOYQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:hlLhuXgQkzIJTZuhMigvG/CuSkaspeaD9hRDk2zuiMI=",
+ version = "v1.0.2",
)
go_repository(
+ name = "com_github_jarcoal_httpmock",
+ importpath = "github.com/jarcoal/httpmock",
+ sum = "h1:cHtVEcTxRSX4J0je7mWPfc9BpDpqzXSJ5HbymZmyHck=",
+ version = "v1.0.5",
+ )
+ go_repository(
+ name = "com_github_jbenet_go_context",
+ importpath = "github.com/jbenet/go-context",
+ sum = "h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=",
+ version = "v0.0.0-20150711004518-d14ea06fba99",
+ )
+ go_repository(
+ name = "com_github_jcmturner_aescts_v2",
+ importpath = "github.com/jcmturner/aescts/v2",
+ sum = "h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=",
+ version = "v2.0.0",
+ )
+ go_repository(
+ name = "com_github_jcmturner_dnsutils_v2",
+ importpath = "github.com/jcmturner/dnsutils/v2",
+ sum = "h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=",
+ version = "v2.0.0",
+ )
+ go_repository(
+ name = "com_github_jcmturner_gofork",
+ importpath = "github.com/jcmturner/gofork",
+ sum = "h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_jcmturner_goidentity_v6",
+ importpath = "github.com/jcmturner/goidentity/v6",
+ sum = "h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o=",
+ version = "v6.0.1",
+ )
+ go_repository(
+ name = "com_github_jcmturner_gokrb5_v8",
+ importpath = "github.com/jcmturner/gokrb5/v8",
+ sum = "h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA=",
+ version = "v8.4.2",
+ )
+ go_repository(
+ name = "com_github_jcmturner_rpc_v2",
+ importpath = "github.com/jcmturner/rpc/v2",
+ sum = "h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=",
+ version = "v2.0.3",
+ )
+ go_repository(
+ name = "com_github_jeffashton_win_pdh",
+ importpath = "github.com/JeffAshton/win_pdh",
+ sum = "h1:UKkYhof1njT1/xq4SEg5z+VpTgjmNeHwPGRQl7takDI=",
+ version = "v0.0.0-20161109143554-76bb4ee9f0ab",
+ )
+
+ go_repository(
+ name = "com_github_jessevdk_go_flags",
+ importpath = "github.com/jessevdk/go-flags",
+ sum = "h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA=",
+ version = "v1.4.0",
+ )
+ go_repository(
+ name = "com_github_jgautheron_goconst",
+ importpath = "github.com/jgautheron/goconst",
+ sum = "h1:D5s1HIu80AcMGcqmk7fNIVptmAubVHHaj3v5Upex6Zs=",
+ version = "v0.0.0-20170703170152-9740945f5dcb",
+ )
+ go_repository(
+ name = "com_github_jhump_protoreflect",
+ importpath = "github.com/jhump/protoreflect",
+ sum = "h1:npqHz788dryJiR/l6K/RUQAyh2SwV91+d1dnh4RjO9w=",
+ version = "v1.9.0",
+ )
+ go_repository(
+ name = "com_github_jimstudt_http_authentication",
+ importpath = "github.com/jimstudt/http-authentication",
+ sum = "h1:BcF8coBl0QFVhe8vAMMlD+CV8EISiu9MGKLoj6ZEyJA=",
+ version = "v0.0.0-20140401203705-3eca13d6893a",
+ )
+
+ go_repository(
+ name = "com_github_jmespath_go_jmespath",
+ importpath = "github.com/jmespath/go-jmespath",
+ sum = "h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=",
+ version = "v0.4.0",
+ )
+ go_repository(
+ name = "com_github_jmespath_go_jmespath_internal_testify",
+ importpath = "github.com/jmespath/go-jmespath/internal/testify",
+ sum = "h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=",
+ version = "v1.5.1",
+ )
+ go_repository(
+ name = "com_github_joefitzgerald_rainbow_reporter",
+ importpath = "github.com/joefitzgerald/rainbow-reporter",
+ sum = "h1:AuMG652zjdzI0YCCnXAqATtRBpGXMcAnrajcaTrSeuo=",
+ version = "v0.1.0",
+ )
+
+ go_repository(
name = "com_github_joho_godotenv",
importpath = "github.com/joho/godotenv",
- version = "v1.3.0",
- sum = "h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=",
+ version = "v1.4.0",
)
go_repository(
name = "com_github_jonboulle_clockwork",
importpath = "github.com/jonboulle/clockwork",
- version = "v0.1.0",
- sum = "h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=",
+ version = "v0.2.2",
)
go_repository(
+ name = "com_github_josharian_intern",
+ importpath = "github.com/josharian/intern",
+ sum = "h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_josharian_native",
+ importpath = "github.com/josharian/native",
+ sum = "h1:Ts/E8zCSEsG17dUqv7joXJFybuMLjQfWE04tsBODTxk=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_jpillora_backoff",
+ importpath = "github.com/jpillora/backoff",
+ sum = "h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_jsimonetti_rtnetlink",
+ importpath = "github.com/jsimonetti/rtnetlink",
+ sum = "h1:N527AHMa793TP5z5GNAn/VLPzlc0ewzWdeP/25gDfgQ=",
+ version = "v0.0.0-20211022192332-93da33804786",
+ )
+
+ go_repository(
name = "com_github_json_iterator_go",
importpath = "github.com/json-iterator/go",
- version = "v1.1.10",
- sum = "h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=",
+ version = "v1.1.12",
)
go_repository(
+ name = "com_github_jstemmer_go_junit_report",
+ importpath = "github.com/jstemmer/go-junit-report",
+ sum = "h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=",
+ version = "v0.9.1",
+ )
+ go_repository(
+ name = "com_github_jtolds_gls",
+ importpath = "github.com/jtolds/gls",
+ sum = "h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=",
+ version = "v4.20.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_juju_ratelimit",
+ importpath = "github.com/juju/ratelimit",
+ sum = "h1:+7AIFJVQ0EQgq/K9+0Krm7m530Du7tIz0METWzN0RgY=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_julienschmidt_httprouter",
+ importpath = "github.com/julienschmidt/httprouter",
+ sum = "h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "com_github_jung_kurt_gofpdf",
+ importpath = "github.com/jung-kurt/gofpdf",
+ sum = "h1:PJr+ZMXIecYc1Ey2zucXdR73SMBtgjPgwa31099IMv0=",
+ version = "v1.0.3-0.20190309125859-24315acbbda5",
+ )
+
+ go_repository(
name = "com_github_karrick_godirwalk",
importpath = "github.com/karrick/godirwalk",
- version = "v1.7.5",
- sum = "h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ0M=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=",
+ version = "v1.16.1",
+ )
+
+ go_repository(
+ name = "com_github_kevinburke_ssh_config",
+ importpath = "github.com/kevinburke/ssh_config",
+ sum = "h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY=",
+ version = "v0.0.0-20190725054713-01f96b0aa0cd",
)
go_repository(
- name = "com_github_kevinburke_go_bindata",
- importpath = "github.com/kevinburke/go-bindata",
- version = "v3.16.0+incompatible",
- sum = "h1:TFzFZop2KxGhqNwsyjgmIh5JOrpG940MZlm5gNbxr8g=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_kisielk_errcheck",
+ importpath = "github.com/kisielk/errcheck",
+ sum = "h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=",
+ version = "v1.5.0",
)
go_repository(
+ name = "com_github_kisielk_gotool",
+ importpath = "github.com/kisielk/gotool",
+ sum = "h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_klauspost_compress",
+ importpath = "github.com/klauspost/compress",
+ sum = "h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=",
+ version = "v1.13.6",
+ )
+ go_repository(
+ name = "com_github_klauspost_cpuid",
+ importpath = "github.com/klauspost/cpuid",
+ sum = "h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE=",
+ version = "v1.2.0",
+ )
+
+ go_repository(
+ name = "com_github_knetic_govaluate",
+ importpath = "github.com/Knetic/govaluate",
+ sum = "h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=",
+ version = "v3.0.1-0.20171022003610-9aa49832a739+incompatible",
+ )
+
+ go_repository(
name = "com_github_koneu_natend",
importpath = "github.com/koneu/natend",
- version = "v0.0.0-20150829182554-ec0926ea948d",
sum = "h1:MFX8DxRnKMY/2M3H61iSsVbo/n3h0MWGmWNN1UViOU0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20150829182554-ec0926ea948d",
)
go_repository(
name = "com_github_konsorten_go_windows_terminal_sequences",
importpath = "github.com/konsorten/go-windows-terminal-sequences",
- version = "v1.0.3",
sum = "h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.3",
)
go_repository(
+ name = "com_github_kr_fs",
+ importpath = "github.com/kr/fs",
+ sum = "h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_kr_logfmt",
+ importpath = "github.com/kr/logfmt",
+ sum = "h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=",
+ version = "v0.0.0-20140226030751-b84e30acd515",
+ )
+
+ go_repository(
name = "com_github_kr_pretty",
importpath = "github.com/kr/pretty",
- version = "v0.1.0",
- sum = "h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=",
+ version = "v0.2.1",
)
go_repository(
name = "com_github_kr_pty",
importpath = "github.com/kr/pty",
- version = "v1.1.4-0.20190131011033-7dc38fb350b1",
- sum = "h1:zc0R6cOw98cMengLA0fvU55mqbnN7sd/tBMLzSejp+M=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:AkaSdXYQOWeaO3neb8EM634ahkXXe3jYbVh/F9lq+GI=",
+ version = "v1.1.8",
)
go_repository(
+ name = "com_github_kr_text",
+ importpath = "github.com/kr/text",
+ sum = "h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=",
+ version = "v0.2.0",
+ )
+ go_repository(
+ name = "com_github_kylelemons_godebug",
+ importpath = "github.com/kylelemons/godebug",
+ sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_leodido_go_urn",
+ importpath = "github.com/leodido/go-urn",
+ sum = "h1:Sm1gr51B1kKyfD2BlRcLSiEkffoG96g6TPv6eRoEiB8=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_letsencrypt_pkcs11key_v4",
+ importpath = "github.com/letsencrypt/pkcs11key/v4",
+ sum = "h1:qLc/OznH7xMr5ARJgkZCCWk+EomQkiNTOoOF5LAgagc=",
+ version = "v4.0.0",
+ )
+ go_repository(
+ name = "com_github_lib_pq",
+ importpath = "github.com/lib/pq",
+ sum = "h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg=",
+ version = "v1.8.0",
+ )
+ go_repository(
+ name = "com_github_libopenstorage_openstorage",
+ importpath = "github.com/libopenstorage/openstorage",
+ sum = "h1:GLPam7/0mpdP8ZZtKjbfcXJBTIA/T1O6CBErVEFEyIM=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_liggitt_tabwriter",
importpath = "github.com/liggitt/tabwriter",
- version = "v0.0.0-20181228230101-89fcab3d43de",
sum = "h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20181228230101-89fcab3d43de",
)
go_repository(
+ name = "com_github_lightstep_lightstep_tracer_common_golang_gogo",
+ importpath = "github.com/lightstep/lightstep-tracer-common/golang/gogo",
+ sum = "h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo=",
+ version = "v0.0.0-20190605223551-bc2310a04743",
+ )
+ go_repository(
+ name = "com_github_lightstep_lightstep_tracer_go",
+ importpath = "github.com/lightstep/lightstep-tracer-go",
+ sum = "h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk=",
+ version = "v0.18.1",
+ )
+ go_repository(
+ name = "com_github_linuxkit_virtsock",
+ importpath = "github.com/linuxkit/virtsock",
+ sum = "h1:jUp75lepDg0phMUJBCmvaeFDldD2N3S1lBuPwUTszio=",
+ version = "v0.0.0-20201010232012-f8cee7dfc7a3",
+ )
+
+ go_repository(
name = "com_github_lithammer_dedent",
importpath = "github.com/lithammer/dedent",
- version = "v1.1.0",
sum = "h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.1.0",
)
+
+ go_repository(
+ name = "com_github_lpabon_godbc",
+ importpath = "github.com/lpabon/godbc",
+ sum = "h1:ilqjArN1UOENJJdM34I2YHKmF/B0gGq4VLoSGy9iAao=",
+ version = "v0.1.1",
+ )
+ go_repository(
+ name = "com_github_lucas_clemente_aes12",
+ importpath = "github.com/lucas-clemente/aes12",
+ sum = "h1:sSeNEkJrs+0F9TUau0CgWTTNEwF23HST3Eq0A+QIx+A=",
+ version = "v0.0.0-20171027163421-cd47fb39b79f",
+ )
+ go_repository(
+ name = "com_github_lucas_clemente_quic_clients",
+ importpath = "github.com/lucas-clemente/quic-clients",
+ sum = "h1:/P9n0nICT/GnQJkZovtBqridjxU0ao34m7DpMts79qY=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_lucas_clemente_quic_go",
+ importpath = "github.com/lucas-clemente/quic-go",
+ sum = "h1:iQtTSZVbd44k94Lu0U16lLBIG3lrnjDvQongjPd4B/s=",
+ version = "v0.10.2",
+ )
+ go_repository(
+ name = "com_github_lucas_clemente_quic_go_certificates",
+ importpath = "github.com/lucas-clemente/quic-go-certificates",
+ sum = "h1:zqEC1GJZFbGZA0tRyNZqRjep92K5fujFtFsu5ZW7Aug=",
+ version = "v0.0.0-20160823095156-d2f86524cced",
+ )
+
+ go_repository(
+ name = "com_github_lyft_protoc_gen_validate",
+ importpath = "github.com/lyft/protoc-gen-validate",
+ sum = "h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA=",
+ version = "v0.0.13",
+ )
+
go_repository(
name = "com_github_magiconair_properties",
importpath = "github.com/magiconair/properties",
- version = "v1.8.1",
- sum = "h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls=",
+ version = "v1.8.5",
)
go_repository(
name = "com_github_mailru_easyjson",
importpath = "github.com/mailru/easyjson",
- version = "v0.7.0",
- sum = "h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=",
+ version = "v0.7.7",
)
go_repository(
+ name = "com_github_makenowjust_heredoc",
+ importpath = "github.com/MakeNowJust/heredoc",
+ sum = "h1:sjQovDkwrZp8u+gxLtPgKGjk5hCxuy2hrRejBTA9xFU=",
+ version = "v0.0.0-20170808103936-bb23615498cd",
+ )
+ go_repository(
+ name = "com_github_marstr_guid",
+ importpath = "github.com/marstr/guid",
+ sum = "h1:/M4H/1G4avsieL6BbUwCOBzulmoeKVP5ux/3mQNnbyI=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_marten_seemann_qtls",
+ importpath = "github.com/marten-seemann/qtls",
+ sum = "h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNAI4vA=",
+ version = "v0.2.3",
+ )
+
+ go_repository(
+ name = "com_github_masterminds_goutils",
+ importpath = "github.com/Masterminds/goutils",
+ sum = "h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
+ name = "com_github_masterminds_semver",
+ importpath = "github.com/Masterminds/semver",
+ sum = "h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=",
+ version = "v1.5.0",
+ )
+ go_repository(
+ name = "com_github_masterminds_semver_v3",
+ importpath = "github.com/Masterminds/semver/v3",
+ sum = "h1:Y2lUDsFKVRSYGojLJ1yLxSXdMmMYTYls0rCvoqmMUQk=",
+ version = "v3.1.0",
+ )
+
+ go_repository(
+ name = "com_github_masterminds_sprig",
+ importpath = "github.com/Masterminds/sprig",
+ sum = "h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=",
+ version = "v2.22.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_mattbaird_jsonpatch",
+ importpath = "github.com/mattbaird/jsonpatch",
+ sum = "h1:+J2gw7Bw77w/fbK7wnNJJDKmw1IbWft2Ul5BzrG1Qm8=",
+ version = "v0.0.0-20171005235357-81af80346b1a",
+ )
+
+ go_repository(
name = "com_github_mattn_go_colorable",
importpath = "github.com/mattn/go-colorable",
- version = "v0.0.9",
- sum = "h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=",
+ version = "v0.1.4",
)
go_repository(
+ name = "com_github_mattn_go_ieproxy",
+ importpath = "github.com/mattn/go-ieproxy",
+ sum = "h1:HfxbT6/JcvIljmERptWhwa8XzP7H3T+Z2N26gTsaDaA=",
+ version = "v0.0.0-20190610004146-91bb50d98149",
+ )
+
+ go_repository(
name = "com_github_mattn_go_isatty",
importpath = "github.com/mattn/go-isatty",
- version = "v0.0.4",
- sum = "h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=",
+ version = "v0.0.11",
)
go_repository(
name = "com_github_mattn_go_runewidth",
importpath = "github.com/mattn/go-runewidth",
- version = "v0.0.2",
- sum = "h1:UnlwIPBGaTZfPQ6T1IGzPI0EkYAQmT9fAEJ/poFC63o=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=",
+ version = "v0.0.13",
)
go_repository(
name = "com_github_mattn_go_shellwords",
importpath = "github.com/mattn/go-shellwords",
- version = "v1.0.11",
- sum = "h1:vCoR9VPpsk/TZFW2JwK5I9S0xdrtUq2bph6/YjEPnaw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk=",
+ version = "v1.0.12",
)
go_repository(
+ name = "com_github_mattn_go_zglob",
+ importpath = "github.com/mattn/go-zglob",
+ sum = "h1:xsEx/XUoVlI6yXjqBK062zYhRTZltCNmYPx6v+8DNaY=",
+ version = "v0.0.1",
+ )
+
+ go_repository(
name = "com_github_matttproud_golang_protobuf_extensions",
importpath = "github.com/matttproud/golang_protobuf_extensions",
- version = "v1.0.1",
- sum = "h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=",
+ version = "v1.0.2-0.20181231171920-c182affec369",
)
go_repository(
+ name = "com_github_maxbrunsfeld_counterfeiter_v6",
+ importpath = "github.com/maxbrunsfeld/counterfeiter/v6",
+ sum = "h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE=",
+ version = "v6.2.2",
+ )
+
+ go_repository(
name = "com_github_mdlayher_ethernet",
importpath = "github.com/mdlayher/ethernet",
- version = "v0.0.0-20190606142754-0394541c37b7",
sum = "h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20190606142754-0394541c37b7",
)
go_repository(
+ name = "com_github_mdlayher_ethtool",
+ importpath = "github.com/mdlayher/ethtool",
+ sum = "h1:tHdB+hQRHU10CfcK0furo6rSNgZ38JT8uPh70c/pFD8=",
+ version = "v0.0.0-20211028163843-288d040e9d60",
+ )
+
+ go_repository(
name = "com_github_mdlayher_genetlink",
importpath = "github.com/mdlayher/genetlink",
- version = "v1.0.0",
- sum = "h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:4yrIkRV5Wfk1WfpWTcoOlGmsWgQj3OtQN9ZsbrE+XtU=",
+ version = "v1.2.0",
)
go_repository(
name = "com_github_mdlayher_netlink",
importpath = "github.com/mdlayher/netlink",
- version = "v1.1.0",
- sum = "h1:mpdLgm+brq10nI9zM1BpX1kpDbh3NLl3RSnVq6ZSkfg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:rOHX5yl7qnlpiVkFWoqccueppMtXzeziFjWAjLg6sz0=",
+ version = "v1.6.0",
)
go_repository(
+ name = "com_github_mdlayher_packet",
+ importpath = "github.com/mdlayher/packet",
+ sum = "h1:elUwhY+HQaIV9kMgmsU9zOF413pDKoo2uFNypgP5SxM=",
+ version = "v0.0.0-20220221164757-67998ac0ff93",
+ )
+
+ go_repository(
name = "com_github_mdlayher_raw",
importpath = "github.com/mdlayher/raw",
- version = "v0.0.0-20191009151244-50f2db8cc065",
- sum = "h1:aFkJ6lx4FPip+S+Uw4aTegFMct9shDvP+79PsSxpm3w=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:K4PFMVy+AFsp0Zdlrts7yNhxc/uXoPVHi9RzRvtZF2Y=",
+ version = "v0.1.0",
)
go_repository(
+ name = "com_github_mdlayher_socket",
+ importpath = "github.com/mdlayher/socket",
+ sum = "h1:F2aaOwb53VsBE+ebRS9bLd7yPOfYUMC8lOODdCBDY6w=",
+ version = "v0.2.1",
+ )
+
+ go_repository(
+ name = "com_github_mgutz_ansi",
+ importpath = "github.com/mgutz/ansi",
+ sum = "h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=",
+ version = "v0.0.0-20170206155736-9520e82c474b",
+ )
+ go_repository(
+ name = "com_github_mholt_certmagic",
+ importpath = "github.com/mholt/certmagic",
+ sum = "h1:xKE9kZ5C8gelJC3+BNM6LJs1x21rivK7yxfTZMAuY2s=",
+ version = "v0.6.2-0.20190624175158-6a42ef9fe8c2",
+ )
+
+ go_repository(
+ name = "com_github_mibk_dupl",
+ importpath = "github.com/mibk/dupl",
+ sum = "h1:aZc3jqrF9n0tUHwHt/+jsRxA8cRgA0Gdl56M7W7PoqE=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
+ name = "com_github_microsoft_go_winio",
+ importpath = "github.com/Microsoft/go-winio",
+ sum = "h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=",
+ version = "v0.5.1",
+ )
+ go_repository(
+ name = "com_github_microsoft_hcsshim",
+ build_file_proto_mode = "disable",
+ importpath = "github.com/Microsoft/hcsshim",
+ sum = "h1:wB06W5aYFfUB3IvootYAY2WnOmIdgPGfqSI6tufQNnY=",
+ version = "v0.9.2",
+ )
+ go_repository(
+ name = "com_github_microsoft_hcsshim_test",
+ importpath = "github.com/Microsoft/hcsshim/test",
+ sum = "h1:4FA+QBaydEHlwxg0lMN3rhwoDaQy6LKhVWR4qvq4BuA=",
+ version = "v0.0.0-20210227013316-43a75bb4edd3",
+ )
+
+ go_repository(
name = "com_github_miekg_dns",
importpath = "github.com/miekg/dns",
- version = "v1.1.29",
- sum = "h1:xHBEhR+t5RzcFJjBLJlax2daXOrTYtr9z4WdKEfWFzg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:uzwpxRtSVxtcIZmz/4Uz6/Rn7G11DvsaslXoy5LxQio=",
+ version = "v1.1.46",
)
go_repository(
+ name = "com_github_miekg_pkcs11",
+ importpath = "github.com/miekg/pkcs11",
+ sum = "h1:iMwmD7I5225wv84WxIG/bmxz9AXjWvTWIbM/TYHvWtw=",
+ version = "v1.0.3",
+ )
+ go_repository(
+ name = "com_github_mikioh_ipaddr",
+ importpath = "github.com/mikioh/ipaddr",
+ sum = "h1:RlZweED6sbSArvlE924+mUcZuXKLBHA35U7LN621Bws=",
+ version = "v0.0.0-20190404000644-d465c8ab6721",
+ )
+
+ go_repository(
name = "com_github_mindprince_gonvml",
importpath = "github.com/mindprince/gonvml",
- version = "v0.0.0-20190828220739-9ebdce4bb989",
sum = "h1:PS1dLCGtD8bb9RPKJrc8bS7qHL6JnW1CZvwzH9dPoUs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20190828220739-9ebdce4bb989",
)
go_repository(
name = "com_github_mistifyio_go_zfs",
importpath = "github.com/mistifyio/go-zfs",
- version = "v2.1.2-0.20190413222219-f784269be439+incompatible",
sum = "h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.1.2-0.20190413222219-f784269be439+incompatible",
)
go_repository(
+ name = "com_github_mitchellh_cli",
+ importpath = "github.com/mitchellh/cli",
+ sum = "h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_mitchellh_copystructure",
+ importpath = "github.com/mitchellh/copystructure",
+ sum = "h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_mitchellh_go_homedir",
+ importpath = "github.com/mitchellh/go-homedir",
+ sum = "h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
+ name = "com_github_mitchellh_go_testing_interface",
+ importpath = "github.com/mitchellh/go-testing-interface",
+ sum = "h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_mitchellh_go_wordwrap",
importpath = "github.com/mitchellh/go-wordwrap",
- version = "v1.0.0",
sum = "h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
+ name = "com_github_mitchellh_gox",
+ importpath = "github.com/mitchellh/gox",
+ sum = "h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc=",
+ version = "v0.4.0",
+ )
+ go_repository(
+ name = "com_github_mitchellh_iochan",
+ importpath = "github.com/mitchellh/iochan",
+ sum = "h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_mitchellh_mapstructure",
importpath = "github.com/mitchellh/mapstructure",
- version = "v1.1.2",
- sum = "h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=",
+ version = "v1.4.1",
)
go_repository(
+ name = "com_github_mitchellh_osext",
+ importpath = "github.com/mitchellh/osext",
+ sum = "h1:2+myh5ml7lgEU/51gbeLHfKGNfgEQQIWrlbdaOsidbQ=",
+ version = "v0.0.0-20151018003038-5e2d6d41470f",
+ )
+ go_repository(
+ name = "com_github_mitchellh_reflectwalk",
+ importpath = "github.com/mitchellh/reflectwalk",
+ sum = "h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_moby_ipvs",
+ importpath = "github.com/moby/ipvs",
+ sum = "h1:aoZ7fhLTXgDbzVrAnvV+XbKOU8kOET7B3+xULDF/1o0=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_moby_locker",
+ importpath = "github.com/moby/locker",
+ sum = "h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=",
+ version = "v1.0.1",
+ )
+ go_repository(
+ name = "com_github_moby_spdystream",
+ importpath = "github.com/moby/spdystream",
+ sum = "h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_moby_sys_mountinfo",
importpath = "github.com/moby/sys/mountinfo",
- version = "v0.1.3",
- sum = "h1:KIrhRO14+AkwKvG/g2yIpNMOUVZ02xNhOw8KY1WsLOI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI=",
+ version = "v0.5.0",
)
go_repository(
+ name = "com_github_moby_sys_signal",
+ importpath = "github.com/moby/sys/signal",
+ sum = "h1:aDpY94H8VlhTGa9sNYUFCFsMZIUh5wm0B6XkIoJj/iY=",
+ version = "v0.6.0",
+ )
+ go_repository(
+ name = "com_github_moby_sys_symlink",
+ importpath = "github.com/moby/sys/symlink",
+ sum = "h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_moby_term",
importpath = "github.com/moby/term",
- version = "v0.0.0-20200312100748-672ec06f55cd",
- sum = "h1:aY7OQNf2XqY/JQ6qREWamhI/81os/agb2BAGpcx5yWI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc=",
+ version = "v0.0.0-20210619224110-3f7ff695adc6",
)
go_repository(
name = "com_github_modern_go_concurrent",
importpath = "github.com/modern-go/concurrent",
- version = "v0.0.0-20180306012644-bacd9c7ef1dd",
sum = "h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20180306012644-bacd9c7ef1dd",
)
go_repository(
name = "com_github_modern_go_reflect2",
importpath = "github.com/modern-go/reflect2",
- version = "v1.0.1",
- sum = "h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=",
+ version = "v1.0.2",
)
go_repository(
name = "com_github_mohae_deepcopy",
importpath = "github.com/mohae/deepcopy",
- version = "v0.0.0-20170308212314-bb9b5e7adda9",
- sum = "h1:Sha2bQdoWE5YQPTlJOL31rmce94/tYi113SlFo1xQ2c=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=",
+ version = "v0.0.0-20170929034955-c48cc78d4826",
)
go_repository(
+ name = "com_github_monochromegane_go_gitignore",
+ importpath = "github.com/monochromegane/go-gitignore",
+ sum = "h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=",
+ version = "v0.0.0-20200626010858-205db1a8cc00",
+ )
+
+ go_repository(
name = "com_github_morikuni_aec",
importpath = "github.com/morikuni/aec",
- version = "v1.0.0",
sum = "h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
+
go_repository(
name = "com_github_mrunalp_fileutils",
importpath = "github.com/mrunalp/fileutils",
- version = "v0.0.0-20200520151820-abd8a0e76976",
- sum = "h1:aZQToFSLH8ejFeSkTc3r3L4dPImcj7Ib/KgmkQqbGGg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=",
+ version = "v0.5.0",
)
go_repository(
name = "com_github_muesli_reflow",
importpath = "github.com/muesli/reflow",
- version = "v0.0.0-20191128061954-86f094cbed14",
sum = "h1:99aDTygRy9yEwggATz+ZLrDFRsjRog5BqbAfsr47Ztw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20191128061954-86f094cbed14",
)
+
go_repository(
name = "com_github_munnerz_goautoneg",
importpath = "github.com/munnerz/goautoneg",
- version = "v0.0.0-20191010083416-a7dc8b61c822",
sum = "h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20191010083416-a7dc8b61c822",
)
go_repository(
+ name = "com_github_mvdan_xurls",
+ importpath = "github.com/mvdan/xurls",
+ sum = "h1:OpuDelGQ1R1ueQ6sSryzi6P+1RtBpfQHM8fJwlE45ww=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_mwitkow_go_conntrack",
+ importpath = "github.com/mwitkow/go-conntrack",
+ sum = "h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=",
+ version = "v0.0.0-20190716064945-2f068394615f",
+ )
+ go_repository(
+ name = "com_github_mwitkow_go_proto_validators",
+ importpath = "github.com/mwitkow/go-proto-validators",
+ replace = "github.com/mwitkow/go-proto-validators",
+ sum = "h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos=",
+ version = "v0.3.2",
+ )
+
+ go_repository(
name = "com_github_mxk_go_flowrate",
importpath = "github.com/mxk/go-flowrate",
- version = "v0.0.0-20140419014527-cca7078d478f",
sum = "h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20140419014527-cca7078d478f",
)
go_repository(
+ name = "com_github_naoina_go_stringutil",
+ importpath = "github.com/naoina/go-stringutil",
+ sum = "h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_naoina_toml",
+ importpath = "github.com/naoina/toml",
+ sum = "h1:PT/lllxVVN0gzzSqSlHEmP8MJB4MY2U7STGxiouV4X8=",
+ version = "v0.1.1",
+ )
+
+ go_repository(
+ name = "com_github_nats_io_jwt",
+ importpath = "github.com/nats-io/jwt",
+ sum = "h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI=",
+ version = "v0.3.2",
+ )
+ go_repository(
+ name = "com_github_nats_io_nats_go",
+ importpath = "github.com/nats-io/nats.go",
+ sum = "h1:ik3HbLhZ0YABLto7iX80pZLPw/6dx3T+++MZJwLnMrQ=",
+ version = "v1.9.1",
+ )
+ go_repository(
+ name = "com_github_nats_io_nats_server_v2",
+ importpath = "github.com/nats-io/nats-server/v2",
+ sum = "h1:i2Ly0B+1+rzNZHHWtD4ZwKi+OU5l+uQo1iDHZ2PmiIc=",
+ version = "v2.1.2",
+ )
+ go_repository(
+ name = "com_github_nats_io_nkeys",
+ importpath = "github.com/nats-io/nkeys",
+ sum = "h1:6JrEfig+HzTH85yxzhSVbjHRJv9cn0p6n3IngIcM5/k=",
+ version = "v0.1.3",
+ )
+ go_repository(
+ name = "com_github_nats_io_nuid",
+ importpath = "github.com/nats-io/nuid",
+ sum = "h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=",
+ version = "v1.0.1",
+ )
+
+ go_repository(
+ name = "com_github_ncw_swift",
+ importpath = "github.com/ncw/swift",
+ sum = "h1:4DQRPj35Y41WogBxyhOXlrI37nzGlyEcsforeudyYPQ=",
+ version = "v1.0.47",
+ )
+ go_repository(
+ name = "com_github_niemeyer_pretty",
+ importpath = "github.com/niemeyer/pretty",
+ sum = "h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=",
+ version = "v0.0.0-20200227124842-a10e7caefd8e",
+ )
+ go_repository(
+ name = "com_github_nishanths_predeclared",
+ importpath = "github.com/nishanths/predeclared",
+ sum = "h1:3f0nxAmdj/VoCGN/ijdMy7bj6SBagaqYg1B0hu8clMA=",
+ version = "v0.0.0-20200524104333-86fad755b4d3",
+ )
+ go_repository(
+ name = "com_github_nxadm_tail",
+ importpath = "github.com/nxadm/tail",
+ sum = "h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=",
+ version = "v1.4.4",
+ )
+
+ go_repository(
+ name = "com_github_nytimes_gziphandler",
+ importpath = "github.com/NYTimes/gziphandler",
+ sum = "h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=",
+ version = "v1.1.1",
+ )
+ go_repository(
+ name = "com_github_oklog_oklog",
+ importpath = "github.com/oklog/oklog",
+ sum = "h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk=",
+ version = "v0.3.2",
+ )
+ go_repository(
+ name = "com_github_oklog_run",
+ importpath = "github.com/oklog/run",
+ sum = "h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_oklog_ulid",
+ importpath = "github.com/oklog/ulid",
+ sum = "h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=",
+ version = "v1.3.1",
+ )
+
+ go_repository(
name = "com_github_olekukonko_tablewriter",
importpath = "github.com/olekukonko/tablewriter",
- version = "v0.0.0-20170122224234-a0225b3f23b5",
- sum = "h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=",
+ version = "v0.0.5",
)
go_repository(
+ name = "com_github_oneofone_xxhash",
+ importpath = "github.com/OneOfOne/xxhash",
+ sum = "h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=",
+ version = "v1.2.2",
+ )
+
+ go_repository(
name = "com_github_onsi_ginkgo",
importpath = "github.com/onsi/ginkgo",
- version = "v1.11.0",
- sum = "h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "github.com/onsi/ginkgo",
+ sum = "h1:8mVmC9kjFFmA8H4pKMUhcblgifdkOIXPvbhN1T36q1M=",
+ version = "v1.14.2",
)
go_repository(
name = "com_github_onsi_gomega",
importpath = "github.com/onsi/gomega",
- version = "v1.7.0",
- sum = "h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c=",
+ version = "v1.16.0",
)
go_repository(
+ name = "com_github_op_go_logging",
+ importpath = "github.com/op/go-logging",
+ sum = "h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88=",
+ version = "v0.0.0-20160315200505-970db520ece7",
+ )
+
+ go_repository(
name = "com_github_opencontainers_go_digest",
importpath = "github.com/opencontainers/go-digest",
- version = "v1.0.0",
sum = "h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
name = "com_github_opencontainers_image_spec",
importpath = "github.com/opencontainers/image-spec",
- version = "v1.0.1",
- sum = "h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=",
+ version = "v1.0.2",
)
go_repository(
name = "com_github_opencontainers_runc",
+ build_tags = ["seccomp"], #keep
importpath = "github.com/opencontainers/runc",
- version = "v1.0.0-rc92",
- sum = "h1:+IczUKCRzDzFDnw99O/PAqrcBBCoRp9xN3cB1SYSNS4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:runc-add-cdeps.patch",
],
+ sum = "h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8=",
+ version = "v1.1.0",
)
go_repository(
name = "com_github_opencontainers_runtime_spec",
importpath = "github.com/opencontainers/runtime-spec",
- version = "v1.0.3-0.20200728170252-4d89ac9fbff6",
- sum = "h1:NhsM2gc769rVWDqJvapK37r+7+CBXI8xHhnfnt8uQsg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:9iT75RHhYHWwWRlVWU7wnmtFulYcURCglzQOpT+cAF8=",
+ version = "v1.0.3-0.20211123151946-c2389c3cb60a",
)
go_repository(
+ name = "com_github_opencontainers_runtime_tools",
+ importpath = "github.com/opencontainers/runtime-tools",
+ sum = "h1:H7DMc6FAjgwZZi8BRqjrAAHWoqEr5e5L6pS4V0ezet4=",
+ version = "v0.0.0-20181011054405-1d69bd0f9c39",
+ )
+
+ go_repository(
name = "com_github_opencontainers_selinux",
importpath = "github.com/opencontainers/selinux",
- version = "v1.6.0",
- sum = "h1:+bIAS/Za3q5FTwWym4fTB0vObnfCf3G/NC7K6Jx62mY=",
- build_tags = [
- "selinux",
- ],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:rAiKF8hTcgLI3w0DHm6i0ylVVcOrlgR1kK99DRLDhyU=",
+ version = "v1.10.0",
)
+
+ go_repository(
+ name = "com_github_opentracing_basictracer_go",
+ importpath = "github.com/opentracing/basictracer-go",
+ sum = "h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_opentracing_contrib_go_observer",
+ importpath = "github.com/opentracing-contrib/go-observer",
+ sum = "h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU=",
+ version = "v0.0.0-20170622124052-a52f23424492",
+ )
+
go_repository(
name = "com_github_opentracing_opentracing_go",
importpath = "github.com/opentracing/opentracing-go",
- version = "v1.1.0",
- sum = "h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=",
+ version = "v1.2.0",
)
go_repository(
+ name = "com_github_openzipkin_contrib_zipkin_go_opentracing",
+ importpath = "github.com/openzipkin-contrib/zipkin-go-opentracing",
+ sum = "h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU=",
+ version = "v0.4.5",
+ )
+ go_repository(
+ name = "com_github_openzipkin_zipkin_go",
+ importpath = "github.com/openzipkin/zipkin-go",
+ sum = "h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw=",
+ version = "v0.4.0",
+ )
+ go_repository(
+ name = "com_github_oschwald_geoip2_golang",
+ importpath = "github.com/oschwald/geoip2-golang",
+ sum = "h1:GKxT3yaWWNXSb7vj6D7eoJBns+lGYgx08QO0UcNm0YY=",
+ version = "v1.6.1",
+ )
+ go_repository(
+ name = "com_github_oschwald_maxminddb_golang",
+ importpath = "github.com/oschwald/maxminddb-golang",
+ sum = "h1:Uh/DSnGoxsyp/KYbY1AuP0tYEwfs0sCph9p/UMXK/Hk=",
+ version = "v1.8.0",
+ )
+ go_repository(
+ name = "com_github_otiai10_copy",
+ importpath = "github.com/otiai10/copy",
+ sum = "h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_otiai10_curr",
+ importpath = "github.com/otiai10/curr",
+ sum = "h1:TJIWdbX0B+kpNagQrjgq8bCMrbhiuX73M2XwgtDMoOI=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_otiai10_mint",
+ importpath = "github.com/otiai10/mint",
+ sum = "h1:BCmzIS3n71sGfHB5NMNDB3lHYPz8fWSkCAErHed//qc=",
+ version = "v1.3.1",
+ )
+ go_repository(
+ name = "com_github_pact_foundation_pact_go",
+ importpath = "github.com/pact-foundation/pact-go",
+ sum = "h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q=",
+ version = "v1.0.4",
+ )
+ go_repository(
+ name = "com_github_pascaldekloe_goe",
+ importpath = "github.com/pascaldekloe/goe",
+ sum = "h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs=",
+ version = "v0.0.0-20180627143212-57f6aae5913c",
+ )
+ go_repository(
+ name = "com_github_pborman_uuid",
+ importpath = "github.com/pborman/uuid",
+ sum = "h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_pelletier_go_buffruneio",
+ importpath = "github.com/pelletier/go-buffruneio",
+ sum = "h1:U4t4R6YkofJ5xHm3dJzuRpPZ0mr5MMCoAWooScCR7aA=",
+ version = "v0.2.0",
+ )
+ go_repository(
+ name = "com_github_pelletier_go_toml",
+ importpath = "github.com/pelletier/go-toml",
+ sum = "h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM=",
+ version = "v1.9.4",
+ )
+ go_repository(
+ name = "com_github_performancecopilot_speed",
+ importpath = "github.com/performancecopilot/speed",
+ sum = "h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg=",
+ version = "v3.0.0+incompatible",
+ )
+
+ go_repository(
name = "com_github_peterbourgon_diskv",
importpath = "github.com/peterbourgon/diskv",
- version = "v2.0.1+incompatible",
sum = "h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.0.1+incompatible",
)
+
go_repository(
- name = "com_github_peterh_liner",
- importpath = "github.com/peterh/liner",
- version = "v0.0.0-20170317030525-88609521dc4b",
- sum = "h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_philhofer_fwd",
+ importpath = "github.com/philhofer/fwd",
+ sum = "h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ=",
+ version = "v1.1.1",
)
+
go_repository(
name = "com_github_pierrec_lz4",
importpath = "github.com/pierrec/lz4",
- version = "v2.3.0+incompatible",
- sum = "h1:CZzRn4Ut9GbUkHlQ7jqBXeZQV41ZSKWFc302ZU6lUTk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=",
+ version = "v2.6.1+incompatible",
)
go_repository(
name = "com_github_pierrec_lz4_v4",
importpath = "github.com/pierrec/lz4/v4",
- version = "v4.1.12",
- sum = "h1:44l88ehTZAUGW4VlO1QC4zkilL99M6Y9MXNwEs0uzP8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:+fL8AQEZtz/ijeNnpduH0bROTu0O3NZAlPjQxGn8LwE=",
+ version = "v4.1.14",
)
go_repository(
name = "com_github_pkg_errors",
importpath = "github.com/pkg/errors",
- version = "v0.9.1",
sum = "h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.9.1",
)
go_repository(
+ name = "com_github_pkg_profile",
+ importpath = "github.com/pkg/profile",
+ sum = "h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE=",
+ version = "v1.2.1",
+ )
+ go_repository(
+ name = "com_github_pkg_sftp",
+ importpath = "github.com/pkg/sftp",
+ sum = "h1:VasscCm72135zRysgrJDKsntdmPN+OuU3+nnHYA9wyc=",
+ version = "v1.10.1",
+ )
+
+ go_repository(
name = "com_github_pkg_xattr",
importpath = "github.com/pkg/xattr",
- version = "v0.4.1",
sum = "h1:dhclzL6EqOXNaPDWqoeb9tIxATfBSmjqL0b4DpSjwRw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.4.1",
)
go_repository(
+ name = "com_github_pmezard_go_difflib",
+ importpath = "github.com/pmezard/go-difflib",
+ sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_posener_complete",
+ importpath = "github.com/posener/complete",
+ sum = "h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w=",
+ version = "v1.1.1",
+ )
+
+ go_repository(
name = "com_github_pquerna_cachecontrol",
importpath = "github.com/pquerna/cachecontrol",
- version = "v0.0.0-20171018203845-0dec1b30a021",
sum = "h1:0XM1XL/OFFJjXsYXlG30spTkV/E9+gmd5GD1w2HE8xM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20171018203845-0dec1b30a021",
)
+
go_repository(
name = "com_github_prometheus_client_golang",
importpath = "github.com/prometheus/client_golang",
- version = "v1.6.0",
- sum = "h1:YVPodQOcK15POxhgARIvnDRVpLcuK8mglnMrWfyrw6A=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk=",
+ version = "v1.12.1",
)
go_repository(
name = "com_github_prometheus_client_model",
importpath = "github.com/prometheus/client_model",
- version = "v0.2.0",
sum = "h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.2.0",
)
go_repository(
name = "com_github_prometheus_common",
importpath = "github.com/prometheus/common",
- version = "v0.9.1",
- sum = "h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=",
+ version = "v0.32.1",
)
go_repository(
name = "com_github_prometheus_procfs",
importpath = "github.com/prometheus/procfs",
- version = "v0.0.11",
- sum = "h1:DhHlBtkHWPYi8O2y31JkK0TF+DGM+51OopZjH/Ia5qI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=",
+ version = "v0.7.3",
)
go_repository(
+ name = "com_github_prometheus_tsdb",
+ importpath = "github.com/prometheus/tsdb",
+ sum = "h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA=",
+ version = "v0.7.1",
+ )
+
+ go_repository(
name = "com_github_pseudomuto_protoc_gen_doc",
+ build_directives = [
+ "gazelle:resolve go github.com/mwitkow/go-proto-validators @com_github_mwitkow_go_proto_validators//:validators_golang",
+ ],
importpath = "github.com/pseudomuto/protoc-gen-doc",
- version = "v1.5.0",
- sum = "h1:pHZp0MEiT68jrZV8js8BS7E9ZEnlSLegoQbbtXj5lfo=",
- patches = [
+ patch_args = ["-p1"],
+ pre_patches = [
"//third_party/go/patches:protoc-gen-doc-no-gogo.patch",
],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:pHZp0MEiT68jrZV8js8BS7E9ZEnlSLegoQbbtXj5lfo=",
+ version = "v1.5.0",
)
go_repository(
name = "com_github_pseudomuto_protokit",
- importpath = "github.com/pseudomuto/protokit",
- version = "v0.2.0",
- sum = "h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "github.com/pseudomuto/protokit",
+ sum = "h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM=",
+ version = "v0.2.0",
)
go_repository(
+ name = "com_github_puerkitobio_purell",
+ importpath = "github.com/PuerkitoBio/purell",
+ sum = "h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=",
+ version = "v1.1.1",
+ )
+ go_repository(
+ name = "com_github_puerkitobio_urlesc",
+ importpath = "github.com/PuerkitoBio/urlesc",
+ sum = "h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=",
+ version = "v0.0.0-20170810143723-de5bf2ad4578",
+ )
+
+ go_repository(
+ name = "com_github_quobyte_api",
+ importpath = "github.com/quobyte/api",
+ sum = "h1:+sOX1gIlC/OaLipqVZWrHgly9Kh9Qo8OygeS0mWAg30=",
+ version = "v0.1.8",
+ )
+ go_repository(
+ name = "com_github_rabbitmq_amqp091_go",
+ importpath = "github.com/rabbitmq/amqp091-go",
+ sum = "h1:qx8cGMJha71/5t31Z+LdPLdPrkj/BvD38cqC3Bi1pNI=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_rcrowley_go_metrics",
+ importpath = "github.com/rcrowley/go-metrics",
+ sum = "h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=",
+ version = "v0.0.0-20201227073835-cf1acfcdf475",
+ )
+
+ go_repository(
name = "com_github_rekby_gpt",
importpath = "github.com/rekby/gpt",
- version = "v0.0.0-20200219180433-a930afbc6edc",
- sum = "h1:goZGTwEEn8mWLcY012VouWZWkJ8GrXm9tS3VORMxT90=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:U4d0m0NdADC5sjaWXeZpDZ/TFvE866u1Js5yP3M3mho=",
+ version = "v0.0.0-20200614112001-7da10aec5566",
)
go_repository(
+ name = "com_github_remyoudompheng_bigfft",
+ importpath = "github.com/remyoudompheng/bigfft",
+ sum = "h1:/NRJ5vAYoqz+7sG51ubIDHXeWO8DlTSrToPu6q11ziA=",
+ version = "v0.0.0-20170806203942-52369c62f446",
+ )
+
+ go_repository(
+ name = "com_github_rivo_uniseg",
+ importpath = "github.com/rivo/uniseg",
+ sum = "h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_robfig_cron",
importpath = "github.com/robfig/cron",
- version = "v1.1.0",
sum = "h1:jk4/Hud3TTdcrJgUOBgsqrZBarcxl6ADIjSC2iniwLY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.1.0",
)
go_repository(
+ name = "com_github_robfig_cron_v3",
+ importpath = "github.com/robfig/cron/v3",
+ sum = "h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=",
+ version = "v3.0.1",
+ )
+ go_repository(
+ name = "com_github_rogpeppe_fastuuid",
+ importpath = "github.com/rogpeppe/fastuuid",
+ sum = "h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_rogpeppe_go_internal",
+ importpath = "github.com/rogpeppe/go-internal",
+ sum = "h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "com_github_rs_cors",
+ importpath = "github.com/rs/cors",
+ sum = "h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so=",
+ version = "v1.8.0",
+ )
+ go_repository(
+ name = "com_github_rubiojr_go_vhd",
+ importpath = "github.com/rubiojr/go-vhd",
+ sum = "h1:if3/24+h9Sq6eDx8UUz1SO9cT9tizyIsATfB7b4D3tc=",
+ version = "v0.0.0-20200706105327-02e210299021",
+ )
+
+ go_repository(
name = "com_github_russross_blackfriday",
importpath = "github.com/russross/blackfriday",
- version = "v1.5.2",
sum = "h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.5.2",
)
go_repository(
name = "com_github_russross_blackfriday_v2",
importpath = "github.com/russross/blackfriday/v2",
- version = "v2.0.1",
- sum = "h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=",
+ version = "v2.1.0",
)
go_repository(
+ name = "com_github_ryanuber_columnize",
+ importpath = "github.com/ryanuber/columnize",
+ sum = "h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M=",
+ version = "v0.0.0-20160712163229-9b3edd62028f",
+ )
+
+ go_repository(
name = "com_github_safchain_ethtool",
importpath = "github.com/safchain/ethtool",
- version = "v0.0.0-20190326074333-42ed695e3de8",
- sum = "h1:2c1EFnZHIPCW8qKWgHMH/fX2PkSabFc5mrVzfUNdg5U=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:ZFfeKAhIQiiOrQaI3/znw0gOmYpO28Tcu1YaqMa/jtQ=",
+ version = "v0.0.0-20210803160452-9aa261dae9b1",
)
go_repository(
+ name = "com_github_samuel_go_zookeeper",
+ importpath = "github.com/samuel/go-zookeeper",
+ sum = "h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU=",
+ version = "v0.0.0-20190923202752-2cc03de413da",
+ )
+ go_repository(
+ name = "com_github_sassoftware_go_rpmutils",
+ importpath = "github.com/sassoftware/go-rpmutils",
+ sum = "h1:+gCnWOZV8Z/8jehJ2CdqB47Z3S+SREmQcuXkRFLNsiI=",
+ version = "v0.0.0-20190420191620-a8f1baeba37b",
+ )
+ go_repository(
+ name = "com_github_satori_go_uuid",
+ importpath = "github.com/satori/go.uuid",
+ sum = "h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=",
+ version = "v1.2.0",
+ )
+
+ go_repository(
name = "com_github_sbezverk_nfproxy",
importpath = "github.com/sbezverk/nfproxy",
- version = "v0.0.0-20200514180651-7fac5f39824e",
- sum = "h1:fJ2lHQ7ZUjmgJbvVQ509ioBmrGHcbvlwfjUieExw/dU=",
- patches = [
- "//third_party/go/patches:nfproxy.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:nlKDckTP5mXfdpUST7l4cU6fGzMlkv/CVg+EVOsClS8=",
+ version = "v0.0.0-20210112155058-0d98b4a69f0c",
)
go_repository(
name = "com_github_sbezverk_nftableslib",
importpath = "github.com/sbezverk/nftableslib",
- version = "v0.0.0-20200402150358-c20bed91f482",
- sum = "h1:k7gEZ/EwJhHDTRXFUZQlE4/p1cmoha7zL7PWCDG3ZHQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Zi8wDJAUmUYqWX6A9ma84xOhFvwR7O10K7pvISM+SvM=",
+ version = "v0.0.0-20210111145735-b08b2d804e1f",
)
go_repository(
+ name = "com_github_sbezverk_nftableslib_e2e_setenv",
+ importpath = "github.com/sbezverk/nftableslib/e2e/setenv",
+ sum = "h1:/8S2Bo/8GZhXJBEf9yywFO2NlVzwH1jNdu4UIk48SCs=",
+ version = "v0.0.0-20191010164456-029e0d78cdb1",
+ )
+
+ go_repository(
+ name = "com_github_sclevine_spec",
+ importpath = "github.com/sclevine/spec",
+ sum = "h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_sean_seed",
+ importpath = "github.com/sean-/seed",
+ sum = "h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=",
+ version = "v0.0.0-20170313163322-e2103e2c3529",
+ )
+ go_repository(
+ name = "com_github_seccomp_libseccomp_golang",
+ importpath = "github.com/seccomp/libseccomp-golang",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:libseccomp.patch",
+ ],
+ sum = "h1:58EBmR2dMNL2n/FnbQewK3D14nXr0V9CObDSvMJLq+Y=",
+ version = "v0.9.2-0.20210429002308-3879420cc921",
+ )
+ go_repository(
+ name = "com_github_sergi_go_diff",
+ importpath = "github.com/sergi/go-diff",
+ sum = "h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=",
+ version = "v1.2.0",
+ )
+
+ go_repository(
+ name = "com_github_shopify_logrus_bugsnag",
+ importpath = "github.com/Shopify/logrus-bugsnag",
+ sum = "h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=",
+ version = "v0.0.0-20171204204709-577dee27f20d",
+ )
+ go_repository(
+ name = "com_github_shopify_sarama",
+ importpath = "github.com/Shopify/sarama",
+ sum = "h1:TOZL6r37xJBDEMLx4yjB77jxbZYXPaDow08TSK6vIL0=",
+ version = "v1.30.0",
+ )
+ go_repository(
+ name = "com_github_shopify_toxiproxy",
+ importpath = "github.com/Shopify/toxiproxy",
+ sum = "h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=",
+ version = "v2.1.4+incompatible",
+ )
+ go_repository(
+ name = "com_github_shopify_toxiproxy_v2",
+ importpath = "github.com/Shopify/toxiproxy/v2",
+ sum = "h1:ePgznFqEG1v3AjMklnK8H7BSc++FDSo7xfK9K7Af+0Y=",
+ version = "v2.1.6-0.20210914104332-15ea381dcdae",
+ )
+
+ go_repository(
name = "com_github_shurcool_sanitized_anchor_name",
importpath = "github.com/shurcooL/sanitized_anchor_name",
- version = "v1.0.0",
sum = "h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0",
)
go_repository(
name = "com_github_sirupsen_logrus",
importpath = "github.com/sirupsen/logrus",
- version = "v1.6.0",
- sum = "h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=",
+ version = "v1.8.1",
)
go_repository(
+ name = "com_github_smartystreets_assertions",
+ importpath = "github.com/smartystreets/assertions",
+ sum = "h1:MkTeG1DMwsrdH7QtLXy5W+fUxWq+vmb6cLmyJ7aRtF0=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "com_github_smartystreets_go_aws_auth",
+ importpath = "github.com/smartystreets/go-aws-auth",
+ sum = "h1:hp2CYQUINdZMHdvTdXtPOY2ainKl4IoMcpAXEf2xj3Q=",
+ version = "v0.0.0-20180515143844-0c1422d1fdb9",
+ )
+ go_repository(
+ name = "com_github_smartystreets_goconvey",
+ importpath = "github.com/smartystreets/goconvey",
+ sum = "h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=",
+ version = "v1.6.4",
+ )
+ go_repository(
+ name = "com_github_smartystreets_gunit",
+ importpath = "github.com/smartystreets/gunit",
+ sum = "h1:RyPDUFcJbvtXlhJPk7v+wnxZRY2EUokhEYl2EJOPToI=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "com_github_soheilhy_cmux",
importpath = "github.com/soheilhy/cmux",
- version = "v0.1.4",
- sum = "h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js=",
+ version = "v0.1.5",
)
go_repository(
+ name = "com_github_sony_gobreaker",
+ importpath = "github.com/sony/gobreaker",
+ sum = "h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ=",
+ version = "v0.4.1",
+ )
+
+ go_repository(
+ name = "com_github_spaolacci_murmur3",
+ importpath = "github.com/spaolacci/murmur3",
+ sum = "h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=",
+ version = "v0.0.0-20180118202830-f09979ecbc72",
+ )
+
+ go_repository(
name = "com_github_spf13_afero",
importpath = "github.com/spf13/afero",
- version = "v1.2.2",
- sum = "h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=",
+ version = "v1.6.0",
)
go_repository(
name = "com_github_spf13_cast",
importpath = "github.com/spf13/cast",
- version = "v1.3.0",
- sum = "h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=",
+ version = "v1.3.1",
)
go_repository(
name = "com_github_spf13_cobra",
importpath = "github.com/spf13/cobra",
- version = "v1.2.1",
- sum = "h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=",
+ version = "v1.4.0",
)
go_repository(
name = "com_github_spf13_jwalterweatherman",
importpath = "github.com/spf13/jwalterweatherman",
- version = "v1.1.0",
sum = "h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.1.0",
)
go_repository(
name = "com_github_spf13_pflag",
importpath = "github.com/spf13/pflag",
- version = "v1.0.5",
sum = "h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.5",
)
go_repository(
name = "com_github_spf13_viper",
importpath = "github.com/spf13/viper",
- version = "v1.9.0",
- sum = "h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44=",
+ version = "v1.8.1",
)
go_repository(
+ name = "com_github_src_d_gcfg",
+ importpath = "github.com/src-d/gcfg",
+ sum = "h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4=",
+ version = "v1.4.0",
+ )
+
+ go_repository(
+ name = "com_github_stefanberger_go_pkcs11uri",
+ importpath = "github.com/stefanberger/go-pkcs11uri",
+ sum = "h1:lIOOHPEbXzO3vnmx2gok1Tfs31Q8GQqKLc8vVqyQq/I=",
+ version = "v0.0.0-20201008174630-78d3cae3a980",
+ )
+ go_repository(
+ name = "com_github_stoewer_go_strcase",
+ importpath = "github.com/stoewer/go-strcase",
+ sum = "h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=",
+ version = "v1.2.0",
+ )
+ go_repository(
+ name = "com_github_storageos_go_api",
+ importpath = "github.com/storageos/go-api",
+ sum = "h1:U0SablXoZIg06gvSlg8BCdzq1C/SkHVygOVX95Z2MU0=",
+ version = "v2.2.0+incompatible",
+ )
+ go_repository(
+ name = "com_github_streadway_amqp",
+ importpath = "github.com/streadway/amqp",
+ sum = "h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw=",
+ version = "v0.0.0-20190827072141-edfb9018d271",
+ )
+ go_repository(
+ name = "com_github_streadway_handy",
+ importpath = "github.com/streadway/handy",
+ sum = "h1:AhmOdSHeswKHBjhsLs/7+1voOxT+LLrSk/Nxvk35fug=",
+ version = "v0.0.0-20190108123426-d5acb3125c2a",
+ )
+ go_repository(
+ name = "com_github_stretchr_objx",
+ importpath = "github.com/stretchr/objx",
+ sum = "h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_stretchr_testify",
importpath = "github.com/stretchr/testify",
- version = "v1.4.0",
- sum = "h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=",
+ version = "v1.7.0",
)
go_repository(
+ name = "com_github_stripe_safesql",
+ importpath = "github.com/stripe/safesql",
+ sum = "h1:xiefmCDd8c35PVSGrL2FhBiaKxviXnGziBDOpOejeBE=",
+ version = "v0.2.0",
+ )
+
+ go_repository(
name = "com_github_subosito_gotenv",
importpath = "github.com/subosito/gotenv",
- version = "v1.2.0",
sum = "h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0",
)
go_repository(
name = "com_github_syndtr_gocapability",
importpath = "github.com/syndtr/gocapability",
- version = "v0.0.0-20180916011248-d98352740cb2",
- sum = "h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=",
+ version = "v0.0.0-20200815063812-42c35b437635",
)
+
go_repository(
name = "com_github_tchap_go_patricia",
importpath = "github.com/tchap/go-patricia",
- version = "v2.2.6+incompatible",
sum = "h1:JvoDL7JSoIP2HDE8AbDH3zC8QBPxmzYe32HHy5yQ+Ck=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.2.6+incompatible",
)
go_repository(
+ name = "com_github_thecodeteam_goscaleio",
+ importpath = "github.com/thecodeteam/goscaleio",
+ sum = "h1:SB5tO98lawC+UK8ds/U2jyfOCH7GTcFztcF5x9gbut4=",
+ version = "v0.1.0",
+ )
+ go_repository(
+ name = "com_github_tidwall_pretty",
+ importpath = "github.com/tidwall/pretty",
+ sum = "h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
+ name = "com_github_tinylib_msgp",
+ importpath = "github.com/tinylib/msgp",
+ sum = "h1:gWmO7n0Ys2RBEb7GPYB9Ujq8Mk5p2U08lRnmMcGy6BQ=",
+ version = "v1.1.2",
+ )
+ go_repository(
+ name = "com_github_tj_assert",
+ importpath = "github.com/tj/assert",
+ sum = "h1:Rw8kxzWo1mr6FSaYXjQELRe88y2KdfynXdnK72rdjtA=",
+ version = "v0.0.0-20171129193455-018094318fb0",
+ )
+ go_repository(
+ name = "com_github_tj_go_elastic",
+ importpath = "github.com/tj/go-elastic",
+ sum = "h1:eGaGNxrtoZf/mBURsnNQKDR7u50Klgcf2eFDQEnc8Bc=",
+ version = "v0.0.0-20171221160941-36157cbbebc2",
+ )
+ go_repository(
+ name = "com_github_tj_go_kinesis",
+ importpath = "github.com/tj/go-kinesis",
+ sum = "h1:m74UWYy+HBs+jMFR9mdZU6shPewugMyH5+GV6LNgW8w=",
+ version = "v0.0.0-20171128231115-08b17f58cb1b",
+ )
+ go_repository(
+ name = "com_github_tj_go_spin",
+ importpath = "github.com/tj/go-spin",
+ sum = "h1:lhdWZsvImxvZ3q1C5OIB7d72DuOwP4O2NdBg9PyzNds=",
+ version = "v1.1.0",
+ )
+
+ go_repository(
name = "com_github_tmc_grpc_websocket_proxy",
importpath = "github.com/tmc/grpc-websocket-proxy",
- version = "v0.0.0-20190109142713-0ad062ec5ee5",
- sum = "h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:uruHq4dN7GR16kFc5fp3d1RIYzJW5onx8Ybykw2YQFA=",
+ version = "v0.0.0-20201229170055-e5319fda7802",
)
go_repository(
- name = "com_github_u_root_u_root",
- importpath = "github.com/u-root/u-root",
- version = "v7.0.0+incompatible",
- sum = "h1:u+KSS04pSxJGI5E7WE4Bs9+Zd75QjFv+REkjy/aoAc8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_tomasen_realip",
+ importpath = "github.com/tomasen/realip",
+ sum = "h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc=",
+ version = "v0.0.0-20180522021738-f0c99a92ddce",
)
go_repository(
+ name = "com_github_tsenart_deadcode",
+ importpath = "github.com/tsenart/deadcode",
+ sum = "h1:vY5WqiEon0ZSTGM3ayVVi+twaHKHDFUVloaQ/wug9/c=",
+ version = "v0.0.0-20160724212837-210d2dc333e9",
+ )
+ go_repository(
+ name = "com_github_tv42_httpunix",
+ importpath = "github.com/tv42/httpunix",
+ sum = "h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ=",
+ version = "v0.0.0-20191220191345-2ba4b9c3382c",
+ )
+
+ go_repository(
+ name = "com_github_u_root_uio",
+ importpath = "github.com/u-root/uio",
+ sum = "h1:BFvcl34IGnw8yvJi8hlqLFo9EshRInwWBs2M5fGWzQA=",
+ version = "v0.0.0-20210528114334-82958018845c",
+ )
+ go_repository(
+ name = "com_github_ugorji_go",
+ importpath = "github.com/ugorji/go",
+ sum = "h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=",
+ version = "v1.1.7",
+ )
+ go_repository(
+ name = "com_github_ugorji_go_codec",
+ importpath = "github.com/ugorji/go/codec",
+ sum = "h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=",
+ version = "v1.1.7",
+ )
+
+ go_repository(
name = "com_github_ulikunitz_xz",
importpath = "github.com/ulikunitz/xz",
- version = "v0.5.6",
- sum = "h1:jGHAfXawEGZQ3blwU5wnWKQJvAraT7Ftq9EXjnXYgt8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:YvTNdFzX6+W5m9msiYg/zpkSURPPtOlzbqYjrFn7Yt4=",
+ version = "v0.5.7",
)
+
go_repository(
name = "com_github_urfave_cli",
importpath = "github.com/urfave/cli",
- version = "v1.22.1",
- sum = "h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:u7tSpNPPswAFymm8IehJhy4uJMlUuU/GmqSkvJ1InXA=",
+ version = "v1.22.4",
)
go_repository(
+ name = "com_github_urfave_cli_v2",
+ importpath = "github.com/urfave/cli/v2",
+ sum = "h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=",
+ version = "v2.3.0",
+ )
+ go_repository(
+ name = "com_github_urfave_negroni",
+ importpath = "github.com/urfave/negroni",
+ sum = "h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
+ name = "com_github_vektah_gqlparser",
+ importpath = "github.com/vektah/gqlparser",
+ sum = "h1:ZsyLGn7/7jDNI+y4SEhI4yAxRChlv15pUHMjijT+e68=",
+ version = "v1.1.2",
+ )
+
+ go_repository(
name = "com_github_vishvananda_netlink",
importpath = "github.com/vishvananda/netlink",
- version = "v1.1.0",
- sum = "h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA=",
+ version = "v1.1.1-0.20210330154013-f5de75959ad5",
)
go_repository(
name = "com_github_vishvananda_netns",
importpath = "github.com/vishvananda/netns",
- version = "v0.0.0-20200520041808-52d707b772fe",
- sum = "h1:mjAZxE1nh8yvuwhGHpdDqdhtNu2dgbpk93TwoXuk5so=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:gga7acRE695APm9hlsSMoOoE65U4/TcqNj90mc69Rlg=",
+ version = "v0.0.0-20211101163701-50045581ed74",
)
go_repository(
+ name = "com_github_vividcortex_gohistogram",
+ importpath = "github.com/VividCortex/gohistogram",
+ sum = "h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_vmware_govmomi",
+ importpath = "github.com/vmware/govmomi",
+ sum = "h1:gpw/0Ku+6RgF3jsi7fnCLmlcikBHfKBCUcu1qgc16OU=",
+ version = "v0.20.3",
+ )
+
+ go_repository(
name = "com_github_willf_bitset",
importpath = "github.com/willf/bitset",
- version = "v1.1.11",
sum = "h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=",
- build_tags = [
- "selinux",
- ],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.1.11",
)
go_repository(
+ name = "com_github_xanzy_go_gitlab",
+ importpath = "github.com/xanzy/go-gitlab",
+ sum = "h1:+nHztQuCXGSMluKe5Q9IRaPdz6tO8O0gMkQ0vqGpiBk=",
+ version = "v0.31.0",
+ )
+ go_repository(
+ name = "com_github_xanzy_ssh_agent",
+ importpath = "github.com/xanzy/ssh-agent",
+ sum = "h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=",
+ version = "v0.2.1",
+ )
+ go_repository(
+ name = "com_github_xdg_go_pbkdf2",
+ importpath = "github.com/xdg-go/pbkdf2",
+ sum = "h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "com_github_xdg_go_scram",
+ importpath = "github.com/xdg-go/scram",
+ sum = "h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w=",
+ version = "v1.0.2",
+ )
+ go_repository(
+ name = "com_github_xdg_go_stringprep",
+ importpath = "github.com/xdg-go/stringprep",
+ sum = "h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc=",
+ version = "v1.0.2",
+ )
+ go_repository(
+ name = "com_github_xeipuuv_gojsonpointer",
+ importpath = "github.com/xeipuuv/gojsonpointer",
+ sum = "h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=",
+ version = "v0.0.0-20180127040702-4e3ac2762d5f",
+ )
+ go_repository(
+ name = "com_github_xeipuuv_gojsonreference",
+ importpath = "github.com/xeipuuv/gojsonreference",
+ sum = "h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=",
+ version = "v0.0.0-20180127040603-bd5ef7bd5415",
+ )
+ go_repository(
+ name = "com_github_xeipuuv_gojsonschema",
+ importpath = "github.com/xeipuuv/gojsonschema",
+ sum = "h1:mvXjJIHRZyhNuGassLTcXTwjiWq7NmjdavZsUnmFybQ=",
+ version = "v0.0.0-20180618132009-1d523034197f",
+ )
+ go_repository(
+ name = "com_github_xi2_xz",
+ importpath = "github.com/xi2/xz",
+ sum = "h1:nIPpBwaJSVYIxUFsDv3M8ofmx9yWTog9BfvIu0q41lo=",
+ version = "v0.0.0-20171230120015-48954b6210f8",
+ )
+
+ go_repository(
name = "com_github_xiang90_probing",
importpath = "github.com/xiang90/probing",
- version = "v0.0.0-20190116061207-43a291ad63a2",
sum = "h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.0.0-20190116061207-43a291ad63a2",
)
go_repository(
+ name = "com_github_xlab_treeprint",
+ importpath = "github.com/xlab/treeprint",
+ sum = "h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=",
+ version = "v0.0.0-20181112141820-a009c3971eca",
+ )
+ go_repository(
+ name = "com_github_xordataexchange_crypt",
+ importpath = "github.com/xordataexchange/crypt",
+ sum = "h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow=",
+ version = "v0.0.3-0.20170626215501-b2862e3d0a77",
+ )
+
+ go_repository(
name = "com_github_yalue_native_endian",
importpath = "github.com/yalue/native_endian",
- version = "v0.0.0-20180607135909-51013b03be4f",
- sum = "h1:nsQCScpQ8RRf+wIooqfyyEUINV2cAPuo2uVtHSBbA4M=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:e4SxBbaCoOOO4E3axd7FSriUhzc1bIzqZGG5jl6Evbg=",
+ version = "v1.0.2",
)
go_repository(
- name = "io_etcd_go_bbolt",
- importpath = "go.etcd.io/bbolt",
- version = "v1.3.5",
- sum = "h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_yuin_goldmark",
+ importpath = "github.com/yuin/goldmark",
+ sum = "h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=",
+ version = "v1.4.1",
)
go_repository(
- name = "io_etcd_go_etcd",
- importpath = "go.etcd.io/etcd",
- version = "v0.5.0-alpha.5.0.20200819165624-17cef6e3e9d5",
- sum = "h1:Gqga3zA9tdAcfqobUGjSoCob5L3f8Dt5EuOp3ihNZko=",
- build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_yvasiyarov_go_metrics",
+ importpath = "github.com/yvasiyarov/go-metrics",
+ sum = "h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI=",
+ version = "v0.0.0-20140926110328-57bccd1ccd43",
)
go_repository(
- name = "org_mongodb_go_mongo_driver",
- importpath = "go.mongodb.org/mongo-driver",
- version = "v1.1.2",
- sum = "h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_yvasiyarov_gorelic",
+ importpath = "github.com/yvasiyarov/gorelic",
+ sum = "h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE=",
+ version = "v0.0.0-20141212073537-a9bba5b9ab50",
)
go_repository(
- name = "io_opencensus_go",
- importpath = "go.opencensus.io",
- version = "v0.22.0",
- sum = "h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_github_yvasiyarov_newrelic_platform_go",
+ importpath = "github.com/yvasiyarov/newrelic_platform_go",
+ sum = "h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY=",
+ version = "v0.0.0-20140908184405-b21fdbd4370f",
+ )
+
+ go_repository(
+ name = "com_google_cloud_go",
+ importpath = "cloud.google.com/go",
+ sum = "h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y=",
+ version = "v0.100.2",
)
go_repository(
- name = "net_starlark_go",
- importpath = "go.starlark.net",
- version = "v0.0.0-20190702223751-32f345186213",
- sum = "h1:lkYv5AKwvvduv5XWP6szk/bvvgO6aDeUujhZQXIFTes=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_bigquery",
+ importpath = "cloud.google.com/go/bigquery",
+ sum = "h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA=",
+ version = "v1.8.0",
)
go_repository(
- name = "org_uber_go_atomic",
- importpath = "go.uber.org/atomic",
- version = "v1.4.0",
- sum = "h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_compute",
+ importpath = "cloud.google.com/go/compute",
+ sum = "h1:mPL/MzDDYHsh5tHRS9mhmhWlcgClCrCa6ApQCU6wnHI=",
+ version = "v1.3.0",
)
go_repository(
- name = "org_uber_go_multierr",
- importpath = "go.uber.org/multierr",
+ name = "com_google_cloud_go_datastore",
+ importpath = "cloud.google.com/go/datastore",
+ sum = "h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ=",
version = "v1.1.0",
- sum = "h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
)
go_repository(
- name = "org_uber_go_zap",
- importpath = "go.uber.org/zap",
- version = "v1.15.0",
- sum = "h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_firestore",
+ importpath = "cloud.google.com/go/firestore",
+ sum = "h1:9x7Bx0A9R5/M9jibeJeZWqjeVEIxYW9fZYqB9a70/bY=",
+ version = "v1.1.0",
)
go_repository(
- name = "org_golang_x_arch",
- importpath = "golang.org/x/arch",
- version = "v0.0.0-20190927153633-4e8777c89be4",
- sum = "h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_monitoring",
+ importpath = "cloud.google.com/go/monitoring",
+ sum = "h1:vssDZ792skH6AWCDH1OogKfs/FzgEVTB/yUAzfgBR24=",
+ version = "v0.1.0",
)
go_repository(
- name = "org_golang_x_crypto",
- importpath = "golang.org/x/crypto",
- version = "v0.0.0-20200622213623-75b288015ac9",
- sum = "h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_pubsub",
+ importpath = "cloud.google.com/go/pubsub",
+ sum = "h1:9cH52jizPUVSSrSe+J16RC9wB0QI7i/cfuCm5UUCcIk=",
+ version = "v1.5.0",
)
go_repository(
- name = "org_golang_x_mod",
- importpath = "golang.org/x/mod",
- version = "v0.3.0",
- sum = "h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=",
- build_extra_args = [
- "-go_naming_convention=import_alias",
- "-go_naming_convention_external=import_alias",
- ],
+ name = "com_google_cloud_go_spanner",
+ importpath = "cloud.google.com/go/spanner",
+ sum = "h1:oBLJVlW/v3QMntbpUavhneJEQyPcxbAY5+rI+Jv9hvE=",
+ version = "v1.25.0",
)
go_repository(
- name = "org_golang_x_net",
- importpath = "golang.org/x/net",
- version = "v0.0.0-20201110031124-69a78807bb2b",
- sum = "h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_storage",
+ importpath = "cloud.google.com/go/storage",
+ sum = "h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=",
+ version = "v1.10.0",
)
go_repository(
- name = "org_golang_x_oauth2",
- importpath = "golang.org/x/oauth2",
- version = "v0.0.0-20191202225959-858c2ad4c8b6",
- sum = "h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_google_cloud_go_trace",
+ importpath = "cloud.google.com/go/trace",
+ sum = "h1:nUGUK79FOkN0UGUXhBmVBkbu1PYsHe0YyFSPLOD9Npg=",
+ version = "v0.1.0",
)
go_repository(
- name = "org_golang_x_sync",
- importpath = "golang.org/x/sync",
- version = "v0.0.0-20181108010431-42b317875d0f",
- sum = "h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=",
- build_extra_args = [
- "-go_naming_convention=import_alias",
- "-go_naming_convention_external=import_alias",
- ],
+ name = "com_shuralyov_dmitri_gpu_mtl",
+ importpath = "dmitri.shuralyov.com/gpu/mtl",
+ sum = "h1:+PdD6GLKejR9DizMAKT5DpSAkKswvZrurk1/eEt9+pw=",
+ version = "v0.0.0-20201218220906-28db891af037",
)
go_repository(
- name = "org_golang_x_text",
- importpath = "golang.org/x/text",
- version = "v0.3.0",
- sum = "h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_sourcegraph_sourcegraph_appdash",
+ importpath = "sourcegraph.com/sourcegraph/appdash",
+ sum = "h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM=",
+ version = "v0.0.0-20190731080439-ebfcffb1b5c0",
+ )
+
+ go_repository(
+ name = "com_zx2c4_golang_go118_netip",
+ importpath = "golang.zx2c4.com/go118/netip",
+ sum = "h1:9+v0G0naRhLPOJEeJOL6NuXTtAHHwmkyZlgQJ0XcQ8I=",
+ version = "v0.0.0-20211111135330-a4a02eeacf9d",
)
go_repository(
- name = "org_golang_x_time",
- importpath = "golang.org/x/time",
- version = "v0.0.0-20191024005414-555d28b269f0",
- sum = "h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_zx2c4_golang_wintun",
+ importpath = "golang.zx2c4.com/wintun",
+ sum = "h1:Ug9qvr1myri/zFN6xL17LSCBGFDnphBBhzmILHsM5TY=",
+ version = "v0.0.0-20211104114900-415007cec224",
)
go_repository(
- name = "org_golang_x_tools",
- importpath = "golang.org/x/tools",
- version = "v0.1.2-0.20210518182153-17b346669257",
- sum = "h1:e7SbNJfMEurLnwdNnaP7LItYhtCPChdiq+j3RwB8YGY=",
- patches = [
- "//third_party/go/patches:goimports-group-merging.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "com_zx2c4_golang_wireguard",
+ importpath = "golang.zx2c4.com/wireguard",
+ sum = "h1:Nrf94TOjrvW8nm6N3u2xtbnMZaZudNI9b8nIJH8p8qY=",
+ version = "v0.0.0-20220202223031-3b95c81cc178",
)
- go_repository(
- name = "org_golang_x_xerrors",
- importpath = "golang.org/x/xerrors",
- version = "v0.0.0-20191204190536-9bdfabe68543",
- sum = "h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
+
go_repository(
name = "com_zx2c4_golang_wireguard_wgctrl",
importpath = "golang.zx2c4.com/wireguard/wgctrl",
- version = "v0.0.0-20200515170644-ec7f26be9d9e",
- sum = "h1:fqDhK9OlzaaiFjnyaAfR9Q1RPKCK7OCTLlHGP9f74Nk=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:9c4/JVIQUc2qCJEEIiGIs3HmmnFjhPj4qHW4+Uj+u3U=",
+ version = "v0.0.0-20220208144051-fde48d68ee68",
)
go_repository(
- name = "org_gonum_v1_gonum",
- importpath = "gonum.org/v1/gonum",
- version = "v0.6.2",
- sum = "h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "dev_gocloud",
+ importpath = "gocloud.dev",
+ sum = "h1:EDRyaRAnMGSq/QBto486gWFxMLczAfIYUmusV7XLNBM=",
+ version = "v0.19.0",
)
go_repository(
- name = "org_golang_google_genproto",
- importpath = "google.golang.org/genproto",
- version = "v0.0.0-20200224152610-e50cd9704f63",
- sum = "h1:YzfoEYWbODU5Fbt37+h7X16BWQbad7Q4S6gclTKFXM8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ name = "dev_gvisor_gvisor",
+ importpath = "gvisor.dev/gvisor",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:gvisor-containerd-compat.patch",
+ "//third_party/go/patches:gvisor-fix-resolution.patch",
+ #"//third_party/go/patches:gvisor-build-against-newer-runtime-specs.patch",
],
+ sum = "h1:aXIFpjZYl3zv2rQyr4rSit5Uq0k7BVXC8lJaDa4Cg7M=",
+ version = "v0.0.0-20220315202956-f1399ecf1672",
)
go_repository(
- name = "org_golang_google_grpc",
- importpath = "google.golang.org/grpc",
- version = "v1.29.1",
- sum = "h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "in_gopkg_airbrake_gobrake_v2",
+ importpath = "gopkg.in/airbrake/gobrake.v2",
+ sum = "h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo=",
+ version = "v2.0.9",
)
go_repository(
+ name = "in_gopkg_alecthomas_kingpin_v2",
+ importpath = "gopkg.in/alecthomas/kingpin.v2",
+ sum = "h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=",
+ version = "v2.2.6",
+ )
+ go_repository(
+ name = "in_gopkg_check_v1",
+ importpath = "gopkg.in/check.v1",
+ sum = "h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=",
+ version = "v1.0.0-20201130134442-10cb98267c6c",
+ )
+ go_repository(
+ name = "in_gopkg_cheggaaa_pb_v1",
+ importpath = "gopkg.in/cheggaaa/pb.v1",
+ sum = "h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk=",
+ version = "v1.0.28",
+ )
+ go_repository(
+ name = "in_gopkg_datadog_dd_trace_go_v1",
+ importpath = "gopkg.in/DataDog/dd-trace-go.v1",
+ sum = "h1:eDbrrRNAHY15yoftLKGMtgq0vuTXp897QEzAJh368jY=",
+ version = "v1.36.2",
+ )
+
+ go_repository(
name = "in_gopkg_djherbis_times_v1",
importpath = "gopkg.in/djherbis/times.v1",
- version = "v1.2.0",
sum = "h1:UCvDKl1L/fmBygl2Y7hubXCnY7t4Yj46ZrBFNUipFbM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0",
)
go_repository(
+ name = "in_gopkg_errgo_v2",
+ importpath = "gopkg.in/errgo.v2",
+ sum = "h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=",
+ version = "v2.1.0",
+ )
+
+ go_repository(
name = "in_gopkg_fsnotify_v1",
importpath = "gopkg.in/fsnotify.v1",
- version = "v1.4.7",
sum = "h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.4.7",
)
go_repository(
+ name = "in_gopkg_gcfg_v1",
+ importpath = "gopkg.in/gcfg.v1",
+ sum = "h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs=",
+ version = "v1.2.3",
+ )
+ go_repository(
+ name = "in_gopkg_gemnasium_logrus_airbrake_hook_v2",
+ importpath = "gopkg.in/gemnasium/logrus-airbrake-hook.v2",
+ sum = "h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0=",
+ version = "v2.1.2",
+ )
+ go_repository(
+ name = "in_gopkg_go_playground_assert_v1",
+ importpath = "gopkg.in/go-playground/assert.v1",
+ sum = "h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=",
+ version = "v1.2.1",
+ )
+ go_repository(
+ name = "in_gopkg_go_playground_validator_v9",
+ importpath = "gopkg.in/go-playground/validator.v9",
+ sum = "h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc=",
+ version = "v9.29.1",
+ )
+
+ go_repository(
name = "in_gopkg_inf_v0",
importpath = "gopkg.in/inf.v0",
- version = "v0.9.1",
sum = "h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v0.9.1",
)
go_repository(
name = "in_gopkg_ini_v1",
importpath = "gopkg.in/ini.v1",
- version = "v1.63.2",
- sum = "h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU=",
+ version = "v1.62.0",
)
go_repository(
+ name = "in_gopkg_mcuadros_go_syslog_v2",
+ importpath = "gopkg.in/mcuadros/go-syslog.v2",
+ sum = "h1:60g8zx1BijSVSgLTzLCW9UC4/+i1Ih9jJ1DR5Tgp9vE=",
+ version = "v2.2.1",
+ )
+
+ go_repository(
name = "in_gopkg_natefinch_lumberjack_v2",
importpath = "gopkg.in/natefinch/lumberjack.v2",
- version = "v2.0.0",
sum = "h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v2.0.0",
)
go_repository(
+ name = "in_gopkg_resty_v1",
+ importpath = "gopkg.in/resty.v1",
+ sum = "h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI=",
+ version = "v1.12.0",
+ )
+
+ go_repository(
name = "in_gopkg_square_go_jose_v2",
importpath = "gopkg.in/square/go-jose.v2",
- version = "v2.2.2",
- sum = "h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=",
+ version = "v2.6.0",
)
go_repository(
+ name = "in_gopkg_src_d_go_billy_v4",
+ importpath = "gopkg.in/src-d/go-billy.v4",
+ sum = "h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg=",
+ version = "v4.3.2",
+ )
+ go_repository(
+ name = "in_gopkg_src_d_go_git_fixtures_v3",
+ importpath = "gopkg.in/src-d/go-git-fixtures.v3",
+ sum = "h1:ivZFOIltbce2Mo8IjzUHAFoq/IylO9WHhNOAJK+LsJg=",
+ version = "v3.5.0",
+ )
+ go_repository(
+ name = "in_gopkg_src_d_go_git_v4",
+ importpath = "gopkg.in/src-d/go-git.v4",
+ sum = "h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE=",
+ version = "v4.13.1",
+ )
+
+ go_repository(
name = "in_gopkg_tomb_v1",
importpath = "gopkg.in/tomb.v1",
- version = "v1.0.0-20141024135613-dd632973f1e7",
sum = "h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.0.0-20141024135613-dd632973f1e7",
)
go_repository(
+ name = "in_gopkg_warnings_v0",
+ importpath = "gopkg.in/warnings.v0",
+ sum = "h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=",
+ version = "v0.1.2",
+ )
+
+ go_repository(
name = "in_gopkg_yaml_v2",
importpath = "gopkg.in/yaml.v2",
- version = "v2.2.8",
- sum = "h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=",
+ version = "v2.4.0",
)
go_repository(
- name = "io_k8s_api",
- importpath = "k8s.io/api",
- version = "v0.19.7",
- sum = "h1:MpHhls03C2pyzoYcpbe4QqYiiZjdvW+tuWq6TbjV14Y=",
+ name = "in_gopkg_yaml_v3",
+ importpath = "gopkg.in/yaml.v3",
+ sum = "h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=",
+ version = "v3.0.0-20210107192922-496545a6307b",
+ )
+
+ go_repository(
+ name = "io_etcd_go_bbolt",
+ importpath = "go.etcd.io/bbolt",
+ sum = "h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=",
+ version = "v1.3.6",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ importpath = "go.etcd.io/etcd",
+ sum = "h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo=",
+ version = "v0.5.0-alpha.5.0.20200910180754-dd1b699fc489",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_api_v3",
+ build_file_proto_mode = "disable",
+ importpath = "go.etcd.io/etcd/api/v3",
+ sum = "h1:tXok5yLlKyuQ/SXSjtqHc4uzNaMqZi2XsoSPr/LlJXI=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_client_pkg_v3",
+ importpath = "go.etcd.io/etcd/client/pkg/v3",
+ sum = "h1:4hzqQ6hIb3blLyQ8usCU4h3NghkqcsohEQ3o3VetYxE=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_client_v2",
+ importpath = "go.etcd.io/etcd/client/v2",
+ sum = "h1:ymrVwTkefuqA/rPkSW7/B4ApijbPVefRumkY+stNfS0=",
+ version = "v2.305.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_client_v3",
+ importpath = "go.etcd.io/etcd/client/v3",
+ sum = "h1:WdnejrUtQC4nCxK0/dLTMqKOB+U5TP/2Ya0BJL+1otA=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_etcdctl_v3",
+ importpath = "go.etcd.io/etcd/etcdctl/v3",
+ sum = "h1:i8DGjR9gBRoS6NEHF3XBxxh7QwL1DyilXMCkHpyy6zM=",
+ version = "v3.5.0",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_etcdutl_v3",
+ importpath = "go.etcd.io/etcd/etcdutl/v3",
+ sum = "h1:XDNv2bGD6Ylz3Gb9lIGV/IYLk1bwTvyCIi1EI4hyyqo=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_pkg_v3",
+ importpath = "go.etcd.io/etcd/pkg/v3",
+ patch_args = ["-p1"],
+ pre_patches = [
+ "//third_party/go/patches:etcd-fix-stub.patch",
],
+ sum = "h1:YZUojdoPhOyl5QILYnR8LTUbbNefu/sV4ma+ZMr2tto=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_raft_v3",
+ build_file_proto_mode = "disable",
+ importpath = "go.etcd.io/etcd/raft/v3",
+ sum = "h1:uCC37qOXqBvKqTGHGyhASsaCsnTuJugl1GvneJNwHWo=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_server_v3",
+ build_file_proto_mode = "disable",
+ importpath = "go.etcd.io/etcd/server/v3",
+ sum = "h1:B6ytJvS4Fmt8nkjzS2/8POf4tuPhFMluE0lWd4dx/7U=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_tests_v3",
+ importpath = "go.etcd.io/etcd/tests/v3",
+ sum = "h1:uk7/uMGVebpBDl+roivowHt6gJ5Fnqwik3syDkoSKdo=",
+ version = "v3.5.2",
+ )
+ go_repository(
+ name = "io_etcd_go_etcd_v3",
+ importpath = "go.etcd.io/etcd/v3",
+ sum = "h1:fs7tB+L/xRDi/+p9qKuaPGCtMX6vkovLRXTqvEE98Ek=",
+ version = "v3.5.0",
+ )
+ go_repository(
+ name = "io_gitea_code_sdk_gitea",
+ importpath = "code.gitea.io/sdk/gitea",
+ sum = "h1:CdI3J82Mqn0mElyEKa5DUSr3Wi2R+qm/6uVtCkSSqSM=",
+ version = "v0.11.3",
+ )
+
+ go_repository(
+ name = "io_k8s_api",
+ build_file_proto_mode = "disable",
+ importpath = "k8s.io/api",
+ replace = "k8s.io/api",
+ sum = "h1:85gnfXQOWbJa1SiWGpE9EEtHs0UVvDyIsSMpEtl2D4E=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_apiextensions_apiserver",
- importpath = "k8s.io/apiextensions-apiserver",
- version = "v0.19.7",
- sum = "h1:aV9DANMSCCYBEMbtoT/5oesrtcciQrjy9yqWVtZZL5A=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/apiextensions-apiserver",
+ replace = "k8s.io/apiextensions-apiserver",
+ sum = "h1:AFDUEu/yEf0YnuZhqhIFhPLPhhcQQVuR1u3WCh0rveU=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_apimachinery",
- importpath = "k8s.io/apimachinery",
- version = "v0.19.8-rc.0",
- sum = "h1:/vt04+wL+Y79Qsu8hAo2K4QJA+AKGkJCYmoTTVrUiPQ=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/apimachinery",
+ replace = "k8s.io/apimachinery",
+ sum = "h1:fhnuMd/xUL3Cjfl64j5ULKZ1/J9n8NuQEgNL+WXWfdM=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_apiserver",
- importpath = "k8s.io/apiserver",
- version = "v0.19.7",
- sum = "h1:fOOELJ9TNC6DgKL3GUkQLE/EBMLjwBseTstx2eRP61o=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/apiserver",
+ replace = "k8s.io/apiserver",
+ sum = "h1:zNvQlG+C/ERjuUz4p7eY/0IWHaMixRSBoxgmyIdwo9Y=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_cli_runtime",
importpath = "k8s.io/cli-runtime",
- version = "v0.19.7",
- sum = "h1:VkHsqrQYCD6+yBm2k9lOxLJtfo1tmb/TdYIHQ2RSCsY=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/cli-runtime",
+ sum = "h1:C3AFQmo4TK4dlVPLOI62gtHEHu0OfA2Cp4UVRZ1JXns=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_client_go",
importpath = "k8s.io/client-go",
- version = "v0.19.7",
- sum = "h1:SoJ4mzZ9LyXBGDe8MmpMznw0CwQ1ITWgsmG7GixvhUU=",
- pre_patches = [
- "//third_party/go/patches:k8s-client-go.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/client-go",
+ sum = "h1:YVWvPeerA2gpUudLelvsolzH7c2sFoXXR5wM/sWqNFU=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_cloud_provider",
importpath = "k8s.io/cloud-provider",
- version = "v0.19.7",
- sum = "h1:01fiPTLkTU/MNKZBcMmeYQ5DWqRS4d3GhYGGGlkjgOw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/cloud-provider",
+ sum = "h1:Nx42V7+Vpaad3qZE031MpTfCDl3jeQrX6wuwieES/nc=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_cluster_bootstrap",
importpath = "k8s.io/cluster-bootstrap",
- version = "v0.19.7",
- sum = "h1:xlI+YfeS5gOVa33WVh1viiPZMDN9j7BAiY0iJkg2LwI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/cluster-bootstrap",
+ sum = "h1:tYz2h91tY1zcxMk3qMajcPgkixqvB4+uFrOiznlp7Fo=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_code_generator",
importpath = "k8s.io/code-generator",
- version = "v0.19.9-rc.0",
- sum = "h1:ci5Y09V0Uiim61fltZsjHYp+i6eNaMMmtIlIveHqQ9Y=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/code-generator",
+ sum = "h1:MmDMH74oo8YD4r+KdUzd/VVmXUeXf5u0owLI9wZWP5Y=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_component_base",
importpath = "k8s.io/component-base",
- version = "v0.19.7",
- sum = "h1:ZXS2VRWOWBOc2fTd1zjzhi/b/mkqFT9FDqiNsn1cH30=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/component-base",
+ sum = "h1:SziYh48+QKxK+ykJ3Ejqd98XdZIseVBG7sBaNLPqy6M=",
+ version = "v0.23.4",
)
go_repository(
+ name = "io_k8s_component_helpers",
+ importpath = "k8s.io/component-helpers",
+ replace = "k8s.io/component-helpers",
+ sum = "h1:zCLeBuo3Qs0BqtJu767RXJgs5S9ruFJZcbM1aD+cMmc=",
+ version = "v0.23.4",
+ )
+ go_repository(
+ name = "io_k8s_controller_manager",
+ importpath = "k8s.io/controller-manager",
+ replace = "k8s.io/controller-manager",
+ sum = "h1:u3M3RI/Ppt0C8JDj8in60jWbRYihihK6h3H/I4ozWbE=",
+ version = "v0.23.4",
+ )
+
+ go_repository(
name = "io_k8s_cri_api",
- importpath = "k8s.io/cri-api",
- version = "v0.19.8-rc.0",
- sum = "h1:aXNNIIoVcmIB/mlz/otcULQOgnErxnLB4uaWENHKblA=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/cri-api",
+ replace = "k8s.io/cri-api",
+ sum = "h1:f1bp27XIBAdJEShjDEKBB3Lx/oZ9GgpQ3bFEx7hV0nI=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_csi_translation_lib",
importpath = "k8s.io/csi-translation-lib",
- version = "v0.19.7",
- sum = "h1:Spr0XWqXufEUQA47axmPTm1xOabdMYG9MUbJVaRRb0g=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/csi-translation-lib",
+ sum = "h1:n6x1Sd338WFB0GQFEMPmsEZblgRo7Bx3AUVebrWPrjM=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_gengo",
importpath = "k8s.io/gengo",
- version = "v0.0.0-20200428234225-8167cfdcfc14",
- sum = "h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA=",
+ version = "v0.0.0-20210813121822-485abfe95c7c",
)
go_repository(
name = "io_k8s_heapster",
importpath = "k8s.io/heapster",
- version = "v1.2.0-beta.1",
sum = "h1:lUsE/AHOMHpi3MLlBEkaU8Esxm5QhdyCrv1o7ot0s84=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0-beta.1",
)
go_repository(
+ name = "io_k8s_klog",
+ importpath = "k8s.io/klog",
+ sum = "h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
name = "io_k8s_klog_v2",
importpath = "k8s.io/klog/v2",
- version = "v2.2.0",
- sum = "h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:P4RRucWk/lFOlDdkAr3mc7iWFkgKrZY9qZMAgek06S4=",
+ version = "v2.40.1",
)
go_repository(
name = "io_k8s_kube_aggregator",
- importpath = "k8s.io/kube-aggregator",
- version = "v0.19.7",
- sum = "h1:Eol5vPNFKaDScdVuTh0AofhuSr4cJxP5Vfv8JXW8OAQ=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/kube-aggregator",
+ replace = "k8s.io/kube-aggregator",
+ sum = "h1:gLk78rGLVfUXCdD14NrKg/JFBmNNCZ8FEs3tYt+W6Zk=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kube_controller_manager",
importpath = "k8s.io/kube-controller-manager",
- version = "v0.19.7",
- sum = "h1:3rNXjHM5LHcv2HiO2JjdV4yW3EN+2tCPaKXWL/Cl8TM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/kube-controller-manager",
+ sum = "h1:m9RTyxWipaFs/Bb0Z3XIgXEVHEEIIVspa7tev+kXz8w=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kube_openapi",
importpath = "k8s.io/kube-openapi",
- version = "v0.0.0-20200805222855-6aeccd4b50c6",
- sum = "h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=",
+ version = "v0.0.0-20211115234752-e816edb12b65",
)
go_repository(
name = "io_k8s_kube_proxy",
importpath = "k8s.io/kube-proxy",
- version = "v0.19.7",
- sum = "h1:QQUwEnHA1jawodclndlmK/6Ifc9XVNlUaQ4Vq5RVbI8=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/kube-proxy",
+ sum = "h1:jkpSBIbaGtLsHfdQR7oCs37iQtIgU2XlRXDwjsY2NM8=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kube_scheduler",
importpath = "k8s.io/kube-scheduler",
- version = "v0.19.7",
- sum = "h1:TlQFoH7rATVqU7myNZ4FBgnXdGIwR7iBBNk3ir8Y9WM=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/kube-scheduler",
+ sum = "h1:NR/WCkM5Rmz3lzZq8vgKZW6fJFbyqfiCHn8xYkibxBw=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kubectl",
importpath = "k8s.io/kubectl",
- version = "v0.19.7",
- sum = "h1:pSsha+MBr9KLhn0IKrRikeAZ7g2oeShIGHLgqAzE3Ak=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/kubectl",
+ sum = "h1:mAa+zEOlyZieecEy+xSrhjkpMcukYyHWzcNdX28dzMY=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kubelet",
- importpath = "k8s.io/kubelet",
- version = "v0.19.7",
- sum = "h1:cPp0fXN99cxyXeoI3nG2ZBORUvR0liT+bg6ofCybJzw=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ importpath = "k8s.io/kubelet",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:kubelet-fix-path.patch",
],
+ replace = "k8s.io/kubelet",
+ sum = "h1:yptgklhQ3dtHHIpH/RgI0861XWoJ9/YIBnnxYS6l8VI=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_kubernetes",
- importpath = "k8s.io/kubernetes",
- version = "v1.19.7",
- sum = "h1:Yk9W5SL1KR2mwy0nNZwjFXNImfK7ihrbKhXttidNTiE=",
build_file_proto_mode = "disable",
- build_tags = [
- "providerless",
- ],
+ build_tags = ["providerless", "dockerless"], #keep
+ importpath = "k8s.io/kubernetes",
+ patch_args = ["-p1"],
patches = [
- "//third_party/go/patches:k8s-kubernetes.patch",
- "//third_party/go/patches:k8s-kubernetes-build.patch",
"//third_party/go/patches:k8s-native-metrics.patch",
- "//third_party/go/patches:k8s-use-native.patch",
- "//third_party/go/patches:k8s-revert-seccomp-runtime-default.patch",
"//third_party/go/patches:k8s-removed-block-device-pseudo-locks.patch",
+ "//third_party/go/patches:k8s-jose-semver-fix.patch",
],
pre_patches = [
- "//third_party/go/patches:k8s-e2e-tests-providerless.patch",
- "//third_party/go/patches:k8s-fix-paths.patch",
"//third_party/go/patches:k8s-fix-logs-path.patch",
"//third_party/go/patches:k8s-drop-legacy-log-path.patch",
+ "//third_party/go/patches:k8s-adopt-to-go-jose-2.3.patch",
+ "//third_party/go/patches:k8s-adopt-to-runc-1.1.patch",
+ "//third_party/go/patches:k8s-backport-no-dockershim.patch",
+ "@monogon_k8s_pregenerate_openapi_patch//file",
],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:25dqAMS96u+9L/A7AHdEW7aMTcmHoQMbMPug6Fa61JE=",
+ version = "v1.23.4",
)
go_repository(
name = "io_k8s_legacy_cloud_providers",
importpath = "k8s.io/legacy-cloud-providers",
- version = "v0.19.7",
- sum = "h1:YJ/l/8/Hn56I9m1cudK8aNypRA/NvI/hYhg8fo/CTus=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/legacy-cloud-providers",
+ sum = "h1:apiVRic5Yg1o5hqgMZoClpWQB2cL/rFnpM1d40qR7xA=",
+ version = "v0.23.4",
)
go_repository(
name = "io_k8s_metrics",
- importpath = "k8s.io/metrics",
- version = "v0.19.7",
- sum = "h1:fpTtFhNtS0DwJiYGGsL4YoSjHlLw8qugkgw3EXSWaUA=",
build_file_proto_mode = "disable",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ importpath = "k8s.io/metrics",
+ replace = "k8s.io/metrics",
+ sum = "h1:99+9V/J1PuCqwvYFiuiuZcDImTx4SfFFiwsIB0ZTqUQ=",
+ version = "v0.23.4",
)
go_repository(
- name = "io_k8s_repo_infra",
- importpath = "k8s.io/repo-infra",
- version = "v0.1.4-0.20210105022653-a3483874bd37",
- sum = "h1:0GPavEcPKBA0rYl7f6dO0mXYmx7t9RaXD3be2g23Ps4=",
- pre_patches = [
- "//third_party/go/patches:k8s-infra-bzl4-compat.patch",
- "//third_party/go/patches:k8s-infra-fix-go116.patch",
- ],
+ name = "io_k8s_mount_utils",
+ importpath = "k8s.io/mount-utils",
patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ pre_patches = [
+ "//third_party/go/patches:k8s-native-mounter.patch",
],
+ replace = "k8s.io/mount-utils",
+ sum = "h1:tWUj5A0DJ29haMiO7F3pNdP2HwyMWczzvqQmikFc9s8=",
+ version = "v0.23.4",
)
go_repository(
+ name = "io_k8s_pod_security_admission",
+ importpath = "k8s.io/pod-security-admission",
+ replace = "k8s.io/pod-security-admission",
+ sum = "h1:f7gLBbS/E03kCY0CBR3LjFqpsdPjnBT8nyBbFUbqoSk=",
+ version = "v0.23.4",
+ )
+
+ go_repository(
name = "io_k8s_sample_apiserver",
importpath = "k8s.io/sample-apiserver",
- version = "v0.19.7",
- sum = "h1:ZWD6dsvqpqhWj3jKRb19/m/bo/0r+TRgjkX+h5m7f4g=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ replace = "k8s.io/sample-apiserver",
+ sum = "h1:I74oWhsHzZ0ZowqXtBtW6nqamu0wmNXqlcQBbKOOpDY=",
+ version = "v0.23.4",
)
- go_repository(
- name = "io_k8s_utils",
- importpath = "k8s.io/utils",
- version = "v0.0.0-20200729134348-d5654de09c73",
- sum = "h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=",
- patches = [
- "//third_party/go/patches:k8s-native-mounter.patch",
- ],
- patch_args = ["-p1"],
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
- )
+
go_repository(
name = "io_k8s_sigs_apiserver_network_proxy_konnectivity_client",
importpath = "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
- version = "v0.0.9",
- sum = "h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:KQOkVzXrLNb0EP6W0FD6u3CCPAwgXFYwZitbj7K0P0Y=",
+ version = "v0.0.27",
)
go_repository(
- name = "io_k8s_sigs_kustomize",
- importpath = "sigs.k8s.io/kustomize",
- version = "v2.0.3+incompatible",
- sum = "h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ name = "io_k8s_sigs_json",
+ importpath = "sigs.k8s.io/json",
+ sum = "h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s=",
+ version = "v0.0.0-20211020170558-c049b76a60c6",
)
+
+ go_repository(
+ name = "io_k8s_sigs_kustomize_api",
+ importpath = "sigs.k8s.io/kustomize/api",
+ sum = "h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0=",
+ version = "v0.10.1",
+ )
+ go_repository(
+ name = "io_k8s_sigs_kustomize_cmd_config",
+ importpath = "sigs.k8s.io/kustomize/cmd/config",
+ sum = "h1:2GD3+knDaqZo6rSibkc4kKGp8auNBJrGPZQCTWN4Rtc=",
+ version = "v0.10.2",
+ )
+ go_repository(
+ name = "io_k8s_sigs_kustomize_kustomize_v4",
+ importpath = "sigs.k8s.io/kustomize/kustomize/v4",
+ sum = "h1:6hgMEo3Gt0XmhDt4vo0FJ0LRDMc4i8JC6SUW24D4hQM=",
+ version = "v4.4.1",
+ )
+ go_repository(
+ name = "io_k8s_sigs_kustomize_kyaml",
+ importpath = "sigs.k8s.io/kustomize/kyaml",
+ sum = "h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY=",
+ version = "v0.13.0",
+ )
+
go_repository(
name = "io_k8s_sigs_structured_merge_diff_v4",
importpath = "sigs.k8s.io/structured-merge-diff/v4",
- version = "v4.0.1",
- sum = "h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ sum = "h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y=",
+ version = "v4.2.1",
)
go_repository(
name = "io_k8s_sigs_yaml",
importpath = "sigs.k8s.io/yaml",
- version = "v1.2.0",
sum = "h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=",
- build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
- ],
+ version = "v1.2.0",
)
go_repository(
- name = "ml_vbom_util",
- importpath = "vbom.ml/util",
- version = "v0.0.0-20160121211510-db5cfe13f5cc",
- sum = "h1:MksmcCZQWAQJCTA5T0jgI/0sJ51AVm4Z41MrmfczEoc=",
+ name = "io_k8s_system_validators",
+ importpath = "k8s.io/system-validators",
+ sum = "h1:21qaPNdZ+mQrm4qc5shU0T5Eh49t/miFqZsn4sW8Hr0=",
+ version = "v1.6.0",
+ )
+
+ go_repository(
+ name = "io_k8s_utils",
+ importpath = "k8s.io/utils",
+ sum = "h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE=",
+ version = "v0.0.0-20211116205334-6203023598ed",
+ )
+ go_repository(
+ name = "io_opencensus_go",
+ importpath = "go.opencensus.io",
+ sum = "h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=",
+ version = "v0.23.0",
+ )
+ go_repository(
+ name = "io_opencensus_go_contrib_exporter_aws",
+ importpath = "contrib.go.opencensus.io/exporter/aws",
+ sum = "h1:YsbWYxDZkC7x2OxlsDEYvvEXZ3cBI3qBgUK5BqkZvRw=",
+ version = "v0.0.0-20181029163544-2befc13012d0",
+ )
+ go_repository(
+ name = "io_opencensus_go_contrib_exporter_ocagent",
+ importpath = "contrib.go.opencensus.io/exporter/ocagent",
+ sum = "h1:TKXjQSRS0/cCDrP7KvkgU6SmILtF/yV2TOs/02K/WZQ=",
+ version = "v0.5.0",
+ )
+ go_repository(
+ name = "io_opencensus_go_contrib_exporter_stackdriver",
+ importpath = "contrib.go.opencensus.io/exporter/stackdriver",
+ sum = "h1:lIFYmQsqejvlq+GobFUbC5F0prD5gvhP6r0gWLZRDq4=",
+ version = "v0.13.8",
+ )
+ go_repository(
+ name = "io_opencensus_go_contrib_integrations_ocsql",
+ importpath = "contrib.go.opencensus.io/integrations/ocsql",
+ sum = "h1:kfg5Yyy1nYUrqzyfW5XX+dzMASky8IJXhtHe0KTYNS4=",
+ version = "v0.1.4",
+ )
+ go_repository(
+ name = "io_opencensus_go_contrib_resource",
+ importpath = "contrib.go.opencensus.io/resource",
+ sum = "h1:4r2CANuYhKGmYWP02+5E94rLRcS/YeD+KlxSrOsMxk0=",
+ version = "v0.1.1",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_contrib",
+ importpath = "go.opentelemetry.io/contrib",
+ replace = "go.opentelemetry.io/contrib",
+ sum = "h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_contrib_instrumentation_google_golang_org_grpc_otelgrpc",
+ importpath = "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
+ replace = "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
+ sum = "h1:sO4WKdPAudZGKPcpZT4MJn6JaDmpyLrMPDGGyA1SttE=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_contrib_instrumentation_net_http_otelhttp",
+ importpath = "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
+ replace = "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
+ sum = "h1:Q3C9yzW6I9jqEc8sawxzxZmY48fs9u220KXq6d5s3XU=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel",
+ importpath = "go.opentelemetry.io/otel",
+ replace = "go.opentelemetry.io/otel",
+ sum = "h1:eaP0Fqu7SXHwvjiqDq83zImeehOHX8doTvU9AwXON8g=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_exporters_otlp",
+ importpath = "go.opentelemetry.io/otel/exporters/otlp",
+ replace = "go.opentelemetry.io/otel/exporters/otlp",
+ sum = "h1:PTNgq9MRmQqqJY0REVbZFvwkYOA85vbdQU/nVfxDyqg=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_exporters_otlp_internal_retry",
+ importpath = "go.opentelemetry.io/otel/exporters/otlp/internal/retry",
+ sum = "h1:R/OBkMoGgfy2fLhs2QhkCI1w4HLEQX92GCcJB6SSdNk=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace",
+ importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace",
+ sum = "h1:giGm8w67Ja7amYNfYMdme7xSp2pIxThWopw8+QP51Yk=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace_otlptracegrpc",
+ importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc",
+ sum = "h1:VQbUHoJqytHHSJ1OZodPH9tvZZSVzUHjPHpkO85sT6k=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace_otlptracehttp",
+ importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
+ sum = "h1:Ydage/P0fRrSPpZeCVxzjqGcI6iVmG2xb43+IR8cjqM=",
+ version = "v1.3.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_metric",
+ importpath = "go.opentelemetry.io/otel/metric",
+ replace = "go.opentelemetry.io/otel/metric",
+ sum = "h1:4kzhXFP+btKm4jwxpjIqjs41A7MakRFUS86bqLHTIw8=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_oteltest",
+ importpath = "go.opentelemetry.io/otel/oteltest",
+ replace = "go.opentelemetry.io/otel/oteltest",
+ sum = "h1:HiITxCawalo5vQzdHfKeZurV8x7ljcqAgiWzF6Vaeaw=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_sdk",
+ importpath = "go.opentelemetry.io/otel/sdk",
+ replace = "go.opentelemetry.io/otel/sdk",
+ sum = "h1:JsxtGXd06J8jrnya7fdI/U/MR6yXA5DtbZy+qoHQlr8=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_sdk_export_metric",
+ importpath = "go.opentelemetry.io/otel/sdk/export/metric",
+ replace = "go.opentelemetry.io/otel/sdk/export/metric",
+ sum = "h1:c5VRjxCXdQlx1HjzwGdQHzZaVI82b5EbBgOu2ljD92g=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_sdk_metric",
+ importpath = "go.opentelemetry.io/otel/sdk/metric",
+ replace = "go.opentelemetry.io/otel/sdk/metric",
+ sum = "h1:7ao1wpzHRVKf0OQ7GIxiQJA6X7DLX9o14gmVon7mMK8=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_otel_trace",
+ importpath = "go.opentelemetry.io/otel/trace",
+ replace = "go.opentelemetry.io/otel/trace",
+ sum = "h1:1DL6EXUdcg95gukhuRRvLDO/4X5THh/5dIV52lqtnbw=",
+ version = "v0.20.0",
+ )
+ go_repository(
+ name = "io_opentelemetry_go_proto_otlp",
+ importpath = "go.opentelemetry.io/proto/otlp",
+ replace = "go.opentelemetry.io/proto/otlp",
+ sum = "h1:rwOQPCuKAKmwGKq2aVNnYIibI6wnV7EvzgfTCzcdGg8=",
+ version = "v0.7.0",
+ )
+ go_repository(
+ name = "io_rsc_binaryregexp",
+ importpath = "rsc.io/binaryregexp",
+ sum = "h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE=",
+ version = "v0.2.0",
+ )
+ go_repository(
+ name = "io_rsc_pdf",
+ importpath = "rsc.io/pdf",
+ sum = "h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=",
+ version = "v0.1.1",
+ )
+ go_repository(
+ name = "io_rsc_quote_v3",
+ importpath = "rsc.io/quote/v3",
+ sum = "h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY=",
+ version = "v3.1.0",
+ )
+ go_repository(
+ name = "io_rsc_sampler",
+ importpath = "rsc.io/sampler",
+ sum = "h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=",
+ version = "v1.3.0",
+ )
+
+ go_repository(
+ name = "net_starlark_go",
+ importpath = "go.starlark.net",
+ sum = "h1:YiRMXXgG+Pg26t1fjq+iAjaauKWMC9cmGFrtOEuwDDg=",
+ version = "v0.0.0-20200821142938-949cc6f4b097",
+ )
+ go_repository(
+ name = "org_bazil_fuse",
+ importpath = "bazil.org/fuse",
+ sum = "h1:SRsZGA7aFnCZETmov57jwPrWuTmaZK6+4R4v5FUe1/c=",
+ version = "v0.0.0-20200407214033-5883e5a4b512",
+ )
+ go_repository(
+ name = "org_bitbucket_bertimus9_systemstat",
+ importpath = "bitbucket.org/bertimus9/systemstat",
+ sum = "h1:N9r8OBSXAgEUfho3SQtZLY8zo6E1OdOMvelvP22aVFc=",
+ version = "v0.0.0-20180207000608-0eeff89b0690",
+ )
+ go_repository(
+ name = "org_bitbucket_creachadair_shell",
+ importpath = "bitbucket.org/creachadair/shell",
+ sum = "h1:reJflDbKqnlnqb4Oo2pQ1/BqmY/eCWcNGHrIUO8qIzc=",
+ version = "v0.0.6",
+ )
+
+ go_repository(
+ name = "org_golang_google_api",
+ importpath = "google.golang.org/api",
+ sum = "h1:67zQnAE0T2rB0A3CwLSas0K+SbVzSxP+zTLkQLexeiw=",
+ version = "v0.70.0",
+ )
+ go_repository(
+ name = "org_golang_google_appengine",
+ importpath = "google.golang.org/appengine",
+ sum = "h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=",
+ version = "v1.6.7",
+ )
+ go_repository(
+ name = "org_golang_google_cloud",
+ importpath = "google.golang.org/cloud",
+ sum = "h1:Cpp2P6TPjujNoC5M2KHY6g7wfyLYfIWRZaSdIKfDasA=",
+ version = "v0.0.0-20151119220103-975617b05ea8",
+ )
+
+ go_repository(
+ name = "org_golang_google_genproto",
+ importpath = "google.golang.org/genproto",
+ sum = "h1:TU4rFa5APdKTq0s6B7WTsH6Xmx0Knj86s6Biz56mErE=",
+ version = "v0.0.0-20220218161850-94dd64e39d7c",
+ )
+ go_repository(
+ name = "org_golang_google_grpc",
+ importpath = "google.golang.org/grpc",
+ sum = "h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=",
+ version = "v1.45.0",
+ )
+ go_repository(
+ name = "org_golang_google_grpc_cmd_protoc_gen_go_grpc",
+ importpath = "google.golang.org/grpc/cmd/protoc-gen-go-grpc",
+ sum = "h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=",
+ version = "v1.1.0",
+ )
+ go_repository(
+ name = "org_golang_google_protobuf",
+ importpath = "google.golang.org/protobuf",
+ sum = "h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=",
+ version = "v1.27.1",
+ )
+
+ go_repository(
+ name = "org_golang_x_arch",
+ importpath = "golang.org/x/arch",
+ sum = "h1:QlVATYS7JBoZMVaf+cNjb90WD/beKVHnIxFKT4QaHVI=",
+ version = "v0.0.0-20190927153633-4e8777c89be4",
+ )
+
+ go_repository(
+ name = "org_golang_x_crypto",
+ importpath = "golang.org/x/crypto",
+ sum = "h1:lnZ4LoV0UMdibeCUfIB2a4uFwRu491WX/VB2reB8xNc=",
+ version = "v0.0.0-20220208050332-20e1d8d225ab",
+ )
+ go_repository(
+ name = "org_golang_x_exp",
+ importpath = "golang.org/x/exp",
+ sum = "h1:GrkO5AtFUU9U/1f5ctbIBXtBGeSJbWwIYfIsTcFMaX4=",
+ version = "v0.0.0-20210220032938-85be41e4509f",
+ )
+ go_repository(
+ name = "org_golang_x_image",
+ importpath = "golang.org/x/image",
+ sum = "h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=",
+ version = "v0.0.0-20190802002840-cff245a6509b",
+ )
+ go_repository(
+ name = "org_golang_x_lint",
+ importpath = "golang.org/x/lint",
+ sum = "h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=",
+ version = "v0.0.0-20210508222113-6edffad5e616",
+ )
+ go_repository(
+ name = "org_golang_x_mobile",
+ importpath = "golang.org/x/mobile",
+ sum = "h1:kgfVkAEEQXXQ0qc6dH7n6y37NAYmTFmz0YRwrRjgxKw=",
+ version = "v0.0.0-20201217150744-e6ae53a27f4f",
+ )
+
+ go_repository(
+ name = "org_golang_x_mod",
build_extra_args = [
- "-go_naming_convention=go_default_library",
- "-go_naming_convention_external=go_default_library",
+ "-go_naming_convention=import_alias",
+ "-go_naming_convention_external=import_alias",
],
+ importpath = "golang.org/x/mod",
+ sum = "h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=",
+ version = "v0.5.1",
+ )
+ go_repository(
+ name = "org_golang_x_net",
+ importpath = "golang.org/x/net",
+ sum = "h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=",
+ version = "v0.0.0-20220225172249-27dd8689420f",
+ )
+ go_repository(
+ name = "org_golang_x_oauth2",
+ importpath = "golang.org/x/oauth2",
+ sum = "h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg=",
+ version = "v0.0.0-20211104180415-d3ed0bb246c8",
+ )
+
+ go_repository(
+ name = "org_golang_x_sync",
+ build_extra_args = [
+ "-go_naming_convention=import_alias",
+ "-go_naming_convention_external=import_alias",
+ ],
+ importpath = "golang.org/x/sync",
+ sum = "h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=",
+ version = "v0.0.0-20210220032951-036812b2e83c",
+ )
+ go_repository(
+ name = "org_golang_x_sys",
+ importpath = "golang.org/x/sys",
+ sum = "h1:y/woIyUBFbpQGKS0u1aHF/40WUDnek3fPOyD08H5Vng=",
+ version = "v0.0.0-20220310020820-b874c991c1a5",
+ )
+ go_repository(
+ name = "org_golang_x_term",
+ importpath = "golang.org/x/term",
+ sum = "h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=",
+ version = "v0.0.0-20210927222741-03fcf44c2211",
+ )
+
+ go_repository(
+ name = "org_golang_x_text",
+ importpath = "golang.org/x/text",
+ sum = "h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=",
+ version = "v0.3.7",
+ )
+ go_repository(
+ name = "org_golang_x_time",
+ importpath = "golang.org/x/time",
+ sum = "h1:GZokNIeuVkl3aZHJchRrr13WCsols02MLUcz1U9is6M=",
+ version = "v0.0.0-20211116232009-f0f3c7e86c11",
+ )
+ go_repository(
+ name = "org_golang_x_tools",
+ importpath = "golang.org/x/tools",
+ patch_args = ["-p1"],
+ patches = [
+ "//third_party/go/patches:goimports-group-merging.patch",
+ ],
+ sum = "h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8=",
+ version = "v0.1.9",
+ )
+ go_repository(
+ name = "org_golang_x_xerrors",
+ importpath = "golang.org/x/xerrors",
+ sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
+ version = "v0.0.0-20200804184101-5ec99f83aff1",
+ )
+
+ go_repository(
+ name = "org_gonum_v1_gonum",
+ importpath = "gonum.org/v1/gonum",
+ sum = "h1:4r+yNT0+8SWcOkXP+63H2zQbN+USnC73cjGUxnDF94Q=",
+ version = "v0.6.2",
+ )
+ go_repository(
+ name = "org_gonum_v1_netlib",
+ importpath = "gonum.org/v1/netlib",
+ sum = "h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=",
+ version = "v0.0.0-20190331212654-76723241ea4e",
+ )
+ go_repository(
+ name = "org_gonum_v1_plot",
+ importpath = "gonum.org/v1/plot",
+ sum = "h1:Qh4dB5D/WpoUUp3lSod7qgoyEHbDGPUWjIbnqdqqe1k=",
+ version = "v0.0.0-20190515093506-e2840ee46a6b",
+ )
+ go_repository(
+ name = "org_modernc_cc",
+ importpath = "modernc.org/cc",
+ sum = "h1:nPibNuDEx6tvYrUAtvDTTw98rx5juGsa5zuDnKwEEQQ=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "org_modernc_golex",
+ importpath = "modernc.org/golex",
+ sum = "h1:wWpDlbK8ejRfSyi0frMyhilD3JBvtcx2AdGDnU+JtsE=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "org_modernc_mathutil",
+ importpath = "modernc.org/mathutil",
+ sum = "h1:93vKjrJopTPrtTNpZ8XIovER7iCIH1QU7wNbOQXC60I=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "org_modernc_strutil",
+ importpath = "modernc.org/strutil",
+ sum = "h1:XVFtQwFVwc02Wk+0L/Z/zDDXO81r5Lhe6iMKmGX3KhE=",
+ version = "v1.0.0",
+ )
+ go_repository(
+ name = "org_modernc_xc",
+ importpath = "modernc.org/xc",
+ sum = "h1:7ccXrupWZIS3twbUGrtKmHS2DXY6xegFua+6O3xgAFU=",
+ version = "v1.0.0",
+ )
+
+ go_repository(
+ name = "org_mongodb_go_mongo_driver",
+ importpath = "go.mongodb.org/mongo-driver",
+ sum = "h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=",
+ version = "v1.1.2",
+ )
+ go_repository(
+ name = "org_mozilla_go_pkcs7",
+ importpath = "go.mozilla.org/pkcs7",
+ sum = "h1:A/5uWzF44DlIgdm/PQFwfMkW0JX+cIcQi/SwLAmZP5M=",
+ version = "v0.0.0-20200128120323-432b2356ecb1",
+ )
+
+ go_repository(
+ name = "org_uber_go_atomic",
+ importpath = "go.uber.org/atomic",
+ sum = "h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=",
+ version = "v1.7.0",
+ )
+ go_repository(
+ name = "org_uber_go_goleak",
+ importpath = "go.uber.org/goleak",
+ sum = "h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=",
+ version = "v1.1.12",
+ )
+
+ go_repository(
+ name = "org_uber_go_multierr",
+ importpath = "go.uber.org/multierr",
+ sum = "h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=",
+ version = "v1.8.0",
+ )
+ go_repository(
+ name = "org_uber_go_tools",
+ importpath = "go.uber.org/tools",
+ sum = "h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=",
+ version = "v0.0.0-20190618225709-2cfd321de3ee",
+ )
+
+ go_repository(
+ name = "org_uber_go_zap",
+ importpath = "go.uber.org/zap",
+ sum = "h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=",
+ version = "v1.19.0",
+ )
+ go_repository(
+ name = "tools_gotest",
+ importpath = "gotest.tools",
+ sum = "h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=",
+ version = "v2.2.0+incompatible",
+ )
+
+ go_repository(
+ name = "tools_gotest_v3",
+ importpath = "gotest.tools/v3",
+ sum = "h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0=",
+ version = "v3.0.3",
)
diff --git a/third_party/seccomp/external.bzl b/third_party/seccomp/external.bzl
index 66f933b..7f558c6 100644
--- a/third_party/seccomp/external.bzl
+++ b/third_party/seccomp/external.bzl
@@ -17,6 +17,8 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def seccomp_external(name, version):
+ # NOTE: Remember to update seccomp.bzl's seccomp.h template rule
+ # with the correct version.
sums = {
"2.5.1": "76ad54e31d143b39a99083564045212a965e026a1010a742edd793d26d699829",
}
diff --git a/third_party/seccomp/seccomp.bzl b/third_party/seccomp/seccomp.bzl
index 6b0a9aa..4280fc2 100644
--- a/third_party/seccomp/seccomp.bzl
+++ b/third_party/seccomp/seccomp.bzl
@@ -53,11 +53,11 @@
name = "seccomp.h",
src = "include/seccomp.h.in",
substitutions = {
- # Irrelevant for Bazel. Just look at WORKSPACE.
- # Make it obviously invalid so nobody is mislead.
- "@VERSION_MAJOR@": "0",
- "@VERSION_MINOR@": "0",
- "@VERSION_MICRO@": "0",
+ # Known dependencies relying on this version information:
+ # - @com_github_seccomp_libseccomp_golang//:libseccomp-golang
+ "@VERSION_MAJOR@": "2",
+ "@VERSION_MINOR@": "5",
+ "@VERSION_MICRO@": "1",
},
visibility = ["//visibility:public"],
)