Merge pull request #530 from mythi/ctrl-runtime-070

Move to Admission v1 API
This commit is contained in:
Dmitry Rozhkov 2020-12-17 13:59:02 +02:00 committed by GitHub
commit eacbf245f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 43 additions and 43 deletions

View File

@ -7,7 +7,7 @@ metadata:
name: mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service

View File

@ -33,7 +33,7 @@ spec:
validation:
openAPIV3Schema:
description: FpgaDevicePlugin is the Schema for the fpgadeviceplugins API. It
represents the FPGA device plugin responsible for advertising FPGA hardware
represents the FPGA device plugin responsible for advertising Intel FPGA hardware
resources to the kubelet.
properties:
apiVersion:

View File

@ -33,7 +33,7 @@ spec:
validation:
openAPIV3Schema:
description: GpuDevicePlugin is the Schema for the gpudeviceplugins API. It
represents the GPU device plugin responsible for advertising GPU hardware
represents the GPU device plugin responsible for advertising Intel GPU hardware
resources to the kubelet.
properties:
apiVersion:

View File

@ -34,7 +34,7 @@ spec:
openAPIV3Schema:
description: QatDevicePlugin is the Schema for the qatdeviceplugins API. It
represents the QAT device plugin responsible for advertising Intel QuickAssist
hardware resources to the kubelet.
Technology hardware resources to the kubelet.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation

View File

@ -33,8 +33,8 @@ spec:
validation:
openAPIV3Schema:
description: SgxDevicePlugin is the Schema for the sgxdeviceplugins API. It
represents the SGX device plugin responsible for advertising SGX hardware
resources to the kubelet.
represents the SGX device plugin responsible for advertising SGX device nodes
to the kubelet.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation

View File

@ -7,7 +7,7 @@ metadata:
name: mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -27,7 +27,7 @@ webhooks:
- fpgadeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -47,7 +47,7 @@ webhooks:
- gpudeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -67,7 +67,7 @@ webhooks:
- qatdeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -87,7 +87,7 @@ webhooks:
- sgxdeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -107,7 +107,7 @@ webhooks:
- pods
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -135,7 +135,7 @@ metadata:
name: validating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -155,7 +155,7 @@ webhooks:
- fpgadeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -175,7 +175,7 @@ webhooks:
- gpudeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service
@ -195,7 +195,7 @@ webhooks:
- qatdeviceplugins
sideEffects: None
- admissionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: webhook-service

4
go.mod
View File

