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 9935670c [chore] Separate the admin charts by extracting the registry 
to serve as the registration plane and the dubboctl installation registration 
plane. (#557)
9935670c is described below

commit 9935670cba10d80f67fc2db7a5d9b705169b641a
Author: Jian Zhong <[email protected]>
AuthorDate: Tue Jan 21 13:10:47 2025 +0800

    [chore] Separate the admin charts by extracting the registry to serve as 
the registration plane and the dubboctl installation registration plane. (#557)
---
 manifests/charts/admin/README.md                   |  52 ----
 .../files/dashboards/dubbo-resources-traces.yaml   |  74 -----
 manifests/charts/admin/templates/NOTES.txt         |  28 --
 .../charts/admin/templates/modular/_extras.tpl     |  23 --
 .../charts/admin/templates/modular/_ingresses.tpl  |   3 +-
 .../charts/admin/templates/modular/_labels.tpl     |  24 --
 .../charts/admin/templates/modular/_matches.tpl    |  22 --
 .../charts/admin/templates/modular/_names.tpl      |   2 -
 .../charts/admin/templates/modular/_selectors.tpl  |  14 -
 .../charts/admin/templates/traffic/authority.yaml  |   2 +-
 .../charts/admin/templates/traffic/config.yaml     |   5 +-
 .../dubbo-control/register-discovery/.helmignore   |  23 ++
 .../dubbo-control/register-discovery/Chart.yaml    |  18 ++
 .../register-discovery}/README.md                  |  34 +--
 .../register-discovery}/templates/NOTES.txt        |  32 --
 .../register-discovery/templates/_helpers.tpl      | 143 +++++++++
 .../templates}/nacos/configmap.yaml                |   0
 .../templates}/nacos/service.yaml                  |   0
 .../templates}/nacos/statefulset.yaml              |   0
 .../templates}/zookeeper/configmap.yaml            |   0
 .../templates}/zookeeper/service.yaml              |   0
 .../templates}/zookeeper/statefulset.yaml          |   0
 .../dubbo-control/register-discovery/values.yaml   | 322 +++++++++++++++++++++
 operator/pkg/component/component.go                |  23 +-
 operator/pkg/install/installer.go                  |   5 +-
 25 files changed, 533 insertions(+), 316 deletions(-)

diff --git a/manifests/charts/admin/README.md b/manifests/charts/admin/README.md
index 700938d0..fdc3c0bd 100644
--- a/manifests/charts/admin/README.md
+++ b/manifests/charts/admin/README.md
@@ -37,55 +37,3 @@
 | `traffic.tagRoute.priority`                      | Specify the specific 
priority for traffic.                                                 | `99`    
                                  |
 | `traffic.tagRoute.key`                           | The identifier of the 
target application that this rule is about to control.               | 
`details`                                 |
 
-### ZooKeeper
-
-| Key                                                           | Description  
                                                                                
                               | Default                       |
-|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------|
-| `zookeeper.enabled`                                           | ZooKeeper 
Status for Admin.                                                               
                                  | `true`                        |
-| `zookeeper.dataLogDir`                                        | Dedicated 
data log directory.                                                             
                                  | `""`                          |
-| `zookeeper.tickTime`                                          | Basic time 
unit (in milliseconds) used by ZooKeeper for heartbeats.                        
                                 | `2000`                        |
-| `zookeeper.initLimit`                                         | ZooKeeper 
uses to limit the length of time the ZooKeeper servers in quorum have to 
connect to a leader.                     | `10`                          |
-| `zookeeper.syncLimit`                                         | How far out 
of date a server can be from a leader.                                          
                                | `5`                           |
-| `zookeeper.preAllocSize`                                      | Block size 
for transaction log file.                                                       
                                 | `65536`                       |
-| `zookeeper.snapCount`                                         | The number 
of transactions recorded in the transaction log before a snapshot can be taken 
(and the transaction log rolled). | `100000`                      |
-| `zookeeper.fourlwCommandsWhitelist`                           | A list of 
comma separated Four Letter Words commands that can be executed.                
                                  | `srvr, mntr, ruok`            |
-| `zookeeper.listenOnAllIPs`                                    | Allow 
ZooKeeper to listen for connections from its peers on all available IP 
addresses.                                     | `false`                       |
-| `zookeeper.autopurge.snapRetainCount`                         | The most 
recent snapshots amount (and corresponding transaction logs) to retain.         
                                   | `3`                           |
-| `zookeeper.autopurge.purgeInterval`                           | The time 
interval (in hours) for which the purge task has to be triggered.               
                                   | `0`                           |
-| `zookeeper.maxClientCnxns`                                    | Limits the 
number of concurrent connections that a single client may make to a single 
member of the ZooKeeper ensemble.     | `60`                          |
-| `zookeeper.maxSessionTimeout`                                 | Maximum 
session timeout (in milliseconds) that the server will allow the client to 
negotiate.                               | `40000`                       |
-| `zookeeper.heapSize`                                          | Size (in MB) 
for the Java Heap options (Xmx and Xms).                                        
                               | `1024`                        |
-| `zookeeper.logLevel`                                          | Log level 
for the ZooKeeper server. ERROR by default.                                     
                                  | `ERROR`                       |
-| `zookeeper.auth.client.enabled`                               | Enable 
ZooKeeper client-server authentication. It uses SASL/Digest-MD5.                
                                     | `false`                       |
-| `zookeeper.auth.client.clientUser`                            | User that 
will use ZooKeeper clients to auth.                                             
                                  | `""`                          |
-| `zookeeper.auth.client.clientPassword`                        | Password 
that will use ZooKeeper clients to auth.                                        
                                   | `""`                          |
-| `zookeeper.auth.client.serverUsers`                           | Comma, 
semicolon or whitespace separated list of user to be created.                   
                                     | `""`                          |
-| `zookeeper.auth.client.serverPasswords`                       | Comma, 
semicolon or whitespace separated list of passwords to assign to users when 
created.                                 | `""`                          |
-| `zookeeper.auth.client.existingSecret`                        | Use existing 
secret (ignores previous passwords).                                            
                               | `""`                          |
-| `zookeeper.auth.quorum.enabled`                               | Enable 
ZooKeeper server-server authentication. It uses SASL/Digest-MD5.                
                                     | `false`                       |
-| `zookeeper.auth.quorum.learnerUser`                           | User that 
the ZooKeeper quorumLearner will use to authenticate to quorumServers.          
                                  | `""`                          |
-| `zookeeper.auth.quorum.learnerPassword`                       | Password 
that the ZooKeeper quorumLearner will use to authenticate to quorumServers.     
                                   | `""`                          |
