fix depended-by label value exceed 63 characters

Signed-off-by: changzhen <changzhen5@huawei.com>
This commit is contained in:
changzhen 2024-05-27 17:04:55 +08:00
parent c4ee8dbf78
commit d7419fe1f8
1 changed files with 12 additions and 12 deletions

View File

@ -254,7 +254,7 @@ func (d *DependenciesDistributor) Reconcile(ctx context.Context, request reconci
// in case users set PropagateDeps field from "true" to "false" // in case users set PropagateDeps field from "true" to "false"
if !bindingObject.Spec.PropagateDeps || !bindingObject.DeletionTimestamp.IsZero() { if !bindingObject.Spec.PropagateDeps || !bindingObject.DeletionTimestamp.IsZero() {
err = d.handleIndependentBindingDeletion(request.Namespace, request.Name) err = d.handleIndependentBindingDeletion(bindingObject.Labels[workv1alpha2.ResourceBindingPermanentIDLabel], request.Namespace, request.Name)
if err != nil { if err != nil {
klog.Errorf("Failed to cleanup attached bindings for independent binding(%s): %v", request.NamespacedName, err) klog.Errorf("Failed to cleanup attached bindings for independent binding(%s): %v", request.NamespacedName, err)
return reconcile.Result{}, err return reconcile.Result{}, err
@ -301,8 +301,8 @@ func (d *DependenciesDistributor) removeFinalizer(ctx context.Context, independe
return nil return nil
} }
func (d *DependenciesDistributor) handleIndependentBindingDeletion(namespace, name string) error { func (d *DependenciesDistributor) handleIndependentBindingDeletion(id, namespace, name string) error {
attachedBindings, err := d.listAttachedBindings(namespace, name) attachedBindings, err := d.listAttachedBindings(id, namespace, name)
if err != nil { if err != nil {
return err return err
} }
@ -448,7 +448,8 @@ func (d *DependenciesDistributor) recordDependencies(independentBinding *workv1a
} }
func (d *DependenciesDistributor) findOrphanAttachedBindings(independentBinding *workv1alpha2.ResourceBinding, dependencies []configv1alpha1.DependentObjectReference) ([]*workv1alpha2.ResourceBinding, error) { func (d *DependenciesDistributor) findOrphanAttachedBindings(independentBinding *workv1alpha2.ResourceBinding, dependencies []configv1alpha1.DependentObjectReference) ([]*workv1alpha2.ResourceBinding, error) {
attachedBindings, err := d.listAttachedBindings(independentBinding.Namespace, independentBinding.Name) attachedBindings, err := d.listAttachedBindings(independentBinding.Labels[workv1alpha2.ResourceBindingPermanentIDLabel],
independentBinding.Namespace, independentBinding.Name)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -519,8 +520,8 @@ func (d *DependenciesDistributor) isOrphanAttachedBindings(
return true, nil return true, nil
} }
func (d *DependenciesDistributor) listAttachedBindings(bindingNamespace, bindingName string) (res []*workv1alpha2.ResourceBinding, err error) { func (d *DependenciesDistributor) listAttachedBindings(bindingID, bindingNamespace, bindingName string) (res []*workv1alpha2.ResourceBinding, err error) {
labelSet := generateBindingDependedLabels(bindingNamespace, bindingName) labelSet := generateBindingDependedLabels(bindingID, bindingNamespace, bindingName)
selector := labels.SelectorFromSet(labelSet) selector := labels.SelectorFromSet(labelSet)
bindingList := &workv1alpha2.ResourceBindingList{} bindingList := &workv1alpha2.ResourceBindingList{}
err = d.Client.List(context.TODO(), bindingList, &client.ListOptions{ err = d.Client.List(context.TODO(), bindingList, &client.ListOptions{
@ -658,15 +659,13 @@ func (d *DependenciesDistributor) SetupWithManager(mgr controllerruntime.Manager
}) })
} }
func generateBindingDependedLabels(bindingNamespace, bindingName string) map[string]string { func generateBindingDependedLabels(bindingID, bindingNamespace, bindingName string) map[string]string {
labelKey := generateBindingDependedLabelKey(bindingNamespace, bindingName) labelKey := generateBindingDependedLabelKey(bindingNamespace, bindingName)
labelValue := fmt.Sprintf(bindingNamespace + "_" + bindingName) return map[string]string{labelKey: bindingID}
return map[string]string{labelKey: labelValue}
} }
func generateBindingDependedLabelKey(bindingNamespace, bindingName string) string { func generateBindingDependedLabelKey(bindingNamespace, bindingName string) string {
bindHashKey := names.GenerateBindingReferenceKey(bindingNamespace, bindingName) return dependedByLabelKeyPrefix + names.GenerateBindingReferenceKey(bindingNamespace, bindingName)
return fmt.Sprintf(dependedByLabelKeyPrefix + bindHashKey)
} }
func generateDependencyKey(kind, apiVersion, namespace string) string { func generateDependencyKey(kind, apiVersion, namespace string) string {
@ -678,7 +677,8 @@ func generateDependencyKey(kind, apiVersion, namespace string) string {
} }
func buildAttachedBinding(independentBinding *workv1alpha2.ResourceBinding, object *unstructured.Unstructured) *workv1alpha2.ResourceBinding { func buildAttachedBinding(independentBinding *workv1alpha2.ResourceBinding, object *unstructured.Unstructured) *workv1alpha2.ResourceBinding {
dependedLabels := generateBindingDependedLabels(independentBinding.Namespace, independentBinding.Name) dependedLabels := generateBindingDependedLabels(independentBinding.Labels[workv1alpha2.ResourceBindingPermanentIDLabel],
independentBinding.Namespace, independentBinding.Name)
var result []workv1alpha2.BindingSnapshot var result []workv1alpha2.BindingSnapshot
result = append(result, workv1alpha2.BindingSnapshot{ result = append(result, workv1alpha2.BindingSnapshot{