@ -5,7 +5,7 @@ go 1.15
require (
github.com/fsnotify/fsnotify v1.4.9
github.com/go-ini/ini v1.46.0
github.com/go-logr/logr v0.2.1
github.com/go-logr/logr v0.3.0
github.com/google/gousb v1.1.0
github.com/klauspost/cpuid/v2 v2.0.2
github.com/onsi/ginkgo v1.14.1
@ -22,7 +22,7 @@ require (
k8s.io/kubelet v0.19.3
k8s.io/kubernetes v1.19.3
k8s.io/utils v0.0.0-20200912215256-4140de9c8800
sigs.k8s.io/controller-runtime v0.7.0-alpha.6
sigs.k8s.io/controller-runtime v0.7.0
)
replace (

8
go.sum
View File

@ -179,8 +179,8 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
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.2.1 h1:fV3MLmabKIZ383XifUjFSwcoGee0v9qgPp8wy5svibE=
github.com/go-logr/logr v0.2.1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
github.com/go-logr/logr v0.3.0 h1:q4c+kbcR0d5rSurhBR8dIgieOaYpXtsdTYfx22Cu6rs=
github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
github.com/go-logr/zapr v0.2.0 h1:v6Ji8yBW77pva6NkJKQdHLAJKrIJKRHz0RXwPqCHSR4=
github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
@ -886,8 +886,8 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0=
sigs.k8s.io/controller-runtime v0.7.0-alpha.6 h1:ieFqEijQyDEZVIGwI5sYkk7VTa8Itim0kU/TCOnCkto=
sigs.k8s.io/controller-runtime v0.7.0-alpha.6/go.mod h1:03b1n6EtlDvuBPPEOHadJUusruwLWgoT4BDCybMibnA=
sigs.k8s.io/controller-runtime v0.7.0 h1:bU20IBBEPccWz5+zXpLnpVsgBYxqclaHu1pVDl/gEt8=
sigs.k8s.io/controller-runtime v0.7.0/go.mod h1:pJ3YBrJiAqMAZKi6UVGuE98ZrroV1p+pIhoHsMm9wdU=
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=
sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=

View File

@ -43,7 +43,7 @@ func (r *FpgaDevicePlugin) SetupWebhookWithManager(mgr ctrl.Manager) error {
Complete()
}
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-fpgadeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=fpgadeviceplugins,verbs=create;update,versions=v1,name=mfpgadeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-fpgadeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=fpgadeviceplugins,verbs=create;update,versions=v1,name=mfpgadeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Defaulter = &FpgaDevicePlugin{}
@ -60,7 +60,7 @@ func (r *FpgaDevicePlugin) Default() {
}
}
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-fpgadeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=fpgadeviceplugins,versions=v1,name=vfpgadeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-fpgadeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=fpgadeviceplugins,versions=v1,name=vfpgadeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Validator = &FpgaDevicePlugin{}

View File

@ -43,7 +43,7 @@ func (r *GpuDevicePlugin) SetupWebhookWithManager(mgr ctrl.Manager) error {
Complete()
}
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-gpudeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=gpudeviceplugins,verbs=create;update,versions=v1,name=mgpudeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-gpudeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=gpudeviceplugins,verbs=create;update,versions=v1,name=mgpudeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Defaulter = &GpuDevicePlugin{}
@ -56,7 +56,7 @@ func (r *GpuDevicePlugin) Default() {
}
}
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-gpudeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=gpudeviceplugins,versions=v1,name=vgpudeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-gpudeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=gpudeviceplugins,versions=v1,name=vgpudeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Validator = &GpuDevicePlugin{}

View File

@ -45,7 +45,7 @@ func (r *QatDevicePlugin) SetupWebhookWithManager(mgr ctrl.Manager) error {
Complete()
}
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-qatdeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=qatdeviceplugins,verbs=create;update,versions=v1,name=mqatdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-qatdeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=qatdeviceplugins,verbs=create;update,versions=v1,name=mqatdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Defaulter = &QatDevicePlugin{}
@ -58,7 +58,7 @@ func (r *QatDevicePlugin) Default() {
}
}
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-qatdeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=qatdeviceplugins,versions=v1,name=vqatdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-qatdeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=qatdeviceplugins,versions=v1,name=vqatdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Validator = &QatDevicePlugin{}

View File

@ -43,7 +43,7 @@ func (r *SgxDevicePlugin) SetupWebhookWithManager(mgr ctrl.Manager) error {
Complete()
}
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-sgxdeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=sgxdeviceplugins,verbs=create;update,versions=v1,name=msgxdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:path=/mutate-deviceplugin-intel-com-v1-sgxdeviceplugin,mutating=true,failurePolicy=fail,groups=deviceplugin.intel.com,resources=sgxdeviceplugins,verbs=create;update,versions=v1,name=msgxdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Defaulter = &SgxDevicePlugin{}
@ -60,7 +60,7 @@ func (r *SgxDevicePlugin) Default() {
}
}
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-sgxdeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=sgxdeviceplugins,versions=v1,name=vsgxdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:verbs=create;update,path=/validate-deviceplugin-intel-com-v1-sgxdeviceplugin,mutating=false,failurePolicy=fail,groups=deviceplugin.intel.com,resources=sgxdeviceplugins,versions=v1,name=vsgxdeviceplugin.kb.io,sideEffects=None,admissionReviewVersions=v1
var _ webhook.Validator = &SgxDevicePlugin{}

View File

