Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/validator/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: "0.6.11"
version: "0.7.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
Expand Down
5 changes: 3 additions & 2 deletions charts/validator/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# validator

![Version: 0.6.11](https://img.shields.io/badge/Version-0.6.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.78.5](https://img.shields.io/badge/AppVersion-0.78.5-informational?style=flat-square)
![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.78.5](https://img.shields.io/badge/AppVersion-0.78.5-informational?style=flat-square)

A Helm chart for deploying Chronicle Validator on Kubernetes

Expand Down Expand Up @@ -31,7 +31,7 @@ A Helm chart for deploying Chronicle Validator on Kubernetes
| ghost.service.trafficDistribution | string | `""` | Optional Kubernetes Service traffic distribution hint, for example PreferSameZone. |
| ghost.service.type | string | `"LoadBalancer"` | Type of service for the validator, only `LoadBalancer` supported for now |
| ghost.watchdogConfigReg | string | `"0x94Fea534aef6df5cF66C2DAE5CE0A05d10C068F3"` | WATCHDOG onchain config address |
| global | object | `{"affinity":{},"chainId":1,"chainName":"eth","chainTxType":"eip1559","fullnameOverride":"ghost","image":{"pullPolicy":"Always","repository":"ghcr.io/chronicleprotocol/ghost","tag":"0.78.5@sha256:951d711620659f022ad662af5543f825631ec598551b38027c9e54ef748055b6"},"imagePullSecrets":[],"liveness":{"enabled":true,"livenessProbe":{"failureThreshold":4,"httpGet":{"path":"/healthz","port":9100},"initialDelaySeconds":60,"periodSeconds":60}},"logFormat":"text","logLevel":"info","metrics":{"enabled":true,"port":9090},"nameOverride":"","nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"readiness":{"enabled":true,"readinessProbe":{"failureThreshold":4,"httpGet":{"path":"/healthz","port":9100},"initialDelaySeconds":60,"periodSeconds":60}},"replicaCount":1,"resources":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":true,"name":""},"tolerations":[],"topologySpreadConstraints":[]}` | Global values for the validator chart, values are used across the chart resources |
| global | object | `{"affinity":{},"chainId":1,"chainName":"eth","chainTxType":"eip1559","fullnameOverride":"ghost","image":{"pullPolicy":"Always","repository":"ghcr.io/chronicleprotocol/ghost","tag":"0.78.5@sha256:951d711620659f022ad662af5543f825631ec598551b38027c9e54ef748055b6"},"imagePullSecrets":[],"liveness":{"enabled":true,"livenessProbe":{"failureThreshold":4,"httpGet":{"path":"/healthz","port":9100},"initialDelaySeconds":60,"periodSeconds":60}},"logFormat":"text","logLevel":"info","metrics":{"enabled":true,"port":9090},"nameOverride":"","nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"readiness":{"enabled":true,"readinessProbe":{"failureThreshold":4,"httpGet":{"path":"/healthz","port":9100},"initialDelaySeconds":60,"periodSeconds":60}},"replicaCount":1,"resources":{},"securityContext":{},"serviceAccount":{"annotations":{},"create":true,"name":""},"startup":{"enabled":false,"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/healthz","port":9100},"periodSeconds":10}},"tolerations":[],"topologySpreadConstraints":[]}` | Global values for the validator chart, values are used across the chart resources |
| global.affinity | object | `{}` | pod Affinity spec applied validator |
| global.chainId | int | `1` | chain id for the "target" or "main" chain we use for the validator. Can be mainnet ethereum `1` or sepolia ethereum `11155111` |
| global.chainName | string | `"eth"` | chain name for the "target" or "main" chain we use for the validator |
Expand All @@ -52,6 +52,7 @@ A Helm chart for deploying Chronicle Validator on Kubernetes
| global.serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
| global.serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
| global.serviceAccount.name | string | `""` | If not set and create is true, a name is generated using the fullname template |
| global.startup | object | `{"enabled":false,"startupProbe":{"failureThreshold":30,"httpGet":{"path":"/healthz","port":9100},"periodSeconds":10}}` | Startup probe : give a slow-starting validator time to serve /healthz before the liveness probe can kill it. While this probe is running the liveness and readiness probes are suspended, so startup time and steady-state failure detection are tuned independently instead of trading off against each other. Disabled by default to keep existing releases unchanged; enable it for validators whose startup can exceed the liveness initialDelaySeconds. failureThreshold x periodSeconds is the startup budget (default 30 x 10s = 5 minutes). |
| global.tolerations | list | `[]` | Tolerations applied validator |
| global.topologySpreadConstraints | list | `[]` | Topology spread constraints applied to both ghost and vao pods |
| serviceMonitor.annotations | object | `{}` | Additional ServiceMonitor annotations |
Expand Down
5 changes: 5 additions & 0 deletions charts/validator/templates/deployment-vao.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ spec:
protocol: TCP
{{- end }}

{{- if and .Values.global.startup .Values.global.startup.enabled }}
startupProbe:
{{- toYaml .Values.global.startup.startupProbe | nindent 12 }}
{{- end }}

{{- if .Values.global.liveness.enabled }}
livenessProbe:
{{- toYaml .Values.global.liveness.livenessProbe | nindent 12 }}
Expand Down
5 changes: 5 additions & 0 deletions charts/validator/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,11 @@ spec:
{{- end }}


{{- if and .Values.global.startup .Values.global.startup.enabled }}
startupProbe:
{{- toYaml .Values.global.startup.startupProbe | nindent 12 }}
{{- end }}

{{- if .Values.global.liveness.enabled }}
livenessProbe:
{{- toYaml .Values.global.liveness.livenessProbe | nindent 12 }}
Expand Down
16 changes: 16 additions & 0 deletions charts/validator/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,22 @@ global:
periodSeconds: 60
failureThreshold: 4

# -- Startup probe : give a slow-starting validator time to serve /healthz before the
# liveness probe can kill it. While this probe is running the liveness and readiness
# probes are suspended, so startup time and steady-state failure detection are tuned
# independently instead of trading off against each other.
# Disabled by default to keep existing releases unchanged; enable it for validators
# whose startup can exceed the liveness initialDelaySeconds.
# failureThreshold x periodSeconds is the startup budget (default 30 x 10s = 5 minutes).
startup:
enabled: false
startupProbe:
httpGet:
path: /healthz
port: 9100
periodSeconds: 10
failureThreshold: 30

# -- Metrics port for the validator, used by the service and the service monitor
metrics:
enabled: true
Expand Down
Loading