-| `zookeeper.auth.quorum.serverUsers`                           | Comma, 
semicolon or whitespace separated list of users for the quorumServers.          
                                     | `""`                          |
-| `zookeeper.auth.quorum.serverPasswords`                       | Comma, 
semicolon or whitespace separated list of passwords to assign to users when 
created.                                 | `""`                          |
-| `zookeeper.auth.quorum.existingSecret`                        | Use existing 
secret (ignores previous passwords).                                            
                               | `""`                          |
-
-### Nacos
-
-| Key                                                       | Description      
                                                                                
           | Default                                                            
                             |
-|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
-| `nacos.enabled`                                           | Nacos Status for 
Admin.                                                                          
           | `false`                                                            
                             |
-| `nacos.mode`                                              | Run Mode 
standalone or cluster.                                                          
                   | `standalone`                                               
                                     |
-| `nacos.clusterDomain`                                     | Cluster Domain 
Suffix for Nacos.                                                               
             | `cluster.local`                                                  
                               |
-| `nacos.plugin.enabled`                                    | Plugin Status 
for Nacos.                                                                      
              | `true`                                                          
                                |
-| `nacos.plugin.image.registry`                             | Plugin Image 
Name for Nacos.                                                                 
               | `nacos/nacos-peer-finder-plugin`                               
                                 |
-| `nacos.plugin.image.tag`                                  | Plugin Version 
Tag for Nacos.                                                                  
             | `1.1`                                                            
                               |
-| `nacos.plugin.image.pullPolicy`                           | Plugin Pull 
Policy for Nacos.                                                               
                | `IfNotPresent`                                                
                                  |
-| `nacos.serverPort`                                        | Define the 
service port for the Nacos.                                                     
                 | `8848`                                                       
                                   |
-| `nacos.preferhostmode`                                    | Enable Nacos 
cluster node domain name support                                                
               | `~`                                                            
                                 |
-| `nacos.storage.type`                                      | Nacos data 
storage method `mysql` or `embedded`. The `embedded` supports either standalone 
or cluster mode. | `embedded`                                                   
                                   |
-| `nacos.storage.db.host`                                   | Specify the 
database host for Nacos storing configuration data.                             
                | `localhost`                                                   
                                  |
-| `nacos.storage.db.name`                                   | Specify the 
database name for Nacos storing configuration data.                             
                | `nacos`                                                       
                                  |
-| `nacos.storage.db.port`                                   | Specify the 
database port for Nacos storing configuration data.                             
                | `3306`                                                        
                                  |
-| `nacos.storage.db.username`                               | Specify the 
database username for Nacos storing configuration data.                         
                | `mysql`                                                       
                                  |
-| `nacos.storage.db.password`                               | Specify the 
database password for Nacos storing configuration data.                         
                | `passw0rd`                                                    
                                  |
-| `nacos.storage.db.param`                                  | Specify the 
database url parameter for Nacos storing configuration data.                    
                | 
`characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false`
 |
