commit 3360ca01a2f1210c0aaaf7b96056339059d2c1c7 Author: Sun-ZhenXing <1006925066@qq.com> Date: Mon Feb 16 09:12:50 2026 +0800 init repo diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..2a02e50 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,24 @@ +root = true + +[*] +indent_size = 2 +indent_style = space +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +indent_size = 4 +trim_trailing_whitespace = false + +[Makefile] +indent_size = 4 +indent_style = tab + +[*.mk] +indent_size = 4 +indent_style = tab + +[*.yaml] +indent_size = 2 diff --git a/.github/instructions/base.instructions.md b/.github/instructions/base.instructions.md new file mode 100644 index 0000000..4e60091 --- /dev/null +++ b/.github/instructions/base.instructions.md @@ -0,0 +1,46 @@ +--- +description: Describe the guidelines for contributing to the Helm Command Template project. +--- + +# Helm Command Template Project Guidelines + +## 1. Project Intent + +The objective of this project is to provide a repository of pre-configured Helm command templates, enabling users to deploy various services quickly and consistently using a unified `make install` interface. The architecture relies on a "Template Method" pattern where a base Makefile in `src/_template` defines the core logic, and individual service directories in `src/` inherit and override specific variables. The primary challenge is ensuring that new services are based on the most popular and reliable upstream Helm Charts while maintaining a consistent user experience across different services. + +## 2. Constraints + +When contributing to or maintaining this project, you must adhere to the following rules: + +* **Directory Structure & Inheritance:** + * The core logic resides in `src/_template/Makefile`. Do not duplicate deployment logic in individual services. + * Each service must be placed in its own directory under `src/` (e.g., `src/mysql/`, `src/redis/`). + * The `Makefile` for a specific service must explicitly include the template (e.g., `include ../_template/Makefile`) and override necessary variables (Chart name, Repo URL, Version, custom flags). + +* **Adding New Services:** + * **Search First:** Before creating a new service, perform a web search to identify the most popular, well-maintained, and "de facto standard" Helm Chart for that specific software (e.g., Bitnami charts, official software charts). + * **Configuration:** Include necessary configuration files (e.g., `values.yaml` overrides) within the service directory. The goal is "batteries included" but easily modifiable. + * Always use English in `values.yaml` and `Makefile` for consistency, but provide Chinese documentation in `README.zh.md`. + +* **Version Management:** + * Use the `make versions` command (if available in the template) or manually check upstream to retrieve the latest stable version number. + * Always update the `VERSION` or `TAG` variables in the service's Makefile when updating a service. + +* **Documentation Standards:** + * **Bilingual Requirement:** Every service directory **must** contain two documentation files: + * `README.md`: English documentation. + * `README.zh.md`: Chinese documentation. + * **Content:** Both files must cover: + 1. **Introduction:** What the service is. + 2. **Installation:** How to use `make install`. + 3. **Usage:** Basic verification or connection steps. + +* **Command Interface:** + * The end-user interaction must remain simple. The primary entry point for any service is executing `make install` inside its directory. + +## 3. Summary & Attention Points + +* **User Experience:** The ultimate goal is simplicity. A user should not need to hunt for Helm flags; they should just run `make install` and get a sensible default deployment. +* **Source Quality:** Priority is given to official or widely trusted community Charts (like Bitnami) to ensure stability. +* **Localization:** Do not skip the Chinese documentation (`README.zh.md`); it is a strict requirement for this project. +* **Consistency:** Ensure all Makefiles follow the same variable naming convention defined in `src/_template` to prevent breaking the inheritance chain. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bfc498 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Ignore Helm chart default values files +*-values.yaml +values-*.yaml + +# Env +.env +.env.* +!.env.example + +# Editor directories and files +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Logs +logs +*.log diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..06e7340 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,24 @@ +{ + "prettier.enable": false, + "editor.formatOnSave": false, + "[markdown]": { + "editor.wordWrap": "on", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.markdownlint": "explicit" + }, + "editor.quickSuggestions": { + "other": "off", + "comments": "off", + "strings": "off" + } + }, + "[yaml]": { + "editor.formatOnSave": true + }, + "[dockercompose]": { + "editor.formatOnSave": true + }, + "files.eol": "\n", + "cSpell.enabled": false +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..937dd34 --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# Helm Anything + +A repository of pre-configured Helm command templates for deploying various services quickly and consistently on Kubernetes using a unified `make install` interface. + +## Overview + +This project provides a collection of Helm chart configurations for popular services, enabling users to deploy them with minimal effort. The architecture follows the "Template Method" pattern, where a base Makefile in `src/_template` defines the core deployment logic, and individual service directories inherit and override specific variables. + +## Supported Services + +The following services are currently supported: + +- ClickHouse +- Elasticsearch +- etcd +- Kafka +- Kibana +- Langfuse +- Milvus +- MinIO +- MongoDB +- OpenTelemetry Collector +- Phoenix +- PostgreSQL +- RabbitMQ +- Redis +- Valkey +- ZooKeeper + +Each service has its own directory under `src/`, containing: + +- `Makefile`: Service-specific configuration +- `values.yaml`: Helm chart values overrides +- `README.md`: English documentation +- `README.zh.md`: Chinese documentation + +## Quick Start + +1. Clone the repository: + + ```bash + git clone https://github.com/your-repo/helm-anything.git + cd helm-anything + ``` + +2. Navigate to the desired service directory: + + ```bash + cd src/redis + ``` + +3. Install the service: + + ```bash + make install + ``` + +4. Verify the deployment: + + ```bash + kubectl get pods -n + ``` + +## Prerequisites + +- Kubernetes cluster +- Helm 3.x +- kubectl configured to access your cluster + +## Contributing + +Please refer to the [contribution guidelines](.github/instructions/base.instructions.md) for details on adding new services or modifying existing ones. + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. diff --git a/src/_template/base.mk b/src/_template/base.mk new file mode 100644 index 0000000..a6aa688 --- /dev/null +++ b/src/_template/base.mk @@ -0,0 +1,64 @@ +.PHONY: repo-add +repo-add: +ifdef HELM_REPO_NAME + helm repo add $(HELM_REPO_NAME) $(HELM_REPO_URL) + helm repo update +else + @echo "NOTE: OCI helm registry do not require 'repo add', skipping this step." +endif +ifdef HELM_OCI_USERNAME + helm registry login $(HELM_OCI_REGISTRY) -u $(HELM_OCI_USERNAME) -p $(HELM_OCI_PASSWORD) +else + @echo "HELM_OCI_USERNAME is not set, skipping OCI registry login." +endif + +.PHONY: install +install: + helm upgrade $(HELM_RELEASE_NAME) $(HELM_CHART_REPO) \ + --install \ + --namespace $(HELM_NAMESPACE) \ + --create-namespace \ + $(if $(HELM_CHART_VERSION),--version $(HELM_CHART_VERSION),) \ + --values $(HELM_VALUES_FILE) > output.log 2>&1 || (cat output.log && exit 1) + +.PHONY: uninstall +uninstall: + helm uninstall $(HELM_RELEASE_NAME) --namespace $(HELM_NAMESPACE) + +.PHONY: values +values: + helm show values $(HELM_CHART_REPO) > $(HELM_APPLICATION_NAME)-values.yaml + +.PHONY: versions +versions: +ifdef HELM_OCI_REGISTRY + @echo "Fetching versions from OCI registry..." + @bash -c "if [ -n '$(HELM_OCI_USERNAME)' ]; then \ + curl -s -u $(HELM_OCI_USERNAME):\$$(echo '$(HELM_OCI_PASSWORD)') https://$(HELM_OCI_REGISTRY)/v2/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME)/tags/list; \ + else \ + curl -s https://$(HELM_OCI_REGISTRY)/v2/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME)/tags/list; \ + fi | jq -r '.tags[]' | grep -v '^sha256' | sort -V" || (echo "Failed to fetch versions from OCI registry." && exit 1) +else + @echo "Fetching versions from Helm repository..." + helm search repo $(HELM_CHART_REPO) --versions +endif + +.PHONY: watch +watch: + bash -c "watch -n 0.5 kubectl get all -n $(HELM_NAMESPACE)" + +.PHONY: helm-push +helm-push: + @if [ -d "$(HELM_DIR)" ]; then \ + helm lint $(HELM_DIR)/$(HELM_APPLICATION_NAME); \ + helm package $(HELM_DIR)/$(HELM_APPLICATION_NAME); \ + helm push $$(ls $(HELM_APPLICATION_NAME)-*.tgz) oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE); \ + rm -f $(HELM_APPLICATION_NAME)-*.tgz; \ + echo "NOTE: Helm chart uploaded successfully!"; \ + else \ + echo "HELM_DIR '$(HELM_DIR)' does not exist. Skipping helm-push."; \ + fi + +.PHONY: logs +logs: + kubectl logs -n $(HELM_NAMESPACE) -l app=$(HELM_APPLICATION_NAME) --tail=100 --follow diff --git a/src/clickhouse/Makefile b/src/clickhouse/Makefile new file mode 100644 index 0000000..37fbed6 --- /dev/null +++ b/src/clickhouse/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= clickhouse +HELM_APPLICATION_NAME ?= clickhouse +HELM_NAMESPACE ?= clickhouse +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.3.8 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= altinity +HELM_REPO_URL ?= https://helm.altinity.com +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/clickhouse/README.md b/src/clickhouse/README.md new file mode 100644 index 0000000..3523a23 --- /dev/null +++ b/src/clickhouse/README.md @@ -0,0 +1,35 @@ +# ClickHouse + +## Introduction + +ClickHouse is an open-source column-oriented database management system for online analytical processing (OLAP). + +## Installation + +To install ClickHouse, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n clickhouse +``` + +To connect to ClickHouse: + +```bash +kubectl -n clickhouse exec -it chi-clickhouse-clickhouse-0-0-0 -- clickhouse-client +``` + +Or use port forwarding: + +```bash +kubectl -n clickhouse port-forward services/clickhouse 9000:9000 +``` + +**Note**: Please change the default password in production environments. diff --git a/src/clickhouse/README.zh.md b/src/clickhouse/README.zh.md new file mode 100644 index 0000000..b257a63 --- /dev/null +++ b/src/clickhouse/README.zh.md @@ -0,0 +1,27 @@ +# ClickHouse + +## 简介 + +ClickHouse 是一个开源的面向列的数据库管理系统,用于在线分析处理 (OLAP)。 + +## 安装 + +要安装 ClickHouse,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n clickhouse +``` + +要连接到 ClickHouse: + +```bash +kubectl -n clickhouse exec -it chi-clickhouse-clickhouse-0-0-0 -- clickhouse-client +``` diff --git a/src/clickhouse/values.yaml b/src/clickhouse/values.yaml new file mode 100644 index 0000000..19c6ec2 --- /dev/null +++ b/src/clickhouse/values.yaml @@ -0,0 +1,31 @@ +clickhouse: + replicasCount: 3 + shardsCount: 1 + antiAffinity: true + defaultUser: + password: "clickhouse-password" # Change me! + allowExternalAccess: true + persistence: + enabled: true + size: 100Gi + storageClass: local-path + accessMode: ReadWriteOnce + resources: + limits: + cpu: 2000m + memory: 4Gi + requests: + cpu: 500m + memory: 1Gi + service: + type: ClusterIP + +keeper: + enabled: true + replicaCount: 3 + localStorage: + size: 10Gi + storageClass: local-path + +operator: + enabled: true diff --git a/src/elasticsearch/Makefile b/src/elasticsearch/Makefile new file mode 100644 index 0000000..4e1a9b7 --- /dev/null +++ b/src/elasticsearch/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= elasticsearch +HELM_APPLICATION_NAME ?= elasticsearch +HELM_NAMESPACE ?= elasticsearch +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 8.5.1 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= elastic +HELM_REPO_URL ?= https://helm.elastic.co +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/elasticsearch/README.md b/src/elasticsearch/README.md new file mode 100644 index 0000000..bf081d2 --- /dev/null +++ b/src/elasticsearch/README.md @@ -0,0 +1,29 @@ +# Elasticsearch + +## Introduction + +Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. + +## Installation + +To install Elasticsearch, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n elasticsearch +``` + +To access Elasticsearch, port-forward the service: + +```bash +kubectl port-forward svc/elasticsearch-master 9200:9200 -n elasticsearch +``` + +Then access at diff --git a/src/elasticsearch/README.zh.md b/src/elasticsearch/README.zh.md new file mode 100644 index 0000000..73d6f33 --- /dev/null +++ b/src/elasticsearch/README.zh.md @@ -0,0 +1,29 @@ +# Elasticsearch + +## 简介 + +Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。 + +## 安装 + +要安装 Elasticsearch,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n elasticsearch +``` + +要访问 Elasticsearch,请端口转发服务: + +```bash +kubectl port-forward svc/elasticsearch-master 9200:9200 -n elasticsearch +``` + +然后在 访问 diff --git a/src/elasticsearch/values.yaml b/src/elasticsearch/values.yaml new file mode 100644 index 0000000..13d0a4b --- /dev/null +++ b/src/elasticsearch/values.yaml @@ -0,0 +1,38 @@ +replicas: 3 +minimumMasterNodes: 2 + +volumeClaimTemplate: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 30Gi + +resources: + requests: + cpu: "500m" + memory: "2Gi" + limits: + cpu: "1000m" + memory: "2Gi" + +esConfig: + elasticsearch.yml: | + cluster.name: "elasticsearch" + network.host: 0.0.0.0 + + # 跨域配置 + http.cors.enabled: true + http.cors.allow-origin: "*" + http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length + +esJavaOpts: "-Xmx1g -Xms1g" + +service: + type: ClusterIP + port: 9200 + nodePort: "" + +xpack: + enabled: false + +clusterHealthCheckParams: "wait_for_status=yellow&timeout=1s" diff --git a/src/etcd/Makefile b/src/etcd/Makefile new file mode 100644 index 0000000..5c2a1b5 --- /dev/null +++ b/src/etcd/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= etcd +HELM_APPLICATION_NAME ?= etcd +HELM_NAMESPACE ?= etcd +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.5.3 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/etcd/README.md b/src/etcd/README.md new file mode 100644 index 0000000..16ecfa3 --- /dev/null +++ b/src/etcd/README.md @@ -0,0 +1,27 @@ +# etcd + +## Introduction + +etcd is a distributed key-value store that provides a reliable way to store data across a cluster of machines. + +## Installation + +To install etcd, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n etcd +``` + +To connect to etcd, use etcdctl: + +```bash +kubectl -n etcd exec -it etcd-0 -- etcdctl get / --prefix +``` diff --git a/src/etcd/README.zh.md b/src/etcd/README.zh.md new file mode 100644 index 0000000..c207a5f --- /dev/null +++ b/src/etcd/README.zh.md @@ -0,0 +1,27 @@ +# etcd + +## 简介 + +etcd 是一个分布式键值存储,提供了一种可靠的方式来跨集群机器存储数据。 + +## 安装 + +要安装 etcd,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n etcd +``` + +要连接到 etcd,使用 etcdctl: + +```bash +kubectl -n etcd exec -it etcd-0 -- etcdctl get / --prefix +``` diff --git a/src/etcd/values.yaml b/src/etcd/values.yaml new file mode 100644 index 0000000..5d1cc27 --- /dev/null +++ b/src/etcd/values.yaml @@ -0,0 +1,11 @@ +persistence: + enabled: true + storageClass: local-path + +resources: + requests: + cpu: 1 + memory: 512Mi + limits: + cpu: 2 + memory: 2048Mi diff --git a/src/kafka/Makefile b/src/kafka/Makefile new file mode 100644 index 0000000..4f7da05 --- /dev/null +++ b/src/kafka/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= strimzi-kafka-operator +HELM_APPLICATION_NAME ?= strimzi-kafka-operator +HELM_NAMESPACE ?= kafka +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.50.0 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= strimzi +HELM_REPO_URL ?= https://strimzi.io/charts/ +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/kafka/README.md b/src/kafka/README.md new file mode 100644 index 0000000..a681dd3 --- /dev/null +++ b/src/kafka/README.md @@ -0,0 +1,27 @@ +# Kafka + +## Introduction + +Apache Kafka is an open-source distributed event streaming platform used for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. + +## Installation + +To install Kafka, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n kafka +``` + +To produce and consume messages, use Kafka tools: + +```bash +kubectl -n kafka exec -it kafka-cluster-kafka-0 -- kafka-console-producer.sh --broker-list kafka-cluster-kafka-bootstrap:9092 --topic test +``` diff --git a/src/kafka/README.zh.md b/src/kafka/README.zh.md new file mode 100644 index 0000000..6dee32b --- /dev/null +++ b/src/kafka/README.zh.md @@ -0,0 +1,27 @@ +# Kafka + +## 简介 + +Apache Kafka 是一个开源的分布式事件流平台,用于高性能数据管道、流分析、数据集成和关键任务应用。 + +## 安装 + +要安装 Kafka,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n kafka +``` + +要生产和消费消息,使用 Kafka 工具: + +```bash +kubectl -n kafka exec -it kafka-cluster-kafka-0 -- kafka-console-producer.sh --broker-list kafka-cluster-kafka-bootstrap:9092 --topic test +``` diff --git a/src/kafka/kafka-cluster.yaml b/src/kafka/kafka-cluster.yaml new file mode 100644 index 0000000..914b6b3 --- /dev/null +++ b/src/kafka/kafka-cluster.yaml @@ -0,0 +1,68 @@ +apiVersion: kafka.strimzi.io/v1beta2 +kind: Kafka +metadata: + name: kafka-cluster +spec: + kafka: + version: 3.6.0 + replicas: 3 + listeners: + - name: plain + port: 9092 + type: internal + tls: false + - name: tls + port: 9093 + type: internal + tls: true + config: + offsets.topic.replication.factor: 3 + transaction.state.log.replication.factor: 3 + transaction.state.log.min.isr: 2 + default.replication.factor: 3 + min.insync.replicas: 2 + inter.broker.protocol.version: "3.6" + storage: + type: jbod + volumes: + - id: 0 + type: persistent-claim + size: 100Gi + deleteClaim: false + resources: + requests: + memory: 2Gi + cpu: "1" + limits: + memory: 2Gi + cpu: "2" + zookeeper: + replicas: 3 + storage: + type: persistent-claim + size: 10Gi + deleteClaim: false + resources: + requests: + memory: 1Gi + cpu: "0.5" + limits: + memory: 1Gi + cpu: "1" + entityOperator: + topicOperator: + resources: + requests: + memory: 512Mi + cpu: "0.2" + limits: + memory: 512Mi + cpu: "0.5" + userOperator: + resources: + requests: + memory: 512Mi + cpu: "0.2" + limits: + memory: 512Mi + cpu: "0.5" diff --git a/src/kafka/values.yaml b/src/kafka/values.yaml new file mode 100644 index 0000000..57fef5b --- /dev/null +++ b/src/kafka/values.yaml @@ -0,0 +1,12 @@ +watchNamespaces: [] + +resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 100m + memory: 128Mi + +logLevel: INFO +generateNetworkPolicy: false diff --git a/src/kibana/Makefile b/src/kibana/Makefile new file mode 100644 index 0000000..fe3e9eb --- /dev/null +++ b/src/kibana/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= kibana +HELM_APPLICATION_NAME ?= kibana +HELM_NAMESPACE ?= elastic +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 8.5.1 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= elastic +HELM_REPO_URL ?= https://helm.elastic.co +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/kibana/README.md b/src/kibana/README.md new file mode 100644 index 0000000..e4fcf97 --- /dev/null +++ b/src/kibana/README.md @@ -0,0 +1,29 @@ +# Kibana + +## Introduction + +Kibana is a data visualization and exploration tool used for log and time-series analytics, application monitoring, and operational intelligence use cases. + +## Installation + +To install Kibana, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n kibana +``` + +To access Kibana, port-forward the service: + +```bash +kubectl port-forward svc/kibana-kibana 5601:5601 -n kibana +``` + +Then access at diff --git a/src/kibana/README.zh.md b/src/kibana/README.zh.md new file mode 100644 index 0000000..230d8fe --- /dev/null +++ b/src/kibana/README.zh.md @@ -0,0 +1,29 @@ +# Kibana + +## 简介 + +Kibana 是一个用于日志和时间序列分析、应用监控和运营智能用例的数据可视化和探索工具。 + +## 安装 + +要安装 Kibana,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n kibana +``` + +要访问 Kibana,请端口转发服务: + +```bash +kubectl port-forward svc/kibana-kibana 5601:5601 -n kibana +``` + +然后在 访问 diff --git a/src/kibana/values.yaml b/src/kibana/values.yaml new file mode 100644 index 0000000..c3701d0 --- /dev/null +++ b/src/kibana/values.yaml @@ -0,0 +1,31 @@ +replicas: 3 + +elasticsearchHosts: "http://elasticsearch:9200" + +resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" + +kibanaConfig: + kibana.yml: | + server.name: kibana + server.host: "0.0.0.0" + +service: + type: ClusterIP + port: 5601 + +healthCheckPath: "/api/status" + +ingress: + enabled: false + className: "nginx" + hosts: + - host: kibana.example.com + paths: + - path: / + pathType: Prefix diff --git a/src/langfuse/Makefile b/src/langfuse/Makefile new file mode 100644 index 0000000..825166c --- /dev/null +++ b/src/langfuse/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= langfuse +HELM_APPLICATION_NAME ?= langfuse +HELM_NAMESPACE ?= langfuse +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 1.5.19 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= langfuse +HELM_REPO_URL ?= https://langfuse.github.io/langfuse-k8s +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/langfuse/README.md b/src/langfuse/README.md new file mode 100644 index 0000000..20ea3e4 --- /dev/null +++ b/src/langfuse/README.md @@ -0,0 +1,29 @@ +# Langfuse + +## Introduction + +Langfuse is an open-source LLM engineering platform for observability, prompt management, and evaluation. + +## Installation + +To install Langfuse, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n langfuse +``` + +To access Langfuse, port-forward the service: + +```bash +kubectl port-forward svc/langfuse 3000:3000 -n langfuse +``` + +Then access at diff --git a/src/langfuse/README.zh.md b/src/langfuse/README.zh.md new file mode 100644 index 0000000..4544510 --- /dev/null +++ b/src/langfuse/README.zh.md @@ -0,0 +1,29 @@ +# Langfuse + +## 简介 + +Langfuse 是一个开源的 LLM 工程平台,用于可观测性、提示管理和评估。 + +## 安装 + +要安装 Langfuse,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n langfuse +``` + +要访问 Langfuse,请端口转发服务: + +```bash +kubectl port-forward svc/langfuse 3000:3000 -n langfuse +``` + +然后在 访问 diff --git a/src/langfuse/values.yaml b/src/langfuse/values.yaml new file mode 100644 index 0000000..27ad6a9 --- /dev/null +++ b/src/langfuse/values.yaml @@ -0,0 +1,49 @@ +langfuse: + replicas: 3 + web: + replicas: 3 + salt: + value: "salt-key" # Change me: $ openssl rand -base64 32 + nextauth: + url: http://langfuse-web:3000 # Change me if you change the web service name or port + secret: + value: "secret-key" # Change me: $ openssl rand -hex 32 + additionalEnv: + - name: "DATABASE_URL" + value: "postgres://postgres:wFvh4a6QdJ@postgres-postgresql.db:5432/postgres_langfuse" + encryptionKey: + value: "encryption-key" # Change me: $ openssl rand -hex 32 + +postgresql: + deploy: false + directUrl: "postgres://postgres:wFvh4a6QdJ@postgres-postgresql.db:5432/postgres_langfuse" + auth: + secretKeys: + adminPasswordKey: "wFvh4a6QdJ" + password: "wFvh4a6QdJ" + +redis: + auth: + password: "FfuNDfCpeUUmmcD5GS7FMBm" + +clickhouse: + auth: + password: "FfuNDfCpeUUmmcD5GS7FMBm" + clusterEnabled: true + replicaCount: 3 + resources: + requests: + memory: "512Mi" + cpu: "500m" + limits: + memory: "4Gi" + cpu: "1" + zookeeper: + enabled: true + resources: + requests: + memory: "512Mi" + cpu: "500m" + limits: + memory: "4Gi" + cpu: "1" diff --git a/src/milvus/Makefile b/src/milvus/Makefile new file mode 100644 index 0000000..45e3f35 --- /dev/null +++ b/src/milvus/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= milvus +HELM_APPLICATION_NAME ?= milvus +HELM_NAMESPACE ?= milvus +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 5.0.13 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= milvus +HELM_REPO_URL ?= https://zilliztech.github.io/milvus-helm +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/milvus/README.md b/src/milvus/README.md new file mode 100644 index 0000000..e2ec455 --- /dev/null +++ b/src/milvus/README.md @@ -0,0 +1,29 @@ +# Milvus + +## Introduction + +Milvus is an open-source vector database built to power embedding similarity search and AI applications. + +## Installation + +To install Milvus, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n milvus +``` + +To connect to Milvus, use the Python SDK or REST API. Port-forward the service: + +```bash +kubectl port-forward svc/milvus 19530:19530 -n milvus +``` + +Then connect using the client. diff --git a/src/milvus/README.zh.md b/src/milvus/README.zh.md new file mode 100644 index 0000000..728cabf --- /dev/null +++ b/src/milvus/README.zh.md @@ -0,0 +1,29 @@ +# Milvus + +## 简介 + +Milvus 是一个开源的向量数据库,专为嵌入相似性搜索和 AI 应用而构建。 + +## 安装 + +要安装 Milvus,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n milvus +``` + +要连接到 Milvus,使用 Python SDK 或 REST API。端口转发服务: + +```bash +kubectl port-forward svc/milvus 19530:19530 -n milvus +``` + +然后使用客户端连接。 diff --git a/src/milvus/values.yaml b/src/milvus/values.yaml new file mode 100644 index 0000000..0e8db41 --- /dev/null +++ b/src/milvus/values.yaml @@ -0,0 +1,67 @@ +cluster: + enabled: false + +service: + type: LoadBalancer + +persistence: + enabled: true + storageClass: local-path + accessMode: ReadWriteOnce + size: 50Gi + +attu: + enabled: true + ingress: + enabled: true + ingressClassName: nginx + annotations: {} + hosts: + - attu.local + +ingress: + enabled: true + ingressClassName: nginx + annotations: {} + labels: {} + rules: + - host: milvus.local + path: / + pathType: Prefix + +standalone: + enabled: true + resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" + persistence: + persistentVolumeClaim: + storageClass: local-path + +pulsarv3: + enabled: false + +minio: + enabled: true + name: minio + mode: standalone + persistence: + enabled: true + existingClaim: "" + storageClass: local-path + accessMode: ReadWriteOnce + size: 500Gi + +etcd: + enabled: true + name: etcd + replicaCount: 3 + persistence: + enabled: true + storageClass: local-path + accessMode: ReadWriteOnce + size: 10Gi diff --git a/src/minio/Makefile b/src/minio/Makefile new file mode 100644 index 0000000..69ea59d --- /dev/null +++ b/src/minio/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= minio +HELM_APPLICATION_NAME ?= minio +HELM_NAMESPACE ?= minio +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.8.2 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/minio/README.md b/src/minio/README.md new file mode 100644 index 0000000..80c572f --- /dev/null +++ b/src/minio/README.md @@ -0,0 +1,29 @@ +# MinIO + +## Introduction + +MinIO is a high-performance, S3 compatible object store. + +## Installation + +To install MinIO, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n minio +``` + +To access MinIO, port-forward the service: + +```bash +kubectl port-forward svc/minio 9000:9000 -n minio +``` + +Then access the console at diff --git a/src/minio/README.zh.md b/src/minio/README.zh.md new file mode 100644 index 0000000..6c7e3bb --- /dev/null +++ b/src/minio/README.zh.md @@ -0,0 +1,29 @@ +# MinIO + +## 简介 + +MinIO 是一个高性能、与 S3 兼容的对象存储。 + +## 安装 + +要安装 MinIO,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n minio +``` + +要访问 MinIO,请端口转发服务: + +```bash +kubectl port-forward svc/minio 9000:9000 -n minio +``` + +然后在 访问控制台 diff --git a/src/minio/values.yaml b/src/minio/values.yaml new file mode 100644 index 0000000..469454c --- /dev/null +++ b/src/minio/values.yaml @@ -0,0 +1,27 @@ +replicaCount: 3 + +auth: + rootUser: admin + rootPassword: "root-password" # Change me: $ openssl rand -base64 12 + +ingress: + enabled: true + className: nginx + annotations: {} + hosts: + - host: minio.local + paths: + - path: / + pathType: Prefix + +persistence: + enabled: true + storageClass: local-path + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/mongodb/Makefile b/src/mongodb/Makefile new file mode 100644 index 0000000..0aa1c7b --- /dev/null +++ b/src/mongodb/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= mongodb +HELM_APPLICATION_NAME ?= mongodb +HELM_NAMESPACE ?= mongodb +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.10.3 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/mongodb/README.md b/src/mongodb/README.md new file mode 100644 index 0000000..e8a0d4b --- /dev/null +++ b/src/mongodb/README.md @@ -0,0 +1,27 @@ +# MongoDB + +## Introduction + +MongoDB is a source-available cross-platform document-oriented database program. + +## Installation + +To install MongoDB, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n mongodb +``` + +To connect to MongoDB: + +```bash +kubectl -n mongodb exec -it mongodb-0 -- mongosh +``` diff --git a/src/mongodb/README.zh.md b/src/mongodb/README.zh.md new file mode 100644 index 0000000..c89c091 --- /dev/null +++ b/src/mongodb/README.zh.md @@ -0,0 +1,27 @@ +# MongoDB + +## 简介 + +MongoDB 是一个源代码可用的跨平台面向文档的数据库程序。 + +## 安装 + +要安装 MongoDB,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n mongodb +``` + +要连接到 MongoDB: + +```bash +kubectl -n mongodb exec -it mongodb-0 -- mongosh +``` diff --git a/src/mongodb/values.yaml b/src/mongodb/values.yaml new file mode 100644 index 0000000..04af85d --- /dev/null +++ b/src/mongodb/values.yaml @@ -0,0 +1,23 @@ +replicaCount: 3 + +replicaSet: + enabled: true + name: rs0 + key: "qJlSywRHAWOysZaow3uE5f3BQAY/1ml/" # change me! + +auth: + enabled: true + rootUsername: admin + rootPassword: "password" # Change me! + +persistence: + enabled: true + storageClass: local-path + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/opentelemetry-collector/Makefile b/src/opentelemetry-collector/Makefile new file mode 100644 index 0000000..23785ee --- /dev/null +++ b/src/opentelemetry-collector/Makefile @@ -0,0 +1,14 @@ +HELM_RELEASE_NAME ?= opentelemetry-collector +HELM_APPLICATION_NAME ?= opentelemetry-collector +HELM_NAMESPACE ?= observability +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= latest +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= +HELM_REPO_NAME ?= open-telemetry +HELM_REPO_URL ?= https://open-telemetry.github.io/opentelemetry-helm-charts +HELM_CHART_REPO ?= $(HELM_REPO_NAME)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/opentelemetry-collector/README.md b/src/opentelemetry-collector/README.md new file mode 100644 index 0000000..f5c199d --- /dev/null +++ b/src/opentelemetry-collector/README.md @@ -0,0 +1,23 @@ +# OpenTelemetry Collector + +## Introduction + +OpenTelemetry Collector is a vendor-agnostic implementation on how to receive, process and export telemetry data. + +## Installation + +To install OpenTelemetry Collector, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n opentelemetry-collector +``` + +The collector will receive telemetry data based on its configuration and export it to configured backends. diff --git a/src/opentelemetry-collector/README.zh.md b/src/opentelemetry-collector/README.zh.md new file mode 100644 index 0000000..371526e --- /dev/null +++ b/src/opentelemetry-collector/README.zh.md @@ -0,0 +1,23 @@ +# OpenTelemetry Collector + +## 简介 + +OpenTelemetry Collector 是一个供应商无关的实现,用于接收、处理和导出遥测数据。 + +## 安装 + +要安装 OpenTelemetry Collector,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n opentelemetry-collector +``` + +收集器将根据其配置接收遥测数据并导出到配置的后端。 diff --git a/src/opentelemetry-collector/values.yaml b/src/opentelemetry-collector/values.yaml new file mode 100644 index 0000000..81f1988 --- /dev/null +++ b/src/opentelemetry-collector/values.yaml @@ -0,0 +1,58 @@ +mode: deployment + +config: + receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + + processors: + batch: {} + memory_limiter: + limit_percentage: 80 + spike_limit_percentage: 25 + + exporters: + logging: + loglevel: info + + service: + pipelines: + traces: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [logging] + metrics: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [logging] + logs: + receivers: [otlp] + processors: [memory_limiter, batch] + exporters: [logging] + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" + +service: + type: ClusterIP + +ports: + otlp: + enabled: true + containerPort: 4317 + servicePort: 4317 + protocol: TCP + otlp-http: + enabled: true + containerPort: 4318 + servicePort: 4318 + protocol: TCP diff --git a/src/phoenix/Makefile b/src/phoenix/Makefile new file mode 100644 index 0000000..d8ce29c --- /dev/null +++ b/src/phoenix/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= phoenix +HELM_APPLICATION_NAME ?= phoenix +HELM_NAMESPACE ?= phoenix +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 4.0.37 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= arizephoenix +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/phoenix-helm +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/phoenix/README.md b/src/phoenix/README.md new file mode 100644 index 0000000..04c73c1 --- /dev/null +++ b/src/phoenix/README.md @@ -0,0 +1,29 @@ +# Phoenix + +## Introduction + +Arize Phoenix is an open-source tool for ML observability that runs in your notebook or application to visualize and monitor your model performance. + +## Installation + +To install Phoenix, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n phoenix +``` + +To access Phoenix, port-forward the service: + +```bash +kubectl port-forward svc/phoenix 6006:6006 -n phoenix +``` + +Then access at diff --git a/src/phoenix/README.zh.md b/src/phoenix/README.zh.md new file mode 100644 index 0000000..2945afb --- /dev/null +++ b/src/phoenix/README.zh.md @@ -0,0 +1,29 @@ +# Phoenix + +## 简介 + +Arize Phoenix 是一个开源工具,用于 ML 可观测性,在您的笔记本或应用中运行以可视化和监控模型性能。 + +## 安装 + +要安装 Phoenix,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n phoenix +``` + +要访问 Phoenix,请端口转发服务: + +```bash +kubectl port-forward svc/phoenix 6006:6006 -n phoenix +``` + +然后在 访问 diff --git a/src/phoenix/values.yaml b/src/phoenix/values.yaml new file mode 100644 index 0000000..ea224ec --- /dev/null +++ b/src/phoenix/values.yaml @@ -0,0 +1,47 @@ +replicaCount: 3 + +ingress: + enabled: true + className: nginx + pathType: Prefix + annotations: {} + host: phoenix.local + +postgresql: + enabled: false + +database: + allocatedStorageGiB: 100 + defaultRetentionPolicyDays: 0 + postgres: + db: phoenix + host: phoenix-postgres + password: phoenix-postgres-password # Change me! + port: 5432 + schema: public + user: phoenix + +service: + type: LoadBalancer + +auth: + enableAuth: false + secret: + - key: "PHOENIX_SECRET" + value: "phoenix-secret" # Change me! + - key: "PHOENIX_ADMIN_SECRET" + value: "phoenix-admin-secret" # Change me! + - key: "PHOENIX_POSTGRES_PASSWORD" + value: "phoenix-postgres-password" # Change me! + - key: "PHOENIX_SMTP_PASSWORD" + value: "phoenix-smtp-password" # Change me! + - key: "PHOENIX_DEFAULT_ADMIN_INITIAL_PASSWORD" + value: "phoenix-default-admin-initial-password" # Change me! + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/postgres/Makefile b/src/postgres/Makefile new file mode 100644 index 0000000..2e230ed --- /dev/null +++ b/src/postgres/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= postgres +HELM_APPLICATION_NAME ?= postgres +HELM_NAMESPACE ?= postgres +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.15.5 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/postgres/README.md b/src/postgres/README.md new file mode 100644 index 0000000..5370b11 --- /dev/null +++ b/src/postgres/README.md @@ -0,0 +1,27 @@ +# PostgreSQL + +## Introduction + +PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development. + +## Installation + +To install PostgreSQL, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n postgres +``` + +To connect to PostgreSQL: + +```bash +kubectl -n postgres exec -it postgres-0 -- psql -U postgres +``` diff --git a/src/postgres/README.zh.md b/src/postgres/README.zh.md new file mode 100644 index 0000000..ac0ef88 --- /dev/null +++ b/src/postgres/README.zh.md @@ -0,0 +1,27 @@ +# PostgreSQL + +## 简介 + +PostgreSQL 是一个强大的开源对象关系数据库系统,已有超过 35 年的活跃开发。 + +## 安装 + +要安装 PostgreSQL,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n postgres +``` + +要连接到 PostgreSQL: + +```bash +kubectl -n postgres exec -it postgres-0 -- psql -U postgres +``` diff --git a/src/postgres/values.yaml b/src/postgres/values.yaml new file mode 100644 index 0000000..30f2ea4 --- /dev/null +++ b/src/postgres/values.yaml @@ -0,0 +1,3 @@ +persistence: + enabled: true + storageClass: local-path diff --git a/src/rabbitmq/Makefile b/src/rabbitmq/Makefile new file mode 100644 index 0000000..b5b23e6 --- /dev/null +++ b/src/rabbitmq/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= rabbitmq +HELM_APPLICATION_NAME ?= rabbitmq +HELM_NAMESPACE ?= rabbitmq +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.15.7 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/rabbitmq/README.md b/src/rabbitmq/README.md new file mode 100644 index 0000000..f965426 --- /dev/null +++ b/src/rabbitmq/README.md @@ -0,0 +1,29 @@ +# RabbitMQ + +## Introduction + +RabbitMQ is the most widely deployed open source message broker. + +## Installation + +To install RabbitMQ, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n rabbitmq +``` + +To access RabbitMQ management UI, port-forward the service: + +```bash +kubectl port-forward svc/rabbitmq 15672:15672 -n rabbitmq +``` + +Then access at diff --git a/src/rabbitmq/README.zh.md b/src/rabbitmq/README.zh.md new file mode 100644 index 0000000..3ffd8eb --- /dev/null +++ b/src/rabbitmq/README.zh.md @@ -0,0 +1,29 @@ +# RabbitMQ + +## 简介 + +RabbitMQ 是部署最广泛的开源消息代理。 + +## 安装 + +要安装 RabbitMQ,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n rabbitmq +``` + +要访问 RabbitMQ 管理 UI,请端口转发服务: + +```bash +kubectl port-forward svc/rabbitmq 15672:15672 -n rabbitmq +``` + +然后在 访问 diff --git a/src/rabbitmq/values.yaml b/src/rabbitmq/values.yaml new file mode 100644 index 0000000..95275ba --- /dev/null +++ b/src/rabbitmq/values.yaml @@ -0,0 +1,27 @@ +replicaCount: 3 + +auth: + password: "password" # Change me! + erlangCookie: "erlang-cookie" # Change me! + +ingress: + enabled: true + className: nginx + annotations: {} + hosts: + - host: rabbitmq.local + paths: + - path: / + pathType: Prefix + +persistence: + enabled: true + storageClass: local-path + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/redis/Makefile b/src/redis/Makefile new file mode 100644 index 0000000..b0850e5 --- /dev/null +++ b/src/redis/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= redis +HELM_APPLICATION_NAME ?= redis +HELM_NAMESPACE ?= redis +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.22.2 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/redis/README.md b/src/redis/README.md new file mode 100644 index 0000000..5084c71 --- /dev/null +++ b/src/redis/README.md @@ -0,0 +1,27 @@ +# Redis + +## Introduction + +Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. + +## Installation + +To install Redis, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n redis +``` + +To connect to Redis: + +```bash +kubectl -n redis exec -it redis-master-0 -- redis-cli +``` diff --git a/src/redis/README.zh.md b/src/redis/README.zh.md new file mode 100644 index 0000000..3d6bb02 --- /dev/null +++ b/src/redis/README.zh.md @@ -0,0 +1,27 @@ +# Redis + +## 简介 + +Redis 是一个开源 (BSD 许可) 的内存数据结构存储,用作数据库、缓存和消息代理。 + +## 安装 + +要安装 Redis,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n redis +``` + +要连接到 Redis: + +```bash +kubectl -n redis exec -it redis-master-0 -- redis-cli +``` diff --git a/src/redis/values.yaml b/src/redis/values.yaml new file mode 100644 index 0000000..a8b5299 --- /dev/null +++ b/src/redis/values.yaml @@ -0,0 +1,20 @@ +architecture: standalone + +service: + type: LoadBalancer + +auth: + enabled: true + password: "password" # Change me! + +persistence: + enabled: true + storageClass: local-path + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/valkey/Makefile b/src/valkey/Makefile new file mode 100644 index 0000000..1e16969 --- /dev/null +++ b/src/valkey/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= valkey +HELM_APPLICATION_NAME ?= valkey +HELM_NAMESPACE ?= valkey +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.15.3 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/valkey/README.md b/src/valkey/README.md new file mode 100644 index 0000000..a3b3824 --- /dev/null +++ b/src/valkey/README.md @@ -0,0 +1,27 @@ +# Valkey + +## Introduction + +Valkey is an open-source (BSD licensed) high-performance key/value datastore that supports a variety of workloads such as caching, message queues, and can act as a primary database. + +## Installation + +To install Valkey, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n valkey +``` + +To connect to Valkey: + +```bash +kubectl -n valkey exec -it valkey-master-0 -- valkey-cli +``` diff --git a/src/valkey/README.zh.md b/src/valkey/README.zh.md new file mode 100644 index 0000000..85dac70 --- /dev/null +++ b/src/valkey/README.zh.md @@ -0,0 +1,27 @@ +# Valkey + +## 简介 + +Valkey 是一个开源 (BSD 许可) 的高性能键/值数据存储,支持各种工作负载,如缓存、消息队列,并可以作为主数据库。 + +## 安装 + +要安装 Valkey,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n valkey +``` + +要连接到 Valkey: + +```bash +kubectl -n valkey exec -it valkey-master-0 -- valkey-cli +``` diff --git a/src/valkey/values.yaml b/src/valkey/values.yaml new file mode 100644 index 0000000..716776f --- /dev/null +++ b/src/valkey/values.yaml @@ -0,0 +1,19 @@ +architecture: replication + +replicaCount: 3 + +persistence: + enabled: true + storageClass: local-path + +auth: + enabled: true + password: "password" # Change me! + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi" diff --git a/src/zookeeper/Makefile b/src/zookeeper/Makefile new file mode 100644 index 0000000..25302c1 --- /dev/null +++ b/src/zookeeper/Makefile @@ -0,0 +1,16 @@ +HELM_RELEASE_NAME ?= zookeeper +HELM_APPLICATION_NAME ?= zookeeper +HELM_NAMESPACE ?= zookeeper +HELM_DIR ?= ./helm +HELM_CHART_VERSION ?= 0.5.5 +HELM_VALUES_FILE ?= ./values.yaml +HELM_OCI_REGISTRY ?= docker.io +HELM_OCI_NAMESPACE ?= cloudpirates +HELM_OCI_USERNAME ?= +HELM_OCI_PASSWORD ?= +HELM_REPO_NAME ?= +HELM_REPO_URL ?= +HELM_CHART_REPO ?= oci://$(HELM_OCI_REGISTRY)/$(HELM_OCI_NAMESPACE)/$(HELM_APPLICATION_NAME) +HELM_LANE ?= + +include ../_template/base.mk diff --git a/src/zookeeper/README.md b/src/zookeeper/README.md new file mode 100644 index 0000000..5a7406b --- /dev/null +++ b/src/zookeeper/README.md @@ -0,0 +1,27 @@ +# ZooKeeper + +## Introduction + +Apache ZooKeeper is an open-source server which enables highly reliable distributed coordination. + +## Installation + +To install ZooKeeper, run: + +```bash +make install +``` + +## Usage + +After installation, verify the deployment: + +```bash +kubectl get pods -n zookeeper +``` + +To connect to ZooKeeper: + +```bash +kubectl -n zookeeper exec -it zookeeper-0 -- zkCli.sh +``` diff --git a/src/zookeeper/README.zh.md b/src/zookeeper/README.zh.md new file mode 100644 index 0000000..365beaf --- /dev/null +++ b/src/zookeeper/README.zh.md @@ -0,0 +1,27 @@ +# ZooKeeper + +## 简介 + +Apache ZooKeeper 是一个开源服务器,支持高度可靠的分布式协调。 + +## 安装 + +要安装 ZooKeeper,请运行: + +```bash +make install +``` + +## 使用 + +安装后,验证部署: + +```bash +kubectl get pods -n zookeeper +``` + +要连接到 ZooKeeper: + +```bash +kubectl -n zookeeper exec -it zookeeper-0 -- zkCli.sh +``` diff --git a/src/zookeeper/values.yaml b/src/zookeeper/values.yaml new file mode 100644 index 0000000..814e16c --- /dev/null +++ b/src/zookeeper/values.yaml @@ -0,0 +1,14 @@ +persistence: + enabled: true + storageClass: local-path + +service: + type: LoadBalancer + +resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "0.1" + memory: "512Mi"