code: func (h ClientCARegistrationHook) tryToWriteClientCAs(client corev1client.CoreV1Interface) (bool, error) {
  	if err := createNamespaceIfNeeded(client, metav1.NamespaceSystem); err != nil {
  		utilruntime.HandleError(err)
  		return false, nil
  	}
  
  	data := map[string]string{}
  	if len(h.ClientCA) > 0 {
  		data["client-ca-file"] = string(h.ClientCA)
  	}
  
  	if len(h.RequestHeaderCA) > 0 {
  		var err error
  
  		// encoding errors aren't going to get better, so just fail on them.
  		data["requestheader-username-headers"], err = jsonSerializeStringSlice(h.RequestHeaderUsernameHeaders)
  		if err != nil {
  			return false, err
  		}
  		data["requestheader-group-headers"], err = jsonSerializeStringSlice(h.RequestHeaderGroupHeaders)
  		if err != nil {
  			return false, err
  		}
  		data["requestheader-extra-headers-prefix"], err = jsonSerializeStringSlice(h.RequestHeaderExtraHeaderPrefixes)
  		if err != nil {
  			return false, err
  		}
  		data["requestheader-client-ca-file"] = string(h.RequestHeaderCA)
  		data["requestheader-allowed-names"], err = jsonSerializeStringSlice(h.RequestHeaderAllowedNames)
  		if err != nil {
  			return false, err
  		}
  	}
  
  	// write errors may work next time if we retry, so queue for retry
  	if err := writeConfigMap(client, "extension-apiserver-authentication", data); err != nil {
  		utilruntime.HandleError(err)
  		return false, nil
  	}
  
  	return true, nil
  }
docs: // tryToWriteClientCAs is here for unit testing with a fake client.  This is a wait.ConditionFunc so the bool
  // indicates if the condition was met.  True when its finished, false when it should retry.