Small improvement in ban flunder admission plugin.

After the changes a name will be also taken directly from meta field.
Previously a name was taken only via attributes.GetName() method,
which in turns derived a name from a URL address.
This didn't work as we don't allow to pass a name when POSTing a resource.
This commit is contained in:
p0lyn0mial 2017-08-08 17:49:39 +02:00
parent 7477e184aa
commit 3a00be1f66
3 changed files with 9 additions and 2 deletions

View File

@ -11,6 +11,7 @@ go_library(
srcs = ["admission.go"],
deps = [
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apiserver/pkg/admission:go_default_library",
"//vendor/k8s.io/sample-apiserver/pkg/admission/wardleinitializer:go_default_library",

View File

@ -21,6 +21,7 @@ import (
"io"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apiserver/pkg/admission"
"k8s.io/sample-apiserver/pkg/admission/wardleinitializer"
@ -52,7 +53,12 @@ func (d *disallowFlunder) Admit(a admission.Attributes) error {
return nil
}
flunderName := a.GetName()
metaAccessor, err := meta.Accessor(a.GetObject())
if err != nil {
return err
}
flunderName := metaAccessor.GetName()
fischers, err := d.lister.List(labels.Everything())
if err != nil {
return err

View File

@ -135,7 +135,7 @@ func TestBanflunderAdmissionPlugin(t *testing.T) {
nil,
scenario.admissionInputKind,
scenario.admissionInput.ObjectMeta.Namespace,
scenario.admissionInput.ObjectMeta.Name,
"",
scenario.admissionInputResource,
"",
admission.Create,