in pkg/admission/admission_controller.go [453:485]
func (c *AdmissionController) validateConf(req *admissionv1.AdmissionRequest) *admissionv1.AdmissionResponse {
if req == nil {
log.Log(log.Admission).Warn("empty request received")
return admissionResponseBuilder("", false, "", nil)
}
uid := string(req.UID)
var requestKind = req.Kind.Kind
if requestKind != "ConfigMap" {
log.Log(log.Admission).Warn("request kind is not configmap", zap.String("requestKind", requestKind))
return admissionResponseBuilder(uid, true, "", nil)
}
namespace := req.Namespace
if namespace == "" {
namespace = "default"
}
var configmap v1.ConfigMap
if err := json.Unmarshal(req.Object.Raw, &configmap); err != nil {
log.Log(log.Admission).Error("failed to unmarshal configmap", zap.Error(err))
return admissionResponseBuilder(uid, false, err.Error(), nil)
}
// validate new/updated config map
if err := c.validateConfigMap(namespace, &configmap); err != nil {
log.Log(log.Admission).Error("failed to validate yunikorn configs", zap.Error(err))
return admissionResponseBuilder(uid, false, err.Error(), nil)
}
return admissionResponseBuilder(uid, true, "", nil)
}