mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-22 14:20:19 +00:00
rebase: bump sigs.k8s.io/controller-runtime from 0.10.1 to 0.10.2
Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.10.1 to 0.10.2. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.10.1...v0.10.2) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
parent
cff0e04e3c
commit
7c4b29bd57
2
go.mod
2
go.mod
@ -33,7 +33,7 @@ require (
|
|||||||
k8s.io/kubernetes v1.22.2
|
k8s.io/kubernetes v1.22.2
|
||||||
k8s.io/mount-utils v0.22.2
|
k8s.io/mount-utils v0.22.2
|
||||||
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a
|
k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a
|
||||||
sigs.k8s.io/controller-runtime v0.10.1
|
sigs.k8s.io/controller-runtime v0.10.2
|
||||||
)
|
)
|
||||||
|
|
||||||
replace (
|
replace (
|
||||||
|
4
go.sum
4
go.sum
@ -1620,8 +1620,8 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
|||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 h1:fmRfl9WJ4ApJn7LxNuED4m0t18qivVQOxP6aAYG9J6c=
|
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.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
||||||
sigs.k8s.io/controller-runtime v0.2.2/go.mod h1:9dyohw3ZtoXQuV1e766PHUn+cmrRCIcBh6XIMFNMZ+I=
|
sigs.k8s.io/controller-runtime v0.2.2/go.mod h1:9dyohw3ZtoXQuV1e766PHUn+cmrRCIcBh6XIMFNMZ+I=
|
||||||
sigs.k8s.io/controller-runtime v0.10.1 h1:+eLHgY/VrJWnfg6iXUqhCUqNXgPH1NZeP9drNAAgWlg=
|
sigs.k8s.io/controller-runtime v0.10.2 h1:jW8qiY+yMnnPx6O9hu63tgcwaKzd1yLYui+mpvClOOc=
|
||||||
sigs.k8s.io/controller-runtime v0.10.1/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY=
|
sigs.k8s.io/controller-runtime v0.10.2/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY=
|
||||||
sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g=
|
sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g=
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs=
|
sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs=
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go=
|
sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go=
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -1021,7 +1021,7 @@ k8s.io/utils/trace
|
|||||||
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22
|
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
|
||||||
# sigs.k8s.io/controller-runtime v0.10.1
|
# sigs.k8s.io/controller-runtime v0.10.2
|
||||||
## explicit
|
## explicit
|
||||||
sigs.k8s.io/controller-runtime/pkg/cache
|
sigs.k8s.io/controller-runtime/pkg/cache
|
||||||
sigs.k8s.io/controller-runtime/pkg/cache/internal
|
sigs.k8s.io/controller-runtime/pkg/cache/internal
|
||||||
|
33
vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go
generated
vendored
33
vendor/sigs.k8s.io/controller-runtime/pkg/source/source.go
generated
vendored
@ -21,8 +21,10 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/client-go/util/workqueue"
|
"k8s.io/client-go/util/workqueue"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||||
"sigs.k8s.io/controller-runtime/pkg/event"
|
"sigs.k8s.io/controller-runtime/pkg/event"
|
||||||
@ -119,17 +121,34 @@ func (ks *Kind) Start(ctx context.Context, handler handler.EventHandler, queue w
|
|||||||
ctx, ks.startCancel = context.WithCancel(ctx)
|
ctx, ks.startCancel = context.WithCancel(ctx)
|
||||||
ks.started = make(chan error)
|
ks.started = make(chan error)
|
||||||
go func() {
|
go func() {
|
||||||
// Lookup the Informer from the Cache and add an EventHandler which populates the Queue
|
var (
|
||||||
i, err := ks.cache.GetInformer(ctx, ks.Type)
|
i cache.Informer
|
||||||
if err != nil {
|
lastErr error
|
||||||
kindMatchErr := &meta.NoKindMatchError{}
|
)
|
||||||
if errors.As(err, &kindMatchErr) {
|
|
||||||
log.Error(err, "if kind is a CRD, it should be installed before calling Start",
|
// Tries to get an informer until it returns true,
|
||||||
"kind", kindMatchErr.GroupKind)
|
// an error or the specified context is cancelled or expired.
|
||||||
|
if err := wait.PollImmediateUntilWithContext(ctx, 10*time.Second, func(ctx context.Context) (bool, error) {
|
||||||
|
// Lookup the Informer from the Cache and add an EventHandler which populates the Queue
|
||||||
|
i, lastErr = ks.cache.GetInformer(ctx, ks.Type)
|
||||||
|
if lastErr != nil {
|
||||||
|
kindMatchErr := &meta.NoKindMatchError{}
|
||||||
|
if errors.As(lastErr, &kindMatchErr) {
|
||||||
|
log.Error(lastErr, "if kind is a CRD, it should be installed before calling Start",
|
||||||
|
"kind", kindMatchErr.GroupKind)
|
||||||
|
}
|
||||||
|
return false, nil // Retry.
|
||||||
|
}
|
||||||
|
return true, nil
|
||||||
|
}); err != nil {
|
||||||
|
if lastErr != nil {
|
||||||
|
ks.started <- fmt.Errorf("failed to get informer from cache: %w", lastErr)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
ks.started <- err
|
ks.started <- err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct})
|
i.AddEventHandler(internal.EventHandler{Queue: queue, EventHandler: handler, Predicates: prct})
|
||||||
if !ks.cache.WaitForCacheSync(ctx) {
|
if !ks.cache.WaitForCacheSync(ctx) {
|
||||||
// Would be great to return something more informative here
|
// Would be great to return something more informative here
|
||||||
|
85
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/defaulter_custom.go
generated
vendored
Normal file
85
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/defaulter_custom.go
generated
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package admission
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CustomDefaulter defines functions for setting defaults on resources.
|
||||||
|
type CustomDefaulter interface {
|
||||||
|
Default(ctx context.Context, obj runtime.Object) error
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithCustomDefaulter creates a new Webhook for a CustomDefaulter interface.
|
||||||
|
func WithCustomDefaulter(obj runtime.Object, defaulter CustomDefaulter) *Webhook {
|
||||||
|
return &Webhook{
|
||||||
|
Handler: &defaulterForType{object: obj, defaulter: defaulter},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type defaulterForType struct {
|
||||||
|
defaulter CustomDefaulter
|
||||||
|
object runtime.Object
|
||||||
|
decoder *Decoder
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ DecoderInjector = &defaulterForType{}
|
||||||
|
|
||||||
|
func (h *defaulterForType) InjectDecoder(d *Decoder) error {
|
||||||
|
h.decoder = d
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle handles admission requests.
|
||||||
|
func (h *defaulterForType) Handle(ctx context.Context, req Request) Response {
|
||||||
|
if h.defaulter == nil {
|
||||||
|
panic("defaulter should never be nil")
|
||||||
|
}
|
||||||
|
if h.object == nil {
|
||||||
|
panic("object should never be nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the object in the request
|
||||||
|
obj := h.object.DeepCopyObject()
|
||||||
|
if err := h.decoder.Decode(req, obj); err != nil {
|
||||||
|
return Errored(http.StatusBadRequest, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default the object
|
||||||
|
if err := h.defaulter.Default(ctx, obj); err != nil {
|
||||||
|
var apiStatus apierrors.APIStatus
|
||||||
|
if errors.As(err, &apiStatus) {
|
||||||
|
return validationResponseFromStatus(false, apiStatus.Status())
|
||||||
|
}
|
||||||
|
return Denied(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the patch
|
||||||
|
marshalled, err := json.Marshal(obj)
|
||||||
|
if err != nil {
|
||||||
|
return Errored(http.StatusInternalServerError, err)
|
||||||
|
}
|
||||||
|
return PatchResponseFromRaw(req.Object.Raw, marshalled)
|
||||||
|
}
|
111
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/validator_custom.go
generated
vendored
Normal file
111
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/validator_custom.go
generated
vendored
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package admission
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
v1 "k8s.io/api/admission/v1"
|
||||||
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CustomValidator defines functions for validating an operation.
|
||||||
|
type CustomValidator interface {
|
||||||
|
ValidateCreate(ctx context.Context, obj runtime.Object) error
|
||||||
|
ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) error
|
||||||
|
ValidateDelete(ctx context.Context, obj runtime.Object) error
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithCustomValidator creates a new Webhook for validating the provided type.
|
||||||
|
func WithCustomValidator(obj runtime.Object, validator CustomValidator) *Webhook {
|
||||||
|
return &Webhook{
|
||||||
|
Handler: &validatorForType{object: obj, validator: validator},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type validatorForType struct {
|
||||||
|
validator CustomValidator
|
||||||
|
object runtime.Object
|
||||||
|
decoder *Decoder
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ DecoderInjector = &validatorForType{}
|
||||||
|
|
||||||
|
// InjectDecoder injects the decoder into a validatingHandler.
|
||||||
|
func (h *validatorForType) InjectDecoder(d *Decoder) error {
|
||||||
|
h.decoder = d
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle handles admission requests.
|
||||||
|
func (h *validatorForType) Handle(ctx context.Context, req Request) Response {
|
||||||
|
if h.validator == nil {
|
||||||
|
panic("validator should never be nil")
|
||||||
|
}
|
||||||
|
if h.object == nil {
|
||||||
|
panic("object should never be nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the object in the request
|
||||||
|
obj := h.object.DeepCopyObject()
|
||||||
|
|
||||||
|
var err error
|
||||||
|
switch req.Operation {
|
||||||
|
case v1.Create:
|
||||||
|
if err := h.decoder.Decode(req, obj); err != nil {
|
||||||
|
return Errored(http.StatusBadRequest, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = h.validator.ValidateCreate(ctx, obj)
|
||||||
|
case v1.Update:
|
||||||
|
oldObj := obj.DeepCopyObject()
|
||||||
|
if err := h.decoder.DecodeRaw(req.Object, obj); err != nil {
|
||||||
|
return Errored(http.StatusBadRequest, err)
|
||||||
|
}
|
||||||
|
if err := h.decoder.DecodeRaw(req.OldObject, oldObj); err != nil {
|
||||||
|
return Errored(http.StatusBadRequest, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = h.validator.ValidateUpdate(ctx, oldObj, obj)
|
||||||
|
case v1.Delete:
|
||||||
|
// In reference to PR: https://github.com/kubernetes/kubernetes/pull/76346
|
||||||
|
// OldObject contains the object being deleted
|
||||||
|
if err := h.decoder.DecodeRaw(req.OldObject, obj); err != nil {
|
||||||
|
return Errored(http.StatusBadRequest, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = h.validator.ValidateDelete(ctx, obj)
|
||||||
|
default:
|
||||||
|
return Errored(http.StatusBadRequest, fmt.Errorf("unknown operation request %q", req.Operation))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the error message first.
|
||||||
|
if err != nil {
|
||||||
|
var apiStatus apierrors.APIStatus
|
||||||
|
if errors.As(err, &apiStatus) {
|
||||||
|
return validationResponseFromStatus(false, apiStatus.Status())
|
||||||
|
}
|
||||||
|
return Denied(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return allowed if everything succeeded.
|
||||||
|
return Allowed("")
|
||||||
|
}
|
6
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/alias.go
generated
vendored
6
vendor/sigs.k8s.io/controller-runtime/pkg/webhook/alias.go
generated
vendored
@ -29,6 +29,12 @@ type Defaulter = admission.Defaulter
|
|||||||
// Validator defines functions for validating an operation.
|
// Validator defines functions for validating an operation.
|
||||||
type Validator = admission.Validator
|
type Validator = admission.Validator
|
||||||
|
|
||||||
|
// CustomDefaulter defines functions for setting defaults on resources.
|
||||||
|
type CustomDefaulter = admission.CustomDefaulter
|
||||||
|
|
||||||
|
// CustomValidator defines functions for validating an operation.
|
||||||
|
type CustomValidator = admission.CustomValidator
|
||||||
|
|
||||||
// AdmissionRequest defines the input for an admission handler.
|
// AdmissionRequest defines the input for an admission handler.
|
||||||
// It contains information to identify the object in
|
// It contains information to identify the object in
|
||||||
// question (group, version, kind, resource, subresource,
|
// question (group, version, kind, resource, subresource,
|
||||||
|
Loading…
Reference in New Issue
Block a user