Skip to content

Commit 0fe7133

Browse files
authored
chore: respect namespace in report cluster (#691)
1 parent b49962c commit 0fe7133

3 files changed

Lines changed: 43 additions & 5 deletions

File tree

pkg/cmd/cluster/create_subcmds_test.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828

2929
"github.com/spf13/cobra"
3030
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
31+
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3132
"k8s.io/apimachinery/pkg/runtime"
3233
"k8s.io/apimachinery/pkg/runtime/schema"
3334
"k8s.io/apimachinery/pkg/version"
@@ -164,7 +165,34 @@ var _ = Describe("create cluster by cluster type", func() {
164165
Expect(o.Complete(shardCmd)).Should(Succeed())
165166
Expect(o.Name).ShouldNot(BeEmpty())
166167
Expect(o.Values).ShouldNot(BeNil())
167-
Expect(o.ChartInfo.ComponentDef[0]).Should(Equal(redisComponent))
168+
Expect(o.ChartInfo.ClusterDef).Should(Equal(redisCluster))
169+
hasRedisComponentDef := false
170+
for _, componentDef := range o.ChartInfo.ComponentDef {
171+
if componentDef == redisComponent {
172+
hasRedisComponentDef = true
173+
break
174+
}
175+
}
176+
objs, err := o.getObjectsInfo()
177+
Expect(err).ShouldNot(HaveOccurred())
178+
clusterObj, err := o.getClusterObj(objs)
179+
Expect(err).ShouldNot(HaveOccurred())
180+
hasShardingDef := false
181+
shardings, ok, err := unstructured.NestedSlice(clusterObj.Object, "spec", "shardings")
182+
Expect(err).ShouldNot(HaveOccurred())
183+
if ok {
184+
for _, item := range shardings {
185+
shardingSpec, ok := item.(map[string]interface{})
186+
if !ok {
187+
continue
188+
}
189+
if shardingDef, ok := shardingSpec["shardingDef"].(string); ok && shardingDef != "" {
190+
hasShardingDef = true
191+
break
192+
}
193+
}
194+
}
195+
Expect(hasShardingDef || hasRedisComponentDef).Should(BeTrue(), "redis sharding chart should set either shardingDef or componentDef")
168196

169197
By("validate")
170198
o.Dynamic = testing.FakeDynamicClient()

pkg/cmd/report/report.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -437,10 +437,12 @@ func (o *reportClusterOptions) complete(f cmdutil.Factory) error {
437437
if err := o.reportOptions.complete(f); err != nil {
438438
return err
439439
}
440-
// update namespace
441-
o.namespace, _, err = f.ToRawKubeConfigLoader().Namespace()
442-
if err != nil {
443-
return err
440+
// update namespace if not specified
441+
if o.namespace == "" {
442+
o.namespace, _, err = f.ToRawKubeConfigLoader().Namespace()
443+
if err != nil {
444+
return err
445+
}
444446
}
445447
// complete file name
446448

pkg/cmd/report/report_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,14 @@ var _ = Describe("report", func() {
452452
Expect(o.file).Should(MatchRegexp("report-cluster-.*.zip"))
453453
})
454454

455+
It("complete cluster-report options should respect specified namespace", func() {
456+
o := reportClusterOptions{reportOptions: newReportOptions(streams)}
457+
o.outputFormat = jsonFormat
458+
o.namespace = "demo"
459+
Expect(o.complete(tf)).To(Succeed())
460+
Expect(o.namespace).Should(Equal("demo"))
461+
})
462+
455463
It("handle cluster-report manifests", func() {
456464
o := reportClusterOptions{reportOptions: newReportOptions(streams)}
457465
o.outputFormat = jsonFormat

0 commit comments

Comments
 (0)