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


## 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{} {