mirror of
https://github.com/wahyd4/cert-manager.git
synced 2026-08-08 20:58:17 +10:00
Upgrade k8s.io dependencies to v0.23.1
Signed-off-by: James Munnelly <jmunnelly@apple.com>
This commit is contained in:
@@ -26645,6 +26645,252 @@ third-party archives.
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/sigs.k8s.io/json licensed under: =
|
||||
|
||||
Files other than internal/golang/* licensed under:
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
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.
|
||||
|
||||
|
||||
------------------
|
||||
|
||||
internal/golang/* files licensed under:
|
||||
|
||||
|
||||
Copyright (c) 2009 The Go Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
= vendor/sigs.k8s.io/json/LICENSE 545d3f23616dee7495323aeb0b098df3
|
||||
================================================================================
|
||||
|
||||
|
||||
================================================================================
|
||||
= vendor/sigs.k8s.io/kustomize/api licensed under: =
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ func NewACMESolverCommand(stopCh <-chan struct{}) *cobra.Command {
|
||||
Short: "HTTP server used to solve ACME challenges.",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
rootCtx := util.ContextWithStopCh(context.Background(), stopCh)
|
||||
rootCtx = logf.NewContext(rootCtx, nil, "acmesolver")
|
||||
rootCtx = logf.NewContext(rootCtx, logf.Log, "acmesolver")
|
||||
log := logf.FromContext(rootCtx)
|
||||
|
||||
completedCh := make(chan struct{})
|
||||
|
||||
@@ -70,12 +70,11 @@ const controllerAgentName = "cert-manager"
|
||||
const resyncPeriod = 10 * time.Hour
|
||||
|
||||
func Run(opts *options.ControllerOptions, stopCh <-chan struct{}) error {
|
||||
rootCtx := cmdutil.ContextWithStopCh(context.Background(), stopCh)
|
||||
rootCtx, cancelContext := context.WithCancel(rootCtx)
|
||||
rootCtx, cancelContext := context.WithCancel(cmdutil.ContextWithStopCh(context.Background(), stopCh))
|
||||
defer cancelContext()
|
||||
g, rootCtx := errgroup.WithContext(rootCtx)
|
||||
rootCtx = logf.NewContext(rootCtx, nil, "controller")
|
||||
rootCtx = logf.NewContext(rootCtx, logf.Log, "controller")
|
||||
log := logf.FromContext(rootCtx)
|
||||
g, rootCtx := errgroup.WithContext(rootCtx)
|
||||
|
||||
ctx, kubeCfg, err := buildControllerContext(rootCtx, opts)
|
||||
if err != nil {
|
||||
|
||||
@@ -8,9 +8,9 @@ go_library(
|
||||
deps = [
|
||||
"//cmd/webhook/app:go_default_library",
|
||||
"//cmd/webhook/app/options:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//pkg/util/pki:go_default_library",
|
||||
"//pkg/webhook/server:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@com_github_spf13_pflag//:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/util/wait:go_default_library",
|
||||
"@io_k8s_utils//pointer:go_default_library",
|
||||
|
||||
@@ -31,13 +31,13 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/spf13/pflag"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/utils/pointer"
|
||||
|
||||
"github.com/jetstack/cert-manager/cmd/webhook/app"
|
||||
"github.com/jetstack/cert-manager/cmd/webhook/app/options"
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/util/pki"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/server"
|
||||
)
|
||||
@@ -57,7 +57,7 @@ type ServerOptions struct {
|
||||
}
|
||||
|
||||
func StartWebhookServer(t *testing.T, ctx context.Context, args []string, argumentsForNewServerWithOptions ...app.ServerOption) (ServerOptions, StopFunc) {
|
||||
log := logtesting.TestLogger{T: t}
|
||||
log := logtesting.NewTestLogger(t)
|
||||
|
||||
fs := pflag.NewFlagSet("testset", pflag.ExitOnError)
|
||||
webhookFlags := options.NewWebhookFlags()
|
||||
@@ -98,16 +98,16 @@ func StartWebhookServer(t *testing.T, ctx context.Context, args []string, argume
|
||||
webhookConfig.SecurePort = pointer.Int(0)
|
||||
webhookConfig.HealthzPort = pointer.Int(0)
|
||||
|
||||
stopCh := make(chan struct{})
|
||||
errCh := make(chan error)
|
||||
srv, err := app.NewServerWithOptions(log, *webhookFlags, *webhookConfig, argumentsForNewServerWithOptions...)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
go func() {
|
||||
defer close(errCh)
|
||||
if err := srv.Run(stopCh); err != nil {
|
||||
if err := srv.Run(ctx); err != nil {
|
||||
errCh <- fmt.Errorf("error running webhook server: %v", err)
|
||||
}
|
||||
}()
|
||||
@@ -132,7 +132,7 @@ func StartWebhookServer(t *testing.T, ctx context.Context, args []string, argume
|
||||
CAPEM: caPEM,
|
||||
}
|
||||
return serverOpts, func() {
|
||||
close(stopCh)
|
||||
cancel()
|
||||
err := <-errCh // Wait for shutdown
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
@@ -75,7 +75,6 @@ func NewServerWithOptions(log logr.Logger, _ options.WebhookFlags, opts config.W
|
||||
source = &tls.FileCertificateSource{
|
||||
CertPath: opts.TLSConfig.Filesystem.CertFile,
|
||||
KeyPath: opts.TLSConfig.Filesystem.KeyFile,
|
||||
Log: log,
|
||||
}
|
||||
case opts.TLSConfig.DynamicConfigProvided():
|
||||
restcfg, err := clientcmd.BuildConfigFromFlags("", opts.KubeConfig)
|
||||
@@ -90,9 +89,7 @@ func NewServerWithOptions(log logr.Logger, _ options.WebhookFlags, opts config.W
|
||||
SecretNamespace: opts.TLSConfig.Dynamic.SecretNamespace,
|
||||
SecretName: opts.TLSConfig.Dynamic.SecretName,
|
||||
RESTConfig: restcfg,
|
||||
Log: log,
|
||||
},
|
||||
Log: log,
|
||||
}
|
||||
default:
|
||||
log.V(logf.WarnLevel).Info("serving insecurely as tls certificate data not provided")
|
||||
@@ -109,7 +106,6 @@ func NewServerWithOptions(log logr.Logger, _ options.WebhookFlags, opts config.W
|
||||
ValidationWebhook: validationHook,
|
||||
MutationWebhook: mutationHook,
|
||||
ConversionWebhook: conversionHook,
|
||||
Log: log,
|
||||
}
|
||||
for _, f := range optionFunctions {
|
||||
f(s)
|
||||
@@ -121,8 +117,8 @@ const componentWebhook = "webhook"
|
||||
|
||||
func NewServerCommand(stopCh <-chan struct{}) *cobra.Command {
|
||||
ctx := cmdutil.ContextWithStopCh(context.Background(), stopCh)
|
||||
ctx = logf.NewContext(ctx, nil, "webhook")
|
||||
log := logf.FromContext(ctx)
|
||||
log := logf.Log
|
||||
ctx = logf.NewContext(ctx, log, "webhook")
|
||||
|
||||
cleanFlagSet := pflag.NewFlagSet(componentWebhook, pflag.ContinueOnError)
|
||||
// Replaces all instances of `_` in flag names with `-`
|
||||
@@ -193,7 +189,7 @@ func NewServerCommand(stopCh <-chan struct{}) *cobra.Command {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if err := srv.Run(stopCh); err != nil {
|
||||
if err := srv.Run(ctx); err != nil {
|
||||
log.Error(err, "Failed running server")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ require (
|
||||
github.com/cloudflare/cloudflare-go v0.20.0
|
||||
github.com/cpu/goacmedns v0.1.1
|
||||
github.com/digitalocean/godo v1.65.0
|
||||
github.com/go-logr/logr v0.4.0
|
||||
github.com/go-logr/logr v1.2.0
|
||||
github.com/google/gofuzz v1.2.0
|
||||
github.com/googleapis/gnostic v0.5.5
|
||||
github.com/hashicorp/vault/api v1.1.1
|
||||
@@ -22,8 +22,8 @@ require (
|
||||
github.com/miekg/dns v1.1.34
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/munnerz/crd-schema-fuzz v1.0.0
|
||||
github.com/onsi/ginkgo v1.16.4
|
||||
github.com/onsi/gomega v1.15.0
|
||||
github.com/onsi/ginkgo v1.16.5
|
||||
github.com/onsi/gomega v1.17.0
|
||||
github.com/pavel-v-chernykh/keystore-go/v4 v4.2.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/prometheus/client_golang v1.11.0
|
||||
@@ -32,29 +32,29 @@ require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.7.0
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
|
||||
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d
|
||||
golang.org/x/oauth2 v0.0.0-20210810183815-faf39c7919d5
|
||||
golang.org/x/net v0.0.0-20211209124913-491a49abca63
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||
gomodules.xyz/jsonpatch/v2 v2.2.0
|
||||
google.golang.org/api v0.53.0
|
||||
helm.sh/helm/v3 v3.7.1
|
||||
k8s.io/api v0.22.2
|
||||
k8s.io/apiextensions-apiserver v0.22.2
|
||||
k8s.io/apimachinery v0.22.2
|
||||
k8s.io/apiserver v0.22.2
|
||||
k8s.io/cli-runtime v0.22.1
|
||||
k8s.io/client-go v0.22.2
|
||||
k8s.io/code-generator v0.22.2
|
||||
k8s.io/component-base v0.22.2
|
||||
k8s.io/klog/v2 v2.9.0
|
||||
k8s.io/kube-aggregator v0.22.0
|
||||
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d
|
||||
k8s.io/kubectl v0.22.1
|
||||
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a
|
||||
sigs.k8s.io/controller-runtime v0.10.1
|
||||
k8s.io/api v0.23.1
|
||||
k8s.io/apiextensions-apiserver v0.23.1
|
||||
k8s.io/apimachinery v0.23.1
|
||||
k8s.io/apiserver v0.23.1
|
||||
k8s.io/cli-runtime v0.23.1
|
||||
k8s.io/client-go v0.23.1
|
||||
k8s.io/code-generator v0.23.1
|
||||
k8s.io/component-base v0.23.1
|
||||
k8s.io/klog/v2 v2.30.0
|
||||
k8s.io/kube-aggregator v0.23.1
|
||||
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65
|
||||
k8s.io/kubectl v0.23.1
|
||||
k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b
|
||||
sigs.k8s.io/controller-runtime v0.11.0
|
||||
sigs.k8s.io/controller-tools v0.7.0
|
||||
sigs.k8s.io/gateway-api v0.3.0
|
||||
sigs.k8s.io/yaml v1.2.0
|
||||
sigs.k8s.io/yaml v1.3.0
|
||||
software.sslmate.com/src/go-pkcs12 v0.0.0-20210415151418-c5206de65a78
|
||||
)
|
||||
|
||||
@@ -98,13 +98,13 @@ require (
|
||||
github.com/docker/go-metrics v0.0.1 // indirect
|
||||
github.com/docker/go-units v0.4.0 // indirect
|
||||
github.com/emicklei/go-restful v2.9.5+incompatible // indirect
|
||||
github.com/evanphx/json-patch v4.11.0+incompatible // indirect
|
||||
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect
|
||||
github.com/fatih/camelcase v1.0.0 // indirect
|
||||
github.com/fatih/color v1.12.0 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.1 // indirect
|
||||
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.1 // indirect
|
||||
github.com/go-errors/errors v1.0.1 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||
github.com/go-openapi/jsonreference v0.19.5 // indirect
|
||||
@@ -141,7 +141,7 @@ require (
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/jmoiron/sqlx v1.3.1 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.11 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/compress v1.13.6 // indirect
|
||||
github.com/kr/text v0.2.0 // indirect
|
||||
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
|
||||
@@ -161,7 +161,7 @@ require (
|
||||
github.com/moby/spdystream v0.2.0 // indirect
|
||||
github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||
github.com/nxadm/tail v1.4.8 // indirect
|
||||
@@ -174,7 +174,7 @@ require (
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/prometheus/client_model v0.2.0 // indirect
|
||||
github.com/prometheus/common v0.26.0 // indirect
|
||||
github.com/prometheus/common v0.28.0 // indirect
|
||||
github.com/prometheus/procfs v0.6.0 // indirect
|
||||
github.com/rogpeppe/go-internal v1.6.1 // indirect
|
||||
github.com/rubenv/sql-migrate v0.0.0-20210614095031-55d5740dbbcc // indirect
|
||||
@@ -207,13 +207,13 @@ require (
|
||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
go.uber.org/zap v1.19.0 // indirect
|
||||
go.uber.org/zap v1.19.1 // indirect
|
||||
golang.org/x/mod v0.4.2 // indirect
|
||||
golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 // indirect
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect
|
||||
golang.org/x/text v0.3.6 // indirect
|
||||
golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8 // indirect
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b // indirect
|
||||
golang.org/x/text v0.3.7 // indirect
|
||||
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect
|
||||
golang.org/x/tools v0.1.5 // indirect
|
||||
golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff // indirect
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20211005153810-c76a74d43a8e // indirect
|
||||
@@ -227,12 +227,13 @@ require (
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
|
||||
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 // indirect
|
||||
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c // indirect
|
||||
oras.land/oras-go v0.4.0 // indirect
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 // indirect
|
||||
sigs.k8s.io/kustomize/api v0.8.11 // indirect
|
||||
sigs.k8s.io/kustomize/kyaml v0.11.0 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.2 // indirect
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect
|
||||
sigs.k8s.io/kustomize/api v0.10.1 // indirect
|
||||
sigs.k8s.io/kustomize/kyaml v0.13.0 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.0 // indirect
|
||||
)
|
||||
|
||||
replace golang.org/x/net => golang.org/x/net v0.0.0-20210224082022-3d97a244fca7
|
||||
|
||||
@@ -158,6 +158,7 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5
|
||||
github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0=
|
||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||
@@ -434,8 +435,9 @@ github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMi
|
||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs=
|
||||
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
|
||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=
|
||||
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
|
||||
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
|
||||
@@ -455,12 +457,14 @@ github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq
|
||||
github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=
|
||||
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
|
||||
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
|
||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
|
||||
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
|
||||
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7 h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko=
|
||||
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
|
||||
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
|
||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
@@ -484,11 +488,12 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG
|
||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE=
|
||||
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
|
||||
github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM=
|
||||
github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
|
||||
github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=
|
||||
github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro=
|
||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
||||
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
||||
@@ -576,6 +581,7 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
|
||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
@@ -621,6 +627,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||
github.com/google/cel-go v0.9.0/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w=
|
||||
github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
@@ -804,8 +812,9 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u
|
||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
|
||||
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||
@@ -933,8 +942,9 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
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/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
@@ -967,8 +977,9 @@ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+
|
||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||
github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
|
||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
||||
github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
@@ -977,8 +988,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
|
||||
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
|
||||
github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
|
||||
github.com/onsi/gomega v1.15.0 h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU=
|
||||
github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
|
||||
github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=
|
||||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
||||
github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
@@ -1062,8 +1073,9 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
|
||||
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
|
||||
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ=
|
||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
||||
github.com/prometheus/common v0.28.0 h1:vGVfV9KrDTvWt5boZO0I19g2E3CsWfpPPKZM9dt3mEw=
|
||||
github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
|
||||
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
@@ -1213,6 +1225,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI=
|
||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE=
|
||||
@@ -1286,8 +1299,10 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
|
||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=
|
||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||
go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
|
||||
go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
|
||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||
@@ -1297,8 +1312,9 @@ go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
|
||||
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
|
||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||
go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=
|
||||
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
|
||||
golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
@@ -1328,6 +1344,7 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
||||
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
@@ -1353,7 +1370,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
|
||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||
@@ -1385,8 +1401,8 @@ golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210810183815-faf39c7919d5 h1:Ati8dO7+U7mxpkPSxBZQEvzHVUYB/MqCklCN8ig5w/o=
|
||||
golang.org/x/oauth2 v0.0.0-20210810183815-faf39c7919d5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw=
|
||||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -1499,12 +1515,15 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo=
|
||||
golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8 h1:M69LAlWZCshgp0QSzyDcSsSIejIEeuaCVpmwcKwyLMk=
|
||||
golang.org/x/sys v0.0.0-20211029165221-6e7872819dc8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE=
|
||||
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -1513,8 +1532,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
@@ -1595,8 +1615,9 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff h1:VX/uD7MK0AHXGiScH3fsieUQUcpmRERPDYtqZdJnA+Q=
|
||||
golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -1678,6 +1699,7 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201102152239-715cce707fb0/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
@@ -1697,6 +1719,7 @@ google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm
|
||||
google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
|
||||
google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
|
||||
google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
|
||||
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
|
||||
google.golang.org/genproto v0.0.0-20211005153810-c76a74d43a8e h1:Im71rbA1N3CbIag/PumYhQcNR8bLNmuOtRIyOnnLsT8=
|
||||
google.golang.org/genproto v0.0.0-20211005153810-c76a74d43a8e/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
@@ -1813,65 +1836,75 @@ k8s.io/api v0.20.2/go.mod h1:d7n6Ehyzx+S+cE3VhTGfVNNqtGc/oL9DCdYYahlurV8=
|
||||
k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
|
||||
k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
|
||||
k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU=
|
||||
k8s.io/api v0.22.0/go.mod h1:0AoXXqst47OI/L0oGKq9DG61dvGRPXs7X4/B7KyjBCU=
|
||||
k8s.io/api v0.22.1/go.mod h1:bh13rkTp3F1XEaLGykbyRD2QaTTzPm0e/BMd8ptFONY=
|
||||
k8s.io/api v0.22.2 h1:M8ZzAD0V6725Fjg53fKeTJxGsJvRbk4TEm/fexHMtfw=
|
||||
k8s.io/api v0.22.2/go.mod h1:y3ydYpLJAaDI+BbSe2xmGcqxiWHmWjkEeIbiwHvnPR8=
|
||||
k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg=
|
||||
k8s.io/api v0.23.1 h1:ncu/qfBfUoClqwkTGbeRqqOqBCRoUAflMuOaOD7J0c8=
|
||||
k8s.io/api v0.23.1/go.mod h1:WfXnOnwSqNtG62Y1CdjoMxh7r7u9QXGCkA1u0na2jgo=
|
||||
k8s.io/apiextensions-apiserver v0.18.0/go.mod h1:18Cwn1Xws4xnWQNC00FLq1E350b9lUF+aOdIWDOZxgo=
|
||||
k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk=
|
||||
k8s.io/apiextensions-apiserver v0.20.2/go.mod h1:F6TXp389Xntt+LUq3vw6HFOLttPa0V8821ogLGwb6Zs=
|
||||
k8s.io/apiextensions-apiserver v0.22.1/go.mod h1:HeGmorjtRmRLE+Q8dJu6AYRoZccvCMsghwS8XTUYb2c=
|
||||
k8s.io/apiextensions-apiserver v0.22.2 h1:zK7qI8Ery7j2CaN23UCFaC1hj7dMiI87n01+nKuewd4=
|
||||
k8s.io/apiextensions-apiserver v0.22.2/go.mod h1:2E0Ve/isxNl7tWLSUDgi6+cmwHi5fQRdwGVCxbC+KFA=
|
||||
k8s.io/apiextensions-apiserver v0.23.0/go.mod h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4=
|
||||
k8s.io/apiextensions-apiserver v0.23.1 h1:xxE0q1vLOVZiWORu1KwNRQFsGWtImueOrqSl13sS5EU=
|
||||
k8s.io/apiextensions-apiserver v0.23.1/go.mod h1:0qz4fPaHHsVhRApbtk3MGXNn2Q9M/cVWWhfHdY2SxiM=
|
||||
k8s.io/apimachinery v0.18.0/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
|
||||
k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
|
||||
k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
|
||||
k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
|
||||
k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
|
||||
k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
|
||||
k8s.io/apimachinery v0.22.0/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
|
||||
k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
|
||||
k8s.io/apimachinery v0.22.2 h1:ejz6y/zNma8clPVfNDLnPbleBo6MpoFy/HBiBqCouVk=
|
||||
k8s.io/apimachinery v0.22.2/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
|
||||
k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc=
|
||||
k8s.io/apimachinery v0.23.1 h1:sfBjlDFwj2onG0Ijx5C+SrAoeUscPrmghm7wHP+uXlo=
|
||||
k8s.io/apimachinery v0.23.1/go.mod h1:SADt2Kl8/sttJ62RRsi9MIV4o8f5S3coArm0Iu3fBno=
|
||||
k8s.io/apiserver v0.18.0/go.mod h1:3S2O6FeBBd6XTo0njUrLxiqk8GNy6wWOftjhJcXYnjw=
|
||||
k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
|
||||
k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA=
|
||||
k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
|
||||
k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
|
||||
k8s.io/apiserver v0.22.0/go.mod h1:04kaIEzIQrTGJ5syLppQWvpkLJXQtJECHmae+ZGc/nc=
|
||||
k8s.io/apiserver v0.22.1/go.mod h1:2mcM6dzSt+XndzVQJX21Gx0/Klo7Aen7i0Ai6tIa400=
|
||||
k8s.io/apiserver v0.22.2 h1:TdIfZJc6YNhu2WxeAOWq1TvukHF0Sfx0+ln4XK9qnL4=
|
||||
k8s.io/apiserver v0.22.2/go.mod h1:vrpMmbyjWrgdyOvZTSpsusQq5iigKNWv9o9KlDAbBHI=
|
||||
k8s.io/cli-runtime v0.22.1 h1:WIueieKvT+IiSVSFosRLI6rkM0tyBGEGH1WUEztVjho=
|
||||
k8s.io/apiserver v0.23.0/go.mod h1:Cec35u/9zAepDPPFyT+UMrgqOCjgJ5qtfVJDxjZYmt4=
|
||||
k8s.io/apiserver v0.23.1 h1:vWGf8LcV9Pk/z5rdLmCiBDqE21ccbe930dzrtVMhw9g=
|
||||
k8s.io/apiserver v0.23.1/go.mod h1:Bqt0gWbeM2NefS8CjWswwd2VNAKN6lUKR85Ft4gippY=
|
||||
k8s.io/cli-runtime v0.22.1/go.mod h1:YqwGrlXeEk15Yn3em2xzr435UGwbrCw5x+COQoTYfoo=
|
||||
k8s.io/cli-runtime v0.23.1 h1:vHUZrq1Oejs0WaJnxs09mLHKScvIIl2hMSthhS8o8Yo=
|
||||
k8s.io/cli-runtime v0.23.1/go.mod h1:r9r8H/qfXo9w+69vwUL7LokKlLRKW5D6A8vUKCx+YL0=
|
||||
k8s.io/client-go v0.18.0/go.mod h1:uQSYDYs4WhVZ9i6AIoEZuwUggLVEF64HOD37boKAtF8=
|
||||
k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y=
|
||||
k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE=
|
||||
k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
|
||||
k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0=
|
||||
k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA=
|
||||
k8s.io/client-go v0.22.0/go.mod h1:GUjIuXR5PiEv/RVK5OODUsm6eZk7wtSWZSaSJbpFdGg=
|
||||
k8s.io/client-go v0.22.1/go.mod h1:BquC5A4UOo4qVDUtoc04/+Nxp1MeHcVc1HJm1KmG8kk=
|
||||
k8s.io/client-go v0.22.2 h1:DaSQgs02aCC1QcwUdkKZWOeaVsQjYvWv8ZazcZ6JcHc=
|
||||
k8s.io/client-go v0.22.2/go.mod h1:sAlhrkVDf50ZHx6z4K0S40wISNTarf1r800F+RlCF6U=
|
||||
k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA=
|
||||
k8s.io/client-go v0.23.1 h1:Ma4Fhf/p07Nmj9yAB1H7UwbFHEBrSPg8lviR24U2GiQ=
|
||||
k8s.io/client-go v0.23.1/go.mod h1:6QSI8fEuqD4zgFK0xbdwfB/PthBsIxCJMa3s17WlcO0=
|
||||
k8s.io/code-generator v0.18.0/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
|
||||
k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg=
|
||||
k8s.io/code-generator v0.20.2/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg=
|
||||
k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q=
|
||||
k8s.io/code-generator v0.22.0/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o=
|
||||
k8s.io/code-generator v0.22.1/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o=
|
||||
k8s.io/code-generator v0.22.2 h1:+bUv9lpTnAWABtPkvO4x0kfz7j/kDEchVt0P/wXU3jQ=
|
||||
k8s.io/code-generator v0.22.2/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o=
|
||||
k8s.io/code-generator v0.23.0/go.mod h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE=
|
||||
k8s.io/code-generator v0.23.1 h1:ViFOlP/0bYD7VrnUDS+ch5ej5EIuMawFmHcRuv9Yxyw=
|
||||
k8s.io/code-generator v0.23.1/go.mod h1:V7yn6VNTCWW8GqodYCESVo95fuiEg713S8B7WacWZDA=
|
||||
k8s.io/component-base v0.18.0/go.mod h1:u3BCg0z1uskkzrnAKFzulmYaEpZF7XC9Pf/uFyb1v2c=
|
||||
k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk=
|
||||
k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0=
|
||||
k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
|
||||
k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM=
|
||||
k8s.io/component-base v0.22.0/go.mod h1:SXj6Z+V6P6GsBhHZVbWCw9hFjUdUYnJerlhhPnYCBCg=
|
||||
k8s.io/component-base v0.22.1/go.mod h1:0D+Bl8rrnsPN9v0dyYvkqFfBeAd4u7n77ze+p8CMiPo=
|
||||
k8s.io/component-base v0.22.2 h1:vNIvE0AIrLhjX8drH0BgCNJcR4QZxMXcJzBsDplDx9M=
|
||||
k8s.io/component-base v0.22.2/go.mod h1:5Br2QhI9OTe79p+TzPe9JKNQYvEKbq9rTJDWllunGug=
|
||||
k8s.io/component-base v0.23.0/go.mod h1:DHH5uiFvLC1edCpvcTDV++NKULdYYU6pR9Tt3HIKMKI=
|
||||
k8s.io/component-base v0.23.1 h1:j/BqdZUWeWKCy2v/jcgnOJAzpRYWSbGcjGVYICko8Uc=
|
||||
k8s.io/component-base v0.23.1/go.mod h1:6llmap8QtJIXGDd4uIWJhAq0Op8AtQo6bDW2RrNMTeo=
|
||||
k8s.io/component-helpers v0.22.1/go.mod h1:QvBcDbX+qU5I2tMZABBF5fRwAlQwiv771IGBHK9WYh4=
|
||||
k8s.io/component-helpers v0.23.1/go.mod h1:ZK24U+2oXnBPcas2KolLigVVN9g5zOzaHLkHiQMFGr0=
|
||||
k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
|
||||
k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
|
||||
k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
|
||||
@@ -1881,8 +1914,9 @@ k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8
|
||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
k8s.io/gengo v0.0.0-20201203183100-97869a43a9d9/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 h1:Uusb3oh8XcdzDF/ndlI4ToKTYVlkCSJP39SRY2mfRAw=
|
||||
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA=
|
||||
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
|
||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||
k8s.io/klog v0.2.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||
@@ -1892,27 +1926,32 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
|
||||
k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM=
|
||||
k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
|
||||
k8s.io/kube-aggregator v0.22.0 h1:he3plI8vlaPJxR9vsy/lL5ga1V8CoA8M8x1Bn8eTCeM=
|
||||
k8s.io/kube-aggregator v0.22.0/go.mod h1:zHTepg0Q4tKzru7Pwg1QYHWrU/wrvIXM8hUdDAH66qg=
|
||||
k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw=
|
||||
k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||
k8s.io/kube-aggregator v0.23.1 h1:w05VLh3ji05gYQglMKKrwafgqjgIxZoBusxdSWS9d/4=
|
||||
k8s.io/kube-aggregator v0.23.1/go.mod h1:1SPZXYD/je2gKxxLBkYyG3yFxSCUWI5QTyjqP2ZxRDI=
|
||||
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
|
||||
k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
|
||||
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
|
||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
|
||||
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d h1:lUK8GPtuJy8ClWZhuvKoaLdKGPLq9H1PxWp7VPBZBkU=
|
||||
k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
|
||||
k8s.io/kubectl v0.22.1 h1:kpXO+ajPNTzAVLDM9pAzCsWH9MtCMr92zpcvXMt7P6E=
|
||||
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=
|
||||
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk=
|
||||
k8s.io/kubectl v0.22.1/go.mod h1:mjAOgEbMNMtZWxnfM6jd+nPjPsaoLqO5xanc78WcSbw=
|
||||
k8s.io/kubectl v0.23.1 h1:gmscOiV4Y4XIRIn14gQBBADoyyVrDZPbxRCTDga4RSA=
|
||||
k8s.io/kubectl v0.23.1/go.mod h1:Ui7dJKdUludF8yWAOSN7JZEkOuYixX5yF6E6NjoukKE=
|
||||
k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
|
||||
k8s.io/metrics v0.22.1/go.mod h1:i/ZNap89UkV1gLa26dn7fhKAdheJaKy+moOqJbiif7E=
|
||||
k8s.io/metrics v0.23.1/go.mod h1:qXvsM1KANrc+ZZeFwj6Phvf0NLiC+d3RwcsLcdGc+xs=
|
||||
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
|
||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210305010621-2afb4311ab10/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g=
|
||||
k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs=
|
||||
k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
oras.land/oras-go v0.4.0 h1:u6+7D+raZDYHwlz/uOwNANiRmyYDSSMW7A9E1xXycUQ=
|
||||
oras.land/oras-go v0.4.0/go.mod h1:VJcU+VE4rkclUbum5C0O7deEZbBYnsnpbGSACwTjOcg=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
@@ -1923,32 +1962,41 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25 h1:DEQ12ZRxJjsglk5JIi5bLgpKaHihGervKmg5uryaEHw=
|
||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25/go.mod h1:Mlj9PNLmG9bZ6BHFwFKDo5afkpWyUISkb9Me0GnK66I=
|
||||
sigs.k8s.io/controller-runtime v0.8.3/go.mod h1:U/l+DUopBc1ecfRZ5aviA9JDmGFQKvLf5YkZNx2e0sU=
|
||||
sigs.k8s.io/controller-runtime v0.10.1 h1:+eLHgY/VrJWnfg6iXUqhCUqNXgPH1NZeP9drNAAgWlg=
|
||||
sigs.k8s.io/controller-runtime v0.10.1/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY=
|
||||
sigs.k8s.io/controller-runtime v0.11.0 h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ=
|
||||
sigs.k8s.io/controller-runtime v0.11.0/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA=
|
||||
sigs.k8s.io/controller-tools v0.5.0/go.mod h1:JTsstrMpxs+9BUj6eGuAaEb6SDSPTeVtUyp0jmnAM/I=
|
||||
sigs.k8s.io/controller-tools v0.7.0 h1:iZIz1vEcavyEfxjcTLs1WH/MPf4vhPCtTKhoHqV8/G0=
|
||||
sigs.k8s.io/controller-tools v0.7.0/go.mod h1:bpBAo0VcSDDLuWt47evLhMLPxRPxMDInTEH/YbdeMK0=
|
||||
sigs.k8s.io/gateway-api v0.3.0 h1:mKbQRlRIIY3dsCCbNF9Jv30V9vvOf6SRG82l0MfJQ9U=
|
||||
sigs.k8s.io/gateway-api v0.3.0/go.mod h1:Wb8bx7QhGVZxOSEU3i9vw/JqTB5Nlai9MLMYVZeDmRQ=
|
||||
sigs.k8s.io/kustomize/api v0.8.11 h1:LzQzlq6Z023b+mBtc6v72N2mSHYmN8x7ssgbf/hv0H8=
|
||||
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s=
|
||||
sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs=
|
||||
sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g=
|
||||
sigs.k8s.io/kustomize/api v0.10.1 h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0=
|
||||
sigs.k8s.io/kustomize/api v0.10.1/go.mod h1:2FigT1QN6xKdcnGS2Ppp1uIWrtWN28Ms8A3OZUZhwr8=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs=
|
||||
sigs.k8s.io/kustomize/cmd/config v0.10.2/go.mod h1:K2aW7nXJ0AaT+VA/eO0/dzFLxmpFcTzudmAgDwPY1HQ=
|
||||
sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go=
|
||||
sigs.k8s.io/kustomize/kyaml v0.11.0 h1:9KhiCPKaVyuPcgOLJXkvytOvjMJLoxpjodiycb4gHsA=
|
||||
sigs.k8s.io/kustomize/kustomize/v4 v4.4.1/go.mod h1:qOKJMMz2mBP+vcS7vK+mNz4HBLjaQSWRY22EF6Tb7Io=
|
||||
sigs.k8s.io/kustomize/kyaml v0.11.0/go.mod h1:GNMwjim4Ypgp/MueD3zXHLRJEjz7RvtPae0AwlvEMFM=
|
||||
sigs.k8s.io/kustomize/kyaml v0.13.0 h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY=
|
||||
sigs.k8s.io/kustomize/kyaml v0.13.0/go.mod h1:FTJxEZ86ScK184NpGSAQcfEqee0nul8oLCK30D47m4E=
|
||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
|
||||
sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.0 h1:kDvPBbnPk+qYmkHmSo8vKGp438IASWofnbbUKDE/bv0=
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.0/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
|
||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
software.sslmate.com/src/go-pkcs12 v0.0.0-20180114231543-2291e8f0f237/go.mod h1:/xvNRWUqm0+/ZMiF4EX00vrSCMsE4/NHb+Pt3freEeQ=
|
||||
software.sslmate.com/src/go-pkcs12 v0.0.0-20210415151418-c5206de65a78 h1:SqYE5+A2qvRhErbsXFfUEUmpWEKxxRSMgGLkvRAFOV4=
|
||||
software.sslmate.com/src/go-pkcs12 v0.0.0-20210415151418-c5206de65a78/go.mod h1:B7Wf0Ya4DHF9Yw+qfZuJijQYkWicqDa+79Ytmmq3Kjg=
|
||||
|
||||
+124
-84
@@ -96,6 +96,14 @@ def go_repositories():
|
||||
sum = "h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg=",
|
||||
version = "v1.0.0",
|
||||
)
|
||||
go_repository(
|
||||
name = "com_github_antlr_antlr4_runtime_go_antlr",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/antlr/antlr4/runtime/Go/antlr",
|
||||
sum = "h1:GCzyKMDDjSGnlpl3clrdAK7I1AaVoaiKDOYkUzChZzg=",
|
||||
version = "v0.0.0-20210826220005-b48c857c3a0e",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
name = "com_github_armon_circbuf",
|
||||
@@ -1126,8 +1134,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/evanphx/json-patch",
|
||||
sum = "h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs=",
|
||||
version = "v4.11.0+incompatible",
|
||||
sum = "h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=",
|
||||
version = "v4.12.0+incompatible",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -1198,8 +1206,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/fsnotify/fsnotify",
|
||||
sum = "h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=",
|
||||
version = "v1.4.9",
|
||||
sum = "h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=",
|
||||
version = "v1.5.1",
|
||||
)
|
||||
go_repository(
|
||||
name = "com_github_fullsailor_pkcs7",
|
||||
@@ -1227,6 +1235,14 @@ def go_repositories():
|
||||
sum = "h1:LofdAjjjqCSXMwLGgOgnE+rdPuvX9DxCqaHwKy7i/ko=",
|
||||
version = "v0.0.0-20150301180006-535138d7bcd7",
|
||||
)
|
||||
go_repository(
|
||||
name = "com_github_getkin_kin_openapi",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/getkin/kin-openapi",
|
||||
sum = "h1:j77zg3Ec+k+r+GA3d8hBoXpAc6KX9TbBPrwQGBIy2sY=",
|
||||
version = "v0.76.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
name = "com_github_getsentry_raven_go",
|
||||
@@ -1341,8 +1357,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/go-logr/logr",
|
||||
sum = "h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=",
|
||||
version = "v0.4.0",
|
||||
sum = "h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE=",
|
||||
version = "v1.2.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -1350,8 +1366,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/go-logr/zapr",
|
||||
sum = "h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM=",
|
||||
version = "v0.4.0",
|
||||
sum = "h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk=",
|
||||
version = "v1.2.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -1584,8 +1600,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/golang/glog",
|
||||
sum = "h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=",
|
||||
version = "v0.0.0-20160126235308-23def4e6c14b",
|
||||
sum = "h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=",
|
||||
version = "v1.0.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -1658,6 +1674,22 @@ def go_repositories():
|
||||
sum = "h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=",
|
||||
version = "v1.0.1",
|
||||
)
|
||||
go_repository(
|
||||
name = "com_github_google_cel_go",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/google/cel-go",
|
||||
sum = "h1:u1hg7lcZ/XWw2d3aV1jFS30ijQQ6q0/h1C2ZBeBD1gY=",
|
||||
version = "v0.9.0",
|
||||
)
|
||||
go_repository(
|
||||
name = "com_github_google_cel_spec",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/google/cel-spec",
|
||||
sum = "h1:xuthJSiJGoSzq+lVEBIW1MTpaaZXknMCYC4WzVAWOsE=",
|
||||
version = "v0.6.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
name = "com_github_google_go_cmp",
|
||||
@@ -2235,8 +2267,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/json-iterator/go",
|
||||
sum = "h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=",
|
||||
version = "v1.1.11",
|
||||
sum = "h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=",
|
||||
version = "v1.1.12",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -2788,8 +2820,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/modern-go/reflect2",
|
||||
sum = "h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=",
|
||||
version = "v1.0.1",
|
||||
sum = "h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=",
|
||||
version = "v1.0.2",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -2948,8 +2980,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/onsi/ginkgo",
|
||||
sum = "h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=",
|
||||
version = "v1.16.4",
|
||||
sum = "h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=",
|
||||
version = "v1.16.5",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -2957,8 +2989,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/onsi/gomega",
|
||||
sum = "h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU=",
|
||||
version = "v1.15.0",
|
||||
sum = "h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=",
|
||||
version = "v1.17.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -3162,8 +3194,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/prometheus/common",
|
||||
sum = "h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ=",
|
||||
version = "v0.26.0",
|
||||
sum = "h1:vGVfV9KrDTvWt5boZO0I19g2E3CsWfpPPKZM9dt3mEw=",
|
||||
version = "v0.28.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -3659,8 +3691,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "github.com/yuin/goldmark",
|
||||
sum = "h1:dPmz1Snjq0kmkz159iL7S6WzdahUTHnHB5M56WFVifs=",
|
||||
version = "v1.3.5",
|
||||
sum = "h1:OtISOGfH6sOWa1/qXqqAiOIAO6Z5J3AEAE18WAq6BiQ=",
|
||||
version = "v1.4.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4010,8 +4042,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/api",
|
||||
sum = "h1:M8ZzAD0V6725Fjg53fKeTJxGsJvRbk4TEm/fexHMtfw=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:ncu/qfBfUoClqwkTGbeRqqOqBCRoUAflMuOaOD7J0c8=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4019,8 +4051,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/apiextensions-apiserver",
|
||||
sum = "h1:zK7qI8Ery7j2CaN23UCFaC1hj7dMiI87n01+nKuewd4=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:xxE0q1vLOVZiWORu1KwNRQFsGWtImueOrqSl13sS5EU=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4028,8 +4060,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/apimachinery",
|
||||
sum = "h1:ejz6y/zNma8clPVfNDLnPbleBo6MpoFy/HBiBqCouVk=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:sfBjlDFwj2onG0Ijx5C+SrAoeUscPrmghm7wHP+uXlo=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4037,8 +4069,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/apiserver",
|
||||
sum = "h1:TdIfZJc6YNhu2WxeAOWq1TvukHF0Sfx0+ln4XK9qnL4=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:vWGf8LcV9Pk/z5rdLmCiBDqE21ccbe930dzrtVMhw9g=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4046,8 +4078,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/cli-runtime",
|
||||
sum = "h1:WIueieKvT+IiSVSFosRLI6rkM0tyBGEGH1WUEztVjho=",
|
||||
version = "v0.22.1",
|
||||
sum = "h1:vHUZrq1Oejs0WaJnxs09mLHKScvIIl2hMSthhS8o8Yo=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4055,8 +4087,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/client-go",
|
||||
sum = "h1:DaSQgs02aCC1QcwUdkKZWOeaVsQjYvWv8ZazcZ6JcHc=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:Ma4Fhf/p07Nmj9yAB1H7UwbFHEBrSPg8lviR24U2GiQ=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4064,8 +4096,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/code-generator",
|
||||
sum = "h1:+bUv9lpTnAWABtPkvO4x0kfz7j/kDEchVt0P/wXU3jQ=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:ViFOlP/0bYD7VrnUDS+ch5ej5EIuMawFmHcRuv9Yxyw=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4073,8 +4105,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/component-base",
|
||||
sum = "h1:vNIvE0AIrLhjX8drH0BgCNJcR4QZxMXcJzBsDplDx9M=",
|
||||
version = "v0.22.2",
|
||||
sum = "h1:j/BqdZUWeWKCy2v/jcgnOJAzpRYWSbGcjGVYICko8Uc=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4082,8 +4114,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/component-helpers",
|
||||
sum = "h1:f8pdhKNQbsCMQa6E9ipVlO8G6WFXnKbEDVcWB8n/HkA=",
|
||||
version = "v0.22.1",
|
||||
sum = "h1:Xrtj0LwXUqYyTPvN2bOE2UcqURX+uSBmKX1koNGhVxI=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
go_repository(
|
||||
name = "io_k8s_cri_api",
|
||||
@@ -4099,8 +4131,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/gengo",
|
||||
sum = "h1:Uusb3oh8XcdzDF/ndlI4ToKTYVlkCSJP39SRY2mfRAw=",
|
||||
version = "v0.0.0-20201214224949-b6c5ce23f027",
|
||||
sum = "h1:GohjlNKauSai7gN4wsJkeZ3WAJx4Sh+oT/b5IYn5suA=",
|
||||
version = "v0.0.0-20210813121822-485abfe95c7c",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4117,8 +4149,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/klog/v2",
|
||||
sum = "h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM=",
|
||||
version = "v2.9.0",
|
||||
sum = "h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw=",
|
||||
version = "v2.30.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4126,8 +4158,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/kube-aggregator",
|
||||
sum = "h1:he3plI8vlaPJxR9vsy/lL5ga1V8CoA8M8x1Bn8eTCeM=",
|
||||
version = "v0.22.0",
|
||||
sum = "h1:w05VLh3ji05gYQglMKKrwafgqjgIxZoBusxdSWS9d/4=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4135,8 +4167,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/kube-openapi",
|
||||
sum = "h1:lUK8GPtuJy8ClWZhuvKoaLdKGPLq9H1PxWp7VPBZBkU=",
|
||||
version = "v0.0.0-20210527164424-3c818078ee3d",
|
||||
sum = "h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=",
|
||||
version = "v0.0.0-20211115234752-e816edb12b65",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4144,8 +4176,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/kubectl",
|
||||
sum = "h1:kpXO+ajPNTzAVLDM9pAzCsWH9MtCMr92zpcvXMt7P6E=",
|
||||
version = "v0.22.1",
|
||||
sum = "h1:gmscOiV4Y4XIRIn14gQBBADoyyVrDZPbxRCTDga4RSA=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
go_repository(
|
||||
name = "io_k8s_kubernetes",
|
||||
@@ -4161,8 +4193,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/metrics",
|
||||
sum = "h1:ypRVaDRHjGG80quGKaK8L+iAC5yk08S3ASk47Pj3BRg=",
|
||||
version = "v0.22.1",
|
||||
sum = "h1:ZKrRdjarB/JPl4nPef7SlMjAUUVzU5XdSKgT+cm6bFA=",
|
||||
version = "v0.23.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4170,8 +4202,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/apiserver-network-proxy/konnectivity-client",
|
||||
sum = "h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c=",
|
||||
version = "v0.0.22",
|
||||
sum = "h1:DEQ12ZRxJjsglk5JIi5bLgpKaHihGervKmg5uryaEHw=",
|
||||
version = "v0.0.25",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4179,8 +4211,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/controller-runtime",
|
||||
sum = "h1:+eLHgY/VrJWnfg6iXUqhCUqNXgPH1NZeP9drNAAgWlg=",
|
||||
version = "v0.10.1",
|
||||
sum = "h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ=",
|
||||
version = "v0.11.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4200,14 +4232,22 @@ def go_repositories():
|
||||
sum = "h1:mKbQRlRIIY3dsCCbNF9Jv30V9vvOf6SRG82l0MfJQ9U=",
|
||||
version = "v0.3.0",
|
||||
)
|
||||
go_repository(
|
||||
name = "io_k8s_sigs_json",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/json",
|
||||
sum = "h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s=",
|
||||
version = "v0.0.0-20211020170558-c049b76a60c6",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
name = "io_k8s_sigs_kustomize_api",
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/kustomize/api",
|
||||
sum = "h1:LzQzlq6Z023b+mBtc6v72N2mSHYmN8x7ssgbf/hv0H8=",
|
||||
version = "v0.8.11",
|
||||
sum = "h1:KgU7hfYoscuqag84kxtzKdEC3mKMb99DPI3a0eaV1d0=",
|
||||
version = "v0.10.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4215,8 +4255,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/kustomize/cmd/config",
|
||||
sum = "h1:lqOf0QcFhNvgZkgrPINNRs7TxEO7IGVtLMyUJId3oRE=",
|
||||
version = "v0.9.13",
|
||||
sum = "h1:2GD3+knDaqZo6rSibkc4kKGp8auNBJrGPZQCTWN4Rtc=",
|
||||
version = "v0.10.2",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4224,8 +4264,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/kustomize/kustomize/v4",
|
||||
sum = "h1:RKgbyHgzuHQZ35sBDzWcbnR3HBlJSYdSN0H+sx3tUkk=",
|
||||
version = "v4.2.0",
|
||||
sum = "h1:6hgMEo3Gt0XmhDt4vo0FJ0LRDMc4i8JC6SUW24D4hQM=",
|
||||
version = "v4.4.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4233,8 +4273,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/kustomize/kyaml",
|
||||
sum = "h1:9KhiCPKaVyuPcgOLJXkvytOvjMJLoxpjodiycb4gHsA=",
|
||||
version = "v0.11.0",
|
||||
sum = "h1:9c+ETyNfSrVhxvphs+K2dzT3dh5oVPPEqPOE/cUpScY=",
|
||||
version = "v0.13.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4251,8 +4291,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/structured-merge-diff/v4",
|
||||
sum = "h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno=",
|
||||
version = "v4.1.2",
|
||||
sum = "h1:kDvPBbnPk+qYmkHmSo8vKGp438IASWofnbbUKDE/bv0=",
|
||||
version = "v4.2.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4260,8 +4300,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "sigs.k8s.io/yaml",
|
||||
sum = "h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=",
|
||||
version = "v1.2.0",
|
||||
sum = "h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=",
|
||||
version = "v1.3.0",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4269,8 +4309,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "k8s.io/utils",
|
||||
sum = "h1:8dYfu/Fc9Gz2rNJKB9IQRGgQOh2clmRzNIPPY1xLY5g=",
|
||||
version = "v0.0.0-20210819203725-bdf08cb9a70a",
|
||||
sum = "h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs=",
|
||||
version = "v0.0.0-20210930125809-cb0fa318a74b",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4584,8 +4624,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "golang.org/x/oauth2",
|
||||
sum = "h1:Ati8dO7+U7mxpkPSxBZQEvzHVUYB/MqCklCN8ig5w/o=",
|
||||
version = "v0.0.0-20210810183815-faf39c7919d5",
|
||||
sum = "h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw=",
|
||||
version = "v0.0.0-20210819190943-2bc19b11175f",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4602,8 +4642,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "golang.org/x/sys",
|
||||
sum = "h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo=",
|
||||
version = "v0.0.0-20210817190340-bfb29a6856f2",
|
||||
sum = "h1:M69LAlWZCshgp0QSzyDcSsSIejIEeuaCVpmwcKwyLMk=",
|
||||
version = "v0.0.0-20211029165221-6e7872819dc8",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4611,8 +4651,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "golang.org/x/term",
|
||||
sum = "h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=",
|
||||
version = "v0.0.0-20210220032956-6a3ed077a48d",
|
||||
sum = "h1:9zKuko04nR4gjZ4+DNjHqRlAJqbJETHwiNKDqTfOjfE=",
|
||||
version = "v0.0.0-20210615171337-6886f2dfbf5b",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4620,8 +4660,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "golang.org/x/text",
|
||||
sum = "h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=",
|
||||
version = "v0.3.6",
|
||||
sum = "h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=",
|
||||
version = "v0.3.7",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4638,8 +4678,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "golang.org/x/tools",
|
||||
sum = "h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA=",
|
||||
version = "v0.1.5",
|
||||
sum = "h1:VX/uD7MK0AHXGiScH3fsieUQUcpmRERPDYtqZdJnA+Q=",
|
||||
version = "v0.1.6-0.20210820212750-d4cc65f0b2ff",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4682,8 +4722,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "go.uber.org/goleak",
|
||||
sum = "h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0=",
|
||||
version = "v1.1.10",
|
||||
sum = "h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=",
|
||||
version = "v1.1.12",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
@@ -4709,8 +4749,8 @@ def go_repositories():
|
||||
build_file_generation = "on",
|
||||
build_file_proto_mode = "disable",
|
||||
importpath = "go.uber.org/zap",
|
||||
sum = "h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=",
|
||||
version = "v1.19.0",
|
||||
sum = "h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI=",
|
||||
version = "v1.19.1",
|
||||
)
|
||||
|
||||
go_repository(
|
||||
|
||||
@@ -53,7 +53,7 @@ type Builder struct {
|
||||
|
||||
// New creates a basic Builder, setting the sync call to the one given
|
||||
func NewBuilder(controllerctx *Context, name string) *Builder {
|
||||
ctx := logf.NewContext(controllerctx.RootContext, nil, name)
|
||||
ctx := logf.NewContext(controllerctx.RootContext, logf.Log, name)
|
||||
return &Builder{
|
||||
context: controllerctx,
|
||||
ctx: ctx,
|
||||
|
||||
@@ -45,6 +45,7 @@ go_test(
|
||||
"@com_github_stretchr_testify//require:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
|
||||
"@io_k8s_client_go//util/workqueue:go_default_library",
|
||||
"@io_k8s_sigs_gateway_api//apis/v1alpha1:go_default_library",
|
||||
"@io_k8s_sigs_gateway_api//pkg/client/clientset/versioned:go_default_library",
|
||||
],
|
||||
|
||||
@@ -24,6 +24,7 @@ import (
|
||||
testpkg "github.com/jetstack/cert-manager/pkg/controller/test"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
gwapi "sigs.k8s.io/gateway-api/apis/v1alpha1"
|
||||
gwclient "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned"
|
||||
|
||||
@@ -183,6 +184,8 @@ type mockWorkqueue struct {
|
||||
callsToAdd []interface{}
|
||||
}
|
||||
|
||||
var _ workqueue.Interface = &mockWorkqueue{}
|
||||
|
||||
func (m *mockWorkqueue) Add(arg0 interface{}) {
|
||||
m.callsToAdd = append(m.callsToAdd, arg0)
|
||||
}
|
||||
@@ -219,10 +222,15 @@ func (m *mockWorkqueue) NumRequeues(arg0 interface{}) int {
|
||||
}
|
||||
|
||||
func (m *mockWorkqueue) ShutDown() {
|
||||
m.t.Error("workqueue.NumRequeues was called but was not expected to be called")
|
||||
m.t.Error("workqueue.ShutDown was called but was not expected to be called")
|
||||
}
|
||||
|
||||
func (m *mockWorkqueue) ShutDownWithDrain() {
|
||||
m.t.Error("workqueue.ShutDownWithDrain was called but was not expected to be called")
|
||||
|
||||
}
|
||||
|
||||
func (m *mockWorkqueue) ShuttingDown() bool {
|
||||
m.t.Error("workqueue.NumRequeues was called but was not expected to be called")
|
||||
m.t.Error("workqueue.ShuttingDown was called but was not expected to be called")
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -2431,7 +2431,7 @@ func TestSync(t *testing.T) {
|
||||
}
|
||||
b.Init()
|
||||
defer b.Stop()
|
||||
sync := SyncFnFor(b.Recorder, logr.DiscardLogger{}, b.CMClient, b.SharedInformerFactory.Certmanager().V1().Certificates().Lister(), controller.IngressShimOptions{
|
||||
sync := SyncFnFor(b.Recorder, logr.Discard(), b.CMClient, b.SharedInformerFactory.Certmanager().V1().Certificates().Lister(), controller.IngressShimOptions{
|
||||
DefaultIssuerName: test.DefaultIssuerName,
|
||||
DefaultIssuerKind: test.DefaultIssuerKind,
|
||||
DefaultIssuerGroup: test.DefaultIssuerGroup,
|
||||
|
||||
@@ -49,8 +49,8 @@ go_test(
|
||||
"//pkg/apis/meta/v1:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/controller/test:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//test/unit/gen:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/types:go_default_library",
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
@@ -30,7 +31,6 @@ import (
|
||||
cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1"
|
||||
controllerpkg "github.com/jetstack/cert-manager/pkg/controller"
|
||||
testpkg "github.com/jetstack/cert-manager/pkg/controller/test"
|
||||
logtest "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/test/unit/gen"
|
||||
)
|
||||
|
||||
@@ -409,7 +409,7 @@ func TestCertificateRequestsToDelete(t *testing.T) {
|
||||
|
||||
for name, test := range tests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
log := logtest.TestLogger{T: t}
|
||||
log := logtesting.NewTestLogger(t)
|
||||
output := certificateRequestsToDelete(log, test.limit, test.input)
|
||||
if !reflect.DeepEqual(test.exp, output) {
|
||||
t.Errorf("unexpected prune sort response, exp=%v got=%v",
|
||||
|
||||
@@ -39,8 +39,8 @@ go_test(
|
||||
"//pkg/controller/certificates/internal/test:go_default_library",
|
||||
"//pkg/controller/test:go_default_library",
|
||||
"//pkg/logs:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//test/unit/gen:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@com_github_stretchr_testify//assert:go_default_library",
|
||||
"@com_github_stretchr_testify//require:go_default_library",
|
||||
"@io_k8s_api//core/v1:go_default_library",
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtest "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
@@ -140,7 +140,7 @@ func TestDataForCertificate(t *testing.T) {
|
||||
for name, test := range tests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
fakeClockStart, _ := time.Parse(time.RFC3339, "2021-01-02T15:04:05Z07:00")
|
||||
log := logtest.TestLogger{T: t}
|
||||
log := logtesting.NewTestLogger(t)
|
||||
turnOnKlogIfVerboseTest(t)
|
||||
|
||||
test.builder.T = t
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtest "github.com/go-logr/logr/testing"
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/stretchr/testify/assert"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
coretesting "k8s.io/client-go/testing"
|
||||
@@ -440,7 +440,7 @@ func Test_shouldBackoffReissuingOnFailure(t *testing.T) {
|
||||
}
|
||||
for name, test := range tests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
gotBackoff, gotDelay := shouldBackoffReissuingOnFailure(logtest.TestLogger{T: t}, clock, test.givenCert, test.givenNextCR)
|
||||
gotBackoff, gotDelay := shouldBackoffReissuingOnFailure(logtesting.NewTestLogger(t), clock, test.givenCert, test.givenNextCR)
|
||||
assert.Equal(t, test.wantBackoff, gotBackoff)
|
||||
assert.Equal(t, test.wantDelay, gotDelay)
|
||||
})
|
||||
|
||||
@@ -37,6 +37,7 @@ go_test(
|
||||
"//pkg/logs:go_default_library",
|
||||
"//test/acme/dns:go_default_library",
|
||||
"//test/acme/dns/server:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@com_github_miekg_dns//:go_default_library",
|
||||
"@com_github_stretchr_testify//assert:go_default_library",
|
||||
"@com_github_stretchr_testify//require:go_default_library",
|
||||
|
||||
@@ -20,6 +20,8 @@ import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
|
||||
cmacme "github.com/jetstack/cert-manager/pkg/apis/acme/v1"
|
||||
cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1"
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
@@ -28,7 +30,7 @@ import (
|
||||
)
|
||||
|
||||
func TestRunSuiteWithTSIG(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
EnableTSIG: true,
|
||||
@@ -71,7 +73,7 @@ func TestRunSuiteWithTSIG(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunSuiteNoTSIG(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/miekg/dns"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -48,7 +49,7 @@ var (
|
||||
)
|
||||
|
||||
func TestRFC2136CanaryLocalTestServer(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
Handler: dns.HandlerFunc((&testHandlers{t: t}).serverHandlerHello),
|
||||
@@ -74,7 +75,7 @@ func TestRFC2136CanaryLocalTestServer(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRFC2136ServerSuccess(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
Handler: dns.HandlerFunc((&testHandlers{t: t}).serverHandlerReturnSuccess),
|
||||
@@ -94,7 +95,7 @@ func TestRFC2136ServerSuccess(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRFC2136ServerError(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
Handler: dns.HandlerFunc((&testHandlers{t: t}).serverHandlerReturnErr),
|
||||
@@ -116,7 +117,7 @@ func TestRFC2136ServerError(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRFC2136TsigClient(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
Handler: dns.HandlerFunc((&testHandlers{t: t}).serverHandlerReturnSuccess),
|
||||
@@ -300,7 +301,7 @@ func TestRFC2136InvalidTSIGAlgorithm(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRFC2136ValidUpdatePacket(t *testing.T) {
|
||||
ctx := logf.NewContext(context.TODO(), nil, t.Name())
|
||||
ctx := logf.NewContext(context.TODO(), logtesting.NewTestLogger(t), t.Name())
|
||||
server := &testserver.BasicServer{
|
||||
Zones: []string{rfc2136TestZone},
|
||||
}
|
||||
|
||||
@@ -48,6 +48,8 @@ const (
|
||||
HTTP01Timeout = time.Minute * 15
|
||||
// acmeSolverListenPort is the port acmesolver should listen on
|
||||
acmeSolverListenPort = 8089
|
||||
|
||||
loggerName = "http01"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -92,10 +94,6 @@ func NewSolver(ctx *controller.Context) (*Solver, error) {
|
||||
}, nil
|
||||
}
|
||||
|
||||
func http01LogCtx(ctx context.Context) context.Context {
|
||||
return logf.NewContext(ctx, nil, "http01")
|
||||
}
|
||||
|
||||
func http01IngressCfgForChallenge(ch *cmacme.Challenge) (*cmacme.ACMEChallengeSolverHTTP01Ingress, error) {
|
||||
if ch.Spec.Solver.HTTP01 == nil || ch.Spec.Solver.HTTP01.Ingress == nil {
|
||||
return nil, fmt.Errorf("challenge's 'solver' field is specified but no HTTP01 ingress config provided. " +
|
||||
@@ -118,7 +116,8 @@ func getServiceType(ch *cmacme.Challenge) (corev1.ServiceType, error) {
|
||||
// challenge validation in the apiserver. If those resources already exist, it
|
||||
// will return nil (i.e. this function is idempotent).
|
||||
func (s *Solver) Present(ctx context.Context, issuer v1.GenericIssuer, ch *cmacme.Challenge) error {
|
||||
ctx = http01LogCtx(ctx)
|
||||
log := logf.FromContext(ctx).WithName(loggerName)
|
||||
ctx = logf.NewContext(ctx, log)
|
||||
|
||||
_, podErr := s.ensurePod(ctx, ch)
|
||||
svc, svcErr := s.ensureService(ctx, ch)
|
||||
@@ -148,8 +147,8 @@ func (s *Solver) Present(ctx context.Context, issuer v1.GenericIssuer, ch *cmacm
|
||||
}
|
||||
|
||||
func (s *Solver) Check(ctx context.Context, issuer v1.GenericIssuer, ch *cmacme.Challenge) error {
|
||||
ctx = logf.NewContext(http01LogCtx(ctx), nil, "selfCheck")
|
||||
log := logf.FromContext(ctx)
|
||||
log := logf.FromContext(ctx, loggerName, "selfCheck")
|
||||
ctx = logf.NewContext(ctx, log)
|
||||
|
||||
// HTTP Present is idempotent and the state of the system may have
|
||||
// changed since present was called by the controllers (killed pods, drained nodes)
|
||||
|
||||
@@ -26,10 +26,7 @@ filegroup(
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [
|
||||
":package-srcs",
|
||||
"//pkg/logs/testing:all-srcs",
|
||||
],
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
+11
-18
@@ -139,28 +139,21 @@ func WithRelatedResourceName(l logr.Logger, name, namespace, kind string) logr.L
|
||||
var contextKey = &struct{}{}
|
||||
|
||||
func FromContext(ctx context.Context, names ...string) logr.Logger {
|
||||
l := ctx.Value(contextKey)
|
||||
if l == nil {
|
||||
return Log
|
||||
}
|
||||
lT := l.(logr.Logger)
|
||||
for _, n := range names {
|
||||
lT = lT.WithName(n)
|
||||
}
|
||||
return lT
|
||||
}
|
||||
|
||||
func NewContext(ctx context.Context, l logr.Logger, names ...string) context.Context {
|
||||
if ctx == nil {
|
||||
ctx = context.Background()
|
||||
}
|
||||
if l == nil {
|
||||
l = FromContext(ctx)
|
||||
l, err := logr.FromContext(ctx)
|
||||
if err != nil {
|
||||
l = Log
|
||||
}
|
||||
for _, n := range names {
|
||||
l = l.WithName(n)
|
||||
}
|
||||
return context.WithValue(ctx, contextKey, l)
|
||||
return l
|
||||
}
|
||||
|
||||
func NewContext(ctx context.Context, l logr.Logger, names ...string) context.Context {
|
||||
for _, n := range names {
|
||||
l = l.WithName(n)
|
||||
}
|
||||
return logr.NewContext(ctx, l)
|
||||
}
|
||||
|
||||
func V(level int) klog.Verbose {
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["log_testing.go"],
|
||||
importpath = "github.com/jetstack/cert-manager/pkg/logs/testing",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = ["@com_github_go_logr_logr//:go_default_library"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
Copyright 2020 The cert-manager 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 testing
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
)
|
||||
|
||||
// TestLogger is a logr.Logger that prints everything to t.Log.
|
||||
type TestLogger struct {
|
||||
T *testing.T
|
||||
name string
|
||||
withValues []string
|
||||
}
|
||||
|
||||
func (log TestLogger) Info(msg string, keysAndValues ...interface{}) {
|
||||
withValues := append([]string{}, log.withValues...)
|
||||
for i := 0; i < len(keysAndValues); i = i + 2 {
|
||||
withValues = append(withValues, fmt.Sprintf(`%s="%v"`, keysAndValues[i], keysAndValues[i+1]))
|
||||
}
|
||||
log.T.Logf("%s: %v", msg, strings.Join(withValues, " "))
|
||||
}
|
||||
|
||||
func (TestLogger) Enabled() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (log TestLogger) Error(err error, msg string, args ...interface{}) {
|
||||
log.T.Logf("%s: %v: %v", msg, err, args)
|
||||
}
|
||||
|
||||
func (log TestLogger) V(v int) logr.Logger {
|
||||
return log
|
||||
}
|
||||
|
||||
func (log TestLogger) WithName(name string) logr.Logger {
|
||||
log.name = name
|
||||
return log
|
||||
}
|
||||
|
||||
func (log TestLogger) WithValues(keysAndValues ...interface{}) logr.Logger {
|
||||
for i := 0; i < len(keysAndValues); i = i + 2 {
|
||||
log.withValues = append(log.withValues, fmt.Sprintf(`%s="%v"`, keysAndValues[i], keysAndValues[i+1]))
|
||||
}
|
||||
return log
|
||||
}
|
||||
@@ -45,8 +45,8 @@ go_test(
|
||||
deps = [
|
||||
"//pkg/apis/certmanager/v1:go_default_library",
|
||||
"//pkg/apis/meta/v1:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//test/unit/gen:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@com_github_prometheus_client_golang//prometheus:go_default_library",
|
||||
"@com_github_prometheus_client_golang//prometheus/testutil:go_default_library",
|
||||
"@com_github_stretchr_testify//assert:go_default_library",
|
||||
|
||||
@@ -22,13 +22,13 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/prometheus/client_golang/prometheus/testutil"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/utils/clock"
|
||||
|
||||
cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
|
||||
cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1"
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/test/unit/gen"
|
||||
)
|
||||
|
||||
@@ -169,7 +169,7 @@ func TestCertificateMetrics(t *testing.T) {
|
||||
}
|
||||
for n, test := range tests {
|
||||
t.Run(n, func(t *testing.T) {
|
||||
m := New(logtesting.TestLogger{T: t}, clock.RealClock{})
|
||||
m := New(logtesting.NewTestLogger(t), clock.RealClock{})
|
||||
m.UpdateCertificate(context.TODO(), test.crt)
|
||||
|
||||
if err := testutil.CollectAndCompare(m.certificateExpiryTimeSeconds,
|
||||
@@ -197,7 +197,7 @@ func TestCertificateMetrics(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCertificateCache(t *testing.T) {
|
||||
m := New(logtesting.TestLogger{T: t}, clock.RealClock{})
|
||||
m := New(logtesting.NewTestLogger(t), clock.RealClock{})
|
||||
|
||||
crt1 := gen.Certificate("crt1",
|
||||
gen.SetCertificateUID("uid-1"),
|
||||
|
||||
@@ -22,17 +22,17 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/testutil"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
fakeclock "k8s.io/utils/clock/testing"
|
||||
)
|
||||
|
||||
func Test_clockTimeSeconds(t *testing.T) {
|
||||
fixedClock := fakeclock.NewFakeClock(time.Now())
|
||||
m := New(logtesting.TestLogger{T: t}, fixedClock)
|
||||
m := New(logtesting.NewTestLogger(t), fixedClock)
|
||||
|
||||
tests := map[string]struct {
|
||||
metricName string
|
||||
|
||||
@@ -6,7 +6,6 @@ go_library(
|
||||
importpath = "github.com/jetstack/cert-manager/pkg/webhook/authority",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//cmd/util:go_default_library",
|
||||
"//internal/apis/meta:go_default_library",
|
||||
"//pkg/apis/certmanager/v1:go_default_library",
|
||||
"//pkg/logs:go_default_library",
|
||||
|
||||
@@ -29,8 +29,6 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
@@ -44,9 +42,9 @@ import (
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
|
||||
"github.com/jetstack/cert-manager/cmd/util"
|
||||
cmmeta "github.com/jetstack/cert-manager/internal/apis/meta"
|
||||
cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
"github.com/jetstack/cert-manager/pkg/util/pki"
|
||||
)
|
||||
|
||||
@@ -73,7 +71,7 @@ type DynamicAuthority struct {
|
||||
LeafDuration time.Duration
|
||||
|
||||
// Logger to write messages to.
|
||||
Log logr.Logger
|
||||
log logr.Logger
|
||||
|
||||
lister corelisters.SecretNamespaceLister
|
||||
client coreclientset.SecretInterface
|
||||
@@ -93,9 +91,7 @@ type SignFunc func(template *x509.Certificate) (*x509.Certificate, error)
|
||||
|
||||
var _ SignFunc = (&DynamicAuthority{}).Sign
|
||||
|
||||
func (d *DynamicAuthority) Run(stopCh <-chan struct{}) error {
|
||||
ctx := util.ContextWithStopCh(context.Background(), stopCh)
|
||||
|
||||
func (d *DynamicAuthority) Run(ctx context.Context) error {
|
||||
if d.SecretNamespace == "" {
|
||||
return fmt.Errorf("SecretNamespace must be set")
|
||||
}
|
||||
@@ -143,7 +139,7 @@ func (d *DynamicAuthority) Run(stopCh <-chan struct{}) error {
|
||||
// are not triggered.
|
||||
if err = wait.PollImmediateUntil(time.Second*10, func() (done bool, err error) {
|
||||
if err := d.ensureCA(ctx); err != nil {
|
||||
d.Log.Error(err, "error ensuring CA")
|
||||
d.log.Error(err, "error ensuring CA")
|
||||
}
|
||||
// never return 'done'.
|
||||
// this poll only ends when stopCh is closed.
|
||||
@@ -259,7 +255,7 @@ func (d *DynamicAuthority) notifyWatches(newCertData, newPrivateKeyData []byte)
|
||||
return
|
||||
}
|
||||
|
||||
d.Log.V(logf.DebugLevel).Info("Detected change in CA secret data, notifying watchers...")
|
||||
d.log.V(logf.DebugLevel).Info("Detected change in CA secret data, notifying watchers...")
|
||||
|
||||
d.watchMutex.Lock()
|
||||
defer d.watchMutex.Unlock()
|
||||
@@ -288,7 +284,7 @@ func (d *DynamicAuthority) caRequiresRegeneration(s *corev1.Secret) bool {
|
||||
pkData := s.Data[corev1.TLSPrivateKeyKey]
|
||||
certData := s.Data[corev1.TLSCertKey]
|
||||
if len(caData) == 0 || len(pkData) == 0 || len(certData) == 0 {
|
||||
d.Log.V(logf.InfoLevel).Info("Missing data in CA secret. Regenerating")
|
||||
d.log.V(logf.InfoLevel).Info("Missing data in CA secret. Regenerating")
|
||||
return true
|
||||
}
|
||||
// ensure that the ca.crt and tls.crt keys are equal
|
||||
@@ -297,22 +293,22 @@ func (d *DynamicAuthority) caRequiresRegeneration(s *corev1.Secret) bool {
|
||||
}
|
||||
cert, err := tls.X509KeyPair(certData, pkData)
|
||||
if err != nil {
|
||||
d.Log.Error(err, "Failed to parse data in CA secret. Regenerating")
|
||||
d.log.Error(err, "Failed to parse data in CA secret. Regenerating")
|
||||
return true
|
||||
}
|
||||
|
||||
x509Cert, err := x509.ParseCertificate(cert.Certificate[0])
|
||||
if err != nil {
|
||||
d.Log.Error(err, "internal error parsing x509 certificate")
|
||||
d.log.Error(err, "internal error parsing x509 certificate")
|
||||
return true
|
||||
}
|
||||
if !x509Cert.IsCA {
|
||||
d.Log.V(logf.InfoLevel).Info("Stored certificate is not marked as a CA. Regenerating...")
|
||||
d.log.V(logf.InfoLevel).Info("Stored certificate is not marked as a CA. Regenerating...")
|
||||
return true
|
||||
}
|
||||
// renew the root CA when the current one is 2/3 of the way through its life
|
||||
if x509Cert.NotAfter.Sub(time.Now()) < (d.CADuration / 3) {
|
||||
d.Log.V(logf.InfoLevel).Info("Root CA certificate is nearing expiry. Regenerating...")
|
||||
d.log.V(logf.InfoLevel).Info("Root CA certificate is nearing expiry. Regenerating...")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -324,7 +320,7 @@ var serialNumberLimit = new(big.Int).Lsh(big.NewInt(1), 128)
|
||||
// If the provided Secret is nil, a new secret resource will be Created.
|
||||
// Otherwise, the provided resource will be modified and Updated.
|
||||
func (d *DynamicAuthority) regenerateCA(ctx context.Context, s *corev1.Secret) error {
|
||||
d.Log.V(logf.DebugLevel).Info("Generating new root CA")
|
||||
d.log.V(logf.DebugLevel).Info("Generating new root CA")
|
||||
pk, err := pki.GenerateECPrivateKey(384)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -388,27 +384,27 @@ func (d *DynamicAuthority) regenerateCA(ctx context.Context, s *corev1.Secret) e
|
||||
if _, err := d.client.Update(ctx, s, metav1.UpdateOptions{}); err != nil {
|
||||
return err
|
||||
}
|
||||
d.Log.V(logf.DebugLevel).Info("Generated new root CA")
|
||||
d.log.V(logf.DebugLevel).Info("Generated new root CA")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *DynamicAuthority) handleAdd(obj interface{}) {
|
||||
ctx := context.Background()
|
||||
if err := d.ensureCA(ctx); err != nil {
|
||||
d.Log.Error(err, "error ensuring CA")
|
||||
d.log.Error(err, "error ensuring CA")
|
||||
}
|
||||
}
|
||||
|
||||
func (d *DynamicAuthority) handleUpdate(_, obj interface{}) {
|
||||
ctx := context.Background()
|
||||
if err := d.ensureCA(ctx); err != nil {
|
||||
d.Log.Error(err, "error ensuring CA")
|
||||
d.log.Error(err, "error ensuring CA")
|
||||
}
|
||||
}
|
||||
|
||||
func (d *DynamicAuthority) handleDelete(obj interface{}) {
|
||||
ctx := context.Background()
|
||||
if err := d.ensureCA(ctx); err != nil {
|
||||
d.Log.Error(err, "error ensuring CA")
|
||||
d.log.Error(err, "error ensuring CA")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ go_library(
|
||||
importpath = "github.com/jetstack/cert-manager/pkg/webhook/server",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//cmd/util:go_default_library",
|
||||
"//pkg/logs:go_default_library",
|
||||
"//pkg/util/profiling:go_default_library",
|
||||
"//pkg/webhook/handlers:go_default_library",
|
||||
@@ -21,7 +20,6 @@ go_library(
|
||||
"@io_k8s_apimachinery//pkg/runtime/serializer/json:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/util/runtime:go_default_library",
|
||||
"@io_k8s_component_base//cli/flag:go_default_library",
|
||||
"@io_k8s_sigs_controller_runtime//pkg/log:go_default_library",
|
||||
"@org_golang_x_sync//errgroup:go_default_library",
|
||||
],
|
||||
)
|
||||
@@ -48,8 +46,8 @@ go_test(
|
||||
srcs = ["server_test.go"],
|
||||
embed = [":go_default_library"],
|
||||
deps = [
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//pkg/webhook/handlers:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@com_github_stretchr_testify//assert:go_default_library",
|
||||
"@com_github_stretchr_testify//require:go_default_library",
|
||||
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:go_default_library",
|
||||
|
||||
@@ -37,9 +37,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer/json"
|
||||
runtimeutil "k8s.io/apimachinery/pkg/util/runtime"
|
||||
ciphers "k8s.io/component-base/cli/flag"
|
||||
crlog "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
cmdutil "github.com/jetstack/cert-manager/cmd/util"
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
"github.com/jetstack/cert-manager/pkg/util/profiling"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/handlers"
|
||||
@@ -103,9 +101,7 @@ type Server struct {
|
||||
MutationWebhook handlers.MutatingAdmissionHook
|
||||
ConversionWebhook handlers.ConversionHook
|
||||
|
||||
// Log is an optional logger to write informational and error messages to.
|
||||
// If not specified, no messages will be logged.
|
||||
Log logr.Logger
|
||||
log logr.Logger
|
||||
|
||||
// CipherSuites is the list of allowed cipher suites for the server.
|
||||
// Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants).
|
||||
@@ -120,13 +116,9 @@ type Server struct {
|
||||
|
||||
type handleFunc func(context.Context, runtime.Object) (runtime.Object, error)
|
||||
|
||||
func (s *Server) Run(stopCh <-chan struct{}) error {
|
||||
if s.Log == nil {
|
||||
s.Log = crlog.NullLogger{}
|
||||
}
|
||||
|
||||
gctx := cmdutil.ContextWithStopCh(context.Background(), stopCh)
|
||||
g, gctx := errgroup.WithContext(gctx)
|
||||
func (s *Server) Run(ctx context.Context) error {
|
||||
s.log = logf.FromContext(ctx)
|
||||
g, gctx := errgroup.WithContext(ctx)
|
||||
|
||||
// if a HealthzAddr is provided, start the healthz listener
|
||||
if s.HealthzAddr != "" {
|
||||
@@ -138,7 +130,7 @@ func (s *Server) Run(stopCh <-chan struct{}) error {
|
||||
healthMux := http.NewServeMux()
|
||||
healthMux.HandleFunc("/healthz", s.handleHealthz)
|
||||
healthMux.HandleFunc("/livez", s.handleLivez)
|
||||
s.Log.V(logf.InfoLevel).Info("listening for insecure healthz connections", "address", s.HealthzAddr)
|
||||
s.log.V(logf.InfoLevel).Info("listening for insecure healthz connections", "address", s.HealthzAddr)
|
||||
server := &http.Server{
|
||||
Handler: healthMux,
|
||||
}
|
||||
@@ -171,7 +163,7 @@ func (s *Server) Run(stopCh <-chan struct{}) error {
|
||||
profilerMux := http.NewServeMux()
|
||||
// Add pprof endpoints to this mux
|
||||
profiling.Install(profilerMux)
|
||||
s.Log.V(logf.InfoLevel).Info("running go profiler on", "address", s.PprofAddr)
|
||||
s.log.V(logf.InfoLevel).Info("running go profiler on", "address", s.PprofAddr)
|
||||
server := &http.Server{
|
||||
Handler: profilerMux,
|
||||
}
|
||||
@@ -202,9 +194,9 @@ func (s *Server) Run(stopCh <-chan struct{}) error {
|
||||
|
||||
// wrap the listener with TLS if a CertificateSource is provided
|
||||
if s.CertificateSource != nil {
|
||||
s.Log.V(logf.InfoLevel).Info("listening for secure connections", "address", s.ListenAddr)
|
||||
s.log.V(logf.InfoLevel).Info("listening for secure connections", "address", s.ListenAddr)
|
||||
g.Go(func() error {
|
||||
if err := s.CertificateSource.Run(gctx.Done()); (err != nil) && !errors.Is(err, context.Canceled) {
|
||||
if err := s.CertificateSource.Run(gctx); (err != nil) && !errors.Is(err, context.Canceled) {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
@@ -224,7 +216,7 @@ func (s *Server) Run(stopCh <-chan struct{}) error {
|
||||
PreferServerCipherSuites: true,
|
||||
})
|
||||
} else {
|
||||
s.Log.V(logf.InfoLevel).Info("listening for insecure connections", "address", s.ListenAddr)
|
||||
s.log.V(logf.InfoLevel).Info("listening for insecure connections", "address", s.ListenAddr)
|
||||
}
|
||||
|
||||
s.listener = listener
|
||||
@@ -312,7 +304,7 @@ func (s *Server) handle(inner handleFunc) func(w http.ResponseWriter, req *http.
|
||||
|
||||
data, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
s.Log.Error(err, "failed to read request body")
|
||||
s.log.Error(err, "failed to read request body")
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@@ -322,19 +314,19 @@ func (s *Server) handle(inner handleFunc) func(w http.ResponseWriter, req *http.
|
||||
})
|
||||
obj, _, err := codec.Decode(data, nil, nil)
|
||||
if err != nil {
|
||||
s.Log.Error(err, "failed to decode request body")
|
||||
s.log.Error(err, "failed to decode request body")
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
result, err := inner(req.Context(), obj)
|
||||
if err != nil {
|
||||
s.Log.Error(err, "failed to process webhook request")
|
||||
s.log.Error(err, "failed to process webhook request")
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
if err := codec.Encode(result, w); err != nil {
|
||||
s.Log.Error(err, "failed to encode response body")
|
||||
s.log.Error(err, "failed to encode response body")
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -345,7 +337,7 @@ func (s *Server) handleHealthz(w http.ResponseWriter, req *http.Request) {
|
||||
defer req.Body.Close()
|
||||
|
||||
if s.CertificateSource != nil && !s.CertificateSource.Healthy() {
|
||||
s.Log.V(logf.WarnLevel).Info("Health check failed as CertificateSource is unhealthy")
|
||||
s.log.V(logf.WarnLevel).Info("Health check failed as CertificateSource is unhealthy")
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
|
||||
testingcmlogs "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/handlers"
|
||||
)
|
||||
|
||||
@@ -64,10 +64,10 @@ func TestConvert(t *testing.T) {
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
log := &testingcmlogs.TestLogger{T: t}
|
||||
log := logtesting.NewTestLogger(t)
|
||||
s := &Server{
|
||||
ConversionWebhook: handlers.NewSchemeBackedConverter(log, defaultScheme),
|
||||
Log: log,
|
||||
log: log,
|
||||
}
|
||||
out, err := s.convert(context.TODO(), tc.in)
|
||||
if tc.err != "" {
|
||||
|
||||
@@ -16,7 +16,6 @@ go_library(
|
||||
"//pkg/webhook/authority:go_default_library",
|
||||
"@com_github_go_logr_logr//:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/util/wait:go_default_library",
|
||||
"@io_k8s_sigs_controller_runtime//pkg/log:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -26,8 +25,9 @@ go_test(
|
||||
embed = [":go_default_library"],
|
||||
deps = [
|
||||
"//pkg/apis/certmanager/v1:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//pkg/util/pki:go_default_library",
|
||||
"@com_github_go_logr_logr//:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@org_golang_x_sync//errgroup:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -26,13 +26,11 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
crlog "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
"github.com/jetstack/cert-manager/pkg/util/pki"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/authority"
|
||||
)
|
||||
@@ -46,9 +44,7 @@ type DynamicSource struct {
|
||||
// The authority used to sign certificate templates.
|
||||
Authority *authority.DynamicAuthority
|
||||
|
||||
// Log is an optional logger to write informational and error messages to.
|
||||
// If not specified, no messages will be logged.
|
||||
Log logr.Logger
|
||||
log logr.Logger
|
||||
|
||||
cachedCertificate *tls.Certificate
|
||||
lock sync.Mutex
|
||||
@@ -56,16 +52,14 @@ type DynamicSource struct {
|
||||
|
||||
var _ CertificateSource = &DynamicSource{}
|
||||
|
||||
func (f *DynamicSource) Run(stopCh <-chan struct{}) error {
|
||||
if f.Log == nil {
|
||||
f.Log = crlog.NullLogger{}
|
||||
}
|
||||
func (f *DynamicSource) Run(ctx context.Context) error {
|
||||
f.log = logf.FromContext(ctx)
|
||||
|
||||
// Run the authority in a separate goroutine
|
||||
authorityErrChan := make(chan error)
|
||||
go func() {
|
||||
defer close(authorityErrChan)
|
||||
authorityErrChan <- f.Authority.Run(stopCh)
|
||||
authorityErrChan <- f.Authority.Run(ctx)
|
||||
}()
|
||||
|
||||
nextRenewCh := make(chan time.Time, 1)
|
||||
@@ -88,11 +82,11 @@ func (f *DynamicSource) Run(stopCh <-chan struct{}) error {
|
||||
}
|
||||
|
||||
if err := f.regenerateCertificate(nextRenewCh); err != nil {
|
||||
f.Log.Error(err, "Failed to generate initial serving certificate, retrying...", "interval", interval)
|
||||
f.log.Error(err, "Failed to generate initial serving certificate, retrying...", "interval", interval)
|
||||
return false, nil
|
||||
}
|
||||
return true, nil
|
||||
}, stopCh); err != nil {
|
||||
}, ctx.Done()); err != nil {
|
||||
// In case of an error, the stopCh is closed; wait for authorityErrChan to be closed too
|
||||
<-authorityErrChan
|
||||
|
||||
@@ -105,7 +99,7 @@ func (f *DynamicSource) Run(stopCh <-chan struct{}) error {
|
||||
}
|
||||
|
||||
// watch for changes to the root CA
|
||||
rotationChan := f.Authority.WatchRotation(stopCh)
|
||||
rotationChan := f.Authority.WatchRotation(ctx.Done())
|
||||
renewalChan := func() <-chan struct{} {
|
||||
ch := make(chan struct{})
|
||||
go func() {
|
||||
@@ -125,13 +119,13 @@ func (f *DynamicSource) Run(stopCh <-chan struct{}) error {
|
||||
defer timer.Stop()
|
||||
|
||||
select {
|
||||
case <-stopCh:
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-timer.C:
|
||||
// Try to send a message on ch, but also allow for a stop signal or
|
||||
// a new renewMoment to be received
|
||||
select {
|
||||
case <-stopCh:
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case ch <- struct{}{}:
|
||||
// Message was sent on channel
|
||||
@@ -163,27 +157,27 @@ func (f *DynamicSource) Run(stopCh <-chan struct{}) error {
|
||||
if !ok {
|
||||
return true, context.Canceled
|
||||
}
|
||||
f.Log.V(logf.InfoLevel).Info("Detected root CA rotation - regenerating serving certificates")
|
||||
f.log.V(logf.InfoLevel).Info("Detected root CA rotation - regenerating serving certificates")
|
||||
if err := f.regenerateCertificate(nextRenewCh); err != nil {
|
||||
f.Log.Error(err, "Failed to regenerate serving certificate")
|
||||
f.log.Error(err, "Failed to regenerate serving certificate")
|
||||
// Return an error here and stop the source running - this case should never
|
||||
// occur, and if it does, indicates some form of internal error.
|
||||
return false, err
|
||||
}
|
||||
// trigger regeneration if a renewal is required
|
||||
case <-renewalChan:
|
||||
f.Log.V(logf.InfoLevel).Info("Serving certificate requires renewal, regenerating")
|
||||
f.log.V(logf.InfoLevel).Info("Serving certificate requires renewal, regenerating")
|
||||
if err := f.regenerateCertificate(nextRenewCh); err != nil {
|
||||
f.Log.Error(err, "Failed to regenerate serving certificate")
|
||||
f.log.Error(err, "Failed to regenerate serving certificate")
|
||||
// Return an error here and stop the source running - this case should never
|
||||
// occur, and if it does, indicates some form of internal error.
|
||||
return false, err
|
||||
}
|
||||
case <-stopCh:
|
||||
case <-ctx.Done():
|
||||
return true, context.Canceled
|
||||
}
|
||||
return false, nil
|
||||
}, stopCh); err != nil {
|
||||
}, ctx.Done()); err != nil {
|
||||
// In case of an error, the stopCh is closed; wait for all channels to close
|
||||
<-authorityErrChan
|
||||
<-rotationChan
|
||||
@@ -216,7 +210,7 @@ func (f *DynamicSource) Healthy() bool {
|
||||
// regenerateCertificate will trigger the cached certificate and private key to
|
||||
// be regenerated by requesting a new certificate from the authority.
|
||||
func (f *DynamicSource) regenerateCertificate(nextRenew chan<- time.Time) error {
|
||||
f.Log.V(logf.DebugLevel).Info("Generating new ECDSA private key")
|
||||
f.log.V(logf.DebugLevel).Info("Generating new ECDSA private key")
|
||||
pk, err := pki.GenerateECPrivateKey(384)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -232,13 +226,13 @@ func (f *DynamicSource) regenerateCertificate(nextRenew chan<- time.Time) error
|
||||
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
|
||||
}
|
||||
|
||||
f.Log.V(logf.DebugLevel).Info("Signing new serving certificate")
|
||||
f.log.V(logf.DebugLevel).Info("Signing new serving certificate")
|
||||
cert, err := f.Authority.Sign(template)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
f.Log.V(logf.DebugLevel).Info("Signed new serving certificate")
|
||||
f.log.V(logf.DebugLevel).Info("Signed new serving certificate")
|
||||
|
||||
if err := f.updateCertificate(pk, cert, nextRenew); err != nil {
|
||||
return err
|
||||
@@ -270,6 +264,6 @@ func (f *DynamicSource) updateCertificate(pk crypto.Signer, cert *x509.Certifica
|
||||
// renew the certificate 1/3 of the time before its expiry
|
||||
nextRenew <- cert.NotAfter.Add(certDuration / -3)
|
||||
|
||||
f.Log.V(logf.InfoLevel).Info("Updated serving TLS certificate")
|
||||
f.log.V(logf.InfoLevel).Info("Updated serving TLS certificate")
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package tls
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"os"
|
||||
@@ -25,7 +26,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
crlog "sigs.k8s.io/controller-runtime/pkg/log"
|
||||
|
||||
logf "github.com/jetstack/cert-manager/pkg/logs"
|
||||
)
|
||||
@@ -53,9 +53,7 @@ type FileCertificateSource struct {
|
||||
// If not specified, a default of 12 will be used.
|
||||
MaxFailures int
|
||||
|
||||
// Log is an optional logger to write informational and error messages to.
|
||||
// If not specified, no messages will be logged.
|
||||
Log logr.Logger
|
||||
log logr.Logger
|
||||
|
||||
cachedCertificate *tls.Certificate
|
||||
cachedCertBytes []byte
|
||||
@@ -68,10 +66,8 @@ const defaultMaxFailures = 12
|
||||
|
||||
var _ CertificateSource = &FileCertificateSource{}
|
||||
|
||||
func (f *FileCertificateSource) Run(stopCh <-chan struct{}) error {
|
||||
if f.Log == nil {
|
||||
f.Log = crlog.NullLogger{}
|
||||
}
|
||||
func (f *FileCertificateSource) Run(ctx context.Context) error {
|
||||
f.log = logf.FromContext(ctx)
|
||||
|
||||
updateInterval := f.UpdateInterval
|
||||
if updateInterval == 0 {
|
||||
@@ -85,7 +81,7 @@ func (f *FileCertificateSource) Run(stopCh <-chan struct{}) error {
|
||||
// read the certificate data for the first time immediately, but allow
|
||||
// retrying if the first attempt fails
|
||||
if err := f.updateCertificateFromDisk(); err != nil {
|
||||
f.Log.Error(err, "failed to read certificate from disk")
|
||||
f.log.Error(err, "failed to read certificate from disk")
|
||||
}
|
||||
|
||||
failures := 0
|
||||
@@ -93,18 +89,18 @@ func (f *FileCertificateSource) Run(stopCh <-chan struct{}) error {
|
||||
defer ticker.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-stopCh:
|
||||
case <-ctx.Done():
|
||||
return nil
|
||||
case <-ticker.C:
|
||||
if err := f.updateCertificateFromDisk(); err != nil {
|
||||
failures++
|
||||
f.Log.Error(err, "failed to update certificate from disk", "failures", failures)
|
||||
f.log.Error(err, "failed to update certificate from disk", "failures", failures)
|
||||
if failures >= maxFailures {
|
||||
return fmt.Errorf("failed to update certificate from disk %d times: %v", failures, err)
|
||||
}
|
||||
continue
|
||||
}
|
||||
f.Log.V(logf.DebugLevel).Info("refreshed certificate from data on disk")
|
||||
f.log.V(logf.DebugLevel).Info("refreshed certificate from data on disk")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -138,10 +134,10 @@ func (f *FileCertificateSource) updateCertificateFromDisk() error {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
if bytes.Equal(keyData, f.cachedKeyBytes) && bytes.Equal(certData, f.cachedCertBytes) {
|
||||
f.Log.V(logf.DebugLevel).Info("key and certificate on disk have not changed")
|
||||
f.log.V(logf.DebugLevel).Info("key and certificate on disk have not changed")
|
||||
return nil
|
||||
}
|
||||
f.Log.V(logf.InfoLevel).Info("detected private key or certificate data on disk has changed. reloading certificate")
|
||||
f.log.V(logf.InfoLevel).Info("detected private key or certificate data on disk has changed. reloading certificate")
|
||||
|
||||
cert, err := tls.X509KeyPair(certData, keyData)
|
||||
if err != nil {
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package tls
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"crypto/x509"
|
||||
"crypto/x509/pkix"
|
||||
@@ -26,10 +27,11 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"golang.org/x/sync/errgroup"
|
||||
|
||||
cmapi "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/util/pki"
|
||||
)
|
||||
|
||||
@@ -54,30 +56,27 @@ func TestFileSource_ReadsFile(t *testing.T) {
|
||||
CertPath: certFile,
|
||||
KeyPath: pkFile,
|
||||
UpdateInterval: interval,
|
||||
Log: logtesting.TestLogger{T: t},
|
||||
log: logtesting.NewTestLogger(t),
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
ctx, cancel := context.WithCancel(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)))
|
||||
defer cancel()
|
||||
errGroup := new(errgroup.Group)
|
||||
errGroup.Go(func() error {
|
||||
return source.Run(stopCh)
|
||||
return source.Run(ctx)
|
||||
})
|
||||
|
||||
time.Sleep(interval * 2)
|
||||
cert, err := source.GetCertificate(nil)
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("got an unexpected error: %v", err)
|
||||
}
|
||||
x509Crt, err := x509.ParseCertificate(cert.Certificate[0])
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("failed to decode x509 certificate: %v", err)
|
||||
}
|
||||
if x509Crt.Subject.SerialNumber != serial {
|
||||
close(stopCh)
|
||||
t.Errorf("certificate had unexpected serial number. exp=%s, got=%s", serial, x509Crt.Subject.SerialNumber)
|
||||
}
|
||||
close(stopCh)
|
||||
if err := errGroup.Wait(); err != nil {
|
||||
t.Errorf("FileCertificateSource failed %v", err)
|
||||
}
|
||||
@@ -104,27 +103,24 @@ func TestFileSource_UpdatesFile(t *testing.T) {
|
||||
CertPath: certFile,
|
||||
KeyPath: pkFile,
|
||||
UpdateInterval: interval,
|
||||
Log: logtesting.TestLogger{T: t},
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
ctx, cancel := context.WithCancel(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)))
|
||||
defer cancel()
|
||||
errGroup := new(errgroup.Group)
|
||||
errGroup.Go(func() error {
|
||||
return source.Run(stopCh)
|
||||
return source.Run(ctx)
|
||||
})
|
||||
|
||||
time.Sleep(interval * 2)
|
||||
cert, err := source.GetCertificate(nil)
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("got an unexpected error: %v", err)
|
||||
}
|
||||
x509Crt, err := x509.ParseCertificate(cert.Certificate[0])
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("failed to decode x509 certificate: %v", err)
|
||||
}
|
||||
if x509Crt.Subject.SerialNumber != serial {
|
||||
close(stopCh)
|
||||
t.Errorf("certificate had unexpected serial number. exp=%s, got=%s", serial, x509Crt.Subject.SerialNumber)
|
||||
}
|
||||
|
||||
@@ -137,20 +133,16 @@ func TestFileSource_UpdatesFile(t *testing.T) {
|
||||
time.Sleep(interval * 2)
|
||||
cert, err = source.GetCertificate(nil)
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("got an unexpected error: %v", err)
|
||||
}
|
||||
x509Crt, err = x509.ParseCertificate(cert.Certificate[0])
|
||||
if err != nil {
|
||||
close(stopCh)
|
||||
t.Fatalf("failed to decode x509 certificate: %v", err)
|
||||
}
|
||||
if x509Crt.Subject.SerialNumber != serial {
|
||||
close(stopCh)
|
||||
t.Errorf("certificate had unexpected serial number. exp=%s, got=%s", serial, x509Crt.Subject.SerialNumber)
|
||||
}
|
||||
|
||||
close(stopCh)
|
||||
if err := errGroup.Wait(); err != nil {
|
||||
t.Errorf("FileCertificateSource failed: %v", err)
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ limitations under the License.
|
||||
package tls
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
)
|
||||
@@ -40,7 +41,7 @@ type CertificateSource interface {
|
||||
// kind of background operation.
|
||||
// The Run function should return when stopCh is closed, and may return an
|
||||
// error if an irrecoverable error occurs whilst running.
|
||||
Run(stopCh <-chan struct{}) error
|
||||
Run(context.Context) error
|
||||
|
||||
// Healthy can be used to check the status of the CertificateSource.
|
||||
// It will return true if the source has a certificate available.
|
||||
|
||||
@@ -7,12 +7,12 @@ go_test(
|
||||
"//pkg/webhook/handlers/testdata/apis/testgroup/crds:all-srcs",
|
||||
],
|
||||
deps = [
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//pkg/webhook/handlers:go_default_library",
|
||||
"//pkg/webhook/handlers/testdata/apis/testgroup/install:go_default_library",
|
||||
"//pkg/webhook/handlers/testdata/apis/testgroup/v1:go_default_library",
|
||||
"//pkg/webhook/handlers/testdata/apis/testgroup/v2:go_default_library",
|
||||
"//test/integration/framework:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/api/equality:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
|
||||
|
||||
@@ -21,6 +21,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
"k8s.io/apimachinery/pkg/api/equality"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
@@ -29,7 +30,6 @@ import (
|
||||
"k8s.io/utils/pointer"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/handlers"
|
||||
testapi "github.com/jetstack/cert-manager/pkg/webhook/handlers/testdata/apis/testgroup/install"
|
||||
testv1 "github.com/jetstack/cert-manager/pkg/webhook/handlers/testdata/apis/testgroup/v1"
|
||||
@@ -80,7 +80,7 @@ func TestConversion(t *testing.T) {
|
||||
}
|
||||
for name, test := range tests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
log := logtesting.TestLogger{T: t}
|
||||
log := logtesting.NewTestLogger(t)
|
||||
|
||||
scheme := runtime.NewScheme()
|
||||
testapi.Install(scheme)
|
||||
|
||||
@@ -137,7 +137,7 @@ func init() {
|
||||
// patchCRDConversion overrides the conversion configuration of the CRDs that
|
||||
// are loaded in to the integration test API server,
|
||||
// configuring the conversion to be handled by the local webhook server.
|
||||
func patchCRDConversion(crds []apiextensionsv1.CustomResourceDefinition, url string, caPEM []byte) {
|
||||
func patchCRDConversion(crds []*apiextensionsv1.CustomResourceDefinition, url string, caPEM []byte) {
|
||||
for i := range crds {
|
||||
url := fmt.Sprintf("%s%s", url, "/convert")
|
||||
crds[i].Spec.Conversion = &apiextensionsv1.CustomResourceConversion{
|
||||
@@ -153,14 +153,14 @@ func patchCRDConversion(crds []apiextensionsv1.CustomResourceDefinition, url str
|
||||
}
|
||||
}
|
||||
|
||||
func readCustomResourcesAtPath(t *testing.T, path string) []apiextensionsv1.CustomResourceDefinition {
|
||||
func readCustomResourcesAtPath(t *testing.T, path string) []*apiextensionsv1.CustomResourceDefinition {
|
||||
serializer := jsonserializer.NewSerializerWithOptions(jsonserializer.DefaultMetaFactory, internalScheme, internalScheme, jsonserializer.SerializerOptions{
|
||||
Yaml: true,
|
||||
})
|
||||
converter := runtime.UnsafeObjectConvertor(internalScheme)
|
||||
codec := versioning.NewCodec(serializer, serializer, converter, internalScheme, internalScheme, internalScheme, runtime.InternalGroupVersioner, runtime.InternalGroupVersioner, internalScheme.Name())
|
||||
|
||||
var crds []apiextensionsv1.CustomResourceDefinition
|
||||
var crds []*apiextensionsv1.CustomResourceDefinition
|
||||
if err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -180,13 +180,13 @@ func readCustomResourcesAtPath(t *testing.T, path string) []apiextensionsv1.Cust
|
||||
return crds
|
||||
}
|
||||
|
||||
func readCRDsAtPath(codec runtime.Codec, converter runtime.ObjectConvertor, path string) ([]apiextensionsv1.CustomResourceDefinition, error) {
|
||||
func readCRDsAtPath(codec runtime.Codec, converter runtime.ObjectConvertor, path string) ([]*apiextensionsv1.CustomResourceDefinition, error) {
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var crds []apiextensionsv1.CustomResourceDefinition
|
||||
var crds []*apiextensionsv1.CustomResourceDefinition
|
||||
for _, d := range strings.Split(string(data), "\n---\n") {
|
||||
// skip empty YAML documents
|
||||
if strings.TrimSpace(d) == "" {
|
||||
@@ -203,7 +203,7 @@ func readCRDsAtPath(codec runtime.Codec, converter runtime.ObjectConvertor, path
|
||||
return nil, err
|
||||
}
|
||||
|
||||
crds = append(crds, out)
|
||||
crds = append(crds, &out)
|
||||
}
|
||||
|
||||
return crds, nil
|
||||
|
||||
@@ -8,10 +8,11 @@ go_test(
|
||||
],
|
||||
deps = [
|
||||
"//pkg/apis/meta/v1:go_default_library",
|
||||
"//pkg/logs/testing:go_default_library",
|
||||
"//pkg/webhook/authority:go_default_library",
|
||||
"//pkg/webhook/server/tls:go_default_library",
|
||||
"//test/integration/framework:go_default_library",
|
||||
"@com_github_go_logr_logr//:go_default_library",
|
||||
"@com_github_go_logr_logr//testing:go_default_library",
|
||||
"@io_k8s_api//core/v1:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/api/errors:go_default_library",
|
||||
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
|
||||
|
||||
@@ -26,6 +26,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -33,7 +35,6 @@ import (
|
||||
"k8s.io/client-go/kubernetes"
|
||||
|
||||
cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1"
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/authority"
|
||||
"github.com/jetstack/cert-manager/test/integration/framework"
|
||||
)
|
||||
@@ -44,7 +45,7 @@ import (
|
||||
// Ensure that when the controller is running against an empty API server, it
|
||||
// creates and stores a new CA keypair.
|
||||
func TestDynamicAuthority_Bootstrap(t *testing.T) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*40)
|
||||
ctx, cancel := context.WithTimeout(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)), time.Second*40)
|
||||
defer cancel()
|
||||
|
||||
config, stop := framework.RunControlPlane(t, ctx)
|
||||
@@ -64,12 +65,10 @@ func TestDynamicAuthority_Bootstrap(t *testing.T) {
|
||||
SecretNamespace: namespace,
|
||||
SecretName: "testsecret",
|
||||
RESTConfig: config,
|
||||
Log: logtesting.TestLogger{T: t},
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
errCh := make(chan error)
|
||||
defer func() {
|
||||
close(stopCh)
|
||||
cancel()
|
||||
err := <-errCh
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -78,7 +77,7 @@ func TestDynamicAuthority_Bootstrap(t *testing.T) {
|
||||
// run the dynamic authority controller in the background
|
||||
go func() {
|
||||
defer close(errCh)
|
||||
if err := auth.Run(stopCh); err != nil && !errors.Is(err, context.Canceled) {
|
||||
if err := auth.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
|
||||
errCh <- fmt.Errorf("Unexpected error running authority: %v", err)
|
||||
}
|
||||
}()
|
||||
@@ -94,7 +93,7 @@ func TestDynamicAuthority_Bootstrap(t *testing.T) {
|
||||
// Ensures that when the controller is running and the CA Secret is deleted,
|
||||
// it is automatically recreated within a bounded amount of time.
|
||||
func TestDynamicAuthority_Recreates(t *testing.T) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*40)
|
||||
ctx, cancel := context.WithTimeout(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)), time.Second*40)
|
||||
defer cancel()
|
||||
|
||||
config, stop := framework.RunControlPlane(t, ctx)
|
||||
@@ -114,12 +113,10 @@ func TestDynamicAuthority_Recreates(t *testing.T) {
|
||||
SecretNamespace: namespace,
|
||||
SecretName: "testsecret",
|
||||
RESTConfig: config,
|
||||
Log: logtesting.TestLogger{T: t},
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
errCh := make(chan error)
|
||||
defer func() {
|
||||
close(stopCh)
|
||||
cancel()
|
||||
err := <-errCh
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -128,7 +125,7 @@ func TestDynamicAuthority_Recreates(t *testing.T) {
|
||||
// run the dynamic authority controller in the background
|
||||
go func() {
|
||||
defer close(errCh)
|
||||
if err := auth.Run(stopCh); err != nil && !errors.Is(err, context.Canceled) {
|
||||
if err := auth.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
|
||||
errCh <- fmt.Errorf("Unexpected error running authority: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -25,13 +25,13 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
logtesting "github.com/go-logr/logr/testing"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
|
||||
logtesting "github.com/jetstack/cert-manager/pkg/logs/testing"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/authority"
|
||||
"github.com/jetstack/cert-manager/pkg/webhook/server/tls"
|
||||
"github.com/jetstack/cert-manager/test/integration/framework"
|
||||
@@ -40,7 +40,7 @@ import (
|
||||
// Ensure that when the source is running against an apiserver, it bootstraps
|
||||
// a CA and signs a valid certificate.
|
||||
func TestDynamicSource_Bootstrap(t *testing.T) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*40)
|
||||
ctx, cancel := context.WithTimeout(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)), time.Second*40)
|
||||
defer cancel()
|
||||
|
||||
config, stop := framework.RunControlPlane(t, ctx)
|
||||
@@ -56,21 +56,17 @@ func TestDynamicSource_Bootstrap(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
log := logtesting.TestLogger{T: t}
|
||||
source := tls.DynamicSource{
|
||||
DNSNames: []string{"example.com"},
|
||||
Authority: &authority.DynamicAuthority{
|
||||
SecretNamespace: namespace,
|
||||
SecretName: "testsecret",
|
||||
RESTConfig: config,
|
||||
Log: log,
|
||||
},
|
||||
Log: log,
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
errCh := make(chan error)
|
||||
defer func() {
|
||||
close(stopCh)
|
||||
cancel()
|
||||
err := <-errCh
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -79,7 +75,7 @@ func TestDynamicSource_Bootstrap(t *testing.T) {
|
||||
// run the dynamic authority controller in the background
|
||||
go func() {
|
||||
defer close(errCh)
|
||||
if err := source.Run(stopCh); err != nil && !errors.Is(err, context.Canceled) {
|
||||
if err := source.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
|
||||
errCh <- fmt.Errorf("Unexpected error running source: %v", err)
|
||||
}
|
||||
}()
|
||||
@@ -109,7 +105,7 @@ func TestDynamicSource_Bootstrap(t *testing.T) {
|
||||
// Ensure that when the source is running against an apiserver, it bootstraps
|
||||
// a CA and signs a valid certificate.
|
||||
func TestDynamicSource_CARotation(t *testing.T) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*40)
|
||||
ctx, cancel := context.WithTimeout(logr.NewContext(context.Background(), logtesting.NewTestLogger(t)), time.Second*40)
|
||||
defer cancel()
|
||||
|
||||
config, stop := framework.RunControlPlane(t, ctx)
|
||||
@@ -125,21 +121,17 @@ func TestDynamicSource_CARotation(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
log := logtesting.TestLogger{T: t}
|
||||
source := tls.DynamicSource{
|
||||
DNSNames: []string{"example.com"},
|
||||
Authority: &authority.DynamicAuthority{
|
||||
SecretNamespace: namespace,
|
||||
SecretName: "testsecret",
|
||||
RESTConfig: config,
|
||||
Log: log,
|
||||
},
|
||||
Log: log,
|
||||
}
|
||||
stopCh := make(chan struct{})
|
||||
errCh := make(chan error)
|
||||
defer func() {
|
||||
close(stopCh)
|
||||
cancel()
|
||||
err := <-errCh
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -148,7 +140,7 @@ func TestDynamicSource_CARotation(t *testing.T) {
|
||||
// run the dynamic authority controller in the background
|
||||
go func() {
|
||||
defer close(errCh)
|
||||
if err := source.Run(stopCh); err != nil && !errors.Is(err, context.Canceled) {
|
||||
if err := source.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
|
||||
errCh <- fmt.Errorf("Unexpected error running source: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user