in pkg/admission/admission_controller.go [125:155]
func (c *AdmissionController) mutate(req *admissionv1.AdmissionRequest) *admissionv1.AdmissionResponse {
if req == nil {
log.Log(log.Admission).Warn("empty request received")
return admissionResponseBuilder("", false, "", nil)
}
namespace := req.Namespace
if namespace == "" {
namespace = "default"
}
log.Log(log.Admission).Info("AdmissionReview",
zap.String("Namespace", namespace),
zap.String("UID", string(req.UID)),
zap.String("Operation", string(req.Operation)),
zap.String("Kind", req.Kind.Kind),
zap.Any("UserInfo", req.UserInfo))
if req.Operation == admissionv1.Update {
if req.Kind.Kind == metadata.Pod {
return c.processPodUpdate(req, namespace)
}
// resource types other than pods are ignored for UPDATE operations
return admissionResponseBuilder(string(req.UID), true, "", nil)
}
if req.Kind.Kind == metadata.Pod {
return c.processPod(req, namespace)
}
return c.processWorkload(req, namespace)
}