From bdf234a95f163809a4423ea69de20a9f8b84a6ad Mon Sep 17 00:00:00 2001 From: Julian Lawrence Date: Wed, 25 Sep 2024 10:23:26 -0700 Subject: [PATCH] updated comments Signed-off-by: Julian Lawrence --- .../default/native/dependencies.go | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/pkg/resourceinterpreter/default/native/dependencies.go b/pkg/resourceinterpreter/default/native/dependencies.go index 0c5d14199e7b..0e6095059672 100644 --- a/pkg/resourceinterpreter/default/native/dependencies.go +++ b/pkg/resourceinterpreter/default/native/dependencies.go @@ -27,6 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" mcsv1alpha1 "sigs.k8s.io/mcs-api/pkg/apis/v1alpha1" configv1alpha1 "github.com/karmada-io/karmada/pkg/apis/config/v1alpha1" @@ -132,25 +133,33 @@ func getStatefulSetDependencies(object *unstructured.Unstructured) ([]configv1al return nil, err } - var validDeps []configv1alpha1.DependentObjectReference deps, err := helper.GetDependenciesFromPodTemplate(podObj) if err != nil { return nil, err } + if len(statefulSetObj.Spec.VolumeClaimTemplates) == 0 { + return deps, nil + } + // ignore the PersistentVolumeClaim dependency if it was created by the StatefulSet VolumeClaimTemplates - for _, dep := range deps { - if dep.Kind != "PersistentVolumeClaim" || - len(statefulSetObj.Spec.VolumeClaimTemplates) == 0 { - validDeps = append(validDeps, dep) + // the PVC dependency is not needed because the StatefulSet will manage the pvcs in the member cluster, + // if it exists here it was just a placeholder not a real PVC + var validDeps []configv1alpha1.DependentObjectReference + volumeClaimTemplateNames := sets.Set[string]{} + for i := range statefulSetObj.Spec.VolumeClaimTemplates { + volumeClaimTemplateNames.Insert(statefulSetObj.Spec.VolumeClaimTemplates[i].Name) + } + + for i := range deps { + if deps[i].Kind != util.PersistentVolumeClaimKind { + validDeps = append(validDeps, deps[i]) continue } - for _, volumeClaimTemplate := range statefulSetObj.Spec.VolumeClaimTemplates { - if dep.Name == volumeClaimTemplate.Name { - continue - } - validDeps = append(validDeps, dep) + if volumeClaimTemplateNames.Has(deps[i].Name) { + continue } + validDeps = append(validDeps, deps[i]) } return validDeps, nil