\ No newline at end of file
diff --git 
a/manifests/charts/admin/files/dashboards/dubbo-resources-traces.yaml 
b/manifests/charts/admin/files/dashboards/dubbo-resources-traces.yaml
deleted file mode 100644
index a1c4ac80..00000000
--- a/manifests/charts/admin/files/dashboards/dubbo-resources-traces.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
----
-{{- $kubeTargetVersion := default .Capabilities.KubeVersion.GitVersion 
.Values.kubeTargetVersionOverride }}
-{{- if and (or .Values.grafana.enabled .Values.grafana.forceDeployDashboards) 
(semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" 
$kubeTargetVersion) .Values.grafana.defaultDashboardsEnabled }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  namespace: {{ template "kube-prometheus-stack-grafana.namespace" . }}
-  name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) 
"dubbo-app-metrics" | trunc 63 | trimSuffix "-" }}
-  annotations:
-{{ toYaml .Values.grafana.sidecar.dashboards.annotations | indent 4 }}
-  labels:
-    {{- if $.Values.grafana.sidecar.dashboards.label }}
-    {{ $.Values.grafana.sidecar.dashboards.label }}: {{ ternary 
$.Values.grafana.sidecar.dashboards.labelValue "1" (not (empty 
$.Values.grafana.sidecar.dashboards.labelValue)) | quote }}
-    {{- end }}
-    app: {{ template "kube-prometheus-stack.name" $ }}-grafana
-{{ include "kube-prometheus-stack.labels" $ | indent 4 }}
-data:
-  dubbo-app-metrics.json: |-
-    
{{`{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"grafana","uid":"--
 Grafana --"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 
1)","name":"Annotations & 
Alerts","type":"dashboard"}]},"editable":true,"fiscalYearStartMonth":0,"graphTooltip":0,"id":5,"links":[],"liveNow":false,"panels":[{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":14,"panels":[],"title":"应用概览","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"
 [...]
-  {{- end }}
----
-{{- $kubeTargetVersion := default .Capabilities.KubeVersion.GitVersion 
.Values.kubeTargetVersionOverride }}
-{{- if and (or .Values.grafana.enabled .Values.grafana.forceDeployDashboards) 
(semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" 
$kubeTargetVersion) .Values.grafana.defaultDashboardsEnabled }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  namespace: {{ template "kube-prometheus-stack-grafana.namespace" . }}
-  name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) 
"dubbo-ins-metrics" | trunc 63 | trimSuffix "-" }}
-  annotations:
-{{ toYaml .Values.grafana.sidecar.dashboards.annotations | indent 4 }}
-  labels:
-    {{- if $.Values.grafana.sidecar.dashboards.label }}
-    {{ $.Values.grafana.sidecar.dashboards.label }}: {{ ternary 
$.Values.grafana.sidecar.dashboards.labelValue "1" (not (empty 
$.Values.grafana.sidecar.dashboards.labelValue)) | quote }}
-    {{- end }}
-    app: {{ template "kube-prometheus-stack.name" $ }}-grafana
-{{ include "kube-prometheus-stack.labels" $ | indent 4 }}
-data:
-  dubbo-ins-metrics.json: |-
-    
{{`{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"grafana","uid":"--
 Grafana --"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 
1)","name":"Annotations & 
Alerts","type":"dashboard"}]},"editable":true,"fiscalYearStartMonth":0,"graphTooltip":0,"id":6,"links":[],"liveNow":false,"panels":[{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":1,"panels":[],"title":"实例概览","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"d
 [...]
-  {{- end }}
----
-{{- $kubeTargetVersion := default .Capabilities.KubeVersion.GitVersion 
.Values.kubeTargetVersionOverride }}
-{{- if and (or .Values.grafana.enabled .Values.grafana.forceDeployDashboards) 
(semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" 
$kubeTargetVersion) .Values.grafana.defaultDashboardsEnabled }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  namespace: {{ template "kube-prometheus-stack-grafana.namespace" . }}
-  name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" $) 
"dubbo-svc-metrics" | trunc 63 | trimSuffix "-" }}
-  annotations:
-{{ toYaml .Values.grafana.sidecar.dashboards.annotations | indent 4 }}
-  labels:
-    {{- if $.Values.grafana.sidecar.dashboards.label }}
-    {{ $.Values.grafana.sidecar.dashboards.label }}: {{ ternary 
$.Values.grafana.sidecar.dashboards.labelValue "1" (not (empty 
$.Values.grafana.sidecar.dashboards.labelValue)) | quote }}
-    {{- end }}
-    app: {{ template "kube-prometheus-stack.name" $ }}-grafana
-{{ include "kube-prometheus-stack.labels" $ | indent 4 }}
-data:
-  dubbo-svc-metrics.json: |-
-    
{{`{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"grafana","uid":"--
 Grafana --"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 
1)","name":"Annotations & 
Alerts","type":"dashboard"}]},"editable":true,"fiscalYearStartMonth":0,"graphTooltip":0,"id":7,"links":[],"liveNow":false,"panels":[{"collapsed":false,"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":5,"panels":[],"title":"接口总览","type":"row"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"fieldConfig":{"d
 [...]
-  {{- end }}
\ No newline at end of file
diff --git a/manifests/charts/admin/templates/NOTES.txt 
b/manifests/charts/admin/templates/NOTES.txt
index 02c5c911..0b808cb0 100644
--- a/manifests/charts/admin/templates/NOTES.txt
+++ b/manifests/charts/admin/templates/NOTES.txt
@@ -3,34 +3,6 @@
 Core: Admin
 Version: {{ .Values.image.tag }}
 
-🔄 Please wait a few minutes for other dependent components to finish deploying.
-
-{{- if .Values.zookeeper.enabled }}
-
-Dependency: ZooKeeper
-Version: {{ .Values.zookeeper.image.tag }}
-
-🚨 If you are using the Nacos registry, Please disable Zookeeper and enable 
Nacos.
-   Otherwise, Zookeeper is used by default.
-
-🎊 You have enabled the internal Register Center.
-{{- else if .Values.nacos.enabled }}
-
-Dependency: Nacos
-Version: {{ .Values.nacos.image.tag }}
-
-🎊 You have enabled the internal Register Center.
-{{- end }}
-
-{{- if and (eq .Values.zookeeper.enabled false) (eq .Values.nacos.enabled 
false) }}
-Dependency: ❎
-
-🚫 You have disabled the internal Register Center.
-
-Please provide an external Register center to ensure proper service operation.
-
-{{- end }}
-
 {{- if .Values.ingress.enabled }}
 
 Exposer: ✅️
diff --git a/manifests/charts/admin/templates/modular/_extras.tpl 
b/manifests/charts/admin/templates/modular/_extras.tpl
deleted file mode 100644
index c7b6ddb5..00000000
--- a/manifests/charts/admin/templates/modular/_extras.tpl
+++ /dev/null
@@ -1,23 +0,0 @@
-{{/*
-Return the ZooKeeper client-server authentication credentials secret.
-*/}}
-{{- define "zoo.client.secretName" -}}
-{{- $zoo := .Values.registerCentre.zookeeper -}}
-{{- if $zoo.auth.client.existingSecret -}}
-    {{- printf "%s" (tpl $zoo.auth.client.existingSecret $) -}}
-{{- else -}}
-    {{- printf "%s-client-auth" (include "zoo.name" .) -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the ZooKeeper server-server authentication credentials secret.
-*/}}
-{{- define "zoo.quorum.secretName" -}}
-{{- $zoo := .Values.registerCentre.zookeeper -}}
-{{- if $zoo.auth.quorum.existingSecret -}}
-    {{- printf "%s" (tpl $zoo.auth.quorum.existingSecret $) -}}
-{{- else -}}
-    {{- printf "%s-quorum-auth" (include "zoo.name" .) -}}
-{{- end -}}
-{{- end -}}
\ No newline at end of file
diff --git a/manifests/charts/admin/templates/modular/_ingresses.tpl 
b/manifests/charts/admin/templates/modular/_ingresses.tpl
index a38d560d..1e48f699 100644
--- a/manifests/charts/admin/templates/modular/_ingresses.tpl
+++ b/manifests/charts/admin/templates/modular/_ingresses.tpl
@@ -9,4 +9,5 @@ ingress.kubernetes.io/ssl-redirect: "true"
 ingress.kubernetes.io/proxy-body-size: "0"
 nginx.ingress.kubernetes.io/ssl-redirect: "true"
 nginx.ingress.kubernetes.io/proxy-body-size: "0"
-{{- end -}}
\ No newline at end of file
+{{- end -}}
+
diff --git a/manifests/charts/admin/templates/modular/_labels.tpl 
b/manifests/charts/admin/templates/modular/_labels.tpl
index 0a70f49c..80b7de47 100644
--- a/manifests/charts/admin/templates/modular/_labels.tpl
+++ b/manifests/charts/admin/templates/modular/_labels.tpl
@@ -9,30 +9,6 @@ app.kubernetes.io/instance: {{ .Release.Name }}
 app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{- end -}}
 
-{{/*
-Return ZooKeeper Labels to use.
-*/}}
-{{- define "zoo.labels" -}}
-app: {{ template "zoo.name" . }}
-app.kubernetes.io/name: {{ template "zoo.name" . }}
-helm.sh/chart: {{ include "zoo.name" . }}-{{ .Values.zookeeper.image.tag }}
-app.kubernetes.io/instance: {{ template "zoo.name" . }}
-app.kubernetes.io/component: {{ template "zoo.name" . }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Return Nacos Labels to use.
-*/}}
-{{- define "nacos.labels" -}}
-app: {{ template "nacos.name" . }}
-app.kubernetes.io/name: {{ template "nacos.name" . }}
-helm.sh/chart: {{ include "nacos.name" . }}-{{ .Values.nacos.image.tag }}
-app.kubernetes.io/instance: {{ template "nacos.name" . }}
-app.kubernetes.io/component: {{ template "nacos.name" . }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
 {{/*
 Return Jobs Labels to use.
 */}}
diff --git a/manifests/charts/admin/templates/modular/_matches.tpl 
b/manifests/charts/admin/templates/modular/_matches.tpl
index b8d4252a..650dabdd 100644
--- a/manifests/charts/admin/templates/modular/_matches.tpl
+++ b/manifests/charts/admin/templates/modular/_matches.tpl
@@ -8,28 +8,6 @@ app.kubernetes.io/instance: {{ .Release.Name }}
 app.kubernetes.io/managed-by: {{ .Release.Service }}
 {{- end -}}
 
-{{/*
-Return ZooKeeper matchLabels to use.
-*/}}
-{{- define "zoo.matchLabels" -}}
-app.kubernetes.io/name: {{ template "zoo.name" . }}
-helm.sh/chart: {{ include "zoo.name" . }}-{{ .Values.zookeeper.image.tag }}
-app.kubernetes.io/instance: {{ template "zoo.name" . }}
-app.kubernetes.io/component: {{ template "zoo.name" . }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Return Nacos matchLabels to use.
-*/}}
-{{- define "nacos.matchLabels" -}}
-app.kubernetes.io/name: {{ template "nacos.name" . }}
-helm.sh/chart: {{ include "nacos.name" . }}-{{ .Values.nacos.image.tag }}
-app.kubernetes.io/instance: {{ template "nacos.name" . }}
-app.kubernetes.io/component: {{ template "nacos.name" . }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
 {{/*
 Return Traefik matchLabels to use.
 */}}
diff --git a/manifests/charts/admin/templates/modular/_names.tpl 
b/manifests/charts/admin/templates/modular/_names.tpl
index e1bcf39f..53924497 100644
--- a/manifests/charts/admin/templates/modular/_names.tpl
+++ b/manifests/charts/admin/templates/modular/_names.tpl
@@ -62,8 +62,6 @@ Return Grafana Name to use.
 {{- printf "grafana" -}}
 {{- end -}}
 
-
-
 {{/*
 Return Job Name to use.
 */}}
diff --git a/manifests/charts/admin/templates/modular/_selectors.tpl 
b/manifests/charts/admin/templates/modular/_selectors.tpl
index faefa082..a786ab34 100644
--- a/manifests/charts/admin/templates/modular/_selectors.tpl
+++ b/manifests/charts/admin/templates/modular/_selectors.tpl
@@ -4,17 +4,3 @@ Return Admin Service Selector to use.
 {{- define "admin.selector" -}}
 {{ include "admin.name" . }}
 {{- end -}}
-
-{{/*
-Return ZooKeeper Service Selector to use.
-*/}}
-{{- define "zoo.selector" -}}
-{{ include "zoo.name" . }}
-{{- end -}}
-
-{{/*
-Return Nacos Service Selector to use.
-*/}}
-{{- define "nacos.selector" -}}
-{{ include "nacos.name" . }}
-{{- end -}}
diff --git a/manifests/charts/admin/templates/traffic/authority.yaml 
b/manifests/charts/admin/templates/traffic/authority.yaml
index f5304920..5bb5633d 100644
--- a/manifests/charts/admin/templates/traffic/authority.yaml
+++ b/manifests/charts/admin/templates/traffic/authority.yaml
@@ -10,7 +10,7 @@ spec:
   PortLevel:
     - port: {{ $authc.port }}
   selector:
-    - namespaces: ["dubbo-system"]
+    - namespaces: [{{ template "admin.namespace" . }}]
 ---
 apiVersion: dubbo.io/v1alpha1
 kind: AuthorizationPolicy
diff --git a/manifests/charts/admin/templates/traffic/config.yaml 
b/manifests/charts/admin/templates/traffic/config.yaml
index e1f6c7b5..56bbbce3 100644
--- a/manifests/charts/admin/templates/traffic/config.yaml
+++ b/manifests/charts/admin/templates/traffic/config.yaml
@@ -1,4 +1,7 @@
-{{- $traffic := .Values.traffic -}}{{- $tr := $traffic.tagRoute -}}{{- $dc := 
$traffic.dynamicConfig -}}{{- $cr := $traffic.conditionRoute -}}
+{{- $traffic := .Values.traffic -}}
+{{- $tr := $traffic.tagRoute -}}
+{{- $dc := $traffic.dynamicConfig -}}
+{{- $cr := $traffic.conditionRoute -}}
 apiVersion: dubbo.io/v1alpha1
 kind: ConditionRoute
 metadata:
diff --git a/manifests/charts/dubbo-control/register-discovery/.helmignore 
b/manifests/charts/dubbo-control/register-discovery/.helmignore
new file mode 100644
index 00000000..0e8a0eb3
--- /dev/null
+++ b/manifests/charts/dubbo-control/register-discovery/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/manifests/charts/dubbo-control/register-discovery/Chart.yaml 
b/manifests/charts/dubbo-control/register-discovery/Chart.yaml
new file mode 100644
index 00000000..675d130b
--- /dev/null
+++ b/manifests/charts/dubbo-control/register-discovery/Chart.yaml
@@ -0,0 +1,18 @@
+annotations:
+  licenses: Apache-2.0
+
+name: register-discovery
+home: https://github.com/apache/dubbo-kubernetes
+description: ""
+apiVersion: v2
+appVersion: 0.1.0
+kubeVersion: '>=1.28.0-0'
+
+maintainers:
+  - name: mfordjody
+    email: [email protected]
+
+sources:
+  - https://github.com/apache/dubbo-kubernetes
+  - https://dubbo.apache.org
+version: 3.3.0
diff --git a/manifests/charts/admin/README.md 
b/manifests/charts/dubbo-control/register-discovery/README.md
similarity index 67%
copy from manifests/charts/admin/README.md
copy to manifests/charts/dubbo-control/register-discovery/README.md
index 700938d0..b2bf0572 100644
--- a/manifests/charts/admin/README.md
+++ b/manifests/charts/dubbo-control/register-discovery/README.md
@@ -1,42 +1,10 @@
-# Admin         
+# Register-Discovery
 
 ![license](https://img.shields.io/badge/license-Apache--2.0-green.svg)
 ![Helm: 
v3](https://img.shields.io/static/v1?label=Helm&message=v3&color=informational&logo=helm)
 
 ## Values
 
-### Dubbo
-
-| Key                                              | Description               
                                                                 | Default      
                             |
-|--------------------------------------------------|--------------------------------------------------------------------------------------------|-------------------------------------------|
-| `deployType`                                     | Define the deployment 
mode for Admin.                                                      | 
`Deployment`                              |
-| `auth.enabled`                                   | Auth Status for Admin 
Control Plane.                                                       | `true`   
                                 |
-| `auth.authorization.action`                      | Define the Authorization 
Action for Admin Control Plane.                                   | `DENY`      
                              |
-| `auth.authorization.matchType`                   | Define the Authorization 
MatchType for Admin Control Plane.                                | `anyMatch`  
                              |
-| `auth.authorization.samples`                     | Define the rule sampling 
rate for Authorization the Admin Control Plane.                   | `0`         
                              |
-| `auth.authentication.action`                     | Define the Authentication 
Action for Admin Control Plane.                                  | `STRICT`     
                             |
-| `auth.authentication.port`                       | Define the port number 
for applying the Authentication Policy for the Admin Control Plane. | `8080`    
                                |
-| `traffic.enabled`                                | Traffic Status for Admin 
Control Plane.                                                    | `true`      
                              |
-| `traffic.conditionRoute.scope`                   | Supports service and 
application scope rules.                                              | 
`service`                                 |
-| `traffic.conditionRoute.enabled`                 | Whether enable this rule 
or not, set enabled:false to disable this rule                    | `true`      
                              |
-| `traffic.conditionRoute.force`                   | The behaviour when the 
instance subset is empty after routing.                             | `true`    
                                |
-| `traffic.conditionRoute.runtime`                 | Whether run routing rule 
for every rpc invocation or use routing cache if available.       | `true`      
                              |
-| `traffic.conditionRoute.priority`                | Specify the specific 
priority for traffic.                                                 | `100`   
                                  |
-| `traffic.conditionRoute.configVersion`           | The version of the 
condition rule definition, currently available version is v3.0.         | 
`v3.0`                                    |
-| `traffic.conditionRoute.key`                     | The identifier of the 
target service or application that this rule is about to apply to.   | 
`org.apache.dubbo.samples.CommentService` |
-| `traffic.conditionRoute.conditions`              | The condition routing 
rule definition of this configuration. Check Condition for details.  | 
`method=getComment => region=Hangzhou`    |
-| `traffic.dynamicConfig.scope`                    | Supports service and 
application scope rules.                                              | 
`service`                                 |
-| `traffic.dynamicConfig.configVersion`            | The version of the tag 
rule definition, currently available version is v3.0.               | `v3.0`    
                                |
-| `traffic.dynamicConfig.key`                      | The identifier of the 
target service or application that this rule is about to apply to.   | 
`org.apache.dubbo.samples.UserService`    |
-| `traffic.dynamicConfig.side`                     | Especially useful when 
scope:service is set.                                               | 
`consumer`                                |
-| `traffic.dynamicConfig.exact`                    | The application matching 
condition for this config rule to take effect.                    | 
`shop-frontend`                           |
-| `traffic.tagRoute.name`                          | The name of the tag used 
to match the dubbo tag value in the request context.              | `gray`      
                              |
-| `traffic.tagRoute.enabled`                       | Whether enable this rule 
or not, set enabled:false to disable this rule.                   | `false`     
                              |
-| `traffic.tagRoute.force`                         | The behaviour when the 
instance subset is empty after routing.                             | `true`    
                                |
-| `traffic.tagRoute.configVersion`                 | The version of the tag 
rule definition, currently available version is v3.0.               | `v3.0`    
                                |
-| `traffic.tagRoute.priority`                      | Specify the specific 
priority for traffic.                                                 | `99`    
                                  |
-| `traffic.tagRoute.key`                           | The identifier of the 
target application that this rule is about to control.               | 
`details`                                 |
-
 ### ZooKeeper
 
 | Key                                                           | Description  
                                                                                
                               | Default                       |
diff --git a/manifests/charts/admin/templates/NOTES.txt 
b/manifests/charts/dubbo-control/register-discovery/templates/NOTES.txt
similarity index 53%
copy from manifests/charts/admin/templates/NOTES.txt
copy to manifests/charts/dubbo-control/register-discovery/templates/NOTES.txt
index 02c5c911..4a9f5259 100644
--- a/manifests/charts/admin/templates/NOTES.txt
+++ b/manifests/charts/dubbo-control/register-discovery/templates/NOTES.txt
@@ -1,8 +1,5 @@
 ⏳ Please wait for all the activated components to be deployed.
 
-Core: Admin
-Version: {{ .Values.image.tag }}
-
 🔄 Please wait a few minutes for other dependent components to finish deploying.
 
 {{- if .Values.zookeeper.enabled }}
@@ -31,33 +28,4 @@ Please provide an external Register center to ensure proper 
service operation.
 
 {{- end }}
 
-{{- if .Values.ingress.enabled }}
-
-Exposer: ✅️
-
-So you should be able to access the website at the following URL:
-
-1. http://{{ .Values.ingress.hosts.admin }}
-2. http://{{ .Values.ingress.hosts.prometheus }}
-3. http://{{ .Values.ingress.hosts.grafana }}
-
-🎊 You have enabled the internal entrance controller.
-
-{{- else }}
-
-Exposer: ❎
-
-🚫 You have disabled the internal entrance controller.
-
-{{- end }}
-
-{{- if not .Values.persistence.enabled }}
-
-           #########################################################
-           #         ⚠ Not enabled for persistent storage.         #
-           #     If you have important data, please enable it.     #
-           #########################################################
-
-{{- end }}
-
 🌹 For more details, please visit https://dubbo.apache.org.
diff --git 
a/manifests/charts/dubbo-control/register-discovery/templates/_helpers.tpl 
b/manifests/charts/dubbo-control/register-discovery/templates/_helpers.tpl
new file mode 100644
index 00000000..02cf4c70
--- /dev/null
+++ b/manifests/charts/dubbo-control/register-discovery/templates/_helpers.tpl
@@ -0,0 +1,143 @@
+{{/*
+Return the appropriate apiVersion for deployment or statefulset.
+*/}}
+{{- define "apiVersion" -}}
+{{- if and ($.Capabilities.APIVersions.Has "apps/v1") (semverCompare ">= 
1.14-0" .Capabilities.KubeVersion.Version) }}
+{{- print "apps/v1" }}
+{{- else }}
+{{- print "extensions/v1beta1" }}
+{{- end }}
+{{- end }}
+
+{{/*
+Return the ZooKeeper client-server authentication credentials secret.
+*/}}
+{{- define "zoo.client.secretName" -}}
+{{- $zoo := .Values.registerCentre.zookeeper -}}
+{{- if $zoo.auth.client.existingSecret -}}
+    {{- printf "%s" (tpl $zoo.auth.client.existingSecret $) -}}
+{{- else -}}
+    {{- printf "%s-client-auth" (include "zoo.name" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return the ZooKeeper server-server authentication credentials secret.
+*/}}
+{{- define "zoo.quorum.secretName" -}}
+{{- $zoo := .Values.registerCentre.zookeeper -}}
+{{- if $zoo.auth.quorum.existingSecret -}}
+    {{- printf "%s" (tpl $zoo.auth.quorum.existingSecret $) -}}
+{{- else -}}
+    {{- printf "%s-quorum-auth" (include "zoo.name" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return ZooKeeper Labels to use.
+*/}}
+{{- define "zoo.labels" -}}
+app: {{ template "zoo.name" . }}
+app.kubernetes.io/name: {{ template "zoo.name" . }}
+helm.sh/chart: {{ include "zoo.name" . }}-{{ .Values.zookeeper.image.tag }}
+app.kubernetes.io/instance: {{ template "zoo.name" . }}
+app.kubernetes.io/component: {{ template "zoo.name" . }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end -}}
+
+{{/*
+Return Nacos Labels to use.
+*/}}
+{{- define "nacos.labels" -}}
+app: {{ template "nacos.name" . }}
+app.kubernetes.io/name: {{ template "nacos.name" . }}
+helm.sh/chart: {{ include "nacos.name" . }}-{{ .Values.nacos.image.tag }}
+app.kubernetes.io/instance: {{ template "nacos.name" . }}
+app.kubernetes.io/component: {{ template "nacos.name" . }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end -}}
+
+{{/*
+Return ZooKeeper matchLabels to use.
+*/}}
+{{- define "zoo.matchLabels" -}}
+app.kubernetes.io/name: {{ template "zoo.name" . }}
+helm.sh/chart: {{ include "zoo.name" . }}-{{ .Values.zookeeper.image.tag }}
+app.kubernetes.io/instance: {{ template "zoo.name" . }}
+app.kubernetes.io/component: {{ template "zoo.name" . }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end -}}
+
+{{/*
+Return Nacos matchLabels to use.
+*/}}
+{{- define "nacos.matchLabels" -}}
+app.kubernetes.io/name: {{ template "nacos.name" . }}
+helm.sh/chart: {{ include "nacos.name" . }}-{{ .Values.nacos.image.tag }}
+app.kubernetes.io/instance: {{ template "nacos.name" . }}
+app.kubernetes.io/component: {{ template "nacos.name" . }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end -}}
+
+{{/*
+Return ZooKeeper Name to use.
+*/}}
+{{- define "zoo.name" -}}
+{{- printf "zookeeper" -}}
+{{- end -}}
+
+{{/*
+Return Nacos Name to use.
+*/}}
+{{- define "nacos.name" -}}
+{{- printf "nacos" -}}
+{{- end -}}
+
+{{/*
+Return Dubbo Namespace to use.
+*/}}
+{{- define "admin.namespace" -}}
+{{- "dubbo-system" | default }}
+{{- end }}
+
+{{/*
+Return ZooKeeper Service Selector to use.
+*/}}
+{{- define "zoo.selector" -}}
+{{ include "zoo.name" . }}
+{{- end -}}
+
+{{/*
+Return Nacos Service Selector to use.
+*/}}
+{{- define "nacos.selector" -}}
+{{ include "nacos.name" . }}
+{{- end -}}
+
+{{/*
+Return ZooKeeper Client Port to use.
+*/}}
+{{- define "zoo.client" -}}
+{{- printf "2181" -}}
+{{- end -}}
+
+{{/*
+Return ZooKeeper Follower Port to use.
+*/}}
+{{- define "zoo.follower" -}}
+{{- printf "2888" -}}
+{{- end -}}
+
+{{/*
+Return ZooKeeper Election Port to use.
+*/}}
+{{- define "zoo.election" -}}
+{{- printf "3888" -}}
+{{- end -}}
+
+{{/*
+Return Nacos Port to use.
+*/}}
+{{- define "nacos.port" -}}
+{{- printf "8848" -}}
+{{- end -}}
\ No newline at end of file
diff --git a/manifests/charts/admin/templates/register/nacos/configmap.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/nacos/configmap.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/nacos/configmap.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/nacos/configmap.yaml
diff --git a/manifests/charts/admin/templates/register/nacos/service.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/nacos/service.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/nacos/service.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/nacos/service.yaml
diff --git a/manifests/charts/admin/templates/register/nacos/statefulset.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/nacos/statefulset.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/nacos/statefulset.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/nacos/statefulset.yaml
diff --git a/manifests/charts/admin/templates/register/zookeeper/configmap.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/zookeeper/configmap.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/zookeeper/configmap.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/zookeeper/configmap.yaml
diff --git a/manifests/charts/admin/templates/register/zookeeper/service.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/zookeeper/service.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/zookeeper/service.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/zookeeper/service.yaml
diff --git 
a/manifests/charts/admin/templates/register/zookeeper/statefulset.yaml 
b/manifests/charts/dubbo-control/register-discovery/templates/zookeeper/statefulset.yaml
similarity index 100%
rename from manifests/charts/admin/templates/register/zookeeper/statefulset.yaml
rename to 
manifests/charts/dubbo-control/register-discovery/templates/zookeeper/statefulset.yaml
diff --git a/manifests/charts/dubbo-control/register-discovery/values.yaml 
b/manifests/charts/dubbo-control/register-discovery/values.yaml
new file mode 100644
index 00000000..3ffa509c
--- /dev/null
+++ b/manifests/charts/dubbo-control/register-discovery/values.yaml
@@ -0,0 +1,322 @@
+zookeeper:
+  ## Whether to enable the zookeeper.
+  enabled: false
+  ## Override the namespace where the resource is deployed.
+  namespaceOverride: ~
+  ## Labels to attach to the resource.
+  labels: ~
+  ## Annotations to attach to the resource.
+  annotations: ~
+  ## Specifies the cluster's domain name for DNS resolution.
+  clusterDomain: cluster.local
+  ## Number of replicas for the Deployment.
+  replicas: 1
+  ## Configure the application image
+  image:
+    # Source of the container image.
+    registry: docker.io/bitnami/zookeeper
+    # Version tag of the container image.
+    tag: 3.9-debian-12
+    # Image pull policy, available options are: Always, IfNotPresent, Never.
+    pullPolicy: IfNotPresent
+    # Set to 'true' to enable debug mode for the image.
+    debug: false
+  securityContext:
+    # Whether to enable the security context.
+    enabled: true
+    # Defines the POSIX group ID that owns the pod's volumes.
+    fsGroup: 1001
+  containerSecurityContext:
+    # Whether to enable the container security context.
+    enabled: true
+    # Specifies the user ID under which the container should run.
+    runAsUser: 1001
+    # Set to 'true' to run the container as a non-root user.
+    runAsNonRoot: true
+    # Set to 'false' to disallow privilege escalation for the container.
+    allowPrivilegeEscalation: false
+  service:
+    # Labels to be applied to the service.
+    labels: ~
+    # Annotations to be added to the service.
+    annotations: ~
+    # Specifies the service type (ClusterIP, NodePort, LoadBalancer, etc.).
+    type: ClusterIP
+    # Specifies the ClusterIP for the service, or use "~" to auto-assign.
+    clusterIP: ~
+    # List of external IPs to associate with the service.
+    externalIPs: ~
+    # Specifies the IP address for a LoadBalancer service.
+    loadBalancerIP: ~
+    # Restrict access to the LoadBalancer by IP ranges.
+    loadBalancerSourceRanges: ~
+    # Specifies the LoadBalancer class (if applicable).
+    loadBalancerClass: ~
+    # Specifies the session affinity mode (None, ClientIP)
+    sessionAffinity: None
+    # Set to 'true' to publish endpoints for not-ready pods.
+    publishNotReadyAddresses: true
+  resources:
+    # Maximum CPU and memory resources allowed for the container.
+    limits:
+      # CPU usage limit.
+      cpu: 250m
+      # Memory usage limit.
+      memory: 256Mi
+    # Initial CPU and memory resource requests for the container.
+    requests:
+      # CPU usage request.
+      cpu: 250m
+      # Memory usage request.
+      memory: 256Mi
+  startupProbe:
+    # Number of consecutive failures before marking the container as unhealthy.
+    failureThreshold: 6
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 5
+    # How often to perform the probe.
+    periodSeconds: 10
+    # Minimum consecutive successes for the probe to be considered successful.
+    successThreshold: 1
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 5
+    exec:
+      # Run the specified command to check.
+      command: [ '/bin/bash', '-c', 'echo "ruok" | timeout 2 nc -w 2 localhost 
2181 | grep imok' ]
+  readinessProbe:
+    # Number of consecutive failures before marking the container as unhealthy.
+    failureThreshold: 6
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 5
+    # How often to perform the probe.
+    periodSeconds: 10
+    # Minimum consecutive successes for the probe to be considered successful.
+    successThreshold: 1
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 5
+    exec:
+      # Run the specified command to check.
+      command: [ '/bin/bash', '-c', 'curl -s -m 2 
http://localhost:8080/commands/ruok | grep error | grep null' ]
+  livenessProbe:
+    # Number of consecutive failures before marking the container as unhealthy.
+    failureThreshold: 6
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 30
+    # How often to perform the probe.
+    periodSeconds: 10
+    # Minimum consecutive successes for the probe to be considered successful.
+    successThreshold: 1
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 5
+    exec:
+      # Run the specified command to check.
+      command: [ '/bin/bash', '-c', 'curl -s -m 2 
http://localhost:8080/commands/ruok | grep ruok' ]
+  # This allows a dedicated log device to be used, and helps avoid competition 
between logging and snapshots.
+  dataLogDir: ""
+  # tickTime Basic time unit (in milliseconds) used by ZooKeeper for 
heartbeats.
+  tickTime: 2000
+  # initLimit ZooKeeper uses to limit the length of time the ZooKeeper servers 
in quorum have to connect to a leader.
+  initLimit: 10
+  # syncLimit How far out of date a server can be from a leader.
+  syncLimit: 5
+  # preAllocSize Block size for transaction log file.
+  preAllocSize: 65536
+  # snapCount The number of transactions recorded in the transaction log 
before a snapshot can be taken (and the transaction log rolled).
+  snapCount: 100000
+  # fourlwCommandsWhitelist A list of comma separated Four Letter Words 
commands that can be executed.
+  fourlwCommandsWhitelist: srvr, mntr, ruok
+  # listenOnAllIPs Allow ZooKeeper to listen for connections from its peers on 
all available IP addresses.
+  listenOnAllIPs: false
+  # Ongoing data directory cleanup configuration
+  autopurge:
+    # snapRetainCount The most recent snapshots amount (and corresponding 
transaction logs) to retain.
+    snapRetainCount: 3
+    # purgeInterval The time interval (in hours) for which the purge task has 
to be triggered.
+    purgeInterval: 0
+  # maxClientCnxns Limits the number of concurrent connections that a single 
client may make to a single member of the ZooKeeper ensemble.
+  maxClientCnxns: 60
+  # maxSessionTimeout Maximum session timeout (in milliseconds) that the 
server will allow the client to negotiate.
+  maxSessionTimeout: 40000
+  # heapSize Size (in MB) for the Java Heap options (Xmx and Xms).
+  heapSize: 1024
+  # logLevel Log level for the ZooKeeper server. ERROR by default.
+  logLevel: ERROR
+  # authentication parameters.
+  auth:
+    # authentication client settings.
+    client:
+      # auth.client.enabled Enable ZooKeeper client-server authentication. It 
uses SASL/Digest-MD5.
+      enabled: false
+      # auth.client.clientUser User that will use ZooKeeper clients to auth.
+      clientUser: ""
+      # auth.client.clientPassword Password that will use ZooKeeper clients to 
auth.
+      clientPassword: ""
+      # auth.client.serverUsers Comma, semicolon or whitespace separated list 
of user to be created.
+      serverUsers: ""
+      # auth.client.serverPasswords Comma, semicolon or whitespace separated 
list of passwords to assign to users when created.
+      serverPasswords: ""
+      # auth.client.existingSecret Use existing secret (ignores previous 
passwords).
+      existingSecret: ""
+    # authentication quorum settings.
+    quorum:
+      # auth.quorum.enabled Enable ZooKeeper server-server authentication. It 
uses SASL/Digest-MD5.
+      enabled: false
+      # auth.quorum.learnerUser User that the ZooKeeper quorumLearner will use 
to authenticate to quorumServers.
+      learnerUser: ""
+      # auth.quorum.learnerPassword Password that the ZooKeeper quorumLearner 
will use to authenticate to quorumServers.
+      learnerPassword: ""
+      # auth.quorum.serverUsers Comma, semicolon or whitespace separated list 
of users for the quorumServers.
+      serverUsers: ""
+      # auth.quorum.serverPasswords Comma, semicolon or whitespace separated 
list of passwords to assign to users when created.
+      serverPasswords: ""
+      # auth.quorum.existingSecret Use existing secret (ignores previous 
passwords).
+      existingSecret: ""
+
+nacos:
+  ## Whether to enable the nacos.
+  enabled: true
+  ## Specifies the mode in which nacos is running (standalone, cluster, etc.).
+  mode: standalone
+  ## Override the namespace where the resource is deployed.
+  namespaceOverride: ~
+  ## Labels to attach to the resource.
+  labels: ~
+  ## Annotations to attach to the resource.
+  annotations: ~
+  ## Specifies the cluster's domain name for DNS resolution.
+  clusterDomain: cluster.local
+  ## Number of replicas for the Deployment.
+  replicas: 1
+  plugin:
+    # Whether to enable the plugin.
+    enabled: true
+    # Configure the container image for the plugin.
+    image:
+      # Docker registry where the plugin image is hosted.
+      registry: nacos/nacos-peer-finder-plugin
+      # Specifies the image tag to use.
+      tag: 1.1
+      # Image pull policy (IfNotPresent, Always, Never).
+      pullPolicy: IfNotPresent
+  ## Configure the application image
+  image:
+    # Source of the container image.
+    registry: docker.io/nacos/nacos-server
+    # Version tag of the container image.
+    tag: v2.2.3
+    # Image pull policy, available options are: Always, IfNotPresent, Never.
+    pullPolicy: IfNotPresent
+  securityContext:
+    # Whether to enable the security context.
+    enabled: true
+    # Defines the POSIX group ID that owns the pod's volumes.
+    fsGroup: 1001
+  containerSecurityContext:
+    # Whether to enable the container security context.
+    enabled: true
+    # Specifies the user ID under which the container should run.
+    runAsUser: 1001
+    # Set to 'true' to run the container as a non-root user.
+    runAsNonRoot: true
+    # Set to 'false' to disallow privilege escalation for the container.
+    allowPrivilegeEscalation: false
+  service:
+    # Labels to be applied to the service.
+    labels: ~
+    # Annotations to be added to the service.
+    annotations: ~
+    # Specifies the service type (ClusterIP, NodePort, LoadBalancer, etc.).
+    type: NodePort
+    # Specifies the ClusterIP for the service, or use "~" to auto-assign.
+    clusterIP: ~
+    # List of external IPs to associate with the service.
+    externalIPs: ~
+    # Specifies the IP address for a LoadBalancer service.
+    loadBalancerIP: ~
+    # Restrict access to the LoadBalancer by IP ranges.
+    loadBalancerSourceRanges: ~
+    # Specifies the LoadBalancer class (if applicable).
+    loadBalancerClass: ~
+    # Specifies the session affinity mode (None, ClientIP)
+    sessionAffinity: None
+    # Set to 'true' to publish endpoints for not-ready pods.
+    publishNotReadyAddresses: true
+  startupProbe:
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 180
+    # How often to perform the probe.
+    periodSeconds: 5
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 10
+    # Perform an HTTP GET request to check.
+    httpGet:
+      # The protocol used for the HTTP GET request (HTTP, HTTPS).
+      scheme: HTTP
+      # The port on which the HTTP GET request will be made.
+      port: 8848
+      # The path to use for the HTTP GET request.
+      path: /nacos/v1/console/health/readiness
+  readinessProbe:
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 10
+    # How often to perform the probe.
+    periodSeconds: 5
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 10
+    # Perform an HTTP GET request to check.
+    httpGet:
+      # The protocol used for the HTTP GET request (HTTP, HTTPS).
+      scheme: HTTP
+      # The port on which the HTTP GET request will be made.
+      port: 8848
+      # The path to use for the HTTP GET request.
+      path: /nacos/v1/console/health/readiness
+  livenessProbe:
+    # Delay before the probe is initiated.
+    initialDelaySeconds: 10
+    # How often to perform the probe.
+    periodSeconds: 5
+    # Time to wait for the probe to complete.
+    timeoutSeconds: 10
+    # Perform an HTTP GET request to check.
+    httpGet:
+      # The protocol used for the HTTP GET request (HTTP, HTTPS).
+      scheme: HTTP
+      # The port on which the HTTP GET request will be made.
+      port: 8848
+      # The path to use for the HTTP GET request.
+      path: /nacos/v1/console/health/liveness
+  resources:
+    # Maximum CPU and memory resources allowed for the container.
+    limits:
+      # CPU usage limit.
+      cpu: ~
+      # Memory usage limit.
+      memory: ~
+    # Initial CPU and memory resource requests for the container.
+    requests:
+      # CPU usage request.
+      cpu: ~
+      # Memory usage request.
+      memory: ~
+  # Specifies the port on which the server should run.
+  serverPort: 8848
+  # Specifies the preferred host mode (e.g., 'hostname').
+  preferhostmode: ~
+  storage:
+    # Specifies the storage type (embedded, mysql, etc.).
+    type: embedded
+    # For MySQL storage, you need to change the "embedded" to "mysql" before 
you can use the db configuration.
+    db:
+      # Specifies the database host.
+      host: localhost
+      # Specifies the database name.
+      name: nacos
+      # Specifies the database port.
+      port: 3306
+      # Specifies the database username.
+      username: mysql
+      # Specifies the database password.
+      password: passw0rd
+      # Additional database connection parameters (if needed).
+      param: ""
\ No newline at end of file
diff --git a/operator/pkg/component/component.go 
b/operator/pkg/component/component.go
index 190b2308..b7e4177f 100644
--- a/operator/pkg/component/component.go
+++ b/operator/pkg/component/component.go
@@ -9,8 +9,9 @@ import (
 type Name string
 
 const (
-       BaseComponentName  Name = "Base"
-       AdminComponentName Name = "Admin"
+       BaseComponentName     Name = "Base"
+       AdminComponentName    Name = "Admin"
+       RegisterComponentName Name = "Register"
 )
 
 var AllComponents = []Component{
@@ -28,6 +29,13 @@ var AllComponents = []Component{
                HelmSubDir:     "admin",
                HelmTreeRoot:   "",
        },
+       {
+               UserFacingName: RegisterComponentName,
+               SpecName:       "register",
+               Default:        true,
+               HelmSubDir:     "dubbo-control/register-discovery",
+               HelmTreeRoot:   "",
+       },
 }
 
 type Component struct {
@@ -41,14 +49,15 @@ type Component struct {
 
 var (
        userFacingCompNames = map[Name]string{
-               BaseComponentName:  "Dubbo Core",
-               AdminComponentName: "Dubbo Dashboard",
+               BaseComponentName:     "Dubbo Core",
+               AdminComponentName:    "Dubbo Dashboard",
+               RegisterComponentName: "Dubbo Register Plane",
        }
 
        Icons = map[Name]string{
-               BaseComponentName:  "🛸",
-               AdminComponentName: "🛰",
-               // 📡
+               BaseComponentName:     "🛸",
+               RegisterComponentName: "📡",
+               AdminComponentName:    "🛰",
        }
 )
 
diff --git a/operator/pkg/install/installer.go 
b/operator/pkg/install/installer.go
index 4f4209aa..e2c52401 100644
--- a/operator/pkg/install/installer.go
+++ b/operator/pkg/install/installer.go
@@ -206,10 +206,11 @@ func (i Installer) prune(manifests 
[]manifest.ManifestSet) error {
 }
 
 var componentDependencies = map[component.Name][]component.Name{
-       component.AdminComponentName: {},
+       component.RegisterComponentName: {},
        component.BaseComponentName: {
-               component.AdminComponentName,
+               component.RegisterComponentName,
        },
+       component.AdminComponentName: {},
 }
 
 func dependenciesChannels() map[component.Name]chan struct{} {

Reply via email to