in pkg/controller/sub_controller/disaggregated_cluster/disaggregated_fe/controller.go [58:118]
func (dfc *DisaggregatedFEController) Sync(ctx context.Context, obj client.Object) error {
ddc := obj.(*v1.DorisDisaggregatedCluster)
//TODO: check ms status
if !dfc.msAvailable(ddc) {
dfc.K8srecorder.Event(ddc, string(sc.EventNormal), string(sc.WaitMetaServiceAvailable), "meta service have not ready.")
return nil
}
dfc.CheckSecretMountPath(ddc, ddc.Spec.FeSpec.Secrets)
dfc.CheckSecretExist(ctx, ddc, ddc.Spec.FeSpec.Secrets)
if ddc.Spec.FeSpec.Replicas == nil {
klog.Errorf("disaggregatedFEController sync disaggregatedDorisCluster namespace=%s,name=%s ,The number of disaggregated fe replicas is nil and has been corrected to the default value %d", ddc.Namespace, ddc.Name, v1.DefaultFeReplicaNumber)
dfc.K8srecorder.Event(ddc, string(sc.EventNormal), string(sc.FESpecSetError), "The number of disaggregated fe replicas is nil and has been corrected to the default value 2")
ddc.Spec.FeSpec.Replicas = &v1.DefaultFeReplicaNumber
}
electionNumber := ddc.GetElectionNumber()
if *(ddc.Spec.FeSpec.Replicas) < electionNumber {
dfc.K8srecorder.Event(ddc, string(sc.EventWarning), string(sc.FESpecSetError), "The number of disaggregated fe ElectionNumber is large than Replicas, Replicas has been corrected to the correct minimum value")
klog.Errorf("disaggregatedFEController Sync disaggregatedDorisCluster namespace=%s,name=%s ,The number of disaggregated fe ElectionNumber(%d) is large than Replicas(%d), Replicas has been corrected to the correct minimum value", ddc.Namespace, ddc.Name, electionNumber, *(ddc.Spec.FeSpec.Replicas))
ddc.Spec.FeSpec.Replicas = &electionNumber
}
confMap := dfc.GetConfigValuesFromConfigMaps(ddc.Namespace, resource.FE_RESOLVEKEY, ddc.Spec.FeSpec.ConfigMaps)
svcInternal := dfc.newInternalService(ddc, confMap)
svc := dfc.newService(ddc, confMap)
st := dfc.NewStatefulset(ddc, confMap)
dfc.initialFEStatus(ddc)
event, err := dfc.DefaultReconcileService(ctx, svcInternal)
if err != nil {
if event != nil {
dfc.K8srecorder.Event(ddc, string(event.Type), string(event.Reason), event.Message)
}
klog.Errorf("disaggregatedFEController reconcile internal service namespace %s name %s failed, err=%s", svc.Namespace, svc.Name, err.Error())
return err
}
event, err = dfc.DefaultReconcileService(ctx, svc)
if err != nil {
if event != nil {
dfc.K8srecorder.Event(ddc, string(event.Type), string(event.Reason), event.Message)
}
klog.Errorf("disaggregatedFEController reconcile service namespace %s name %s failed, err=%s", svc.Namespace, svc.Name, err.Error())
return err
}
event, err = dfc.reconcileStatefulset(ctx, st, ddc)
if err != nil {
if event != nil {
dfc.K8srecorder.Event(ddc, string(event.Type), string(event.Reason), event.Message)
}
klog.Errorf("disaggregatedFEController reconcile statefulset namespace %s name %s failed, err=%s", st.Namespace, st.Name, err.Error())
return err
}
return nil
}