mirror of
https://github.com/dromara/hertzbeat.git
synced 2026-09-17 09:40:58 +00:00
[infra] add sub git module hertzbeat-helm-chart (#2522)
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
# contributor license agreements. See the NOTICE file distributed with
|
||||||
|
# this work for additional information regarding copyright ownership.
|
||||||
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
# (the "License"); you may not use this file except in compliance with
|
||||||
|
# the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
[submodule "script/helm/hertzbeat-helm-chart"]
|
||||||
|
path = script/helm/hertzbeat-helm-chart
|
||||||
|
url = git@github.com:apache/hertzbeat-helm-chart.git
|
||||||
|
branch = main
|
||||||
Submodule
+1
Submodule script/helm/hertzbeat-helm-chart added at 74027a5fda
@@ -1,23 +0,0 @@
|
|||||||
# Patterns to ignore when building packages.
|
|
||||||
# This supports shell glob matching, relative path matching, and
|
|
||||||
# negation (prefixed with !). Only one pattern per line.
|
|
||||||
.DS_Store
|
|
||||||
# Common VCS dirs
|
|
||||||
.git/
|
|
||||||
.gitignore
|
|
||||||
.bzr/
|
|
||||||
.bzrignore
|
|
||||||
.hg/
|
|
||||||
.hgignore
|
|
||||||
.svn/
|
|
||||||
# Common backup files
|
|
||||||
*.swp
|
|
||||||
*.bak
|
|
||||||
*.tmp
|
|
||||||
*.orig
|
|
||||||
*~
|
|
||||||
# Various IDEs
|
|
||||||
.project
|
|
||||||
.idea/
|
|
||||||
*.tmproj
|
|
||||||
.vscode/
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v2
|
|
||||||
name: hertzbeat
|
|
||||||
description: An open-source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities.
|
|
||||||
type: application
|
|
||||||
home: https://hertzbeat.apache.org/
|
|
||||||
sources:
|
|
||||||
- https://github.com/apache/hertzbeat
|
|
||||||
maintainers:
|
|
||||||
- name: hertzbeat-dev
|
|
||||||
email: dev@hertzbeat.apache.org
|
|
||||||
icon: https://raw.githubusercontent.com/apache/hertzbeat/master/home/static/img/hertzbeat-logo.png
|
|
||||||
# This is the chart version. This version number should be incremented each time you make changes
|
|
||||||
# to the chart and its templates, including the app version.
|
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
|
||||||
version: 1.6.0
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
|
||||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
|
||||||
# It is recommended to use it with quotes.
|
|
||||||
appVersion: "v1.6.0"
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
# Helm Chart for Apache HertzBeat (incubating)
|
|
||||||
|
|
||||||
[](https://artifacthub.io/packages/search?repo=hertzbeat)
|
|
||||||
|
|
||||||
<div class="artifacthub-widget" data-url="https://artifacthub.io/packages/helm/hertzbeat/hertzbeat" data-theme="light" data-header="true" data-stars="true" data-responsive="false"><blockquote><p lang="en" dir="ltr"><b>hertzbeat</b>: An open-source, real-time monitoring system with custom monitoring, high performance cluster and agentless capabilities.</p>— Open in <a href="https://artifacthub.io/packages/helm/hertzbeat/hertzbeat">Artifact Hub</a></blockquote></div><script async src="https://artifacthub.io/artifacthub-widget.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
## What is Apache HertzBeat (incubating)?
|
|
||||||
|
|
||||||
[Apache HertzBeat](https://github.com/apache/hertzbeat) (incubating) is an easy-to-use, open source, real-time monitoring system with agentless, high performance cluster, prometheus-compatible, offers powerful custom monitoring and status page building capabilities.
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Combines **monitoring, alarm, and notification** features into one platform, and supports monitoring for web service, program, database, cache, os, webserver, middleware, bigdata, cloud-native, network, custom and more.
|
|
||||||
* Easy to use and agentless, web-based and with one-click monitoring and alerting, zero learning curve.
|
|
||||||
* Makes protocols such as `Http, Jmx, Ssh, Snmp, Jdbc, Prometheus` configurable, allowing you to collect any metrics by simply configuring the template `YML` file online. Imagine being able to quickly adapt to a new monitoring type like K8s or Docker simply by configuring online with HertzBeat.
|
|
||||||
* Compatible with the `Prometheus` ecosystem and more, can monitoring what `Prometheus` can monitoring with few clicks on webui.
|
|
||||||
* High performance, supports horizontal expansion of multi-collector clusters, multi-isolated network monitoring and cloud-edge collaboration.
|
|
||||||
* Provides flexible alarm threshold rules and timely notifications delivered via `Discord` `Slack` `Telegram` `Email` `Dingtalk` `WeChat` `FeiShu` `Webhook` `SMS` `ServerChan`.
|
|
||||||
* Provides powerful status page building capabilities, easily communicate the real-time status of your service to users.
|
|
||||||
|
|
||||||
|
|
||||||
> HertzBeat's powerful customization, multi-type support, high performance, easy expansion, and low coupling, aims to help developers and teams quickly build their own monitoring system.
|
|
||||||
|
|
||||||
## Helm Chart for HertzBeat
|
|
||||||
|
|
||||||
This [Helm](https://github.com/kubernetes/helm) chart installs [HertzBeat](https://github.com/apache/hertzbeat) in a Kubernetes cluster. Welcome to [contribute](https://github.com/apache/hertzbeat/tree/master/script/helm) to Helm Chart for HertzBeat.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Kubernetes cluster 1.20+
|
|
||||||
- Helm v3.2.0+
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Add Helm repository
|
|
||||||
|
|
||||||
```bash
|
|
||||||
helm repo add hertzbeat https://charts.hertzbeat.com/
|
|
||||||
helm repo update
|
|
||||||
```
|
|
||||||
|
|
||||||
### Configure the chart
|
|
||||||
|
|
||||||
The following items can be set via `--set` flag during installation or configured by editing the `values.yaml` directly (need to download the chart first).
|
|
||||||
|
|
||||||
#### Configure how to expose HertzBeat service
|
|
||||||
|
|
||||||
- **Ingress**: The ingress controller must be installed in the Kubernetes cluster.
|
|
||||||
- **ClusterIP**: Exposes the service on a cluster-internal IP. Choosing this value makes the service only reachable from within the cluster.
|
|
||||||
- **NodePort**: Exposes the service on each Node’s IP at a static port (the NodePort). You’ll be able to contact the NodePort service, from outside the cluster, by requesting `NodeIP:NodePort`.
|
|
||||||
- **LoadBalancer**: Exposes the service externally using a cloud provider’s load balancer.
|
|
||||||
|
|
||||||
#### Configure the external URL
|
|
||||||
|
|
||||||
The external URL for HertzBeat core service is used to:
|
|
||||||
|
|
||||||
1. populate the docker/helm commands showed on portal
|
|
||||||
2. populate the token service URL returned to docker client
|
|
||||||
|
|
||||||
Format: `protocol://domain[:port]`. Usually:
|
|
||||||
|
|
||||||
- if service exposed via `Ingress`, the `domain` should be the value of `expose.ingress.hosts`
|
|
||||||
- if service exposed via `ClusterIP`, the `domain` should be the value of `expose.clusterIP.name`
|
|
||||||
- if service exposed via `NodePort`, the `domain` should be the IP address of one Kubernetes node
|
|
||||||
- if service exposed via `LoadBalancer`, set the `domain` as your own domain name and add a CNAME record to map the domain name to the one you got from the cloud provider
|
|
||||||
|
|
||||||
If HertzBeat is deployed behind the proxy, set it as the URL of proxy.
|
|
||||||
|
|
||||||
#### Configure how to persist data
|
|
||||||
|
|
||||||
- **Disable**: The data does not survive the termination of a pod.
|
|
||||||
- **Persistent Volume Claim(default)**: A default `StorageClass` is needed in the Kubernetes cluster to dynamically provision the volumes. Specify another StorageClass in the `storageClass` or set `existingClaim` if you already have existing persistent volumes to use.
|
|
||||||
|
|
||||||
#### Configure the other items listed in [configuration](#configuration) section
|
|
||||||
|
|
||||||
### Install the chart
|
|
||||||
|
|
||||||
Install the HertzBeat helm chart with a release name `my-release`:
|
|
||||||
```bash
|
|
||||||
helm install hertzbeat hertzbeat/hertzbeat
|
|
||||||
```
|
|
||||||
|
|
||||||
## Uninstallation
|
|
||||||
|
|
||||||
To uninstall/delete the `hertzbeat` deployment:
|
|
||||||
```bash
|
|
||||||
helm uninstall hertzbeat
|
|
||||||
```
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
The following table lists the configurable parameters of the HertzBeat chart and the default values.
|
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
|
||||||
|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
|
|
||||||
| **Expose** | | |
|
|
||||||
| `expose.type` | How to expose the service: `Ingress`, `ClusterIP`, `NodePort` or `LoadBalancer`, other values will be ignored and the creation of service will be skipped. | `Ingress` |
|
|
||||||
| `expose.clusterIP.name` | The name of ClusterIP service | `hertzbeat` |
|
|
||||||
| `expose.clusterIP.annotations` | The annotations attached to the ClusterIP service | {} |
|
|
||||||
| `expose.clusterIP.ports.port` | The service port HertzBeat listens on when serving HTTP | `80` |
|
|
||||||
| `expose.nodePort.name` | The name of NodePort service | `hertzbeat` |
|
|
||||||
| `expose.nodePort.ports.port` | The service port HertzBeat listens on when serving HTTP | `80` |
|
|
||||||
| `expose.nodePort.ports.nodePort` | The node port HertzBeat listens on when serving HTTP | `30002` |
|
|
||||||
| `expose.loadBalancer.IP` | The IP of the loadBalancer. It only works when loadBalancer supports assigning IP | `""` |
|
|
||||||
| `expose.loadBalancer.ports.port` | The service port HertzBeat listens on when serving HTTP | `80` |
|
|
||||||
| `expose.loadBalancer.sourceRanges` | List of IP address ranges to assign to loadBalancerSourceRanges | [] |
|
|
||||||
| **Manager** | | |
|
|
||||||
| `manager.account.username` | The hertzbeat account username | `admin` |
|
|
||||||
| `manager.account.password` | The hertzbeat account password | `hertzbeat` |
|
|
||||||
| `manager.resources` | The [resources] to allocate for container | undefined |
|
|
||||||
| `manager.nodeSelector` | Node labels for pod assignment | `{}` |
|
|
||||||
| `manager.tolerations` | Tolerations for pod assignment | `[]` |
|
|
||||||
| `manager.affinity` | Node/Pod affinities | `{}` |
|
|
||||||
| `manager.podAnnotations` | Annotations to add to the nginx pod | `{}` |
|
|
||||||
| **Collector** | | |
|
|
||||||
| `collector.replicaCount` | The replica count | `1` |
|
|
||||||
| `collector.autoscaling.enable` | Is enable auto scaling collector replicas | `1` |
|
|
||||||
| `collector.resources` | The [resources] to allocate for container | undefined |
|
|
||||||
| `collector.nodeSelector` | Node labels for pod assignment | `{}` |
|
|
||||||
| `collector.tolerations` | Tolerations for pod assignment | `[]` |
|
|
||||||
| `collector.affinity` | Node/Pod affinities | `{}` |
|
|
||||||
| `collector.podAnnotations` | Annotations to add to the nginx pod | `{}` |
|
|
||||||
| **Database** | | |
|
|
||||||
| `database.timezone` | The database system timezone | `1` |
|
|
||||||
| `database.rootPassword` | The database root user password | `1` |
|
|
||||||
| `database.persistence.enabled` | Enable the data persistence or not | `true` |
|
|
||||||
| `database.persistence.resourcePolicy` | Setting it to `keep` to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted. Does not affect PVCs created for internal database and redis components. | `keep` |
|
|
||||||
| `database.persistence.existingClaim` | Use the existing PVC which must be created manually before bound, and specify the `subPath` if the PVC is shared with other components | |
|
|
||||||
| `database.persistence.storageClass` | Specify the `storageClass` used to provision the volume. Or the default StorageClass will be used (the default). Set it to `-` to disable dynamic provisioning | |
|
|
||||||
| `database.persistence.subPath` | The sub path used in the volume | |
|
|
||||||
| `database.persistence.accessMode` | The access mode of the volume | `ReadWriteOnce` |
|
|
||||||
| `database.persistence.size` | The size of the volume | `5Gi` |
|
|
||||||
| `database.persistence.annotations` | The annotations of the volume | |
|
|
||||||
| `database.resources` | The [resources] to allocate for container | undefined |
|
|
||||||
| `database.nodeSelector` | Node labels for pod assignment | `{}` |
|
|
||||||
| `database.tolerations` | Tolerations for pod assignment | `[]` |
|
|
||||||
| `database.affinity` | Node/Pod affinities | `{}` |
|
|
||||||
| `database.podAnnotations` | Annotations to add to the nginx pod | `{}` |
|
|
||||||
| **TSDB** | | |
|
|
||||||
| `tsdb.timezone` | The database system timezone | `1` |
|
|
||||||
| `tsdb.persistence.enabled` | Enable the data persistence or not | `true` |
|
|
||||||
| `tsdb.persistence.resourcePolicy` | Setting it to `keep` to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted. Does not affect PVCs created for internal database and redis components. | `keep` |
|
|
||||||
| `tsdb.persistence.existingClaim` | Use the existing PVC which must be created manually before bound, and specify the `subPath` if the PVC is shared with other components | |
|
|
||||||
| `tsdb.persistence.storageClass` | Specify the `storageClass` used to provision the volume. Or the default StorageClass will be used (the default). Set it to `-` to disable dynamic provisioning | |
|
|
||||||
| `tsdb.persistence.subPath` | The sub path used in the volume | |
|
|
||||||
| `tsdb.persistence.accessMode` | The access mode of the volume | `ReadWriteOnce` |
|
|
||||||
| `tsdb.persistence.size` | The size of the volume | `5Gi` |
|
|
||||||
| `tsdb.persistence.annotations` | The annotations of the volume | |
|
|
||||||
| `tsdb.resources` | The [resources] to allocate for container | undefined |
|
|
||||||
| `tsdb.nodeSelector` | Node labels for pod assignment | `{}` |
|
|
||||||
| `tsdb.tolerations` | Tolerations for pod assignment | `[]` |
|
|
||||||
| `tsdb.affinity` | Node/Pod affinities | `{}` |
|
|
||||||
| `tsdb.podAnnotations` | Annotations to add to the nginx pod | `{}` |
|
|
||||||
|
|
||||||
|
|
||||||
[resources]: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
|
|
||||||
[hertzbeat]: https://github.com/apache/hertzbeat/
|
|
||||||
[artifacthub]: https://artifacthub.io/
|
|
||||||
[helm]: https://helm.sh/
|
|
||||||
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
1. Get the application URL by running these commands:
|
|
||||||
{{- if (eq .Values.expose.type "Ingress")}}
|
|
||||||
http{{ if $.Values.expose.ingress.tls.enable }}s{{ end }}://{{ .Values.expose.ingress.host }}
|
|
||||||
|
|
||||||
{{- else if contains "NodePort" .Values.expose.type }}
|
|
||||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "hertzbeat.fullname" . }}-http)
|
|
||||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
|
||||||
echo http://$NODE_IP:$NODE_PORT
|
|
||||||
|
|
||||||
{{- else if contains "LoadBalancer" .Values.expose.type }}
|
|
||||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
|
||||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "hertzbeat.fullname" . }}'
|
|
||||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "hertzbeat.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
|
||||||
echo http://$SERVICE_IP:{{ .Values.expose.loadBalancer.ports.port }}
|
|
||||||
|
|
||||||
{{- else if contains "ClusterIP" .Values.expose.type }}
|
|
||||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "hertzbeat.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
|
||||||
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
|
||||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
|
||||||
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
|
|
||||||
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
{{- define "hertzbeat.name" -}}
|
|
||||||
{{- default .Chart.Name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create a default fully qualified app name.
|
|
||||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
||||||
If release name contains chart name it will be used as a full name.
|
|
||||||
*/}}
|
|
||||||
{{- define "hertzbeat.fullname" -}}
|
|
||||||
{{- $name := default .Chart.Name }}
|
|
||||||
{{- if contains $name .Release.Name }}
|
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- define "hertzbeat.manager" -}}
|
|
||||||
{{- printf "%s" (include "hertzbeat.fullname" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "hertzbeat.manager.host" -}}
|
|
||||||
{{- printf "%s-cluster" (include "hertzbeat.manager" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "hertzbeat.collector" -}}
|
|
||||||
{{- printf "%s-collector" (include "hertzbeat.fullname" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "hertzbeat.database" -}}
|
|
||||||
{{- printf "%s-database" (include "hertzbeat.fullname" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- define "hertzbeat.tsdb" -}}
|
|
||||||
{{- printf "%s-tsdb" (include "hertzbeat.fullname" .) -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "hertzbeat.chart" -}}
|
|
||||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "hertzbeat.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "hertzbeat.chart" . }}
|
|
||||||
{{ include "hertzbeat.selectorLabels" . }}
|
|
||||||
{{- if .Chart.AppVersion }}
|
|
||||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
||||||
{{- end }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "hertzbeat.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "hertzbeat.name" . }}
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.collector" . }}"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
IDENTITY: ""
|
|
||||||
MANAGER_HOST: "{{ include "hertzbeat.manager.host" . }}"
|
|
||||||
MANAGER_PORT: "1158"
|
|
||||||
application.yml: |+
|
|
||||||
server:
|
|
||||||
port: 1159
|
|
||||||
spring:
|
|
||||||
application:
|
|
||||||
name: ${HOSTNAME:@hertzbeat-collector@}${PID}
|
|
||||||
profiles:
|
|
||||||
active: cluster
|
|
||||||
jackson:
|
|
||||||
default-property-inclusion: ALWAYS
|
|
||||||
# need to disable spring boot mongodb auto config, or default mongodb connection tried and failed...
|
|
||||||
autoconfigure:
|
|
||||||
exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration
|
|
||||||
|
|
||||||
---
|
|
||||||
spring:
|
|
||||||
config:
|
|
||||||
activate:
|
|
||||||
on-profile: cluster
|
|
||||||
|
|
||||||
collector:
|
|
||||||
dispatch:
|
|
||||||
entrance:
|
|
||||||
netty:
|
|
||||||
enabled: true
|
|
||||||
identity: ${IDENTITY:}
|
|
||||||
mode: ${MODE:public}
|
|
||||||
manager-host: ${MANAGER_HOST:127.0.0.1}
|
|
||||||
manager-port: ${MANAGER_PORT:1158}
|
|
||||||
|
|
||||||
common:
|
|
||||||
queue:
|
|
||||||
type: netty
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.collector" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: collector
|
|
||||||
spec:
|
|
||||||
{{- if not .Values.collector.autoscaling.enabled }}
|
|
||||||
replicas: {{ .Values.collector.replicaCount }}
|
|
||||||
{{- end }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 6 }}
|
|
||||||
component: collector
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
{{- with .Values.collector.podAnnotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 8 }}
|
|
||||||
component: collector
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.collector.podSecurityContext | nindent 8 }}
|
|
||||||
containers:
|
|
||||||
- name: hertzbeat-collector
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.collector.securityContext | nindent 12 }}
|
|
||||||
image: "{{ .Values.collector.image.repository }}:{{ .Values.collector.image.tag | default .Chart.AppVersion }}"
|
|
||||||
imagePullPolicy: {{ .Values.collector.image.pullPolicy }}
|
|
||||||
ports:
|
|
||||||
- containerPort: 1159
|
|
||||||
protocol: TCP
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 1159
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 1159
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: "{{ include "hertzbeat.collector" . }}"
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /opt/hertzbeat-collector/config/application.yml
|
|
||||||
subPath: application.yml
|
|
||||||
name: application
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.collector.resources | nindent 12 }}
|
|
||||||
volumes:
|
|
||||||
- name: application
|
|
||||||
configMap:
|
|
||||||
name: {{ include "hertzbeat.collector" . }}
|
|
||||||
{{- with .Values.collector.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.collector.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.collector.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
{{- if .Values.collector.autoscaling.enabled }}
|
|
||||||
apiVersion: autoscaling/v2beta1
|
|
||||||
kind: HorizontalPodAutoscaler
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.collector" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
scaleTargetRef:
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
name: {{ include "hertzbeat.collector" . }}
|
|
||||||
minReplicas: {{ .Values.collector.autoscaling.minReplicas }}
|
|
||||||
maxReplicas: {{ .Values.collector.autoscaling.maxReplicas }}
|
|
||||||
metrics:
|
|
||||||
{{- if .Values.collector.autoscaling.targetCPUUtilizationPercentage }}
|
|
||||||
- type: Resource
|
|
||||||
resource:
|
|
||||||
name: cpu
|
|
||||||
targetAverageUtilization: {{ .Values.collector.autoscaling.targetCPUUtilizationPercentage }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
|
||||||
- type: Resource
|
|
||||||
resource:
|
|
||||||
name: memory
|
|
||||||
targetAverageUtilization: {{ .Values.collector.autoscaling.targetMemoryUtilizationPercentage }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.database" . }}"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
TZ: "{{ .Values.database.timezone }}"
|
|
||||||
POSTGRES_PASSWORD: "{{ .Values.database.rootPassword }}"
|
|
||||||
POSTGRES_USER: "root"
|
|
||||||
schema.sql: |+
|
|
||||||
CREATE EXTENSION IF NOT EXISTS dblink;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
PERFORM dblink_exec('', 'CREATE DATABASE hertzbeat');
|
|
||||||
EXCEPTION WHEN duplicate_database THEN RAISE NOTICE '%, skipping', SQLERRM USING ERRCODE = SQLSTATE;
|
|
||||||
END
|
|
||||||
$$;
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
{{- if .Values.database.persistence.enabled }}
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: {{ template "hertzbeat.database" . }}
|
|
||||||
annotations:
|
|
||||||
{{- range $key, $value := .Values.database.persistence.annotations }}
|
|
||||||
{{ $key }}: {{ $value | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.database.persistence.resourcePolicy "keep" }}
|
|
||||||
helm.sh/resource-policy: keep
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: database
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- {{ .Values.database.persistence.accessMode }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: {{ .Values.database.persistence.size }}
|
|
||||||
{{- if .Values.database.persistence.storageClass }}
|
|
||||||
{{- if eq "-" .Values.database.persistence.storageClass }}
|
|
||||||
storageClassName: ""
|
|
||||||
{{- else }}
|
|
||||||
storageClassName: {{ .Values.database.persistence.storageClass }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.database" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 5432
|
|
||||||
targetPort: 5432
|
|
||||||
protocol: TCP
|
|
||||||
selector:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 4 }}
|
|
||||||
component: database
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.database" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: database
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
serviceName: {{ include "hertzbeat.database" . }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 6 }}
|
|
||||||
component: database
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
{{- with .Values.database.podAnnotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 8 }}
|
|
||||||
component: database
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.database.podSecurityContext | nindent 8 }}
|
|
||||||
containers:
|
|
||||||
- name: database
|
|
||||||
image: {{ .Values.database.image.repository }}:{{ .Values.database.image.tag }}
|
|
||||||
imagePullPolicy: {{ .Values.database.image.pullPolicy }}
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
initialDelaySeconds: 300
|
|
||||||
periodSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 5432
|
|
||||||
initialDelaySeconds: 1
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.database.resources | nindent 12 }}
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: "{{ include "hertzbeat.database" . }}"
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /var/lib/postgresql/data
|
|
||||||
subPath: ""
|
|
||||||
- mountPath: /docker-entrypoint-initdb.d/schema.sql
|
|
||||||
subPath: schema.sql
|
|
||||||
name: schema
|
|
||||||
volumes:
|
|
||||||
- name: schema
|
|
||||||
configMap:
|
|
||||||
name: {{ include "hertzbeat.database" . }}
|
|
||||||
{{- if not .Values.database.persistence.enabled }}
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
{{- else }}
|
|
||||||
- name: data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: {{ .Values.database.persistence.existingClaim | default (include "hertzbeat.database" .) }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.database.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.database.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.database.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{/* {{- if and .Values.database.persistence.enabled (not .Values.database.persistence.existingClaim) }}*/}}
|
|
||||||
{{/* volumeClaimTemplates:*/}}
|
|
||||||
{{/* - metadata:*/}}
|
|
||||||
{{/* name: data*/}}
|
|
||||||
{{/* labels:*/}}
|
|
||||||
{{/* {{- include "hertzbeat.labels" . | indent 10 }}*/}}
|
|
||||||
{{/* annotations:*/}}
|
|
||||||
{{/* {{- range $key, $value := .Values.database.persistence.annotations }}*/}}
|
|
||||||
{{/* {{ $key }}: {{ $value | quote }}*/}}
|
|
||||||
{{/* {{- end }}*/}}
|
|
||||||
{{/* spec:*/}}
|
|
||||||
{{/* accessModes: [{{ .Values.database.persistence.accessMode | quote }}]*/}}
|
|
||||||
{{/* {{- if .Values.database.persistence.storageClass }}*/}}
|
|
||||||
{{/* {{- if (eq "-" .Values.database.persistence.storageClass) }}*/}}
|
|
||||||
{{/* storageClassName: ""*/}}
|
|
||||||
{{/* {{- else }}*/}}
|
|
||||||
{{/* storageClassName: "{{ .Values.database.persistence.storageClass }}"*/}}
|
|
||||||
{{/* {{- end }}*/}}
|
|
||||||
{{/* {{- end }}*/}}
|
|
||||||
{{/* resources:*/}}
|
|
||||||
{{/* requests:*/}}
|
|
||||||
{{/* storage: {{ .Values.database.persistence.size | quote }}*/}}
|
|
||||||
{{/* {{- end -}}*/}}
|
|
||||||
@@ -1,300 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.manager" . }}"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
application.yml: |+
|
|
||||||
server:
|
|
||||||
port: 1157
|
|
||||||
spring:
|
|
||||||
application:
|
|
||||||
name: ${HOSTNAME:@hertzbeat@}${PID}
|
|
||||||
profiles:
|
|
||||||
active: prod
|
|
||||||
mvc:
|
|
||||||
static-path-pattern: /**
|
|
||||||
jackson:
|
|
||||||
default-property-inclusion: ALWAYS
|
|
||||||
web:
|
|
||||||
resources:
|
|
||||||
static-locations:
|
|
||||||
- classpath:/dist/
|
|
||||||
- classpath:../dist/
|
|
||||||
# need to disable spring boot mongodb auto config, or default mongodb connection tried and failed..
|
|
||||||
autoconfigure:
|
|
||||||
exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration, org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration
|
|
||||||
freemarker:
|
|
||||||
enabled: false
|
|
||||||
management:
|
|
||||||
health:
|
|
||||||
mail:
|
|
||||||
enabled: off
|
|
||||||
endpoints:
|
|
||||||
web:
|
|
||||||
exposure:
|
|
||||||
include:
|
|
||||||
- 'metrics'
|
|
||||||
- 'health'
|
|
||||||
- 'env'
|
|
||||||
enabled-by-default: on
|
|
||||||
|
|
||||||
sureness:
|
|
||||||
container: jakarta_servlet
|
|
||||||
auths:
|
|
||||||
- digest
|
|
||||||
- basic
|
|
||||||
- jwt
|
|
||||||
jwt:
|
|
||||||
secret: {{ .Values.manager.jwtSecretKey }}
|
|
||||||
|
|
||||||
---
|
|
||||||
spring:
|
|
||||||
config:
|
|
||||||
activate:
|
|
||||||
on-profile: prod
|
|
||||||
|
|
||||||
datasource:
|
|
||||||
driver-class-name: org.postgresql.Driver
|
|
||||||
username: root
|
|
||||||
password: {{ .Values.database.rootPassword }}
|
|
||||||
url: jdbc:postgresql://{{ include "hertzbeat.database" . }}:5432/hertzbeat
|
|
||||||
hikari:
|
|
||||||
max-lifetime: 120000
|
|
||||||
jpa:
|
|
||||||
show-sql: false
|
|
||||||
database-platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform
|
|
||||||
database: postgresql
|
|
||||||
properties:
|
|
||||||
eclipselink:
|
|
||||||
logging:
|
|
||||||
level: SEVERE
|
|
||||||
flyway:
|
|
||||||
enabled: true
|
|
||||||
clean-disabled: true
|
|
||||||
baseline-on-migrate: true
|
|
||||||
baseline-version: 1
|
|
||||||
locations:
|
|
||||||
- classpath:db/migration/{vendor}
|
|
||||||
mail:
|
|
||||||
# Attention: this is mail server address.
|
|
||||||
# 请注意此为邮件服务器地址:qq邮箱为 smtp.qq.com qq 企业邮箱为 smtp.exmail.qq.com
|
|
||||||
host: smtp.qq.com
|
|
||||||
username: tancloud@qq.com
|
|
||||||
# Attention: this is not email account password, this requires an email authorization code
|
|
||||||
# 请注意此非邮箱账户密码 此需填写邮箱授权码
|
|
||||||
password: your-password
|
|
||||||
#Attention: Tencent mail smtps 465,smtp 587
|
|
||||||
#请注意腾讯邮箱465为smtps,587为smtp
|
|
||||||
port: 587
|
|
||||||
properties:
|
|
||||||
mail:
|
|
||||||
smtp:
|
|
||||||
socketFactoryClass: javax.net.ssl.SSLSocketFactory
|
|
||||||
ssl:
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
common:
|
|
||||||
queue:
|
|
||||||
# memory or kafka
|
|
||||||
type: memory
|
|
||||||
# properties when queue type is kafka
|
|
||||||
kafka:
|
|
||||||
servers: 127.0.0.1:9092
|
|
||||||
metrics-data-topic: async-metrics-data
|
|
||||||
alerts-data-topic: async-alerts-data
|
|
||||||
|
|
||||||
warehouse:
|
|
||||||
store:
|
|
||||||
# store history metrics data, enable only one below
|
|
||||||
# 存储历史数据方式, 下方只能enabled启用一种方式
|
|
||||||
jpa:
|
|
||||||
enabled: false
|
|
||||||
victoria-metrics:
|
|
||||||
enabled: true
|
|
||||||
url: http://{{ include "hertzbeat.tsdb" . }}:8428
|
|
||||||
username: root
|
|
||||||
password: root
|
|
||||||
td-engine:
|
|
||||||
enabled: false
|
|
||||||
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
|
|
||||||
url: jdbc:TAOS-RS://{{ include "hertzbeat.tsdb" . }}:6041/hertzbeat
|
|
||||||
username: root
|
|
||||||
password: taosdata
|
|
||||||
greptime:
|
|
||||||
enabled: false
|
|
||||||
endpoint: localhost:4001
|
|
||||||
iot-db:
|
|
||||||
enabled: false
|
|
||||||
host: {{ include "hertzbeat.tsdb" . }}
|
|
||||||
rpc-port: 6667
|
|
||||||
username: root
|
|
||||||
password: root
|
|
||||||
# org.apache.hertzbeat.warehouse.config.IotDbVersion: V_0_13 || V_1_0
|
|
||||||
version: V_1_0
|
|
||||||
query-timeout-in-ms: -1
|
|
||||||
# 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期)
|
|
||||||
# data expire time, unit:ms, default '7776000000'(90 days, -1:never expire)
|
|
||||||
expire-time: '7776000000'
|
|
||||||
influxdb:
|
|
||||||
enabled: false
|
|
||||||
server-url: http://127.0.0.1:8086
|
|
||||||
username: root
|
|
||||||
password: root
|
|
||||||
expire-time: '30d'
|
|
||||||
replication: 1
|
|
||||||
|
|
||||||
# store real-time metrics data, enable only one below
|
|
||||||
# 存储实时数据方式, 下方只能enabled启用一种方式
|
|
||||||
memory:
|
|
||||||
enabled: true
|
|
||||||
init-size: 16
|
|
||||||
redis:
|
|
||||||
enabled: false
|
|
||||||
host: 127.0.0.1
|
|
||||||
port: 6379
|
|
||||||
password: 123456
|
|
||||||
db: 0
|
|
||||||
|
|
||||||
alerter:
|
|
||||||
# custom console url
|
|
||||||
console-url: https://console.tancloud.io
|
|
||||||
# we work
|
|
||||||
we-work-webhook-url: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=
|
|
||||||
# ding ding talk
|
|
||||||
ding-talk-webhook-url: https://oapi.dingtalk.com/robot/send?access_token=
|
|
||||||
# fei shu fly book
|
|
||||||
fly-book-webhook-url: https://open.feishu.cn/open-apis/bot/v2/hook/
|
|
||||||
# telegram
|
|
||||||
telegram-webhook-url: https://api.telegram.org/bot%s/sendMessage
|
|
||||||
# discord
|
|
||||||
discord-webhook-url: https://discord.com/api/v9/channels/%s/messages
|
|
||||||
# server酱
|
|
||||||
server-chan-webhook-url: https://sctapi.ftqq.com/%s.send
|
|
||||||
# gotify
|
|
||||||
gotify-webhook-url: http://127.0.0.1/message?token=%s
|
|
||||||
|
|
||||||
scheduler:
|
|
||||||
server:
|
|
||||||
enabled: true
|
|
||||||
port: 1158
|
|
||||||
|
|
||||||
|
|
||||||
sureness.yml: |+
|
|
||||||
resourceRole:
|
|
||||||
- /api/account/auth/refresh===post===[admin,user,guest]
|
|
||||||
- /api/apps/**===get===[admin,user,guest]
|
|
||||||
- /api/monitor/**===get===[admin,user,guest]
|
|
||||||
- /api/monitor/**===post===[admin,user]
|
|
||||||
- /api/monitor/**===put===[admin,user]
|
|
||||||
- /api/monitor/**===delete==[admin]
|
|
||||||
- /api/monitors/**===get===[admin,user,guest]
|
|
||||||
- /api/monitors/**===post===[admin,user]
|
|
||||||
- /api/monitors/**===put===[admin,user]
|
|
||||||
- /api/monitors/**===delete===[admin]
|
|
||||||
- /api/alert/**===get===[admin,user,guest]
|
|
||||||
- /api/alert/**===post===[admin,user]
|
|
||||||
- /api/alert/**===put===[admin,user]
|
|
||||||
- /api/alert/**===delete===[admin]
|
|
||||||
- /api/alerts/**===get===[admin,user,guest]
|
|
||||||
- /api/alerts/**===post===[admin,user]
|
|
||||||
- /api/alerts/**===put===[admin,user]
|
|
||||||
- /api/alerts/**===delete===[admin]
|
|
||||||
- /api/notice/**===get===[admin,user,guest]
|
|
||||||
- /api/notice/**===post===[admin,user]
|
|
||||||
- /api/notice/**===put===[admin,user]
|
|
||||||
- /api/notice/**===delete===[admin]
|
|
||||||
- /api/tag/**===get===[admin,user,guest]
|
|
||||||
- /api/tag/**===post===[admin,user]
|
|
||||||
- /api/tag/**===put===[admin,user]
|
|
||||||
- /api/tag/**===delete===[admin]
|
|
||||||
- /api/summary/**===get===[admin,user,guest]
|
|
||||||
- /api/summary/**===post===[admin,user]
|
|
||||||
- /api/summary/**===put===[admin,user]
|
|
||||||
- /api/summary/**===delete===[admin]
|
|
||||||
- /api/collector/**===get===[admin,user,guest]
|
|
||||||
- /api/collector/**===post===[admin,user]
|
|
||||||
- /api/collector/**===put===[admin,user]
|
|
||||||
- /api/collector/**===delete===[admin]
|
|
||||||
- /api/status/page/**===get===[admin,user,guest]
|
|
||||||
- /api/status/page/**===post===[admin,user]
|
|
||||||
- /api/status/page/**===put===[admin,user]
|
|
||||||
- /api/status/page/**===delete===[admin]
|
|
||||||
|
|
||||||
# config the resource restful api that need bypass auth protection
|
|
||||||
# rule: api===method
|
|
||||||
# eg: /api/v1/source3===get means /api/v1/source3===get can be access by anyone, no need auth.
|
|
||||||
excludedResource:
|
|
||||||
- /api/alerts/report/**===*
|
|
||||||
- /api/account/auth/**===*
|
|
||||||
- /api/i18n/**===get
|
|
||||||
- /api/apps/hierarchy===get
|
|
||||||
- /api/push/**===*
|
|
||||||
- /api/status/page/public/**===*
|
|
||||||
# web ui resource
|
|
||||||
- /===get
|
|
||||||
- /dashboard/**===get
|
|
||||||
- /monitors/**===get
|
|
||||||
- /alert/**===get
|
|
||||||
- /account/**===get
|
|
||||||
- /setting/**===get
|
|
||||||
- /passport/**===get
|
|
||||||
- /status/**===get
|
|
||||||
- /**/*.html===get
|
|
||||||
- /**/*.js===get
|
|
||||||
- /**/*.css===get
|
|
||||||
- /**/*.ico===get
|
|
||||||
- /**/*.ttf===get
|
|
||||||
- /**/*.png===get
|
|
||||||
- /**/*.gif===get
|
|
||||||
- /**/*.jpg===get
|
|
||||||
- /**/*.svg===get
|
|
||||||
- /**/*.json===get
|
|
||||||
- /**/*.woff===get
|
|
||||||
- /**/*.eot===get
|
|
||||||
# swagger ui resource
|
|
||||||
- /swagger-resources/**===get
|
|
||||||
- /v2/api-docs===get
|
|
||||||
- /v3/api-docs===get
|
|
||||||
# h2 database
|
|
||||||
- /h2-console/**===*
|
|
||||||
|
|
||||||
# account info config
|
|
||||||
# eg: admin has role [admin,user], password is hertzbeat
|
|
||||||
# eg: tom has role [user], password is hertzbeat
|
|
||||||
# eg: lili has role [guest], plain password is lili, salt is 123, salted password is 1A676730B0C7F54654B0E09184448289
|
|
||||||
account:
|
|
||||||
- appId: {{ .Values.manager.account.username }}
|
|
||||||
credential: {{ .Values.manager.account.password }}
|
|
||||||
role: [admin]
|
|
||||||
- appId: tom
|
|
||||||
credential: hertzbeat
|
|
||||||
role: [user]
|
|
||||||
- appId: guest
|
|
||||||
credential: hertzbeat
|
|
||||||
role: [guest]
|
|
||||||
- appId: lili
|
|
||||||
# credential = MD5(password + salt)
|
|
||||||
# plain password: hertzbeat
|
|
||||||
# attention: digest authentication does not support salted encrypted password accounts
|
|
||||||
credential: 94C6B34E7A199A9F9D4E1F208093B489
|
|
||||||
salt: 123
|
|
||||||
role: [user]
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.manager" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: manager
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 6 }}
|
|
||||||
component: manager
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
{{- with .Values.manager.podAnnotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 8 }}
|
|
||||||
component: manager
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.manager.podSecurityContext | nindent 8 }}
|
|
||||||
containers:
|
|
||||||
- name: {{ .Chart.Name }}
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.manager.securityContext | nindent 12 }}
|
|
||||||
image: "{{ .Values.manager.image.repository }}:{{ .Values.manager.image.tag | default .Chart.AppVersion }}"
|
|
||||||
imagePullPolicy: {{ .Values.manager.image.pullPolicy }}
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 1157
|
|
||||||
protocol: TCP
|
|
||||||
- name: cluster
|
|
||||||
containerPort: 1158
|
|
||||||
protocol: TCP
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 1157
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 1157
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /opt/hertzbeat/config/application.yml
|
|
||||||
subPath: application.yml
|
|
||||||
name: application
|
|
||||||
- mountPath: /opt/hertzbeat/config/sureness.yml
|
|
||||||
subPath: sureness.yml
|
|
||||||
name: sureness
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.manager.resources | nindent 12 }}
|
|
||||||
volumes:
|
|
||||||
- name: application
|
|
||||||
configMap:
|
|
||||||
name: {{ include "hertzbeat.manager" . }}
|
|
||||||
- name: sureness
|
|
||||||
configMap:
|
|
||||||
name: {{ include "hertzbeat.manager" . }}
|
|
||||||
{{- with .Values.manager.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.manager.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.manager.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
{{- if .Values.expose.ingress.enabled }}
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.manager" . }}-ingress"
|
|
||||||
annotations:
|
|
||||||
{{- toYaml .Values.expose.ingress.annotations | nindent 4 }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
{{if .Values.expose.ingress.ingressClassName }}
|
|
||||||
ingressClassName: {{ .Values.expose.ingress.ingressClassName }}
|
|
||||||
{{end}}
|
|
||||||
rules:
|
|
||||||
- host: {{ .Values.expose.ingress.host }}
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: "{{ include "hertzbeat.manager" . }}-http"
|
|
||||||
port:
|
|
||||||
number: 1157
|
|
||||||
tls:
|
|
||||||
{{- if .Values.expose.ingress.tls.enabled }}
|
|
||||||
- secretName: {{ .Values.expose.ingress.tls.secretName }}
|
|
||||||
hosts:
|
|
||||||
- {{ .Values.expose.ingress.host }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.manager" . }}-cluster"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 1158
|
|
||||||
targetPort: 1158
|
|
||||||
protocol: TCP
|
|
||||||
name: cluster
|
|
||||||
selector:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 4 }}
|
|
||||||
component: manager
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
{{- if or (eq .Values.expose.type "ClusterIP") (eq .Values.expose.type "NodePort") (eq .Values.expose.type "LoadBalancer") (eq .Values.expose.type "Ingress") }}
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.manager" . }}-http"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
{{- if or (eq .Values.expose.type "ClusterIP") (eq .Values.expose.type "Ingress") }}
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: {{ .Values.expose.clusterIP.ports.port }}
|
|
||||||
targetPort: 1157
|
|
||||||
selector:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 4 }}
|
|
||||||
component: manager
|
|
||||||
{{- else if eq .Values.expose.type "NodePort" }}
|
|
||||||
spec:
|
|
||||||
type: NodePort
|
|
||||||
ports:
|
|
||||||
- port: {{ .Values.expose.nodePort.ports.port }}
|
|
||||||
targetPort: 1157
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
{{- if .Values.expose.nodePort.ports.nodePort }}
|
|
||||||
nodePort: {{ .Values.expose.nodePort.ports.nodePort }}
|
|
||||||
{{- end }}
|
|
||||||
selector:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 4 }}
|
|
||||||
component: manager
|
|
||||||
{{- else if eq .Values.expose.type "LoadBalancer" }}
|
|
||||||
spec:
|
|
||||||
type: LoadBalancer
|
|
||||||
{{- with .Values.expose.loadBalancer.sourceRanges }}
|
|
||||||
loadBalancerSourceRanges:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.expose.loadBalancer.ip }}
|
|
||||||
loadBalancerIP: {{ .Values.expose.loadBalancer.ip }}
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: {{ .Values.expose.loadBalancer.ports.port }}
|
|
||||||
targetPort: 1157
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: "{{ include "hertzbeat.tsdb" . }}"
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
data:
|
|
||||||
TZ: "{{ .Values.database.timezone }}"
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
{{- if .Values.tsdb.persistence.enabled }}
|
|
||||||
kind: PersistentVolumeClaim
|
|
||||||
apiVersion: v1
|
|
||||||
metadata:
|
|
||||||
name: {{ template "hertzbeat.tsdb" . }}
|
|
||||||
annotations:
|
|
||||||
{{- range $key, $value := .Values.tsdb.persistence.annotations }}
|
|
||||||
{{ $key }}: {{ $value | quote }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .Values.tsdb.persistence.resourcePolicy "keep" }}
|
|
||||||
helm.sh/resource-policy: keep
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: tsdb
|
|
||||||
spec:
|
|
||||||
accessModes:
|
|
||||||
- {{ .Values.tsdb.persistence.accessMode }}
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: {{ .Values.tsdb.persistence.size }}
|
|
||||||
{{- if .Values.tsdb.persistence.storageClass }}
|
|
||||||
{{- if eq "-" .Values.tsdb.persistence.storageClass }}
|
|
||||||
storageClassName: ""
|
|
||||||
{{- else }}
|
|
||||||
storageClassName: {{ .Values.tsdb.persistence.storageClass }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.tsdb" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 8428
|
|
||||||
targetPort: 8428
|
|
||||||
protocol: TCP
|
|
||||||
selector:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 4 }}
|
|
||||||
component: tsdb
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: {{ include "hertzbeat.tsdb" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.labels" . | nindent 4 }}
|
|
||||||
component: tsdb
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
serviceName: {{ include "hertzbeat.tsdb" . }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 6 }}
|
|
||||||
component: tsdb
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
{{- with .Values.tsdb.podAnnotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "hertzbeat.selectorLabels" . | nindent 8 }}
|
|
||||||
component: tsdb
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml .Values.tsdb.podSecurityContext | nindent 8 }}
|
|
||||||
containers:
|
|
||||||
- name: tsdb
|
|
||||||
image: {{ .Values.tsdb.image.repository }}:{{ .Values.tsdb.image.tag }}
|
|
||||||
imagePullPolicy: {{ .Values.tsdb.image.pullPolicy }}
|
|
||||||
livenessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 8428
|
|
||||||
initialDelaySeconds: 300
|
|
||||||
periodSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
tcpSocket:
|
|
||||||
port: 8428
|
|
||||||
initialDelaySeconds: 1
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.tsdb.resources | nindent 12 }}
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: "{{ include "hertzbeat.tsdb" . }}"
|
|
||||||
volumeMounts:
|
|
||||||
- name: data
|
|
||||||
mountPath: /victoria-metrics-data
|
|
||||||
subPath: ""
|
|
||||||
volumes:
|
|
||||||
{{- if not .Values.tsdb.persistence.enabled }}
|
|
||||||
- name: data
|
|
||||||
emptyDir: {}
|
|
||||||
{{- else }}
|
|
||||||
- name: data
|
|
||||||
persistentVolumeClaim:
|
|
||||||
claimName: {{ .Values.tsdb.persistence.existingClaim | default (include "hertzbeat.tsdb" .) }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.tsdb.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.tsdb.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with .Values.tsdb.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,143 +0,0 @@
|
|||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
# or more contributor license agreements. See the NOTICE file
|
|
||||||
# distributed with this work for additional information
|
|
||||||
# regarding copyright ownership. The ASF licenses this file
|
|
||||||
# to you under the Apache License, Version 2.0 (the
|
|
||||||
# "License"); you may not use this file except in compliance
|
|
||||||
# with the License. You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing,
|
|
||||||
# software distributed under the License is distributed on an
|
|
||||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
# KIND, either express or implied. See the License for the
|
|
||||||
# specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
# Default values for hertzbeat.
|
|
||||||
|
|
||||||
manager:
|
|
||||||
image:
|
|
||||||
repository: apache/hertzbeat
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
|
||||||
tag: ""
|
|
||||||
account:
|
|
||||||
username: "admin"
|
|
||||||
password: "hertzbeat"
|
|
||||||
jwtSecretKey: "CyaFv0bwq2Eik0jdrKUtsA6dx3sDJeFV143R
|
|
||||||
LnfKefTjsIfJLBa2YkhEqEGtcHDTNe4CU6+9
|
|
||||||
8tVt4bisXQ13rbN0oxhUZR73M6EByXIO+SV5
|
|
||||||
dKhaX0csgOCTlCxq20yhmUea6H6JIpSE2Rwp"
|
|
||||||
podAnnotations: { }
|
|
||||||
podSecurityContext: { }
|
|
||||||
securityContext: { }
|
|
||||||
resources: { }
|
|
||||||
nodeSelector: { }
|
|
||||||
tolerations: [ ]
|
|
||||||
affinity: { }
|
|
||||||
|
|
||||||
collector:
|
|
||||||
image:
|
|
||||||
repository: apache/hertzbeat-collector
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
|
||||||
tag: ""
|
|
||||||
replicaCount: 1
|
|
||||||
autoscaling:
|
|
||||||
enabled: false
|
|
||||||
minReplicas: 1
|
|
||||||
maxReplicas: 20
|
|
||||||
targetCPUUtilizationPercentage: 80
|
|
||||||
targetMemoryUtilizationPercentage: 80
|
|
||||||
|
|
||||||
podAnnotations: { }
|
|
||||||
podSecurityContext: { }
|
|
||||||
securityContext: { }
|
|
||||||
resources: { }
|
|
||||||
nodeSelector: { }
|
|
||||||
tolerations: [ ]
|
|
||||||
affinity: { }
|
|
||||||
|
|
||||||
database:
|
|
||||||
image:
|
|
||||||
repository: postgres
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
|
||||||
tag: "15"
|
|
||||||
timezone: "Asia/Shanghai"
|
|
||||||
rootPassword: "123456"
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: ""
|
|
||||||
storageClass: ""
|
|
||||||
subPath: ""
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 4Gi
|
|
||||||
annotations: {}
|
|
||||||
resourcePolicy: "keep"
|
|
||||||
|
|
||||||
podAnnotations: { }
|
|
||||||
podSecurityContext: { }
|
|
||||||
securityContext: { }
|
|
||||||
resources: { }
|
|
||||||
nodeSelector: { }
|
|
||||||
tolerations: [ ]
|
|
||||||
affinity: { }
|
|
||||||
|
|
||||||
tsdb:
|
|
||||||
image:
|
|
||||||
repository: victoriametrics/victoria-metrics
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
|
||||||
tag: "v1.95.1"
|
|
||||||
timezone: "Asia/Shanghai"
|
|
||||||
persistence:
|
|
||||||
enabled: true
|
|
||||||
existingClaim: ""
|
|
||||||
storageClass: ""
|
|
||||||
subPath: ""
|
|
||||||
accessMode: ReadWriteOnce
|
|
||||||
size: 4Gi
|
|
||||||
annotations: {}
|
|
||||||
resourcePolicy: "keep"
|
|
||||||
|
|
||||||
podAnnotations: { }
|
|
||||||
podSecurityContext: { }
|
|
||||||
securityContext: { }
|
|
||||||
resources: { }
|
|
||||||
nodeSelector: { }
|
|
||||||
tolerations: [ ]
|
|
||||||
affinity: { }
|
|
||||||
|
|
||||||
# Expose Network
|
|
||||||
expose:
|
|
||||||
# Set how to expose the service. Set the type as "ClusterIP","NodePort","LoadBalancer" or "Ingress"
|
|
||||||
# and fill the information in the corresponding section
|
|
||||||
type: Ingress
|
|
||||||
clusterIP:
|
|
||||||
ports:
|
|
||||||
# The service port Harbor listens on when serving HTTP
|
|
||||||
port: 1157
|
|
||||||
nodePort:
|
|
||||||
ports:
|
|
||||||
# The service port Harbor listens on when serving HTTP
|
|
||||||
port: 1157
|
|
||||||
# The node port Harbor listens on when serving HTTP
|
|
||||||
nodePort: 31157
|
|
||||||
loadBalancer:
|
|
||||||
# Set the IP if the LoadBalancer supports assigning IP
|
|
||||||
ip: ""
|
|
||||||
ports:
|
|
||||||
# The service port Harbor listens on when serving HTTP
|
|
||||||
port: 1157
|
|
||||||
sourceRanges: [ ]
|
|
||||||
ingress:
|
|
||||||
enabled: true
|
|
||||||
ingressClassName: ""
|
|
||||||
host: "hertzbeat.domain"
|
|
||||||
annotations: {}
|
|
||||||
tls:
|
|
||||||
enabled: true
|
|
||||||
secretName: your-tls-secret
|
|
||||||
Reference in New Issue
Block a user