Skip to content

Commit

Permalink
Merge pull request #2452 from k8s-infra-cherrypick-robot/cherry-pick-…
Browse files Browse the repository at this point in the history
…2433-to-release-0.15

[release-0.15]  🐛 Add missing return statement in the webhook admissions func
  • Loading branch information
k8s-ci-robot committed Aug 18, 2023
2 parents 0269522 + 685c56a commit 36bb899
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions pkg/webhook/admission/decode.go
Expand Up @@ -71,6 +71,7 @@ func (d *Decoder) DecodeRaw(rawObj runtime.RawExtension, into runtime.Object) er
return err
}
unstructuredInto.SetUnstructuredContent(object)
return nil
}

deserializer := d.codecs.UniversalDeserializer()
Expand Down
33 changes: 33 additions & 0 deletions pkg/webhook/admission/decode_test.go
Expand Up @@ -123,6 +123,8 @@ var _ = Describe("Admission Webhook Decoder", func() {
}))
})

// NOTE: This will only pass if a GVK is provided. An unstructered object without a GVK may succeed
// in decoding to an alternate type.
It("should fail to decode if the object in the request doesn't match the passed-in type", func() {
By("trying to extract a pod from the quest into a node")
Expect(decoder.Decode(req, &corev1.Node{})).NotTo(Succeed())
Expand Down Expand Up @@ -152,4 +154,35 @@ var _ = Describe("Admission Webhook Decoder", func() {
"namespace": "default",
}))
})

req2 := Request{
AdmissionRequest: admissionv1.AdmissionRequest{
Operation: "CREATE",
Object: runtime.RawExtension{
Raw: []byte(`{
"metadata": {
"name": "foo",
"namespace": "default"
},
"spec": {
"containers": [
{
"image": "bar:v2",
"name": "bar"
}
]
}
}`),
},
OldObject: runtime.RawExtension{
Object: nil,
},
},
}

It("should decode a valid admission request without GVK", func() {
By("extracting the object from the request")
var target3 unstructured.Unstructured
Expect(decoder.DecodeRaw(req2.Object, &target3)).To(Succeed())
})
})

0 comments on commit 36bb899

Please sign in to comment.