diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..11ff312
Binary files /dev/null and b/.DS_Store differ
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/GitLink.xml b/.idea/GitLink.xml
new file mode 100644
index 0000000..009597c
--- /dev/null
+++ b/.idea/GitLink.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/block-index.iml b/.idea/block-index.iml
new file mode 100644
index 0000000..5e764c4
--- /dev/null
+++ b/.idea/block-index.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..afa7b8d
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 3e211d6..25a7e06 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,9 @@ and make a pull request to this repository.
## The `block-index` file and directory structure
```bash
-addons/ # A directory containing `addons.extensions.kubeblocks.io` manifests.
-plugins/ # A directory containing `cliplugins.extensions.kubeblocks.io` manifests.
-krew-plugins/ # A directory containing `plugins.krew.googlecontainertools.github.com` manifests.
+addons/ # A directory containing `addons.extensions.kubeblocks.io` manifests.
+tools/ # A directory containing `tools.extensions.kubeblocks.io` manifests.
+applicatinos/ # A directory containing `applicatinos.extensions.kubeblocks.io` manifests.
+cli-plugins/ # A directory containing `cliplugins.extensions.kubeblocks.io` manifests.
+krew-plugins/ # A directory containing `plugins.krew.googlecontainertools.github.com` manifests.
```
\ No newline at end of file
diff --git a/addons/apecloud-mysql/apecloud-mysql-addon.yaml b/addons/apecloud-mysql/apecloud-mysql-addon.yaml
new file mode 100644
index 0000000..a7cccdd
--- /dev/null
+++ b/addons/apecloud-mysql/apecloud-mysql-addon.yaml
@@ -0,0 +1,32 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: apecloud-mysql
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": apecloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'ApeCloud MySQL is a database that is compatible with MySQL syntax and achieves high availability
+ through the utilization of the RAFT consensus protocol.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "apecloud-mysql" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ defaultInstallValues:
+ - enabled: true
+
+ installable:
+ autoInstall: true
+
diff --git a/addons/elasticsearch/elasticsearch-addon.yaml b/addons/elasticsearch/elasticsearch-addon.yaml
new file mode 100644
index 0000000..a593d51
--- /dev/null
+++ b/addons/elasticsearch/elasticsearch-addon.yaml
@@ -0,0 +1,34 @@
+# copy from opsearch
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: elasticsearch
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Elasticsearch is a distributed search and analytics engine. It is used for web search, log monitoring, and real-time analytics. Ideal for Big Data applications.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "elasticsearch" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/addons/foxlake/foxlake-addon.yaml b/addons/foxlake/foxlake-addon.yaml
new file mode 100644
index 0000000..51fd293
--- /dev/null
+++ b/addons/foxlake/foxlake-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: foxlake
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: ApeCloud FoxLake is an open-source cloud-native data warehouse.
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "foxlake" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
\ No newline at end of file
diff --git a/addons/greptimedb/greptimedb-addon.yaml b/addons/greptimedb/greptimedb-addon.yaml
new file mode 100644
index 0000000..600aa8a
--- /dev/null
+++ b/addons/greptimedb/greptimedb-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: greptimedb
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'GreptimeDB is an Apache 2.0 licensed distributed time-series database.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "greptimedb" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/kafka/kafka-addon.yaml b/addons/kafka/kafka-addon.yaml
new file mode 100644
index 0000000..bc735b0
--- /dev/null
+++ b/addons/kafka/kafka-addon.yaml
@@ -0,0 +1,31 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: kafka
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Apache Kafka is a distributed streaming platform designed to build real-time pipelines and can be used as a message
+ broker or as a replacement for a log aggregation solution for big data applications.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "kafka" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/llm/llm-addon.yaml b/addons/llm/llm-addon.yaml
new file mode 100644
index 0000000..9d887b6
--- /dev/null
+++ b/addons/llm/llm-addon.yaml
@@ -0,0 +1,46 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: llm
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: The large language model.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "llm" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.0
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
diff --git a/addons/milvus/milvus-addon.yaml b/addons/milvus/milvus-addon.yaml
new file mode 100644
index 0000000..4a350db
--- /dev/null
+++ b/addons/milvus/milvus-addon.yaml
@@ -0,0 +1,33 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: milvus
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Milvus is an open source (Apache-2.0 licensed) vector database built to power embedding similarity search and AI applications.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "milvus" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/addons/mongodb/mongodb-addon.yaml b/addons/mongodb/mongodb-addon.yaml
new file mode 100644
index 0000000..0786daf
--- /dev/null
+++ b/addons/mongodb/mongodb-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: mongodb
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'MongoDB is a document database designed for ease of application development and scaling.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "mongodb" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/mysql/mysql-addon.yaml b/addons/mysql/mysql-addon.yaml
new file mode 100644
index 0000000..cda1ddc
--- /dev/null
+++ b/addons/mysql/mysql-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: mysql
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'MySQL is a widely used, open-source relational database management system (RDBMS).'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "mysql" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/nebula/nebula-addon.yaml b/addons/nebula/nebula-addon.yaml
new file mode 100644
index 0000000..cde5ce4
--- /dev/null
+++ b/addons/nebula/nebula-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: nebula
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'NebulaGraph is an Apache 2.0 licensed distributed graph database.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "nebula" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/neon/neon-addon.yaml b/addons/neon/neon-addon.yaml
new file mode 100644
index 0000000..f4f3bcb
--- /dev/null
+++ b/addons/neon/neon-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: neon
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Neon is a fully managed serverless PostgreSQL with a generous free tier. Neon separates storage and compute and offers modern developer features such as serverless, branching, bottomless storage, and more. Before deploying neon, you must execute `kbcli addon enable cert-manager` command to deploy cert-manager.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "neon" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/opensearch/opensearch-addon.yaml b/addons/opensearch/opensearch-addon.yaml
new file mode 100644
index 0000000..b89bca4
--- /dev/null
+++ b/addons/opensearch/opensearch-addon.yaml
@@ -0,0 +1,33 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: opensearch
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'OpenSearch is a scalable, flexible, and extensible open-source software suite for search, analytics, and observability applications licensed under Apache 2.0.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "opensearch" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/addons/oracle-mysql/oracle-mysql-addon.yaml b/addons/oracle-mysql/oracle-mysql-addon.yaml
new file mode 100644
index 0000000..215524d
--- /dev/null
+++ b/addons/oracle-mysql/oracle-mysql-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: oracle-mysql
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": ApeCloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'MySQL is a widely used, open-source relational database management system (RDBMS).'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "oracle-mysql" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
diff --git a/addons/orioledb/orioledb-addon.yaml b/addons/orioledb/orioledb-addon.yaml
new file mode 100644
index 0000000..c83f9bf
--- /dev/null
+++ b/addons/orioledb/orioledb-addon.yaml
@@ -0,0 +1,35 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: orioledb
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": apecloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'OrioleDB – a modern cloud-native storage engine solving some PostgreSQL wicked problems.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "orioledb" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+
diff --git a/addons/postgresql/postgresql-addon.yaml b/addons/postgresql/postgresql-addon.yaml
new file mode 100644
index 0000000..4c3545a
--- /dev/null
+++ b/addons/postgresql/postgresql-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: postgresql
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'PostgreSQL (Postgres) is an open source object-relational database known for reliability and data integrity. ACID-compliant, it supports foreign keys, joins, views, triggers and stored procedures.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "postgresql" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
\ No newline at end of file
diff --git a/addons/pulsar/pulsar-addon.yaml b/addons/pulsar/pulsar-addon.yaml
new file mode 100644
index 0000000..6f36219
--- /dev/null
+++ b/addons/pulsar/pulsar-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: pulsar
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: "Apache® Pulsar™ is an open-source, distributed messaging and streaming platform built for the cloud."
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "pulsar" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/qdrant/qdrant-addon.yaml b/addons/qdrant/qdrant-addon.yaml
new file mode 100644
index 0000000..3b635d8
--- /dev/null
+++ b/addons/qdrant/qdrant-addon.yaml
@@ -0,0 +1,33 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: qdrant
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Qdrant is an open source (Apache-2.0 licensed), vector similarity search engine and vector database.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "qdrant" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/addons/redis/redis-addon.yaml b/addons/redis/redis-addon.yaml
new file mode 100644
index 0000000..de2211d
--- /dev/null
+++ b/addons/redis/redis-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: redis
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "redis" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: true
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/risingwave/risingwave-addon.yaml b/addons/risingwave/risingwave-addon.yaml
new file mode 100644
index 0000000..d55cacb
--- /dev/null
+++ b/addons/risingwave/risingwave-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: risingwave
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'RisingWave is a distributed SQL streaming database.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "risingwave" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/starrocks/starrocks-addon.yaml b/addons/starrocks/starrocks-addon.yaml
new file mode 100644
index 0000000..ac3a0b8
--- /dev/null
+++ b/addons/starrocks/starrocks-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: starrocks
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Starrocks is an open-source, high-performance analytical database.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "starrocks" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/tdengine/tdengine-addon.yaml b/addons/tdengine/tdengine-addon.yaml
new file mode 100644
index 0000000..84f1bdd
--- /dev/null
+++ b/addons/tdengine/tdengine-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: tdengine
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, and Industrial IoT.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "tdengine" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/addons/weaviate/vmagent-addon.yaml b/addons/weaviate/vmagent-addon.yaml
new file mode 100644
index 0000000..aec6622
--- /dev/null
+++ b/addons/weaviate/vmagent-addon.yaml
@@ -0,0 +1,47 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: victoria-metrics-agent
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'vmagent is a tiny agent which helps you collect metrics from various sources, relabel and filter the collected metrics and store them in VictoriaMetrics or any other storage systems via Prometheus remote_write protocol.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "victoria-metrics-agent" "version" "0.8.41" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.8.41
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
diff --git a/addons/weaviate/weaviate-addon.yaml b/addons/weaviate/weaviate-addon.yaml
new file mode 100644
index 0000000..51c5216
--- /dev/null
+++ b/addons/weaviate/weaviate-addon.yaml
@@ -0,0 +1,33 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: weaviate
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Weaviate is an open-source (BSD-3.0 licensed) vector database. It allows you to store data objects and vector embeddings from your favorite ML-models, and scale seamlessly into billions of data objects.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "weaviate" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/applications/bytebase/bytebase-addon.yaml b/applications/bytebase/bytebase-addon.yaml
new file mode 100644
index 0000000..d08cf7e
--- /dev/null
+++ b/applications/bytebase/bytebase-addon.yaml
@@ -0,0 +1,29 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: bytebase
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Bytebase is Database DevOps and CI/CD for Developer, DBA and Platform Engineering team.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "bytebase" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+
diff --git a/applications/jupyter-notebook/jupyter-notebook-addon.yaml b/applications/jupyter-notebook/jupyter-notebook-addon.yaml
new file mode 100644
index 0000000..17de5c2
--- /dev/null
+++ b/applications/jupyter-notebook/jupyter-notebook-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: jupyter-notebook
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Jupyter Notebook: Interactive coding, documentation, and visualization tool with multi-language support for data analysis and education.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "jupyter-notebook" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+
diff --git a/applications/jupyterhub/jupyterhub-addon.yaml b/applications/jupyterhub/jupyterhub-addon.yaml
new file mode 100644
index 0000000..06d0848
--- /dev/null
+++ b/applications/jupyterhub/jupyterhub-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: jupyter-hub
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'JupyterHub is a multi-user platform for hosting Jupyter Notebooks.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "jupyterhub" "version" "0.1.0" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.0
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+
diff --git a/applications/nyancat/nyancat-addon.yaml b/applications/nyancat/nyancat-addon.yaml
new file mode 100644
index 0000000..be241f3
--- /dev/null
+++ b/applications/nyancat/nyancat-addon.yaml
@@ -0,0 +1,49 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: nyancat
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": apecloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Deploys a nyancat application in a cluster.
+ Nyancat is a demo application for showing database cluster availability.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "nyancat" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
diff --git a/plugins/.gitkeep b/cli-plugins/.gitkeep
similarity index 100%
rename from plugins/.gitkeep
rename to cli-plugins/.gitkeep
diff --git a/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-addon.yaml b/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-addon.yaml
new file mode 100644
index 0000000..0f872da
--- /dev/null
+++ b/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-addon.yaml
@@ -0,0 +1,52 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: {{ include "addon.alertmanager-webhook-adaptor.name" . }}
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": apecloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'alertmanager webhook adaptor for extending alertmanager notification channels'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "alertmanager-webhook-adaptor" "version" "0.1.4" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.4
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: {{ include "addon.alertmanager-webhook-adaptor.name" . }}-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ .Values.prometheus.enabled }}
diff --git a/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-values.yaml b/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-values.yaml
new file mode 100644
index 0000000..7e43b65
--- /dev/null
+++ b/tools/altermanager-webhook-adaptor/alertmanager-webhook-adaptor-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "addon.alertmanager-webhook-adaptor.name" . }}-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "alertmanager-webhook-adaptor" | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/apecloud-otel-collector/apecloud-otel-collector-addon.yaml b/tools/apecloud-otel-collector/apecloud-otel-collector-addon.yaml
new file mode 100644
index 0000000..1628670
--- /dev/null
+++ b/tools/apecloud-otel-collector/apecloud-otel-collector-addon.yaml
@@ -0,0 +1,56 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: apecloud-otel-collector
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": apecloud
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: apecloud-otel-collector is a high-performance data collection agent with luxuriant function, which inspired by OpenTelemetry.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "apecloud-otel-collector" "version" "0.1.2-beta.3" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.2-beta.3
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: {{ include "addon.apecloud-otel-collector.name" . }}-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - enabled: true
+ {{- $tolerations := .Values.tolerations }}
+ {{- $dataPlaneTolerations := .Values.dataPlane.tolerations }}
+ {{- $mergedTolerations := concat $tolerations $dataPlaneTolerations }}
+ {{- with $mergedTolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ .Values.agamotto.enabled }}
+
+
diff --git a/tools/apecloud-otel-collector/apecloud-otel-collector-values.yaml b/tools/apecloud-otel-collector/apecloud-otel-collector-values.yaml
new file mode 100644
index 0000000..5b7701a
--- /dev/null
+++ b/tools/apecloud-otel-collector/apecloud-otel-collector-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "addon.apecloud-otel-collector.name" . }}-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "agamotto" | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-addon.yaml b/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-addon.yaml
new file mode 100644
index 0000000..4f49a54
--- /dev/null
+++ b/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-addon.yaml
@@ -0,0 +1,60 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: aws-load-balancer-controller
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: The AWS Load Balancer Controller manages AWS Elastic Load Balancers for a Kubernetes cluster.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "aws-load-balancer-controller" "version" "1.4.8" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 1.4.8
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: aws-load-balancer-controller-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ setValues:
+ - clusterName={{ index .Values "aws-load-balancer-controller" "clusterName" }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ index .Values "aws-load-balancer-controller" "enabled" }}
+ selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - eks
+
diff --git a/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-values.yaml b/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-values.yaml
new file mode 100644
index 0000000..4a37b0e
--- /dev/null
+++ b/tools/aws-loadbalancer-controller/aws-loadbalancer-controller-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: aws-load-balancer-controller-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "aws-load-balancer-controller" | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/cert-manager/cert-manager-addon.yaml b/tools/cert-manager/cert-manager-addon.yaml
new file mode 100644
index 0000000..a164390
--- /dev/null
+++ b/tools/cert-manager/cert-manager-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: cert-manager
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates. '
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "cert-manager" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
diff --git a/tools/chaos-mesh/chaos-mesh-addon.yaml b/tools/chaos-mesh/chaos-mesh-addon.yaml
new file mode 100644
index 0000000..081ff92
--- /dev/null
+++ b/tools/chaos-mesh/chaos-mesh-addon.yaml
@@ -0,0 +1,94 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: fault-chaos-mesh
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Chaos Mesh is an open-source chaos engineering tool that facilitates testing the resiliency and reliability of distributed systems by introducing various failure scenarios in a controlled manner.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "chaos-mesh" "version" "2.5.2" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 2.5.2
+ {{- end }}
+
+ installValues:
+ setValues:
+ - "version=2.5.2"
+ - "chaosDaemon.privileged=true"
+ - "dnsServer.create=true"
+ - "chaosDaemon.runtime=containerd"
+ - "chaosDaemon.socketPath=/run/containerd/containerd.sock"
+ - "images.registry=registry.cn-hangzhou.aliyuncs.com"
+ - "controllerManager.image.repository=apecloud/chaos-mesh"
+ - "chaosDaemon.image.repository=apecloud/chaos-daemon"
+ - "dashboard.image.repository=apecloud/chaos-dashboard"
+
+ valuesMapping:
+ valueMap:
+ replicaCount: controllerManager.replicaCount
+ jsonMap:
+ tolerations: controllerManager.tolerations
+ resources:
+ cpu:
+ requests: controllerManager.resources.requests.cpu
+ memory:
+ requests: controllerManager.resources.requests.memory
+
+ extras:
+ - name: chaosDaemon
+ jsonMap:
+ tolerations: chaosDaemon.tolerations
+
+ - name: dashboard
+ valueMap:
+ replicaCount: dashboard.replicaCount
+ jsonMap:
+ tolerations: dashboard.tolerations
+ resources:
+ cpu:
+ requests: dashboard.resources.requests.cpu
+ memory:
+ requests: dashboard.resources.requests.memory
+
+ - name: dnsServer
+ jsonMap:
+ tolerations: dnsServer.tolerations
+ resources:
+ cpu:
+ requests: dnsServer.resources.requests.cpu
+ memory:
+ requests: dnsServer.resources.requests.memory
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ extras:
+ - name: chaosDaemon
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ - name: dashboard
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ - name: dnsServer
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
\ No newline at end of file
diff --git a/tools/csi-driver/csi-driver-addon.yaml b/tools/csi-driver/csi-driver-addon.yaml
new file mode 100644
index 0000000..06d4fce
--- /dev/null
+++ b/tools/csi-driver/csi-driver-addon.yaml
@@ -0,0 +1,69 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: kubeblocks-csi-driver
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'KubeBlocks CSI driver provides a container storage interface used by Container Orchestrators
+ to manage the lifecycle of block storage for cloud vendors.'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "kubeblocks-csi-driver" "version" "0.1.0" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.0
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: controller.replicaCount
+ jsonMap:
+ tolerations: controller.tolerations
+
+ resources:
+ cpu:
+ requests: controller.resources.requests.cpu
+ limits: controller.resources.limits.cpu
+ memory:
+ requests: controller.resources.requests.memory
+ limits: controller.resources.limits.memory
+ extras:
+ - name: node
+ jsonMap:
+ tolerations: node.tolerations
+
+ resources:
+ cpu:
+ requests: node.resources.requests.cpu
+ limits: node.resources.limits.cpu
+ memory:
+ requests: node.resources.requests.memory
+ limits: node.resources.limits.memory
+
+ defaultInstallValues:
+ - enabled: false
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ extras:
+ - name: node
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+
+ installable:
+ autoInstall: {{ get ( get ( .Values | toYaml | fromYaml ) "kubeblocks-csi-driver" ) "enabled" }}
+ selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - eks
diff --git a/tools/csi-hostpath-driver/csi-hostpath-driver-addon.yaml b/tools/csi-hostpath-driver/csi-hostpath-driver-addon.yaml
new file mode 100644
index 0000000..01236d3
--- /dev/null
+++ b/tools/csi-hostpath-driver/csi-hostpath-driver-addon.yaml
@@ -0,0 +1,50 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: csi-hostpath-driver
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: Container Storage Interface (CSI) driver for HostPath volumes
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "csi-hostpath-driver" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: csi-hostpath-driver-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ jsonMap:
+ tolerations: tolerations
+
+ defaultInstallValues:
+ - enabled: true
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ get ( get ( .Values | toYaml | fromYaml ) "csi-hostpath-driver" ) "enabled" }}
+ selectors:
+ - key: KubeGitVersion
+ operator: DoesNotContain
+ values:
+ - eks
+ - aliyun
+ - gke
+ - tke
+ - aks
diff --git a/tools/csi-hostpath-driver/csi-hostpath-driver-values.yaml b/tools/csi-hostpath-driver/csi-hostpath-driver-values.yaml
new file mode 100644
index 0000000..54c6692
--- /dev/null
+++ b/tools/csi-hostpath-driver/csi-hostpath-driver-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: csi-hostpath-driver-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "csi-hostpath-driver" | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/csi-s3/csi-s3-addon.yaml b/tools/csi-s3/csi-s3-addon.yaml
new file mode 100644
index 0000000..1d313d5
--- /dev/null
+++ b/tools/csi-s3/csi-s3-addon.yaml
@@ -0,0 +1,52 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: csi-s3
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: Container Storage Interface (CSI) driver for S3 volumes
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "csi-s3" "version" (default .Chart.Version .Values.versionOverride) "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: {{ default .Chart.Version .Values.versionOverride }}
+ {{- end }}
+
+ installValues:
+ secretRefs:
+ - name: {{ include "kubeblocks.fullname" . }}-cloud-provider
+ key: csi-s3
+
+ valuesMapping:
+ jsonMap:
+ tolerations: tolerations
+ extras:
+ - name: daemonset
+ jsonMap:
+ tolerations: daemonsetTolerations
+
+ defaultInstallValues:
+ - enabled: true
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ {{- $autoInstall := (get ( get ( .Values | toYaml | fromYaml ) "csi-s3" ) "enabled") }}
+ {{- /* auto install csi-s3 if it's required by backup repos */ -}}
+ {{- if .Values.backupRepo.create }}
+ {{- if eq .Values.backupRepo.storageProvider "s3" "oss" "minio" "obs" "cos" "gcs" }}
+ {{- $autoInstall = true }}
+ {{- end }}
+ {{- end }}
+ autoInstall: {{ $autoInstall }}
diff --git a/tools/external-dns/external-dns-addon.yaml b/tools/external-dns/external-dns-addon.yaml
new file mode 100644
index 0000000..f3981c9
--- /dev/null
+++ b/tools/external-dns/external-dns-addon.yaml
@@ -0,0 +1,147 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: external-dns
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: >-
+ ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
+
+{{- if (.Capabilities.KubeVersion.GitVersion | contains "-eks") }}
+ Before enabling this addon, you should enable the aws-load-balancer-controller addon and create the hosted zone {{ index .Values "external-dns" "domain" }} in the Route53 first.
+
+ Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md
+
+ Finally, you can enable this addon by executing the following command, please note replacing the variables.
+
+ kbcli addon enable external-dns --set provider=aws \
+ --set source=service \
+ --set policy=sync \
+ --set triggerLoopOnEvent=true \
+ --set interval=5m \
+ --set registry=txt \
+ --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \
+ --set domainFilters={{ index .Values "external-dns" "domain" }} \
+ --set aws.credentials.accessKey=${accessKey} \
+ --set aws.credentials.secretKey=${secretKey} \
+ --set aws.region=${region}
+
+{{- else if (.Capabilities.KubeVersion.GitVersion | contains "-ack") }}
+ Before enabling this addon, you should create the domain {{ index .Values "external-dns" "domain" }} in the Cloud DNS service or Private Zone service first.
+
+ Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/alibabacloud.md
+
+ Finally, you can enable this addon by executing the following command, please note replacing the variables.
+
+ kbcli addon enable external-dns --set provider=alibabacloud \
+ --set source=service \
+ --set policy=sync \
+ --set triggerLoopOnEvent=true \
+ --set interval=5m \
+ --set registry=txt \
+ --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \
+ --set domainFilters={{ index .Values "external-dns" "domain" }} \
+ --set alibabacloud.accessKeyId=${accessKeyId} \
+ --set alibabacloud.accessKeySecret=${accessKeySecret} \
+ --set alibabacloud.vpcId=${vpcId}
+
+{{- else if (.Capabilities.KubeVersion.GitVersion | contains "-gke") }}
+ Before enabling this addon, you should create the zone {{ index .Values "external-dns" "domain" }} in the Cloud DNS service first.
+
+ Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to this guide: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/gke.md
+
+ Finally, you can enable this addon by executing the following command, please note replacing the variables.
+
+ kbcli addon enable external-dns --set provider=google \
+ --set source=service \
+ --set policy=sync \
+ --set triggerLoopOnEvent=true \
+ --set interval=5m \
+ --set registry=txt \
+ --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \
+ --set domainFilters={{ index .Values "external-dns" "domain" }} \
+ --set google.project=${project} \
+ --set google.serviceAccountSecret=${serviceAccountSecret} \
+ --set google.serviceAccountSecretKey=${serviceAccountSecretKey} \
+ --set google.serviceAccountKey=${serviceAccountKey}
+
+{{/* FIXME: Azure AKS does not have unique identifier in the git version, we should use other method to identify AKS */}}
+{{- else if (.Capabilities.KubeVersion.GitVersion | contains "-aks") }}
+ Before enabling this addon, you should create the zone {{ index .Values "external-dns" "domain" }} in the Azure DNS or Azure Private Zone service first.
+
+ Then you should properly setup permissions for external-dns to call the OpenAPI, please refer to these guides:
+ https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md
+ https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure-private-dns.md
+
+ If it's a zone in Azure Private Zone service, you can enable this addon by executing the following command, please note replacing the variables.
+
+ kbcli addon enable external-dns --set provider=azure-private-dns \
+ --set source=service \
+ --set policy=sync \
+ --set triggerLoopOnEvent=true \
+ --set interval=5m \
+ --set registry=txt \
+ --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \
+ --set domainFilters={{ index .Values "external-dns" "domain" }} \
+ --set azure.subscriptionId=${subscriptionId} \
+ --set azure.resourceGroup=${resourceGroup}
+
+ If it's a zone in Azure DNS, please follow the command below.
+
+ kbcli addon enable external-dns --set provider=azure \
+ --set source=service \
+ --set policy=sync \
+ --set triggerLoopOnEvent=true \
+ --set interval=5m \
+ --set registry=txt \
+ --set labelFilter=app.kubernetes.io/managed-by=kubeblocks \
+ --set domainFilters={{ index .Values "external-dns" "domain" }} \
+ --set azure.subscriptionId=${subscriptionId} \
+ --set azure.resourceGroup=${resourceGroup}
+
+{{- end }}
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "external-dns" "version" "6.20.4" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 6.20.4
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: external-dns-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ index .Values "external-dns" "enabled" }}
diff --git a/tools/external-dns/external-dns-values.yaml b/tools/external-dns/external-dns-values.yaml
new file mode 100644
index 0000000..7321a9d
--- /dev/null
+++ b/tools/external-dns/external-dns-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: external-dns-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "external-dns" | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/grafana/grafana-addon.yaml b/tools/grafana/grafana-addon.yaml
new file mode 100644
index 0000000..e775643
--- /dev/null
+++ b/tools/grafana/grafana-addon.yaml
@@ -0,0 +1,72 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: grafana
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: The leading tool for querying and visualizing time series and metrics.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "grafana" "version" "6.43.5" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 6.43.5
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: grafana-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicas
+ storageClass: persistence.storageClassName
+ persistentVolumeEnabled: persistence.enabled
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ storage: persistence.size
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ storageClass:
+ resources:
+ requests:
+ storage: 1Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - aliyun
+ replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ .Values.grafana.enabled }}
diff --git a/tools/grafana/grafana-values.yaml b/tools/grafana/grafana-values.yaml
new file mode 100644
index 0000000..6374ff4
--- /dev/null
+++ b/tools/grafana/grafana-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grafana-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- .Values.grafana | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/kubebench/kubebench-addon.yaml b/tools/kubebench/kubebench-addon.yaml
new file mode 100644
index 0000000..4598e7d
--- /dev/null
+++ b/tools/kubebench/kubebench-addon.yaml
@@ -0,0 +1,48 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: kubebench
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'A Kubernetes operator for running benchmark tests on databases to evaluate their performance.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "kubebench" "version" "0.0.1" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.0.1
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/tools/loki/loki-addon.yaml b/tools/loki/loki-addon.yaml
new file mode 100644
index 0000000..063abe8
--- /dev/null
+++ b/tools/loki/loki-addon.yaml
@@ -0,0 +1,81 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: {{ include "addon.loki.name" . }}
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: Grafana Loki is a horizontally scalable, highly available, and multi-tenant log aggregation system, which inspired by Prometheus.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "loki" "version" "5.8.9" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 5.8.9
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: {{ include "addon.loki.name" . }}-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: singleBinary.replicas
+ storageClass: singleBinary.persistence.storageClass
+ persistentVolumeEnabled: singleBinary.persistence.enabled
+
+ jsonMap:
+ tolerations: global.tolerations
+
+ resources:
+ storage: singleBinary.persistence.size
+
+ defaultInstallValues:
+ - replicas: 1
+ storageClass:
+ resources:
+ requests:
+ storage: 8Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ # for ACK, the smallest storage size is 20Gi, the format of GitVersion is v1.24.6-aliyun.1
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - aliyun
+ replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+ # for TKE, the smallest storage size is 10Gi, the format of GitVersion is v1.24.4-tke.5
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - tke
+ replicas: 1
+ resources:
+ requests:
+ storage: 10Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ .Values.loki.enabled }}
+
+
diff --git a/tools/loki/loki-values.yaml b/tools/loki/loki-values.yaml
new file mode 100644
index 0000000..8e3094c
--- /dev/null
+++ b/tools/loki/loki-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "addon.loki.name" . }}-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- .Values.loki | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/migration/migration-addon.yaml b/tools/migration/migration-addon.yaml
new file mode 100644
index 0000000..466e597
--- /dev/null
+++ b/tools/migration/migration-addon.yaml
@@ -0,0 +1,48 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: migration
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Migration is a tool for migrating data between two databases.'
+
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "dt-platform" "version" "0.1.1" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.1.1
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
diff --git a/tools/minio/minio.yaml b/tools/minio/minio.yaml
new file mode 100644
index 0000000..7897538
--- /dev/null
+++ b/tools/minio/minio.yaml
@@ -0,0 +1,29 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: minio
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'MinIO(R) is an object storage server, compatible with Amazon S3 cloud storage service, mainly used for storing unstructured data (such as photos, videos, log files, etc.).'
+ type: Helm
+
+ helm:
+ chartLocationURL: oci://registry-1.docker.io/bitnamicharts/minio
+
+ installValues:
+ setValues:
+ - auth.rootUser=kubeblocks
+ - auth.rootPassword=kubeblocks
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+
diff --git a/tools/nvidia-gpu-exporter/nvidia-gpu-exporter-addon.yaml b/tools/nvidia-gpu-exporter/nvidia-gpu-exporter-addon.yaml
new file mode 100644
index 0000000..0302c1b
--- /dev/null
+++ b/tools/nvidia-gpu-exporter/nvidia-gpu-exporter-addon.yaml
@@ -0,0 +1,30 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: nvidia-gpu-exporter
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Nvidia GPU exporter for prometheus using nvidia-smi binary'
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "nvidia-gpu-exporter" "version" "0.3.1" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.3.1
+ {{- end }}
+
+ installable:
+ autoInstall: false
+
+ defaultInstallValues:
+ - enabled: true
+
diff --git a/tools/prometheus/prometheus-addon.yaml b/tools/prometheus/prometheus-addon.yaml
new file mode 100644
index 0000000..8426296
--- /dev/null
+++ b/tools/prometheus/prometheus-addon.yaml
@@ -0,0 +1,143 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: {{ include "addon.prometheus.name" . }}
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: Prometheus is a monitoring system and time series database.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "prometheus" "version" "15.16.1" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 15.16.1
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: {{ include "addon.prometheus.name" . }}-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: server.replicaCount
+ storageClass: server.persistentVolume.storageClass
+ persistentVolumeEnabled: server.persistentVolume.enabled
+
+ jsonMap:
+ tolerations: server.tolerations
+
+ resources:
+ storage: server.persistentVolume.size
+ cpu:
+ requests: server.resources.requests.cpu
+ limits: server.resources.limits.cpu
+ memory:
+ requests: server.resources.requests.memory
+ limits: server.resources.limits.memory
+ extras:
+ - name: alertmanager
+ valueMap:
+ replicaCount: alertmanager.replicaCount
+ storageClass: alertmanager.persistentVolume.storageClass
+ persistentVolumeEnabled: alertmanager.persistentVolume.enabled
+
+ jsonMap:
+ tolerations: alertmanager.tolerations
+
+ resources:
+ storage: alertmanager.persistentVolume.size
+ cpu:
+ requests: alertmanager.resources.requests.cpu
+ limits: alertmanager.resources.limits.cpu
+ memory:
+ requests: alertmanager.resources.requests.memory
+ limits: alertmanager.resources.limits.memory
+
+ defaultInstallValues:
+ - replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ memory: 512Mi
+ limits:
+ memory: 4Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ extras:
+ - name: alertmanager
+ replicas: 1
+ resources:
+ requests:
+ storage: 4Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ # for ACK, the smallest storage size is 20Gi, the format of GitVersion is v1.24.6-aliyun.1
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - aliyun
+ replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ memory: 512Mi
+ limits:
+ memory: 4Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ extras:
+ - name: alertmanager
+ replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ # for TKE, the smallest storage size is 10Gi, the format of GitVersion is v1.24.4-tke.5
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - tke
+ replicas: 1
+ resources:
+ requests:
+ storage: 20Gi
+ memory: 512Mi
+ limits:
+ memory: 4Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ extras:
+ - name: alertmanager
+ replicas: 1
+ resources:
+ requests:
+ storage: 10Gi
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ .Values.prometheus.enabled }}
diff --git a/tools/prometheus/prometheus-values.yaml b/tools/prometheus/prometheus-values.yaml
new file mode 100644
index 0000000..15b20e5
--- /dev/null
+++ b/tools/prometheus/prometheus-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "addon.prometheus.name" . }}-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- .Values.prometheus | toYaml | nindent 4 }}
\ No newline at end of file
diff --git a/tools/pyroscope/pyroscope-addon.yaml b/tools/pyroscope/pyroscope-addon.yaml
new file mode 100644
index 0000000..bd7bdca
--- /dev/null
+++ b/tools/pyroscope/pyroscope-addon.yaml
@@ -0,0 +1,46 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: pyroscope-server
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: Open Source Continuous Profiling Server.
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "pyroscope" "version" "0.2.92" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 0.2.92.tgz
+ {{- end }}
+
+ valuesMapping:
+ valueMap:
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - enabled: true
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: false
diff --git a/tools/snapshot-controller/snapshot-controller-addon.yaml b/tools/snapshot-controller/snapshot-controller-addon.yaml
new file mode 100644
index 0000000..e80887f
--- /dev/null
+++ b/tools/snapshot-controller/snapshot-controller-addon.yaml
@@ -0,0 +1,96 @@
+apiVersion: extensions.kubeblocks.io/v1alpha1
+kind: Addon
+metadata:
+ name: snapshot-controller
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ "kubeblocks.io/provider": community
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+spec:
+ description: 'Deploys a Snapshot Controller in a cluster. Snapshot Controllers are
+ often bundled with the Kubernetes distribution, this chart is meant for cases where
+ it is not. '
+ type: Helm
+
+ helm:
+ {{- include "kubeblocks.addonChartLocationURL" ( dict "name" "snapshot-controller" "version" "1.7.2" "values" .Values) | indent 4 }}
+ {{- include "kubeblocks.addonChartsImage" . | indent 4 }}
+
+ installOptions:
+ {{- if hasPrefix "oci://" .Values.addonChartLocationBase }}
+ version: 1.7.2
+ {{- end }}
+
+ installValues:
+ configMapRefs:
+ - name: snapshot-controller-chart-kubeblocks-values
+ key: values-kubeblocks-override.yaml
+
+ valuesMapping:
+ valueMap:
+ replicaCount: replicaCount
+ storageClass: volumeSnapshotClasses[0].driver
+
+ jsonMap:
+ tolerations: tolerations
+
+ resources:
+ cpu:
+ requests: resources.requests.cpu
+ limits: resources.limits.cpu
+ memory:
+ requests: resources.requests.memory
+ limits: resources.limits.memory
+
+ defaultInstallValues:
+ - enabled: {{ get ( get ( .Values | toYaml | fromYaml ) "snapshot-controller" ) "enabled" }}
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - eks
+ storageClass: ebs.csi.aws.com
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - gke
+ storageClass: pd.csi.storage.gke.io
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ - selectors:
+ - key: KubeGitVersion
+ operator: Contains
+ values:
+ - aks
+ storageClass: disk.csi.azure.com
+ {{- with .Values.tolerations }}
+ tolerations: {{ toJson . | quote }}
+ {{- end }}
+
+ installable:
+ autoInstall: {{ get ( get ( .Values | toYaml | fromYaml ) "snapshot-controller" ) "enabled" }}
+ selectors:
+ - key: KubeGitVersion
+ operator: DoesNotContain
+ values:
+ - tke
+ - aliyun
+ - key: KubeProvider
+ operator: DoesNotContain
+ values:
+ - huaweiCloud
+ - azure
\ No newline at end of file
diff --git a/tools/snapshot-controller/snapshot-controller-values.yaml b/tools/snapshot-controller/snapshot-controller-values.yaml
new file mode 100644
index 0000000..2ff4b3e
--- /dev/null
+++ b/tools/snapshot-controller/snapshot-controller-values.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: snapshot-controller-chart-kubeblocks-values
+ labels:
+ {{- include "kubeblocks.labels" . | nindent 4 }}
+ {{- if .Values.keepAddons }}
+ annotations:
+ helm.sh/resource-policy: keep
+ {{- end }}
+data:
+ values-kubeblocks-override.yaml: |-
+ {{- get ( .Values | toYaml | fromYaml ) "snapshot-controller" | toYaml | nindent 4 }}
\ No newline at end of file