From bde50df3e55eb382d9efc96e148104552c32e914 Mon Sep 17 00:00:00 2001 From: Chaitanyareddy0702 <78363486+Chaitanyareddy0702@users.noreply.github.com> Date: Sat, 29 Mar 2025 03:46:03 +0530 Subject: [PATCH] Fix: Vela not deleting the definition revisions after cleaning up the definitions (#6738) Signed-off-by: svc-gh-gokarna_gwre Co-authored-by: svc-gh-gokarna_gwre --- .../core.oam.dev/v1beta1/core/revison.go | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/pkg/controller/core.oam.dev/v1beta1/core/revison.go b/pkg/controller/core.oam.dev/v1beta1/core/revison.go index ec3e52338..905f16277 100644 --- a/pkg/controller/core.oam.dev/v1beta1/core/revison.go +++ b/pkg/controller/core.oam.dev/v1beta1/core/revison.go @@ -27,6 +27,7 @@ import ( "github.com/pkg/errors" apiequality "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" @@ -164,21 +165,48 @@ func GatherRevisionInfo(def runtime.Object) (*v1beta1.DefinitionRevision, *commo defRev.Spec.DefinitionType = common.ComponentType defRev.Spec.ComponentDefinition = *copiedCompDef LastRevision = copiedCompDef.Status.LatestRevision + defRev.ObjectMeta.OwnerReferences = []metav1.OwnerReference{{ + APIVersion: copiedCompDef.APIVersion, + Kind: copiedCompDef.Kind, + Name: copiedCompDef.Name, + UID: copiedCompDef.UID, + }} case *v1beta1.TraitDefinition: copiedTraitDef := definition.DeepCopy() defRev.Spec.DefinitionType = common.TraitType defRev.Spec.TraitDefinition = *copiedTraitDef LastRevision = copiedTraitDef.Status.LatestRevision + defRev.ObjectMeta.OwnerReferences = []metav1.OwnerReference{{ + APIVersion: copiedTraitDef.APIVersion, + Kind: copiedTraitDef.Kind, + Name: copiedTraitDef.Name, + UID: copiedTraitDef.UID, + }} + case *v1beta1.PolicyDefinition: defCopy := definition.DeepCopy() defRev.Spec.DefinitionType = common.PolicyType defRev.Spec.PolicyDefinition = *defCopy LastRevision = defCopy.Status.LatestRevision + defRev.ObjectMeta.OwnerReferences = []metav1.OwnerReference{{ + APIVersion: defCopy.APIVersion, + Kind: defCopy.Kind, + Name: defCopy.Name, + UID: defCopy.UID, + }} + case *v1beta1.WorkflowStepDefinition: defCopy := definition.DeepCopy() defRev.Spec.DefinitionType = common.WorkflowStepType defRev.Spec.WorkflowStepDefinition = *defCopy LastRevision = defCopy.Status.LatestRevision + defRev.ObjectMeta.OwnerReferences = []metav1.OwnerReference{{ + APIVersion: defCopy.APIVersion, + Kind: defCopy.Kind, + Name: defCopy.Name, + UID: defCopy.UID, + }} + default: return nil, nil, fmt.Errorf("unsupported type %v", definition) }