diff --git a/charts/greptimedb-cluster/README.md b/charts/greptimedb-cluster/README.md index 4f98a0e..c702b89 100644 --- a/charts/greptimedb-cluster/README.md +++ b/charts/greptimedb-cluster/README.md @@ -78,231 +78,238 @@ helm uninstall mycluster -n default ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| auth | object | `{"enabled":false,"fileName":"passwd","mountPath":"/etc/greptimedb/auth","users":[{"password":"admin","username":"admin"}]}` | The static auth for greptimedb, only support one user now(https://docs.greptime.com/user-guide/deployments/authentication/static). | -| auth.enabled | bool | `false` | Enable static auth | -| auth.fileName | string | `"passwd"` | The auth file name, the full path is `${mountPath}/${fileName}` | -| auth.mountPath | string | `"/etc/greptimedb/auth"` | The auth file path to store the auth info | -| auth.users | list | `[{"password":"admin","username":"admin"}]` | The users to be created in the auth file | -| base.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{}},"nodeSelector":{},"securityContext":{},"serviceAccountName":"","tolerations":[]}` | The pod template for base | -| base.podTemplate.affinity | object | `{}` | The pod affinity | -| base.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | -| base.podTemplate.labels | object | `{}` | The labels to be created to the pod. | -| base.podTemplate.main | object | `{"args":[],"command":[],"env":[],"livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{}}` | The base spec of main container | -| base.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | -| base.podTemplate.main.command | list | `[]` | The command to be executed in the container | -| base.podTemplate.main.env | list | `[]` | The environment variables for the container | -| base.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | -| base.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | -| base.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | -| base.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | -| base.podTemplate.main.securityContext | object | `{}` | The configurations for security context of main container. | -| base.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | -| base.podTemplate.nodeSelector | object | `{}` | The pod node selector | -| base.podTemplate.securityContext | object | `{}` | The configurations for pod security context. | -| base.podTemplate.serviceAccountName | string | `""` | The global service account | -| base.podTemplate.tolerations | list | `[]` | The pod tolerations | -| datanode | object | `{"configData":"","configFile":"","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"storage":{"annotations":{},"dataHome":"/data/greptimedb","labels":{},"mountPath":"/data/greptimedb","storageClassName":null,"storageRetainPolicy":"Retain","storageSize":"10Gi"}}` | Datanode configure | -| datanode.configData | string | `""` | Extra raw toml config data of datanode. Skip if the `configFile` is used. | -| datanode.configFile | string | `""` | Extra toml file of datanode. | -| datanode.logging | object | `{}` | Logging configuration for datanode, if not set, it will use the global logging configuration. | -| datanode.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for datanode | -| datanode.podTemplate.affinity | object | `{}` | The pod affinity | -| datanode.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | -| datanode.podTemplate.labels | object | `{}` | The labels to be created to the pod. | -| datanode.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | -| datanode.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | -| datanode.podTemplate.main.command | list | `[]` | The command to be executed in the container | -| datanode.podTemplate.main.env | list | `[]` | The environment variables for the container | -| datanode.podTemplate.main.image | string | `""` | The datanode image. | -| datanode.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | -| datanode.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | -| datanode.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | -| datanode.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | -| datanode.podTemplate.main.securityContext | object | `{}` | The configurations for datanode security context. | -| datanode.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | -| datanode.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | -| datanode.podTemplate.nodeSelector | object | `{}` | The pod node selector | -| datanode.podTemplate.securityContext | object | `{}` | The configurations for datanode security context. | -| datanode.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for datanode serviceaccount | -| datanode.podTemplate.serviceAccount.create | bool | `false` | Create a service account | -| datanode.podTemplate.tolerations | list | `[]` | The pod tolerations | -| datanode.podTemplate.volumes | list | `[]` | The pod volumes | -| datanode.replicas | int | `1` | Datanode replicas | -| datanode.storage.annotations | object | `{}` | The annotations for the PVC that will be created | -| datanode.storage.dataHome | string | `"/data/greptimedb"` | The dataHome directory, default is "/data/greptimedb/" | -| datanode.storage.labels | object | `{}` | The labels for the PVC that will be created | -| datanode.storage.mountPath | string | `"/data/greptimedb"` | The data directory of the storage, default is "/data/greptimedb" | -| datanode.storage.storageClassName | string | `nil` | Storage class for datanode persistent volume | -| datanode.storage.storageRetainPolicy | string | `"Retain"` | Storage retain policy for datanode persistent volume | -| datanode.storage.storageSize | string | `"10Gi"` | Storage size for datanode persistent volume | -| debugPod.enabled | bool | `false` | Enable debug pod | -| debugPod.image | object | `{"registry":"docker.io","repository":"greptime/greptime-tool","tag":"20241107-9c210d18"}` | The debug pod image | -| debugPod.resources | object | `{"limits":{"cpu":"200m","memory":"256Mi"},"requests":{"cpu":"50m","memory":"64Mi"}}` | The debug pod resource | -| flownode | object | `{"configData":"","configFile":"","enabled":false,"logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1}` | Flownode configure. **It's NOT READY YET** | -| flownode.configData | string | `""` | Extra raw toml config data of flownode. Skip if the `configFile` is used. | -| flownode.configFile | string | `""` | Extra toml file of flownode. | -| flownode.enabled | bool | `false` | Enable flownode | -| flownode.logging | object | `{}` | Logging configuration for flownode, if not set, it will use the global logging configuration. | -| flownode.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for frontend | -| flownode.podTemplate.affinity | object | `{}` | The pod affinity | -| flownode.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | -| flownode.podTemplate.labels | object | `{}` | The labels to be created to the pod. | -| flownode.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | -| flownode.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | -| flownode.podTemplate.main.command | list | `[]` | The command to be executed in the container | -| flownode.podTemplate.main.env | list | `[]` | The environment variables for the container | -| flownode.podTemplate.main.image | string | `""` | The flownode image. | -| flownode.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | -| flownode.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | -| flownode.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | -| flownode.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | -| flownode.podTemplate.main.securityContext | object | `{}` | The configurations for flownode security context. | -| flownode.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | -| flownode.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | -| flownode.podTemplate.nodeSelector | object | `{}` | The pod node selector | -| flownode.podTemplate.securityContext | object | `{}` | The configurations for flownode security context. | -| flownode.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for flownode serviceaccount | -| flownode.podTemplate.serviceAccount.create | bool | `false` | Create a service account | -| flownode.podTemplate.tolerations | list | `[]` | The pod tolerations | -| flownode.podTemplate.volumes | list | `[]` | The pod volumes | -| flownode.replicas | int | `1` | Flownode replicas | -| frontend | object | `{"configData":"","configFile":"","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"service":{},"tls":{}}` | Frontend configure | -| frontend.configData | string | `""` | Extra raw toml config data of frontend. Skip if the `configFile` is used. | -| frontend.configFile | string | `""` | Extra toml file of frontend. | -| frontend.logging | object | `{}` | Logging configuration for frontend, if not set, it will use the global logging configuration. | -| frontend.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for frontend | -| frontend.podTemplate.affinity | object | `{}` | The pod affinity | -| frontend.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | -| frontend.podTemplate.labels | object | `{}` | The labels to be created to the pod. | -| frontend.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | -| frontend.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | -| frontend.podTemplate.main.command | list | `[]` | The command to be executed in the container | -| frontend.podTemplate.main.env | list | `[]` | The environment variables for the container | -| frontend.podTemplate.main.image | string | `""` | The frontend image. | -| frontend.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | -| frontend.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | -| frontend.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | -| frontend.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | -| frontend.podTemplate.main.securityContext | object | `{}` | The configurations for frontend container. | -| frontend.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | -| frontend.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | -| frontend.podTemplate.nodeSelector | object | `{}` | The pod node selector | -| frontend.podTemplate.securityContext | object | `{}` | The configurations for frontend security context. | -| frontend.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for frontend serviceaccount | -| frontend.podTemplate.serviceAccount.create | bool | `false` | Create a service account | -| frontend.podTemplate.tolerations | list | `[]` | The pod tolerations | -| frontend.podTemplate.volumes | list | `[]` | The pod volumes | -| frontend.replicas | int | `1` | Frontend replicas | -| frontend.service | object | `{}` | Frontend service | -| frontend.tls | object | `{}` | Frontend tls configure | -| grafana | object | `{"adminPassword":"gt-operator","adminUser":"admin","dashboardProviders":{"dashboardproviders.yaml":{"apiVersion":1,"providers":[{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-metrics","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-metrics"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-logs","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-logs"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-slow-queries","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-slow-queries"},"orgId":1,"type":"file"}]}},"dashboardsConfigMaps":{"greptimedb-cluster-logs":"greptimedb-cluster-logs-dashboard","greptimedb-cluster-metrics":"greptimedb-cluster-metrics-dashboard","greptimedb-cluster-slow-queries":"greptimedb-cluster-slow-queries-dashboard"},"datasources":{"datasources.yaml":{"datasources":[{"access":"proxy","isDefault":true,"name":"metrics","type":"prometheus","url":"http://mycluster-monitor-standalone.default.svc.cluster.local:4000/v1/prometheus"},{"access":"proxy","database":"public","name":"logs","type":"mysql","url":"mycluster-monitor-standalone.default.svc.cluster.local:4002"},{"access":"proxy","database":"information_schema","name":"information_schema","type":"mysql","url":"mycluster-frontend.default.svc.cluster.local:4002"}]}},"enabled":false,"image":{"registry":"docker.io","repository":"grafana/grafana","tag":"11.1.3"},"initChownData":{"enabled":false},"persistence":{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"10Gi"},"service":{"annotations":{},"enabled":true,"type":"ClusterIP"}}` | Deploy grafana for monitoring. | -| grafana.adminPassword | string | `"gt-operator"` | The default admin password for grafana. | -| grafana.adminUser | string | `"admin"` | The default admin username for grafana. | -| grafana.dashboardProviders | object | `{"dashboardproviders.yaml":{"apiVersion":1,"providers":[{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-metrics","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-metrics"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-logs","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-logs"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-slow-queries","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-slow-queries"},"orgId":1,"type":"file"}]}}` | The grafana dashboard providers. | -| grafana.dashboardsConfigMaps | object | `{"greptimedb-cluster-logs":"greptimedb-cluster-logs-dashboard","greptimedb-cluster-metrics":"greptimedb-cluster-metrics-dashboard","greptimedb-cluster-slow-queries":"greptimedb-cluster-slow-queries-dashboard"}` | The grafana dashboards configmaps that will be created to store the dashboards. | -| grafana.datasources | object | `{"datasources.yaml":{"datasources":[{"access":"proxy","isDefault":true,"name":"metrics","type":"prometheus","url":"http://mycluster-monitor-standalone.default.svc.cluster.local:4000/v1/prometheus"},{"access":"proxy","database":"public","name":"logs","type":"mysql","url":"mycluster-monitor-standalone.default.svc.cluster.local:4002"},{"access":"proxy","database":"information_schema","name":"information_schema","type":"mysql","url":"mycluster-frontend.default.svc.cluster.local:4002"}]}}` | The grafana datasources. | -| grafana.enabled | bool | `false` | Enable grafana deployment. It needs to enable monitoring `monitoring.enabled: true` first. | -| grafana.image | object | `{"registry":"docker.io","repository":"grafana/grafana","tag":"11.1.3"}` | The grafana image. | -| grafana.image.registry | string | `"docker.io"` | The grafana image registry. | -| grafana.image.repository | string | `"grafana/grafana"` | The grafana image repository. | -| grafana.image.tag | string | `"11.1.3"` | The grafana image tag. | -| grafana.initChownData | object | `{"enabled":false}` | Init chown data for grafana. | -| grafana.initChownData.enabled | bool | `false` | Enable init chown data for grafana. | -| grafana.persistence | object | `{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"10Gi"}` | The grafana persistence configuration. | -| grafana.persistence.accessModes | list | `["ReadWriteOnce"]` | The access modes for the grafana persistence. | -| grafana.persistence.enabled | bool | `true` | Whether to enable the persistence for grafana. | -| grafana.persistence.size | string | `"10Gi"` | The storage size for the grafana persistence. | -| grafana.service | object | `{"annotations":{},"enabled":true,"type":"ClusterIP"}` | The grafana service configuration. | -| grafana.service.annotations | object | `{}` | The annotations for the grafana service. | -| grafana.service.enabled | bool | `true` | Whether to create the service for grafana. | -| grafana.service.type | string | `"ClusterIP"` | The type of the service. | -| grpcServicePort | int | `4001` | GreptimeDB grpc service port | -| httpServicePort | int | `4000` | GreptimeDB http service port | -| image.pullSecrets | list | `[]` | The image pull secrets | -| image.registry | string | `"docker.io"` | The image registry | -| image.repository | string | `"greptime/greptimedb"` | The image repository | -| image.tag | string | `"v0.11.2"` | The image tag | -| initializer.registry | string | `"docker.io"` | Initializer image registry | -| initializer.repository | string | `"greptime/greptimedb-initializer"` | Initializer image repository | -| initializer.tag | string | `"v0.1.4-alpha.3"` | Initializer image tag | -| jaeger-all-in-one | object | `{"enableHttpOpenTelemetryCollector":true,"enableHttpZipkinCollector":true,"enabled":false,"image":{"pullPolicy":"IfNotPresent","repository":"jaegertracing/all-in-one","versionOverride":"latest"},"resources":{},"service":{"annotations":{},"port":16686,"type":"ClusterIP"},"volume":{"className":"","enabled":true,"size":"3Gi"}}` | Deploy jaeger-all-in-one for development purpose. | -| jaeger-all-in-one.enableHttpOpenTelemetryCollector | bool | `true` | Enable the opentelemetry collector for jaeger-all-in-one and listen on port 4317. | -| jaeger-all-in-one.enableHttpZipkinCollector | bool | `true` | Enable the zipkin collector for jaeger-all-in-one and listen on port 9411. | -| jaeger-all-in-one.enabled | bool | `false` | Enable jaeger-all-in-one deployment. | -| jaeger-all-in-one.image | object | `{"pullPolicy":"IfNotPresent","repository":"jaegertracing/all-in-one","versionOverride":"latest"}` | The jaeger-all-in-one image configuration. | -| jaeger-all-in-one.image.pullPolicy | string | `"IfNotPresent"` | The jaeger-all-in-one image pull policy. | -| jaeger-all-in-one.image.repository | string | `"jaegertracing/all-in-one"` | The jaeger-all-in-one image repository. | -| jaeger-all-in-one.image.versionOverride | string | `"latest"` | The jaeger-all-in-one image tag. | -| jaeger-all-in-one.resources | object | `{}` | The resources configurations for the jaeger-all-in-one. | -| jaeger-all-in-one.service | object | `{"annotations":{},"port":16686,"type":"ClusterIP"}` | The jaeger-all-in-one service configuration. | -| jaeger-all-in-one.service.annotations | object | `{}` | The annotations for the service. | -| jaeger-all-in-one.service.port | int | `16686` | The service port. | -| jaeger-all-in-one.service.type | string | `"ClusterIP"` | The type of the service. | -| jaeger-all-in-one.volume | object | `{"className":"","enabled":true,"size":"3Gi"}` | The jaeger-all-in-one persistence configuration. | -| jaeger-all-in-one.volume.className | string | `""` | The storageclass for the jaeger-all-in-one. | -| jaeger-all-in-one.volume.enabled | bool | `true` | Whether to enable the persistence for jaeger-all-in-one. | -| jaeger-all-in-one.volume.size | string | `"3Gi"` | The storage size for the jaeger-all-in-one. | -| logging | object | `{"filters":[],"format":"text","level":"info","logsDir":"/data/greptimedb/logs","onlyLogToStdout":false,"persistentWithData":false,"slowQuery":{"enabled":false,"sampleRatio":"1.0","threshold":"10s"}}` | Global logging configuration | -| logging.filters | list | `[]` | The log filters, use the syntax of `target[span\{field=value\}]=level` to filter the logs. | -| logging.format | string | `"text"` | The log format for greptimedb, only support "json" and "text" | -| logging.level | string | `"info"` | The log level for greptimedb, only support "debug", "info", "warn", "debug" | -| logging.logsDir | string | `"/data/greptimedb/logs"` | The logs directory for greptimedb | -| logging.onlyLogToStdout | bool | `false` | Whether to log to stdout only | -| logging.persistentWithData | bool | `false` | indicates whether to persist the log with the datanode data storage. It **ONLY** works for the datanode component. | -| logging.slowQuery | object | `{"enabled":false,"sampleRatio":"1.0","threshold":"10s"}` | The slow query log configuration. | -| logging.slowQuery.enabled | bool | `false` | Enable slow query log. | -| logging.slowQuery.sampleRatio | string | `"1.0"` | Sample ratio of slow query log. | -| logging.slowQuery.threshold | string | `"10s"` | The threshold of slow query log in seconds. | -| meta | object | `{"configData":"","configFile":"","enableRegionFailover":false,"etcdEndpoints":"etcd.etcd-cluster.svc.cluster.local:2379","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"storeKeyPrefix":""}` | Meta configure | -| meta.configData | string | `""` | Extra raw toml config data of meta. Skip if the `configFile` is used. | -| meta.configFile | string | `""` | Extra toml file of meta. | -| meta.enableRegionFailover | bool | `false` | Whether to enable region failover | -| meta.etcdEndpoints | string | `"etcd.etcd-cluster.svc.cluster.local:2379"` | Meta etcd endpoints | -| meta.logging | object | `{}` | Logging configuration for meta, if not set, it will use the global logging configuration. | -| meta.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for meta | -| meta.podTemplate.affinity | object | `{}` | The pod affinity | -| meta.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | -| meta.podTemplate.labels | object | `{}` | The labels to be created to the pod. | -| meta.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | -| meta.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | -| meta.podTemplate.main.command | list | `[]` | The command to be executed in the container | -| meta.podTemplate.main.env | list | `[]` | The environment variables for the container | -| meta.podTemplate.main.image | string | `""` | The meta image. | -| meta.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | -| meta.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | -| meta.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | -| meta.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | -| meta.podTemplate.main.securityContext | object | `{}` | The configurations for meta security context. | -| meta.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | -| meta.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | -| meta.podTemplate.nodeSelector | object | `{}` | The pod node selector | -| meta.podTemplate.securityContext | object | `{}` | The configurations for meta security context. | -| meta.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for meta serviceaccount | -| meta.podTemplate.serviceAccount.create | bool | `false` | Create a service account | -| meta.podTemplate.tolerations | list | `[]` | The pod tolerations | -| meta.podTemplate.volumes | list | `[]` | The pod volumes | -| meta.replicas | int | `1` | Meta replicas | -| meta.storeKeyPrefix | string | `""` | Meta will store data with this key prefix | -| monitoring | object | `{"enabled":false,"logsCollection":{"pipeline":{"data":""}},"standalone":{},"vector":{"registry":"docker.io","repository":"timberio/vector","resources":{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}},"tag":"nightly-alpine"}}` | The monitoring bootstrap configuration | -| monitoring.enabled | bool | `false` | Enable monitoring | -| monitoring.logsCollection | object | `{"pipeline":{"data":""}}` | Configure the logs collection | -| monitoring.logsCollection.pipeline | object | `{"data":""}` | The greptimedb pipeline for logs collection | -| monitoring.standalone | object | `{}` | Configure the standalone instance for storing monitoring data | -| monitoring.vector | object | `{"registry":"docker.io","repository":"timberio/vector","resources":{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}},"tag":"nightly-alpine"}` | Configure vector for logs and metrics collection. | -| monitoring.vector.registry | string | `"docker.io"` | vector image registry | -| monitoring.vector.repository | string | `"timberio/vector"` | vector image repository | -| monitoring.vector.resources | object | `{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}}` | vector resource | -| monitoring.vector.tag | string | `"nightly-alpine"` | vector image tag | -| mysqlServicePort | int | `4002` | GreptimeDB mysql service port | -| objectStorage | object | `{"azblob":{},"gcs":{},"oss":{},"s3":{}}` | Configure to object storage | -| postgresServicePort | int | `4003` | GreptimeDB postgres service port | -| prometheusMonitor | object | `{"enabled":false,"interval":"30s","labels":{"release":"prometheus"}}` | Configure to prometheus PodMonitor | -| prometheusMonitor.enabled | bool | `false` | Create PodMonitor resource for scraping metrics using PrometheusOperator | -| prometheusMonitor.interval | string | `"30s"` | Interval at which metrics should be scraped | -| prometheusMonitor.labels | object | `{"release":"prometheus"}` | Add labels to the PodMonitor | -| remoteWal | object | `{"enabled":false,"kafka":{"brokerEndpoints":[]}}` | Configure to remote wal | -| remoteWal.enabled | bool | `false` | Enable remote wal | -| remoteWal.kafka | object | `{"brokerEndpoints":[]}` | The remote wal type, only support kafka now. | -| remoteWal.kafka.brokerEndpoints | list | `[]` | The kafka broker endpoints | +| Key | Type | Default | Description | +|----------------------------------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------| +| auth | object | `{"enabled":false,"fileName":"passwd","mountPath":"/etc/greptimedb/auth","users":[{"password":"admin","username":"admin"}]}` | The static auth for greptimedb, only support one user now(https://docs.greptime.com/user-guide/deployments/authentication/static). | +| auth.enabled | bool | `false` | Enable static auth | +| auth.fileName | string | `"passwd"` | The auth file name, the full path is `${mountPath}/${fileName}` | +| auth.mountPath | string | `"/etc/greptimedb/auth"` | The auth file path to store the auth info | +| auth.users | list | `[{"password":"admin","username":"admin"}]` | The users to be created in the auth file | +| base.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{}},"nodeSelector":{},"securityContext":{},"serviceAccountName":"","tolerations":[]}` | The pod template for base | +| base.podTemplate.affinity | object | `{}` | The pod affinity | +| base.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | +| base.podTemplate.labels | object | `{}` | The labels to be created to the pod. | +| base.podTemplate.main | object | `{"args":[],"command":[],"env":[],"livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{}}` | The base spec of main container | +| base.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | +| base.podTemplate.main.command | list | `[]` | The command to be executed in the container | +| base.podTemplate.main.env | list | `[]` | The environment variables for the container | +| base.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | +| base.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | +| base.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | +| base.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | +| base.podTemplate.main.securityContext | object | `{}` | The configurations for security context of main container. | +| base.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | +| base.podTemplate.nodeSelector | object | `{}` | The pod node selector | +| base.podTemplate.securityContext | object | `{}` | The configurations for pod security context. | +| base.podTemplate.serviceAccountName | string | `""` | The global service account | +| base.podTemplate.tolerations | list | `[]` | The pod tolerations | +| dashboard | object | `{"dashboards":{"enabled":false,"namespace":null,"label":"grafana_dashboard","labelValue":"1","annotations":{},"extraLabels":{}}}` | Deploy grafana dashboards for the grafana dashboard sidecar. https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards | +| dashboard.enabled | bool | `false` | Enable grafana sidecar dashboards. | +| dashboard.namespace | string | `"~"` | The namespace in which the grafana dashboard configmaps are installed | +| dashboard.label | string | `"grafana_dashboard"` | The label as defined in the grafana helmchart. https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards | +| dashboard.labelValue | string | `"1"` | The label value as defined in the grafana helmchart. https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards | +| dashboard.annotations | object | `{}` | Additional annotation for the configmap | +| dashboard.extraLabels | object | `{}` | Extra labels for the configmap | +| datanode | object | `{"configData":"","configFile":"","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"storage":{"annotations":{},"dataHome":"/data/greptimedb","labels":{},"mountPath":"/data/greptimedb","storageClassName":null,"storageRetainPolicy":"Retain","storageSize":"10Gi"}}` | Datanode configure | +| datanode.configData | string | `""` | Extra raw toml config data of datanode. Skip if the `configFile` is used. | +| datanode.configFile | string | `""` | Extra toml file of datanode. | +| datanode.logging | object | `{}` | Logging configuration for datanode, if not set, it will use the global logging configuration. | +| datanode.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for datanode | +| datanode.podTemplate.affinity | object | `{}` | The pod affinity | +| datanode.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | +| datanode.podTemplate.labels | object | `{}` | The labels to be created to the pod. | +| datanode.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | +| datanode.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | +| datanode.podTemplate.main.command | list | `[]` | The command to be executed in the container | +| datanode.podTemplate.main.env | list | `[]` | The environment variables for the container | +| datanode.podTemplate.main.image | string | `""` | The datanode image. | +| datanode.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | +| datanode.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | +| datanode.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | +| datanode.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | +| datanode.podTemplate.main.securityContext | object | `{}` | The configurations for datanode security context. | +| datanode.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | +| datanode.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | +| datanode.podTemplate.nodeSelector | object | `{}` | The pod node selector | +| datanode.podTemplate.securityContext | object | `{}` | The configurations for datanode security context. | +| datanode.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for datanode serviceaccount | +| datanode.podTemplate.serviceAccount.create | bool | `false` | Create a service account | +| datanode.podTemplate.tolerations | list | `[]` | The pod tolerations | +| datanode.podTemplate.volumes | list | `[]` | The pod volumes | +| datanode.replicas | int | `1` | Datanode replicas | +| datanode.storage.annotations | object | `{}` | The annotations for the PVC that will be created | +| datanode.storage.dataHome | string | `"/data/greptimedb"` | The dataHome directory, default is "/data/greptimedb/" | +| datanode.storage.labels | object | `{}` | The labels for the PVC that will be created | +| datanode.storage.mountPath | string | `"/data/greptimedb"` | The data directory of the storage, default is "/data/greptimedb" | +| datanode.storage.storageClassName | string | `nil` | Storage class for datanode persistent volume | +| datanode.storage.storageRetainPolicy | string | `"Retain"` | Storage retain policy for datanode persistent volume | +| datanode.storage.storageSize | string | `"10Gi"` | Storage size for datanode persistent volume | +| debugPod.enabled | bool | `false` | Enable debug pod | +| debugPod.image | object | `{"registry":"docker.io","repository":"greptime/greptime-tool","tag":"20241107-9c210d18"}` | The debug pod image | +| debugPod.resources | object | `{"limits":{"cpu":"200m","memory":"256Mi"},"requests":{"cpu":"50m","memory":"64Mi"}}` | The debug pod resource | +| flownode | object | `{"configData":"","configFile":"","enabled":false,"logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1}` | Flownode configure. **It's NOT READY YET** | +| flownode.configData | string | `""` | Extra raw toml config data of flownode. Skip if the `configFile` is used. | +| flownode.configFile | string | `""` | Extra toml file of flownode. | +| flownode.enabled | bool | `false` | Enable flownode | +| flownode.logging | object | `{}` | Logging configuration for flownode, if not set, it will use the global logging configuration. | +| flownode.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for frontend | +| flownode.podTemplate.affinity | object | `{}` | The pod affinity | +| flownode.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | +| flownode.podTemplate.labels | object | `{}` | The labels to be created to the pod. | +| flownode.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | +| flownode.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | +| flownode.podTemplate.main.command | list | `[]` | The command to be executed in the container | +| flownode.podTemplate.main.env | list | `[]` | The environment variables for the container | +| flownode.podTemplate.main.image | string | `""` | The flownode image. | +| flownode.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | +| flownode.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | +| flownode.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | +| flownode.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | +| flownode.podTemplate.main.securityContext | object | `{}` | The configurations for flownode security context. | +| flownode.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | +| flownode.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | +| flownode.podTemplate.nodeSelector | object | `{}` | The pod node selector | +| flownode.podTemplate.securityContext | object | `{}` | The configurations for flownode security context. | +| flownode.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for flownode serviceaccount | +| flownode.podTemplate.serviceAccount.create | bool | `false` | Create a service account | +| flownode.podTemplate.tolerations | list | `[]` | The pod tolerations | +| flownode.podTemplate.volumes | list | `[]` | The pod volumes | +| flownode.replicas | int | `1` | Flownode replicas | +| frontend | object | `{"configData":"","configFile":"","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"service":{},"tls":{}}` | Frontend configure | +| frontend.configData | string | `""` | Extra raw toml config data of frontend. Skip if the `configFile` is used. | +| frontend.configFile | string | `""` | Extra toml file of frontend. | +| frontend.logging | object | `{}` | Logging configuration for frontend, if not set, it will use the global logging configuration. | +| frontend.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for frontend | +| frontend.podTemplate.affinity | object | `{}` | The pod affinity | +| frontend.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | +| frontend.podTemplate.labels | object | `{}` | The labels to be created to the pod. | +| frontend.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | +| frontend.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | +| frontend.podTemplate.main.command | list | `[]` | The command to be executed in the container | +| frontend.podTemplate.main.env | list | `[]` | The environment variables for the container | +| frontend.podTemplate.main.image | string | `""` | The frontend image. | +| frontend.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | +| frontend.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | +| frontend.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | +| frontend.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | +| frontend.podTemplate.main.securityContext | object | `{}` | The configurations for frontend container. | +| frontend.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | +| frontend.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | +| frontend.podTemplate.nodeSelector | object | `{}` | The pod node selector | +| frontend.podTemplate.securityContext | object | `{}` | The configurations for frontend security context. | +| frontend.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for frontend serviceaccount | +| frontend.podTemplate.serviceAccount.create | bool | `false` | Create a service account | +| frontend.podTemplate.tolerations | list | `[]` | The pod tolerations | +| frontend.podTemplate.volumes | list | `[]` | The pod volumes | +| frontend.replicas | int | `1` | Frontend replicas | +| frontend.service | object | `{}` | Frontend service | +| frontend.tls | object | `{}` | Frontend tls configure | +| grafana | object | `{"adminPassword":"gt-operator","adminUser":"admin","dashboardProviders":{"dashboardproviders.yaml":{"apiVersion":1,"providers":[{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-metrics","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-metrics"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-logs","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-logs"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-slow-queries","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-slow-queries"},"orgId":1,"type":"file"}]}},"dashboardsConfigMaps":{"greptimedb-cluster-logs":"greptimedb-cluster-logs-dashboard","greptimedb-cluster-metrics":"greptimedb-cluster-metrics-dashboard","greptimedb-cluster-slow-queries":"greptimedb-cluster-slow-queries-dashboard"},"datasources":{"datasources.yaml":{"datasources":[{"access":"proxy","isDefault":true,"name":"metrics","type":"prometheus","url":"http://mycluster-monitor-standalone.default.svc.cluster.local:4000/v1/prometheus"},{"access":"proxy","database":"public","name":"logs","type":"mysql","url":"mycluster-monitor-standalone.default.svc.cluster.local:4002"},{"access":"proxy","database":"information_schema","name":"information_schema","type":"mysql","url":"mycluster-frontend.default.svc.cluster.local:4002"}]}},"enabled":false,"image":{"registry":"docker.io","repository":"grafana/grafana","tag":"11.1.3"},"initChownData":{"enabled":false},"persistence":{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"10Gi"},"service":{"annotations":{},"enabled":true,"type":"ClusterIP"}}` | Deploy grafana for monitoring. | +| grafana.adminPassword | string | `"gt-operator"` | The default admin password for grafana. | +| grafana.adminUser | string | `"admin"` | The default admin username for grafana. | +| grafana.dashboardProviders | object | `{"dashboardproviders.yaml":{"apiVersion":1,"providers":[{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-metrics","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-metrics"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-logs","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-logs"},"orgId":1,"type":"file"},{"disableDeletion":false,"editable":true,"name":"greptimedb-cluster-slow-queries","options":{"path":"/var/lib/grafana/dashboards/greptimedb-cluster-slow-queries"},"orgId":1,"type":"file"}]}}` | The grafana dashboard providers. | +| grafana.dashboardsConfigMaps | object | `{"greptimedb-cluster-logs":"greptimedb-cluster-logs-dashboard","greptimedb-cluster-metrics":"greptimedb-cluster-metrics-dashboard","greptimedb-cluster-slow-queries":"greptimedb-cluster-slow-queries-dashboard"}` | The grafana dashboards configmaps that will be created to store the dashboards. | +| grafana.datasources | object | `{"datasources.yaml":{"datasources":[{"access":"proxy","isDefault":true,"name":"metrics","type":"prometheus","url":"http://mycluster-monitor-standalone.default.svc.cluster.local:4000/v1/prometheus"},{"access":"proxy","database":"public","name":"logs","type":"mysql","url":"mycluster-monitor-standalone.default.svc.cluster.local:4002"},{"access":"proxy","database":"information_schema","name":"information_schema","type":"mysql","url":"mycluster-frontend.default.svc.cluster.local:4002"}]}}` | The grafana datasources. | +| grafana.enabled | bool | `false` | Enable grafana deployment. It needs to enable monitoring `monitoring.enabled: true` first. | +| grafana.image | object | `{"registry":"docker.io","repository":"grafana/grafana","tag":"11.1.3"}` | The grafana image. | +| grafana.image.registry | string | `"docker.io"` | The grafana image registry. | +| grafana.image.repository | string | `"grafana/grafana"` | The grafana image repository. | +| grafana.image.tag | string | `"11.1.3"` | The grafana image tag. | +| grafana.initChownData | object | `{"enabled":false}` | Init chown data for grafana. | +| grafana.initChownData.enabled | bool | `false` | Enable init chown data for grafana. | +| grafana.persistence | object | `{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"10Gi"}` | The grafana persistence configuration. | +| grafana.persistence.accessModes | list | `["ReadWriteOnce"]` | The access modes for the grafana persistence. | +| grafana.persistence.enabled | bool | `true` | Whether to enable the persistence for grafana. | +| grafana.persistence.size | string | `"10Gi"` | The storage size for the grafana persistence. | +| grafana.service | object | `{"annotations":{},"enabled":true,"type":"ClusterIP"}` | The grafana service configuration. | +| grafana.service.annotations | object | `{}` | The annotations for the grafana service. | +| grafana.service.enabled | bool | `true` | Whether to create the service for grafana. | +| grafana.service.type | string | `"ClusterIP"` | The type of the service. | +| grpcServicePort | int | `4001` | GreptimeDB grpc service port | +| httpServicePort | int | `4000` | GreptimeDB http service port | +| image.pullSecrets | list | `[]` | The image pull secrets | +| image.registry | string | `"docker.io"` | The image registry | +| image.repository | string | `"greptime/greptimedb"` | The image repository | +| image.tag | string | `"v0.11.2"` | The image tag | +| initializer.registry | string | `"docker.io"` | Initializer image registry | +| initializer.repository | string | `"greptime/greptimedb-initializer"` | Initializer image repository | +| initializer.tag | string | `"v0.1.4-alpha.3"` | Initializer image tag | +| jaeger-all-in-one | object | `{"enableHttpOpenTelemetryCollector":true,"enableHttpZipkinCollector":true,"enabled":false,"image":{"pullPolicy":"IfNotPresent","repository":"jaegertracing/all-in-one","versionOverride":"latest"},"resources":{},"service":{"annotations":{},"port":16686,"type":"ClusterIP"},"volume":{"className":"","enabled":true,"size":"3Gi"}}` | Deploy jaeger-all-in-one for development purpose. | +| jaeger-all-in-one.enableHttpOpenTelemetryCollector | bool | `true` | Enable the opentelemetry collector for jaeger-all-in-one and listen on port 4317. | +| jaeger-all-in-one.enableHttpZipkinCollector | bool | `true` | Enable the zipkin collector for jaeger-all-in-one and listen on port 9411. | +| jaeger-all-in-one.enabled | bool | `false` | Enable jaeger-all-in-one deployment. | +| jaeger-all-in-one.image | object | `{"pullPolicy":"IfNotPresent","repository":"jaegertracing/all-in-one","versionOverride":"latest"}` | The jaeger-all-in-one image configuration. | +| jaeger-all-in-one.image.pullPolicy | string | `"IfNotPresent"` | The jaeger-all-in-one image pull policy. | +| jaeger-all-in-one.image.repository | string | `"jaegertracing/all-in-one"` | The jaeger-all-in-one image repository. | +| jaeger-all-in-one.image.versionOverride | string | `"latest"` | The jaeger-all-in-one image tag. | +| jaeger-all-in-one.resources | object | `{}` | The resources configurations for the jaeger-all-in-one. | +| jaeger-all-in-one.service | object | `{"annotations":{},"port":16686,"type":"ClusterIP"}` | The jaeger-all-in-one service configuration. | +| jaeger-all-in-one.service.annotations | object | `{}` | The annotations for the service. | +| jaeger-all-in-one.service.port | int | `16686` | The service port. | +| jaeger-all-in-one.service.type | string | `"ClusterIP"` | The type of the service. | +| jaeger-all-in-one.volume | object | `{"className":"","enabled":true,"size":"3Gi"}` | The jaeger-all-in-one persistence configuration. | +| jaeger-all-in-one.volume.className | string | `""` | The storageclass for the jaeger-all-in-one. | +| jaeger-all-in-one.volume.enabled | bool | `true` | Whether to enable the persistence for jaeger-all-in-one. | +| jaeger-all-in-one.volume.size | string | `"3Gi"` | The storage size for the jaeger-all-in-one. | +| logging | object | `{"filters":[],"format":"text","level":"info","logsDir":"/data/greptimedb/logs","onlyLogToStdout":false,"persistentWithData":false,"slowQuery":{"enabled":false,"sampleRatio":"1.0","threshold":"10s"}}` | Global logging configuration | +| logging.filters | list | `[]` | The log filters, use the syntax of `target[span\{field=value\}]=level` to filter the logs. | +| logging.format | string | `"text"` | The log format for greptimedb, only support "json" and "text" | +| logging.level | string | `"info"` | The log level for greptimedb, only support "debug", "info", "warn", "debug" | +| logging.logsDir | string | `"/data/greptimedb/logs"` | The logs directory for greptimedb | +| logging.onlyLogToStdout | bool | `false` | Whether to log to stdout only | +| logging.persistentWithData | bool | `false` | indicates whether to persist the log with the datanode data storage. It **ONLY** works for the datanode component. | +| logging.slowQuery | object | `{"enabled":false,"sampleRatio":"1.0","threshold":"10s"}` | The slow query log configuration. | +| logging.slowQuery.enabled | bool | `false` | Enable slow query log. | +| logging.slowQuery.sampleRatio | string | `"1.0"` | Sample ratio of slow query log. | +| logging.slowQuery.threshold | string | `"10s"` | The threshold of slow query log in seconds. | +| meta | object | `{"configData":"","configFile":"","enableRegionFailover":false,"etcdEndpoints":"etcd.etcd-cluster.svc.cluster.local:2379","logging":{},"podTemplate":{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]},"replicas":1,"storeKeyPrefix":""}` | Meta configure | +| meta.configData | string | `""` | Extra raw toml config data of meta. Skip if the `configFile` is used. | +| meta.configFile | string | `""` | Extra toml file of meta. | +| meta.enableRegionFailover | bool | `false` | Whether to enable region failover | +| meta.etcdEndpoints | string | `"etcd.etcd-cluster.svc.cluster.local:2379"` | Meta etcd endpoints | +| meta.logging | object | `{}` | Logging configuration for meta, if not set, it will use the global logging configuration. | +| meta.podTemplate | object | `{"affinity":{},"annotations":{},"labels":{},"main":{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]},"nodeSelector":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":false},"tolerations":[],"volumes":[]}` | The pod template for meta | +| meta.podTemplate.affinity | object | `{}` | The pod affinity | +| meta.podTemplate.annotations | object | `{}` | The annotations to be created to the pod. | +| meta.podTemplate.labels | object | `{}` | The labels to be created to the pod. | +| meta.podTemplate.main | object | `{"args":[],"command":[],"env":[],"image":"","livenessProbe":{},"readinessProbe":{},"resources":{"limits":{},"requests":{}},"securityContext":{},"startupProbe":{},"volumeMounts":[]}` | The spec of main container | +| meta.podTemplate.main.args | list | `[]` | The arguments to be passed to the command | +| meta.podTemplate.main.command | list | `[]` | The command to be executed in the container | +| meta.podTemplate.main.env | list | `[]` | The environment variables for the container | +| meta.podTemplate.main.image | string | `""` | The meta image. | +| meta.podTemplate.main.livenessProbe | object | `{}` | The config for liveness probe of the main container | +| meta.podTemplate.main.readinessProbe | object | `{}` | The config for readiness probe of the main container | +| meta.podTemplate.main.resources.limits | object | `{}` | The resources limits for the container | +| meta.podTemplate.main.resources.requests | object | `{}` | The requested resources for the container | +| meta.podTemplate.main.securityContext | object | `{}` | The configurations for meta security context. | +| meta.podTemplate.main.startupProbe | object | `{}` | The config for startup probe of the main container | +| meta.podTemplate.main.volumeMounts | list | `[]` | The pod volumeMounts | +| meta.podTemplate.nodeSelector | object | `{}` | The pod node selector | +| meta.podTemplate.securityContext | object | `{}` | The configurations for meta security context. | +| meta.podTemplate.serviceAccount.annotations | object | `{}` | The annotations for meta serviceaccount | +| meta.podTemplate.serviceAccount.create | bool | `false` | Create a service account | +| meta.podTemplate.tolerations | list | `[]` | The pod tolerations | +| meta.podTemplate.volumes | list | `[]` | The pod volumes | +| meta.replicas | int | `1` | Meta replicas | +| meta.storeKeyPrefix | string | `""` | Meta will store data with this key prefix | +| monitoring | object | `{"enabled":false,"logsCollection":{"pipeline":{"data":""}},"standalone":{},"vector":{"registry":"docker.io","repository":"timberio/vector","resources":{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}},"tag":"nightly-alpine"}}` | The monitoring bootstrap configuration | +| monitoring.enabled | bool | `false` | Enable monitoring | +| monitoring.logsCollection | object | `{"pipeline":{"data":""}}` | Configure the logs collection | +| monitoring.logsCollection.pipeline | object | `{"data":""}` | The greptimedb pipeline for logs collection | +| monitoring.standalone | object | `{}` | Configure the standalone instance for storing monitoring data | +| monitoring.vector | object | `{"registry":"docker.io","repository":"timberio/vector","resources":{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}},"tag":"nightly-alpine"}` | Configure vector for logs and metrics collection. | +| monitoring.vector.registry | string | `"docker.io"` | vector image registry | +| monitoring.vector.repository | string | `"timberio/vector"` | vector image repository | +| monitoring.vector.resources | object | `{"limits":{"cpu":"500m","memory":"256Mi"},"requests":{"cpu":"500m","memory":"256Mi"}}` | vector resource | +| monitoring.vector.tag | string | `"nightly-alpine"` | vector image tag | +| mysqlServicePort | int | `4002` | GreptimeDB mysql service port | +| objectStorage | object | `{"azblob":{},"gcs":{},"oss":{},"s3":{}}` | Configure to object storage | +| postgresServicePort | int | `4003` | GreptimeDB postgres service port | +| prometheusMonitor | object | `{"enabled":false,"interval":"30s","labels":{"release":"prometheus"}}` | Configure to prometheus PodMonitor | +| prometheusMonitor.enabled | bool | `false` | Create PodMonitor resource for scraping metrics using PrometheusOperator | +| prometheusMonitor.interval | string | `"30s"` | Interval at which metrics should be scraped | +| prometheusMonitor.labels | object | `{"release":"prometheus"}` | Add labels to the PodMonitor | +| remoteWal | object | `{"enabled":false,"kafka":{"brokerEndpoints":[]}}` | Configure to remote wal | +| remoteWal.enabled | bool | `false` | Enable remote wal | +| remoteWal.kafka | object | `{"brokerEndpoints":[]}` | The remote wal type, only support kafka now. | +| remoteWal.kafka.brokerEndpoints | list | `[]` | The kafka broker endpoints | diff --git a/charts/greptimedb-cluster/templates/grafana-dashboards-sidecar.yaml b/charts/greptimedb-cluster/templates/grafana-dashboards-sidecar.yaml new file mode 100644 index 0000000..57e6eaa --- /dev/null +++ b/charts/greptimedb-cluster/templates/grafana-dashboards-sidecar.yaml @@ -0,0 +1,26 @@ +{{- if .Values.dashboards.enabled }} +{{ $root := . }} +{{- range $path, $_ := .Files.Glob "dashboards/**.json" }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + labels: + component: grafana-dashboards + {{- if $.Values.dashboards.label }} + {{ $.Values.dashboards.label }}: {{ ternary $.Values.dashboards.labelValue "1" (not (empty $.Values.dashboards.labelValue)) | quote }} + {{- end }} + {{- with $.Values.dashboards.extraLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with $.Values.dashboards.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + name: dashboard-{{ (base $path | replace ".json" "" | trunc 63 | replace "_" "-") }} + namespace: {{ $.Values.dashboards.namespace | default $.Release.Namespace }} +data: +{{ (base $path | replace ".json" "" | trunc 63 | replace "_" "-" | lower | indent 2) }}.json: | +{{ $root.Files.Get $path | indent 4 }} +{{- end }} +{{- end }} diff --git a/charts/greptimedb-cluster/values.yaml b/charts/greptimedb-cluster/values.yaml index 144ead6..f8dd2a4 100644 --- a/charts/greptimedb-cluster/values.yaml +++ b/charts/greptimedb-cluster/values.yaml @@ -940,6 +940,16 @@ logging: # -- Sample ratio of slow query log. sampleRatio: "1.0" +# -- Deploy grafana dashboards for the grafana dashboard sidecar. +# -- https://github.com/grafana/helm-charts/tree/main/charts/grafana#sidecar-for-dashboards +dashboards: + enabled: false + namespace: ~ + label: grafana_dashboard + labelValue: "1" + annotations: {} + extraLabels: {} + # -- Deploy grafana for monitoring. grafana: # -- Enable grafana deployment. It needs to enable monitoring `monitoring.enabled: true` first.