@ -21,7 +21,7 @@ import (
"github.com/go-logr/logr"
"github.com/pkg/errors"
admissionv1beta1 "k8s.io/api/admission/v1beta1"
admissionv1 "k8s.io/api/admission/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@ -71,7 +71,7 @@ func (pm *PatcherManager) GetPodMutator() func(ctx context.Context, req webhook.
return pm.mutate
}
// +kubebuilder:webhook:verbs=create;update,path=/pods,mutating=true,failurePolicy=Ignore,groups="",resources=pods,versions=v1,name=fpga.mutator.webhooks.intel.com,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:verbs=create;update,path=/pods,mutating=true,failurePolicy=Ignore,groups="",resources=pods,versions=v1,name=fpga.mutator.webhooks.intel.com,sideEffects=None,admissionReviewVersions=v1
func (pm *PatcherManager) mutate(ctx context.Context, req webhook.AdmissionRequest) webhook.AdmissionResponse {
podResource := metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"}
@ -100,7 +100,7 @@ func (pm *PatcherManager) mutate(ctx context.Context, req webhook.AdmissionReque
pm.log.V(1).Info("Received pod", "Pod", name, "Namespace", namespace)
patcher := pm.GetPatcher(namespace)
reviewResponse := admissionv1beta1.AdmissionResponse{
reviewResponse := admissionv1.AdmissionResponse{
Allowed: true,
}
@ -115,7 +115,7 @@ func (pm *PatcherManager) mutate(ctx context.Context, req webhook.AdmissionReque
if len(ops) > 0 {
reviewResponse.Patch = []byte("[ " + strings.Join(ops, ",") + " ]")
pt := admissionv1beta1.PatchTypeJSONPatch
pt := admissionv1.PatchTypeJSONPatch
reviewResponse.PatchType = &pt
}
return webhook.AdmissionResponse{
@ -125,7 +125,7 @@ func (pm *PatcherManager) mutate(ctx context.Context, req webhook.AdmissionReque
func toAdmissionResponse(err error) webhook.AdmissionResponse {
return webhook.AdmissionResponse{
AdmissionResponse: admissionv1beta1.AdmissionResponse{
AdmissionResponse: admissionv1.AdmissionResponse{
Result: &metav1.Status{
Message: err.Error(),
},

View File

@ -19,7 +19,7 @@ import (
"encoding/json"
"testing"
"k8s.io/api/admission/v1beta1"
admissionv1 "k8s.io/api/admission/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -113,24 +113,24 @@ func TestMutate(t *testing.T) {
tcases := []struct {
name string
ar v1beta1.AdmissionRequest
ar admissionv1.AdmissionRequest
expectedAllowed bool
expectedPatchOps int
}{
{
name: "empty admission request",
ar: v1beta1.AdmissionRequest{},
ar: admissionv1.AdmissionRequest{},
},
{
name: "admission request without object",
ar: v1beta1.AdmissionRequest{
ar: admissionv1.AdmissionRequest{
Resource: metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"},
},
expectedAllowed: true,
},
{
name: "admission request with corrupted object",
ar: v1beta1.AdmissionRequest{
ar: admissionv1.AdmissionRequest{
Resource: metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"},
Object: runtime.RawExtension{
Raw: []byte(`{"corrupted json":}`),
@ -139,7 +139,7 @@ func TestMutate(t *testing.T) {
},
{
name: "successful non-empty admission request",
ar: v1beta1.AdmissionRequest{
ar: admissionv1.AdmissionRequest{
Resource: metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"},
Object: runtime.RawExtension{
Raw: podRaw,
@ -150,7 +150,7 @@ func TestMutate(t *testing.T) {
},
{
name: "handle error after wrong getPatchOps()",
ar: v1beta1.AdmissionRequest{
ar: admissionv1.AdmissionRequest{
Namespace: "test",
Resource: metav1.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"},
Object: runtime.RawExtension{

View File

@ -27,7 +27,7 @@ import (
"github.com/intel/intel-device-plugins-for-kubernetes/pkg/internal/containers"
)
// +kubebuilder:webhook:path=/pods-sgx,mutating=true,failurePolicy=ignore,groups="",resources=pods,verbs=create;update,versions=v1,name=sgx.mutator.webhooks.intel.com,sideEffects=None,admissionReviewVersions=v1beta1
// +kubebuilder:webhook:path=/pods-sgx,mutating=true,failurePolicy=ignore,groups="",resources=pods,verbs=create;update,versions=v1,name=sgx.mutator.webhooks.intel.com,sideEffects=None,admissionReviewVersions=v1
// SgxMutator annotates Pods.
type SgxMutator struct {