This is an automated email from the ASF dual-hosted git repository. duanzhengqiang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/shardingsphere-on-cloud.git
commit 9beb6d1c12fe320efe19c4a680f6983eea6563a6 Author: mlycore <[email protected]> AuthorDate: Tue Aug 23 15:27:03 2022 +0800 add charts of shardingsphere proxy Signed-off-by: mlycore <[email protected]> --- charts/shardingsphere-proxy/Chart.yaml | 33 ++++ charts/shardingsphere-proxy/LICENSE | 218 +++++++++++++++++++++ charts/shardingsphere-proxy/NOTICE | 5 + .../charts/governance/Chart.yaml | 48 +++++ .../charts/governance/values.yaml | 48 +++++ .../shardingsphere-proxy/templates/configmap.yaml | 55 ++++++ .../shardingsphere-proxy/templates/deployment.yaml | 94 +++++++++ charts/shardingsphere-proxy/templates/service.yaml | 32 +++ charts/shardingsphere-proxy/values.yaml | 155 +++++++++++++++ 9 files changed, 688 insertions(+) diff --git a/charts/shardingsphere-proxy/Chart.yaml b/charts/shardingsphere-proxy/Chart.yaml new file mode 100644 index 0000000..014ae04 --- /dev/null +++ b/charts/shardingsphere-proxy/Chart.yaml @@ -0,0 +1,33 @@ +# +# 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. +# + +apiVersion: v2 +appVersion: 5.1.3 +name: apache-shardingsphere-proxy +version: 1.1.1 +maintainers: + - name: [email protected] +dependencies: + - condition: governance.enabled + name: governance + repository: file://./charts/governance + version: 1.x.x + - name: common + repository: https://charts.bitnami.com/bitnami + tags: + - bitnami-common + version: 1.x.x diff --git a/charts/shardingsphere-proxy/LICENSE b/charts/shardingsphere-proxy/LICENSE new file mode 100644 index 0000000..028e0d6 --- /dev/null +++ b/charts/shardingsphere-proxy/LICENSE @@ -0,0 +1,218 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed 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. + +======================================================================= +Apache ShardingSphere Subcomponents: + +The Apache ShardingSphere project contains subcomponents with separate copyright +notices and license terms. Your use of the source code for the these +subcomponents is subject to the terms and conditions of the following +licenses. + +======================================================================== +Apache 2.0 licenses +======================================================================== + +The following components are provided under the Apache License. See project link for details. +The text of each license is the standard Apache 2.0 license. + + Bitnami Charts(directories in chart archive: charts/common, charts/governance/charts), https://github.com/bitnami/charts, Apache 2.0 diff --git a/charts/shardingsphere-proxy/NOTICE b/charts/shardingsphere-proxy/NOTICE new file mode 100644 index 0000000..ba83312 --- /dev/null +++ b/charts/shardingsphere-proxy/NOTICE @@ -0,0 +1,5 @@ +Apache ShardingSphere +Copyright 2018-2022 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). diff --git a/charts/shardingsphere-proxy/charts/governance/Chart.yaml b/charts/shardingsphere-proxy/charts/governance/Chart.yaml new file mode 100644 index 0000000..6afce95 --- /dev/null +++ b/charts/shardingsphere-proxy/charts/governance/Chart.yaml @@ -0,0 +1,48 @@ +# +# 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. +# + +apiVersion: v2 +name: governance +description: A Helm chart for ShardingSphere-Proxy governance node + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 1.0.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "5.1.2" +maintainers: + - name: [email protected] +dependencies: + - condition: zookeeper.enabled + name: zookeeper + repository: https://charts.bitnami.com/bitnami + version: 9.x.x diff --git a/charts/shardingsphere-proxy/charts/governance/values.yaml b/charts/shardingsphere-proxy/charts/governance/values.yaml new file mode 100644 index 0000000..a36acc2 --- /dev/null +++ b/charts/shardingsphere-proxy/charts/governance/values.yaml @@ -0,0 +1,48 @@ +# +# 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. +# + +zookeeper: + ## @param zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart + ## + enabled: true + ## @param zookeeper.replicaCount Number of ZooKeeper nodes + ## + replicaCount: 1 + ## ZooKeeper Persistence parameters + ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ + ## @param zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s) + ## @param zookeeper.persistence.storageClass Persistent Volume storage class + ## @param zookeeper.persistence.accessModes Persistent Volume access modes + ## @param zookeeper.persistence.size Persistent Volume size + ## + persistence: + enabled: true + storageClass: "" + accessModes: + - ReadWriteOnce + size: 8Gi + ## ZooKeeper resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## @param zookeeper.resources.limits The resources limits for the ZooKeeper containers + ## @param zookeeper.resources.requests.memory The requested memory for the ZooKeeper containers + ## @param zookeeper.resources.requests.cpu The requested cpu for the ZooKeeper containers + ## + resources: + limits: {} + requests: + memory: 256Mi + cpu: 250m diff --git a/charts/shardingsphere-proxy/templates/configmap.yaml b/charts/shardingsphere-proxy/templates/configmap.yaml new file mode 100644 index 0000000..c205d30 --- /dev/null +++ b/charts/shardingsphere-proxy/templates/configmap.yaml @@ -0,0 +1,55 @@ +# +# 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. +# + + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ printf "%s-configuration" (include "common.names.fullname" .) }} +data: + server.yaml: |- + {{- include "common.tplvalues.render" (dict "value" .Values.compute.serverConfig "context" $) | nindent 4 }} + logback.xml: |- + <?xml version="1.0"?> + <configuration> + <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern> + </encoder> + </appender> + <logger name="org.apache.shardingsphere" level="info" additivity="false"> + <appender-ref ref="console" /> + </logger> + + <logger name="com.zaxxer.hikari" level="error"> + <appender-ref ref="console" /> + </logger> + + <logger name="com.atomikos" level="error"> + <appender-ref ref="console" /> + </logger> + + <logger name="io.netty" level="error"> + <appender-ref ref="console" /> + </logger> + + <root> + <level value="info" /> + <appender-ref ref="console" /> + </root> + </configuration> + diff --git a/charts/shardingsphere-proxy/templates/deployment.yaml b/charts/shardingsphere-proxy/templates/deployment.yaml new file mode 100644 index 0000000..655d7b4 --- /dev/null +++ b/charts/shardingsphere-proxy/templates/deployment.yaml @@ -0,0 +1,94 @@ +# +# 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. +# + +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: {{ template "common.names.fullname" . }} + name: {{ template "common.names.fullname" . }} +spec: + replicas: {{ .Values.compute.replicas | default 1 }} + selector: + matchLabels: + app: {{ template "common.names.fullname" . }} + strategy: + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + type: RollingUpdate + template: + metadata: + labels: + app: {{ template "common.names.fullname" . }} + spec: + {{- if .Values.compute.mysqlConnector.version }} + initContainers: + - name: download-mysql-jar + image: busybox:1.35.0 + command: ["sh","-c","wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{.Values.compute.mysqlConnector.version}}/mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar; + wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/{{.Values.compute.mysqlConnector.version}}/mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar.md5; + if [ $(md5sum /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar | cut -d ' ' -f1) = $(cat /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar.md5) ]; + then echo success; + else echo failed;exit 1;fi;mv /mysql-connector-java-{{.Values.compute.mysqlConnector.version}}.jar /opt/shardingsphere-proxy/ext-lib"] + volumeMounts: + - name: mysql-connect-jar + mountPath: /opt/shardingsphere-proxy/ext-lib + {{- end }} + containers: + - image: "{{ .Values.compute.image.repository }}:{{ .Values.compute.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.compute.image.pullPolicy }} + name: shardingsphere-proxy + startupProbe: + tcpSocket: + port: {{ .Values.compute.startPort }} + failureThreshold: 6 + periodSeconds: 10 + livenessProbe: + periodSeconds: 5 + tcpSocket: + port: {{ .Values.compute.startPort }} + readinessProbe: + periodSeconds: 5 + tcpSocket: + port: {{ .Values.compute.startPort }} + env: + - name: PORT + value: "{{ .Values.compute.startPort }}" + ports: + - name: start-port + containerPort: {{ .Values.compute.startPort }} + {{- if .Values.compute.resources }} + resources: {{- toYaml .Values.compute.resources | nindent 12 }} + {{- end }} + volumeMounts: + - name: config + mountPath: /opt/shardingsphere-proxy/conf + {{- if .Values.compute.mysqlConnector.version }} + - name: mysql-connect-jar + mountPath: /opt/shardingsphere-proxy/ext-lib + {{- end }} + imagePullSecrets: + {{- toYaml .Values.compute.imagePullSecrets | nindent 8 }} + volumes: + - name: config + configMap: + name: {{ printf "%s-configuration" (include "common.names.fullname" .) }} + {{- if .Values.compute.mysqlConnector.version}} + - name: mysql-connect-jar + emptyDir: { } + {{- end}} diff --git a/charts/shardingsphere-proxy/templates/service.yaml b/charts/shardingsphere-proxy/templates/service.yaml new file mode 100644 index 0000000..71cb86a --- /dev/null +++ b/charts/shardingsphere-proxy/templates/service.yaml @@ -0,0 +1,32 @@ +# +# 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. +# + +apiVersion: v1 +kind: Service +metadata: + labels: + app: {{ template "common.names.fullname" . }} + name: {{ template "common.names.fullname" . }} +spec: + ports: + - name: tcp + targetPort: {{.Values.compute.startPort}} + port: {{ .Values.compute.service.port }} + protocol: TCP + selector: + app: {{ template "common.names.fullname" . }} + type: {{.Values.compute.service.type}} diff --git a/charts/shardingsphere-proxy/values.yaml b/charts/shardingsphere-proxy/values.yaml new file mode 100644 index 0000000..9f09947 --- /dev/null +++ b/charts/shardingsphere-proxy/values.yaml @@ -0,0 +1,155 @@ +# +# 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. +# + +## @section Governance-Node parameters +## @param governance.enabled Switch to enable or disable the governance helm chart +## +governance: + enabled: true + ## @section Governance-Node ZooKeeper parameters + zookeeper: + ## @param governance.zookeeper.enabled Switch to enable or disable the ZooKeeper helm chart + ## + enabled: true + ## @param governance.zookeeper.replicaCount Number of ZooKeeper nodes + ## + replicaCount: 1 + ## ZooKeeper Persistence parameters + ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ + ## @param governance.zookeeper.persistence.enabled Enable persistence on ZooKeeper using PVC(s) + ## @param governance.zookeeper.persistence.storageClass Persistent Volume storage class + ## @param governance.zookeeper.persistence.accessModes Persistent Volume access modes + ## @param governance.zookeeper.persistence.size Persistent Volume size + ## + persistence: + enabled: false + storageClass: "" + accessModes: + - ReadWriteOnce + size: 8Gi + ## ZooKeeper's resource requests and limits + ## ref: https://kubernetes.io/docs/user-guide/compute-resources/ + ## @param governance.zookeeper.resources.limits The resources limits for the ZooKeeper containers + ## @param governance.zookeeper.resources.requests.memory The requested memory for the ZooKeeper containers + ## @param governance.zookeeper.resources.requests.cpu The requested cpu for the ZooKeeper containers + ## + resources: + limits: {} + requests: + memory: 256Mi + cpu: 250m + +## @section Compute-Node parameters +## +compute: + ## @section Compute-Node ShardingSphere-Proxy parameters + ## ref: https://kubernetes.io/docs/concepts/containers/images/ + ## @param compute.image.repository Image name of ShardingSphere-Proxy. + ## @param compute.image.pullPolicy The policy for pulling ShardingSphere-Proxy image + ## @param compute.image.tag ShardingSphere-Proxy image tag + ## + image: + repository: "apache/shardingsphere-proxy" + pullPolicy: IfNotPresent + ## Overrides the image tag whose default is the chart appVersion. + ## + tag: "5.1.3" + ## @param compute.imagePullSecrets Specify docker-registry secret names as an array + ## e.g: + ## imagePullSecrets: + ## - name: myRegistryKeySecretName + ## + imagePullSecrets: [] + ## ShardingSphere-Proxy resource requests and limits + ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + ## @param compute.resources.limits The resources limits for the ShardingSphere-Proxy containers + ## @param compute.resources.requests.memory The requested memory for the ShardingSphere-Proxy containers + ## @param compute.resources.requests.cpu The requested cpu for the ShardingSphere-Proxy containers + ## + resources: + limits: {} + requests: + memory: 2Gi + cpu: 200m + ## ShardingSphere-Proxy Deployment Configuration + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/ + ## @param compute.replicas Number of cluster replicas + ## + replicas: 3 + ## @param compute.service.type ShardingSphere-Proxy network mode + ## @param compute.service.port ShardingSphere-Proxy expose port + ## + service: + type: ClusterIP + port: 3307 + ## MySQL connector Configuration + ## ref: https://shardingsphere.apache.org/document/current/en/quick-start/shardingsphere-proxy-quick-start/ + ## @param compute.mysqlConnector.version MySQL connector version + ## + mysqlConnector: + version: "5.1.49" + ## @param compute.startPort ShardingSphere-Proxy start port + ## ShardingSphere-Proxy start port + ## ref: https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/startup/docker/ + ## + startPort: 3307 + ## @section Compute-Node ShardingSphere-Proxy ServerConfiguration parameters + ## NOTE: If you use the sub-charts to deploy Zookeeper, the server-lists field must be "{{ printf \"%s-zookeeper.%s:2181\" .Release.Name .Release.Namespace }}", + ## otherwise please fill in the correct zookeeper address + ## The server.yaml is auto-generated based on this parameter. + ## If it is empty, the server.yaml is also empty. + ## ref: https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-jdbc/yaml-config/mode/ + ## ref: https://shardingsphere.apache.org/document/current/en/user-manual/common-config/builtin-algorithm/metadata-repository/ + ## + serverConfig: + ## @section Compute-Node ShardingSphere-Proxy ServerConfiguration authority parameters + ## NOTE: It is used to set up initial user to login compute node, and authority data of storage node. + ## ref: https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/yaml-config/authentication/ + ## @param compute.serverConfig.authority.privilege.type authority provider for storage node, the default value is ALL_PERMITTED + ## @param compute.serverConfig.authority.users[0].password Password for compute node. + ## @param compute.serverConfig.authority.users[0].user Username,authorized host for compute node. Format: <username>@<hostname> hostname is % or empty string means do not care about authorized host + ## + authority: + privilege: + type: ALL_PRIVILEGES_PERMITTED + users: + - password: root + user: root@% + ## @section Compute-Node ShardingSphere-Proxy ServerConfiguration mode Configuration parameters + ## @param compute.serverConfig.mode.type Type of mode configuration. Now only support Cluster mode + ## @param compute.serverConfig.mode.repository.props.namespace Namespace of registry center + ## @param compute.serverConfig.mode.repository.props.server-lists Server lists of registry center + ## @param compute.serverConfig.mode.repository.props.maxRetries Max retries of client connection + ## @param compute.serverConfig.mode.repository.props.operationTimeoutMilliseconds Milliseconds of operation timeout + ## @param compute.serverConfig.mode.repository.props.retryIntervalMilliseconds Milliseconds of retry interval + ## @param compute.serverConfig.mode.repository.props.timeToLiveSeconds Seconds of ephemeral data live + ## @param compute.serverConfig.mode.repository.type Type of persist repository. Now only support ZooKeeper + ## @param compute.serverConfig.mode.overwrite Whether overwrite persistent configuration with local configuration + ## + mode: + type: Cluster + repository: + type: ZooKeeper + props: + maxRetries: 3 + namespace: governance_ds + operationTimeoutMilliseconds: 5000 + retryIntervalMilliseconds: 500 + server-lists: "{{ printf \"%s-zookeeper.%s:2181\" .Release.Name .Release.Namespace }}" + timeToLiveSeconds: 60 + overwrite: true
