From 0f5a5de6e4c846306edf1996e36e4bc21cb7b764 Mon Sep 17 00:00:00 2001 From: FogDong Date: Wed, 12 Apr 2023 11:03:11 +0800 Subject: [PATCH] Fix: fix multi clusters bottom in vela adopt Signed-off-by: FogDong --- references/cli/adopt-templates/default.cue | 26 +++++++++++++------ references/cli/adopt.go | 2 +- .../cli/resource-topology/builtin-rule.cue | 12 ++++++--- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/references/cli/adopt-templates/default.cue b/references/cli/adopt-templates/default.cue index 1b6d75e9c..fa484ee29 100644 --- a/references/cli/adopt-templates/default.cue +++ b/references/cli/adopt-templates/default.cue @@ -90,9 +90,11 @@ import ( for key, kinds in resourceCategoryMap if list.Contains(kinds, r.kind) { _category: key }, - _cluster: r.metadata.annotations["app.oam.dev/cluster"] + if r.metadata.annotations != _|_ if r.metadata.annotations["app.oam.dev/cluster"] != _|_ { + _cluster: r.metadata.annotations["app.oam.dev/cluster"] + } }] - _clusters: [ for r in _resources {r._cluster} ] + _clusters: [ for r in _resources if r._cluster != _|_ {r._cluster} ] resourceMap: { for key, val in resourceCategoryMap { "\(key)": [ for r in _resources if r._category == key {r}] @@ -114,7 +116,9 @@ import ( apiVersion: r.apiVersion kind: r.kind metadata: name: r.metadata.name - metadata: annotations: "app.oam.dev/cluster": "\(r._cluster)" + if r._cluster != _|_ { + metadata: annotations: "app.oam.dev/cluster": (r._cluster) + } }] }, if len(resourceMap.ns) > 0 { @@ -124,7 +128,9 @@ import ( apiVersion: r.apiVersion kind: r.kind metadata: name: r.metadata.name - metadata: annotations: "app.oam.dev/cluster": "\(r._cluster)" + if r._cluster != _|_ { + metadata: annotations: "app.oam.dev/cluster": (r._cluster) + } }] }, for r in resourceMap.workload + resourceMap.service { @@ -150,7 +156,9 @@ import ( if r.metadata.namespace != _|_ { metadata: namespace: r.metadata.namespace } - metadata: annotations: "app.oam.dev/cluster": "\(r._cluster)" + if r._cluster != _|_ { + metadata: annotations: "app.oam.dev/cluster": (r._cluster) + } }] }, for kind, rs in unknownByKinds { @@ -160,19 +168,21 @@ import ( apiVersion: r.apiVersion kind: r.kind metadata: name: r.metadata.name - metadata: annotations: "app.oam.dev/cluster": "\(r._cluster)" + if r._cluster != _|_ { + metadata: annotations: "app.oam.dev/cluster": (r._cluster) + } }] }, ] clusterCompMap: { for cluster in _clusters { - "\(cluster)": [ for comp in comps if comp.properties.objects[0].metadata.annotations["app.oam.dev/cluster"] == cluster {comp.name} ] + "\(cluster)": [ for comp in comps if comp.properties.objects[0].metadata.annotations != _|_ if comp.properties.objects[0].metadata.annotations["app.oam.dev/cluster"] == cluster {comp.name} ] } } compClusterMap: { - for comp in comps { + for comp in comps if comp.properties.objects[0].metadata.annotations != _|_ { "\(comp.name)": comp.properties.objects[0].metadata.annotations["app.oam.dev/cluster"] } } diff --git a/references/cli/adopt.go b/references/cli/adopt.go index fe34ddfc6..0b502a2cf 100644 --- a/references/cli/adopt.go +++ b/references/cli/adopt.go @@ -288,9 +288,9 @@ func (opt *AdoptOptions) MultipleRun(f velacmd.Factory, cmd *cobra.Command) erro _, _ = fmt.Fprintf(opt.Out, "Warning: failed to list resources from %s/%s: %s", apiVersion, kind, err.Error()) continue } - engine := resourcetopology.New(opt.ResourceTopologyRule) dedup := make([]k8s.ResourceIdentifier, 0) for _, item := range list.Items { + engine := resourcetopology.New(opt.ResourceTopologyRule) itemIdentifier := k8s.ResourceIdentifier{ Name: item.GetName(), Namespace: item.GetNamespace(), diff --git a/references/cli/resource-topology/builtin-rule.cue b/references/cli/resource-topology/builtin-rule.cue index 1d1708383..23b084071 100644 --- a/references/cli/resource-topology/builtin-rule.cue +++ b/references/cli/resource-topology/builtin-rule.cue @@ -58,8 +58,10 @@ commonPeerResources: [{ resource: "configMap" selectors: { name: [ - for v in context.data.spec.template.spec.volumes if v.configMap != _|_ if v.configMap.name != _|_ { - v.configMap.name + if context.data.spec.template.spec.volumes != _|_ { + for v in context.data.spec.template.spec.volumes if v.configMap != _|_ if v.configMap.name != _|_ { + v.configMap.name + }, }, ] } @@ -68,8 +70,10 @@ commonPeerResources: [{ resource: "secret" selectors: { name: [ - for v in context.data.spec.template.spec.volumes if v.secret != _|_ if v.secret.name != _|_ { - v.secret.name + if context.data.spec.template.spec.volumes != _|_ { + for v in context.data.spec.template.spec.volumes if v.secret != _|_ if v.secret.name != _|_ { + v.secret.name + }, }, ] }