This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c899b2a [operator] fix yaml option logic (#617)
9c899b2a is described below

commit 9c899b2a75c973d6d0ffd736163c5374f572dbb4
Author: Jian Zhong <[email protected]>
AuthorDate: Thu Feb 20 01:01:02 2025 +0800

    [operator] fix yaml option logic (#617)
---
 manifests/profiles/default.yaml     |  1 -
 manifests/profiles/demo.yaml        |  1 -
 manifests/profiles/empty.yaml       |  1 -
 operator/pkg/apis/types.go          | 38 ++++++++++++++++++-------------------
 operator/pkg/component/component.go | 31 ++++++++++++++++++++++++++++++
 5 files changed, 50 insertions(+), 22 deletions(-)

diff --git a/manifests/profiles/default.yaml b/manifests/profiles/default.yaml
index a1cb6d92..124fdb2e 100644
--- a/manifests/profiles/default.yaml
+++ b/manifests/profiles/default.yaml
@@ -19,7 +19,6 @@ metadata:
   namespace: dubbo-system
 spec:
   profile: default
-  control: register
   components:
     base:
       enabled: true
diff --git a/manifests/profiles/demo.yaml b/manifests/profiles/demo.yaml
index 69365a61..1236f3bb 100644
--- a/manifests/profiles/demo.yaml
+++ b/manifests/profiles/demo.yaml
@@ -18,7 +18,6 @@ kind: DubboOperator
 metadata:
   namespace: dubbo-system
 spec:
-  control: register
   components:
     base:
       enabled: true
diff --git a/manifests/profiles/empty.yaml b/manifests/profiles/empty.yaml
index 0ffc38b4..0c4650a5 100644
--- a/manifests/profiles/empty.yaml
+++ b/manifests/profiles/empty.yaml
@@ -16,7 +16,6 @@
 apiVersion: install.dubbo.io/v1alpha1
 kind: DubboOperator
 spec:
-  control: register
   components:
     base:
       enabled: false
diff --git a/operator/pkg/apis/types.go b/operator/pkg/apis/types.go
index d7e9cdbd..62507357 100644
--- a/operator/pkg/apis/types.go
+++ b/operator/pkg/apis/types.go
@@ -2,7 +2,6 @@ package apis
 
 import (
        "encoding/json"
-       proto "github.com/gogo/protobuf/proto"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
@@ -19,11 +18,11 @@ type DubboOperator struct {
 }
 
 type DubboOperatorSpec struct {
-       Profile    string                   `json:"profile,omitempty"`
-       Control    string                   `json:"control,omitempty"`
-       Dashboard  *DubboAdminDashboardSpec `json:"dashboard,omitempty"`
-       Components *DubboComponentSpec      `json:"components,omitempty"`
-       Values     json.RawMessage          `json:"values,omitempty"`
+       Profile    string              `json:"profile,omitempty"`
+       Control    string              `json:"control,omitempty"`
+       Dashboard  *DubboDashboardSpec `json:"dashboard,omitempty"`
+       Components *DubboComponentSpec `json:"components,omitempty"`
+       Values     json.RawMessage     `json:"values,omitempty"`
 }
 
 type DubboComponentSpec struct {
@@ -31,12 +30,8 @@ type DubboComponentSpec struct {
        Register *RegisterSpec      `json:"register,omitempty"`
 }
 
-type BaseComponentSpec struct {
-       Enabled *BoolValue `json:"enabled,omitempty"`
-}
-
-type DubboAdminDashboardSpec struct {
-       Admin *ComponentSpec `json:"admin,omitempty"`
+type DubboDashboardSpec struct {
+       Admin *DashboardComponentSpec `json:"admin,omitempty"`
 }
 
 type RegisterSpec struct {
@@ -44,10 +39,19 @@ type RegisterSpec struct {
        Zookeeper *RegisterComponentSpec `json:"zookeeper,omitempty"`
 }
 
+type BaseComponentSpec struct {
+       Enabled *BoolValue `json:"enabled,omitempty"`
+}
+
+type DashboardComponentSpec struct {
+       Enabled *BoolValue `json:"enabled,omitempty"`
+}
+
 type RegisterComponentSpec struct {
        Enabled *BoolValue `json:"enabled,omitempty"`
 }
 
+// TODO Remove?
 type ComponentSpec struct {
        Enabled   *BoolValue     `json:"enabled,omitempty"`
        Namespace string         `json:"namespace,omitempty"`
@@ -62,13 +66,9 @@ type BoolValue struct {
        bool
 }
 
-func (d *DubboOperator) Reset() { *d = DubboOperator{} }
-
-func (d *DubboOperator) String() string { return proto.CompactTextString(d) }
-
-func (*DubboOperator) ProtoMessage() {}
-
-func (b *BoolValue) MarshalJSON() ([]byte, error) { return 
json.Marshal(b.GetValueOrFalse()) }
+func (b *BoolValue) MarshalJSON() ([]byte, error) {
+       return json.Marshal(b.GetValueOrFalse())
+}
 
 func (b *BoolValue) UnmarshalJSON(bytes []byte) error {
        bb := false
diff --git a/operator/pkg/component/component.go 
b/operator/pkg/component/component.go
index 64aa48dc..19bed2d4 100644
--- a/operator/pkg/component/component.go
+++ b/operator/pkg/component/component.go
@@ -17,6 +17,7 @@ const (
 
 type Component struct {
        UserFacingName     Name
+       ContainerName      string
        SpecName           string
        ResourceType       string
        ResourceName       string
@@ -37,6 +38,7 @@ var AllComponents = []Component{
        {
                UserFacingName:     AdminComponentName,
                SpecName:           "admin",
+               ContainerName:      "dashboard",
                ResourceType:       "Deployment",
                Default:            true,
                HelmSubDir:         "admin",
@@ -47,6 +49,7 @@ var AllComponents = []Component{
                SpecName:           "nacos",
                ResourceType:       "StatefulSet",
                ResourceName:       "register",
+               ContainerName:      "register-discovery",
                Default:            true,
                HelmSubDir:         "dubbo-control/register-discovery/nacos",
                HelmValuesTreeRoot: "nacos",
@@ -56,6 +59,7 @@ var AllComponents = []Component{
                SpecName:           "zookeeper",
                ResourceType:       "StatefulSet",
                ResourceName:       "register",
+               ContainerName:      "register-discovery",
                Default:            false,
                HelmSubDir:         
"dubbo-control/register-discovery/zookeeper",
                HelmValuesTreeRoot: "zookeeper",
@@ -114,6 +118,33 @@ func (c Component) Get(merged values.Map) 
([]apis.MetadataCompSpec, error) {
                spec.Raw = m
                return spec, nil
        }
+       if c.ContainerName == "dashboard" {
+               s, ok := merged.GetPathMap("spec.dashboard." + c.SpecName)
+               if !ok {
+                       return defaultResp, nil
+               }
+               spec, err := buildSpec(s)
+               if err != nil {
+                       return nil, err
+               }
+               if !(spec.Enabled.GetValueOrTrue()) {
+                       return nil, nil
+               }
+       }
+
+       if c.ContainerName == "register-discovery" {
+               s, ok := merged.GetPathMap("spec.components.register." + 
c.SpecName)
+               if !ok {
+                       return defaultResp, nil
+               }
+               spec, err := buildSpec(s)
+               if err != nil {
+                       return nil, err
+               }
+               if !(spec.Enabled.GetValueOrTrue()) {
+                       return nil, nil
+               }
+       }
        s, ok := merged.GetPathMap("spec.components." + c.SpecName)
        if !ok {
                return defaultResp, nil

Reply via email to