import ( v1 "k8s.io/api/core/v1" admission "k8s.io/kubernetes/pkg/apiserver/admission" ) func myAdmissionPlugin(req admission.Request) admission.Response { if req.Operation == admission.Create { subresource := admission.Attributes.GetSubresource(&req) if subresource == "status" && req.Kind.Kind == "Pod" { object := &v1.Pod{} err := req.Object.Object.DeepCopyInto(object) if err != nil { return admission.Errored(http.StatusBadRequest, err) } object.Status.Phase = v1.PodRunning return admission.PatchResponseFromRaw(req.Object.Raw, object) } } return admission.Allowed("") }
import admission "k8s.io/kubernetes/pkg/apiserver/admission" func myAdmissionPlugin(req admission.Request) admission.Response { if req.Operation == admission.Create { subresource := admission.Attributes.GetSubresource(&req) if subresource == "" { // do something } } return admission.Allowed("") }Description of Code Example 2: This code declares an admission plugin that checks if the subresource of a resource is empty. If it is, it executes some logic. If not, it returns an "Allowed" response, indicating that the request should be allowed to proceed.