mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-19 04:26:39 +00:00
Fix: can not query the instance list for the app with apply once policy (#3670)
* Fix: can not query the instance list for the app with apply once policy Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: change the test case about ListResourcesInApp Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
This commit is contained in:
@@ -136,6 +136,7 @@ func (c *AppCollector) FindResourceFromResourceTrackerSpec(app *v1beta1.Applicat
|
||||
ctx := context.Background()
|
||||
rootRT, currentRT, historyRTs, _, err := resourcetracker.ListApplicationResourceTrackers(ctx, c.k8sClient, app)
|
||||
if err != nil {
|
||||
klog.Errorf("query the resourcetrackers failure %s", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
var resources = []Resource{}
|
||||
@@ -151,11 +152,19 @@ func (c *AppCollector) FindResourceFromResourceTrackerSpec(app *v1beta1.Applicat
|
||||
existResources[managedResource.ClusterObjectReference] = true
|
||||
obj, err := managedResource.ToUnstructuredWithData()
|
||||
if err != nil {
|
||||
klog.Errorf("get obj from resource tracker failure %s", err.Error())
|
||||
continue
|
||||
// For the application with apply once policy, there is no data in RT.
|
||||
_, obj, err = getObjectCreatedByComponent(c.k8sClient, managedResource.ObjectReference, managedResource.Cluster)
|
||||
if err != nil {
|
||||
klog.Errorf("get obj from the cluster failure %s", err.Error())
|
||||
continue
|
||||
}
|
||||
}
|
||||
clusterName := managedResource.Cluster
|
||||
if clusterName == "" {
|
||||
clusterName = multicluster.ClusterLocalName
|
||||
}
|
||||
resources = append(resources, Resource{
|
||||
Cluster: managedResource.Cluster,
|
||||
Cluster: clusterName,
|
||||
Revision: oam.GetPublishVersion(rt),
|
||||
Component: managedResource.Component,
|
||||
Object: obj,
|
||||
|
||||
@@ -31,6 +31,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/klog"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/yaml"
|
||||
|
||||
@@ -83,7 +84,8 @@ var _ = Describe("Test Query Provider", func() {
|
||||
Name: "test",
|
||||
Namespace: "test",
|
||||
Annotations: map[string]string{
|
||||
"oam.dev/kubevela-version": "v1.2.0-beta.2",
|
||||
oam.AnnotationKubeVelaVersion: "v1.3.1",
|
||||
oam.AnnotationPublishVersion: "v1",
|
||||
},
|
||||
},
|
||||
Spec: v1beta1.ApplicationSpec{
|
||||
@@ -154,6 +156,53 @@ var _ = Describe("Test Query Provider", func() {
|
||||
})
|
||||
Expect(k8sClient.Create(ctx, appService)).Should(BeNil())
|
||||
|
||||
rt := &v1beta1.ResourceTracker{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s-v1-%s", oldApp.Name, oldApp.Namespace),
|
||||
Labels: map[string]string{
|
||||
oam.LabelAppName: oldApp.Name,
|
||||
oam.LabelAppNamespace: oldApp.Namespace,
|
||||
},
|
||||
Annotations: map[string]string{
|
||||
oam.AnnotationPublishVersion: "v1",
|
||||
},
|
||||
},
|
||||
Spec: v1beta1.ResourceTrackerSpec{
|
||||
ManagedResources: []v1beta1.ManagedResource{
|
||||
{
|
||||
ClusterObjectReference: common.ClusterObjectReference{
|
||||
Cluster: "",
|
||||
ObjectReference: corev1.ObjectReference{
|
||||
APIVersion: "v1",
|
||||
Kind: "Service",
|
||||
Namespace: namespace,
|
||||
Name: "web",
|
||||
},
|
||||
},
|
||||
OAMObjectReference: common.OAMObjectReference{
|
||||
Component: "web",
|
||||
},
|
||||
},
|
||||
{
|
||||
ClusterObjectReference: common.ClusterObjectReference{
|
||||
Cluster: "",
|
||||
ObjectReference: corev1.ObjectReference{
|
||||
APIVersion: "apps/v1",
|
||||
Kind: "Deployment",
|
||||
Namespace: namespace,
|
||||
Name: "web",
|
||||
},
|
||||
},
|
||||
OAMObjectReference: common.OAMObjectReference{
|
||||
Component: "web",
|
||||
},
|
||||
},
|
||||
},
|
||||
Type: v1beta1.ResourceTrackerTypeVersioned,
|
||||
},
|
||||
}
|
||||
Expect(k8sClient.Create(ctx, rt)).Should(BeNil())
|
||||
|
||||
prd := provider{cli: k8sClient}
|
||||
opt := `app: {
|
||||
name: "test"
|
||||
@@ -170,6 +219,9 @@ var _ = Describe("Test Query Provider", func() {
|
||||
|
||||
appResList := new(AppResourcesList)
|
||||
Expect(v.UnmarshalTo(appResList)).Should(BeNil())
|
||||
if appResList.Err != "" {
|
||||
klog.Error(appResList.Err)
|
||||
}
|
||||
|
||||
Expect(len(appResList.List)).Should(Equal(2))
|
||||
|
||||
@@ -180,7 +232,7 @@ var _ = Describe("Test Query Provider", func() {
|
||||
Expect(k8sClient.Get(ctx, client.ObjectKeyFromObject(&app), updateApp)).Should(BeNil())
|
||||
|
||||
updateApp.ObjectMeta.Annotations = map[string]string{
|
||||
"oam.dev/kubevela-version": "master",
|
||||
oam.AnnotationKubeVelaVersion: "v1.1.0",
|
||||
}
|
||||
Expect(k8sClient.Update(ctx, updateApp)).Should(BeNil())
|
||||
newValue, err := value.NewValue(opt, nil, "")
|
||||
|
||||
Reference in New Issue
Block a user