diff --git a/pkg/controller/sub_controller/disaggregated_cluster/computegroups/statefulset.go b/pkg/controller/sub_controller/disaggregated_cluster/computegroups/statefulset.go index 9bfbaff4..94b46a2e 100644 --- a/pkg/controller/sub_controller/disaggregated_cluster/computegroups/statefulset.go +++ b/pkg/controller/sub_controller/disaggregated_cluster/computegroups/statefulset.go @@ -119,6 +119,7 @@ func (dcgs *DisaggregatedComputeGroupsController) NewPodTemplateSpec(ddc *dv1.Do dcgs.DisaggregatedSubDefaultController.AddClusterSpecForPodTemplate(dv1.DisaggregatedBE, cvs, &ddc.Spec, &pts) cgUniqueId := selector[dv1.DorisDisaggregatedComputeGroupUniqueId] pts.Spec.Affinity = dcgs.ConstructDefaultAffinity(dv1.DorisDisaggregatedComputeGroupUniqueId, cgUniqueId, pts.Spec.Affinity) + dcgs.DisaggregatedSubDefaultController.AddTerminationGracePeriodSeconds(cg, ddc, &pts) return pts } diff --git a/pkg/controller/sub_controller/disaggregated_subcontroller.go b/pkg/controller/sub_controller/disaggregated_subcontroller.go index ee3928fc..6f9058e7 100644 --- a/pkg/controller/sub_controller/disaggregated_subcontroller.go +++ b/pkg/controller/sub_controller/disaggregated_subcontroller.go @@ -609,7 +609,7 @@ func (d *DisaggregatedSubDefaultController) getEmptyDirVolumesVolumeMounts(confM } // this function is a compensation, because the DownwardAPI annotations and labels are not mount in pod, so this function amends。 -func(d *DisaggregatedSubDefaultController) AddDownwardAPI(st *appv1.StatefulSet) { +func (d *DisaggregatedSubDefaultController) AddDownwardAPI(st *appv1.StatefulSet) { t := &st.Spec.Template for index, _ := range t.Spec.Containers { if t.Spec.Containers[index].Name == resource.DISAGGREGATED_FE_MAIN_CONTAINER_NAME || t.Spec.Containers[index].Name == resource.DISAGGREGATED_BE_MAIN_CONTAINER_NAME || @@ -803,3 +803,12 @@ func (d *DisaggregatedSubDefaultController) FindSecretTLSConfig(feConfMap map[st return tlsConfig, secretName } + +// Only configure the TerminationGracePeriodSeconds when grace_shutdown_wait_seconds configured in be.conf +func (dcgs *DisaggregatedSubDefaultController) AddTerminationGracePeriodSeconds(cg *v1.ComputeGroup, ddc *v1.DorisDisaggregatedCluster, pts *corev1.PodTemplateSpec) { + config := dcgs.GetConfigValuesFromConfigMaps(ddc.Namespace, resource.BE_RESOLVEKEY, cg.CommonSpec.ConfigMaps) + seconds := resource.GetTerminationGracePeriodSeconds(config) + if seconds > 0 { + pts.Spec.TerminationGracePeriodSeconds = &seconds + } +}