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