func()

in deploy/kubernetes/operator/pkg/controller/controller/rss.go [468:502]


func (r *rssController) syncConfigMap(rss *unifflev1alpha1.RemoteShuffleService) error {
	cm, err := r.kubeClient.CoreV1().ConfigMaps(rss.Namespace).
		Get(context.Background(), rss.Spec.ConfigMapName, metav1.GetOptions{})
	if err != nil {
		klog.Errorf("get configMap of rss (%v) failed: %v", utils.UniqueName(rss), err)
		return err
	}
	if owner := util.GetConfigMapOwner(cm); len(owner) > 0 && owner != rss.Name {
		return fmt.Errorf("conflict configMap name of rss (%v <> %v)", owner, rss.Name)
	}
	if _, ok := cm.Data[constants.CoordinatorConfigKey]; !ok {
		return fmt.Errorf("%v not exist", constants.CoordinatorConfigKey)
	}
	if _, ok := cm.Data[constants.ShuffleServerConfigKey]; !ok {
		return fmt.Errorf("%v not exist", constants.ShuffleServerConfigKey)
	}
	if _, ok := cm.Data[constants.Log4jPropertiesKey]; !ok {
		return fmt.Errorf("%v not exist", constants.Log4jPropertiesKey)
	}

	cm.Data[constants.CoordinatorConfigKey] = propertiestutil.UpdateProperties(
		cm.Data[constants.CoordinatorConfigKey], coordinator.GenerateProperties(rss))
	cm.Data[constants.ShuffleServerConfigKey] = propertiestutil.UpdateProperties(
		cm.Data[constants.ShuffleServerConfigKey], shuffleserver.GenerateProperties(rss))
	if cm.Labels == nil {
		cm.Labels = make(map[string]string)
	}
	cm.Labels[controllerconstants.OwnerLabel] = rss.Name
	if _, err = r.kubeClient.CoreV1().ConfigMaps(cm.Namespace).
		Update(context.Background(), cm, metav1.UpdateOptions{}); err != nil {
		klog.Errorf("update configMap (%v) of rss (%v) failed: %v", rss.Spec.ConfigMapName,
			utils.UniqueName(rss), err)
	}
	return err
}