in pkg/admission/webhook_manager.go [185:221]
func (wm *webhookManagerImpl) InstallWebhooks() error {
attempts := 0
for {
recheck, err := wm.installValidatingWebhook()
if err != nil {
return err
}
if !recheck {
break
}
// safety valve: if the webhook keeps changing, break out eventually
attempts++
if attempts >= wm.conflictAttempts {
log.Log(log.AdmissionWebhook).Error("Unable to install validating webhook after max attempts")
return errors.New("webhook: unable to install validating webhook after max attempts")
}
}
attempts = 0
for {
recheck, err := wm.installMutatingWebhook()
if err != nil {
return err
}
if !recheck {
break
}
// safety valve: if the webhook keeps changing, break out eventually
attempts++
if attempts >= wm.conflictAttempts {
log.Log(log.AdmissionWebhook).Error("Unable to install mutating webhook after max attempts")
return errors.New("webhook: unable to install mutating webhook after max attempts")
}
}
return nil
}