|
| 1 | +# CVMS Helm Chart |
| 2 | + |
| 3 | +The Cosmos Validator Monitoring Service (CVMS) is an integrated monitoring system for validators within the Cosmos app chain ecosystem. This helm chart is fot installing cvms on kubernetes. |
| 4 | + |
| 5 | +## Prerequisites |
| 6 | + |
| 7 | +- Kubernetes 1.19+ |
| 8 | +- Helm 3.0+ |
| 9 | + |
| 10 | +## Installation |
| 11 | + |
| 12 | +To install the chart with the release name `my-release`: |
| 13 | + |
| 14 | +```bash |
| 15 | +helm install my-release cvms/helm |
| 16 | +``` |
| 17 | + |
| 18 | +## Uninstallation |
| 19 | + |
| 20 | +To uninstall/delete the `my-release` deployment: |
| 21 | + |
| 22 | +```bash |
| 23 | +helm uninstall my-release |
| 24 | +``` |
| 25 | + |
| 26 | +## Configuration |
| 27 | + |
| 28 | +The following table lists the configurable parameters of the CVMS chart and their default values. |
| 29 | + |
| 30 | +**Note**: You must provide cvmsConfig.monikers and cvmsConfig.chains for monitoring Cosmos validators with cvms, checkout the example in https://github.com/cosmostation/cvms/blob/release/docs/setup.md |
| 31 | + |
| 32 | +| Parameter | Description | Default | |
| 33 | +|--------------------------|---------------------------------------|--------------------------------| |
| 34 | +| `imagePullSecrets` | Image pull secrets | `[]` | |
| 35 | +| `nameOverride` | Override the name of the chart | `""` | |
| 36 | +| `fullnameOverride` | Override the full name of the chart | `""` | |
| 37 | +| `namespaceOverride` | Override the namespace of the chart | `""` | |
| 38 | +| `customChainsConfig.enabled` | Enable custom chains configuration | `false` | |
| 39 | +| `customChainsConfig.name` | Name of the custom chains configmap | `custom-chains-cm` | |
| 40 | +| `cvmsConfig.name` | Name of the CVMS configmap | `cvms-cm` | |
| 41 | +| `cvmsConfig.monikers` | CVMS config for validator or network mode | `[]` | |
| 42 | +| `cvmsConfig.chains` | CVMS config for monitoring chains | `[]` | |
| 43 | +| `indexer.replicaCount` | Number of replicas for the indexer | `1` | |
| 44 | +| `indexer.image.repository` | Image repository for the indexer | `cosmostation/cvms` | |
| 45 | +| `indexer.image.pullPolicy` | Image pull policy for the indexer | `Always` | |
| 46 | +| `indexer.image.tag` | Image tag for the indexer | `latest` | |
| 47 | +| `indexer.command` | Command to run in the indexer container | `["/bin/cvms"]` | |
| 48 | +| `indexer.args` | Arguments for the indexer container | `["start", "indexer", "--config=/var/lib/cvms/config.yaml", "--log-color-disable", "false", "--log-level", "4", "--port=9300"]` | |
| 49 | +| `indexer.env` | Environment variables for the indexer | `{ DB_RETENTION_PERIOD: 1h }` | |
| 50 | +| `indexer.revisionHistoryLimit` | Number of old ReplicaSets to retain | `2` | |
| 51 | +| `indexer.podAnnotations` | Annotations for the indexer pods | `{}` | |
| 52 | +| `indexer.podLabels` | Labels for the indexer pods | `{}` | |
| 53 | +| `indexer.podSecurityContext.enabled` | Enable pod security context for the indexer | `false` | |
| 54 | +| `indexer.securityContext.enabled` | Enable security context for the indexer | `true` | |
| 55 | +| `indexer.service.type` | Service type for the indexer | `ClusterIP` | |
| 56 | +| `indexer.service.port` | Service port for the indexer | `9300` | |
| 57 | +| `indexer.resources.enabled` | Enable resource requests and limits for the indexer | `true` | |
| 58 | +| `indexer.livenessProbe.enabled` | Enable liveness probe for the indexer | `true` | |
| 59 | +| `indexer.readinessProbe.enabled` | Enable readiness probe for the indexer | `true` | |
| 60 | +| `indexer.volumes` | Additional volumes for the indexer | See `values.yaml` | |
| 61 | +| `indexer.volumeMounts` | Additional volume mounts for the indexer | See `values.yaml` | |
| 62 | +| `indexer.nodeSelector` | Node selector for the indexer pods | `{}` | |
| 63 | +| `indexer.tolerations` | Tolerations for the indexer pods | `[]` | |
| 64 | +| `indexer.affinity` | Affinity rules for the indexer pods | `{}` | |
| 65 | +| `indexer.metrics.type` | Metrics service type for the indexer | `ClusterIP` | |
| 66 | +| `indexer.metrics.servicePort` | Metrics service port for the indexer | `9300` | |
| 67 | +| `indexer.serviceMonitor.enabled` | Enable Prometheus ServiceMonitor for the indexer | `false` | |
| 68 | +| `exporter.replicaCount` | Number of replicas for the exporter | `1` | |
| 69 | +| `exporter.image.repository` | Image repository for the exporter | `cosmostation/cvms` | |
| 70 | +| `exporter.image.pullPolicy` | Image pull policy for the exporter | `Always` | |
| 71 | +| `exporter.image.tag` | Image tag for the exporter | `latest` | |
| 72 | +| `exporter.command` | Command to run in the exporter container | `["/bin/cvms"]` | |
| 73 | +| `exporter.args` | Arguments for the exporter container | `["start", "exporter", "--config=/var/lib/cvms/config.yaml", "--log-color-disable", "false", "--log-level", "4", "--port=9200"]` | |
| 74 | +| `exporter.env` | Environment variables for the exporter | `{}` | |
| 75 | +| `exporter.revisionHistoryLimit` | Number of old ReplicaSets to retain | `2` | |
| 76 | +| `exporter.podAnnotations` | Annotations for the exporter pods | `{}` | |
| 77 | +| `exporter.podLabels` | Labels for the exporter pods | `{}` | |
| 78 | +| `exporter.podSecurityContext.enabled` | Enable pod security context for the exporter | `false` | |
| 79 | +| `exporter.securityContext.enabled` | Enable security context for the exporter | `true` | |
| 80 | +| `exporter.service.type` | Service type for the exporter | `ClusterIP` | |
| 81 | +| `exporter.service.port` | Service port for the exporter | `9200` | |
| 82 | +| `exporter.resources.enabled` | Enable resource requests and limits for the exporter | `true` | |
| 83 | +| `exporter.livenessProbe.enabled` | Enable liveness probe for the exporter | `true` | |
| 84 | +| `exporter.readinessProbe.enabled` | Enable readiness probe for the exporter | `true` | |
| 85 | +| `exporter.volumes` | Additional volumes for the exporter | See `values.yaml` | |
| 86 | +| `exporter.volumeMounts` | Additional volume mounts for the exporter | See `values.yaml` | |
| 87 | +| `exporter.nodeSelector` | Node selector for the exporter pods | `{}` | |
| 88 | +| `exporter.tolerations` | Tolerations for the exporter pods | `[]` | |
| 89 | +| `exporter.affinity` | Affinity rules for the exporter pods | `{}` | |
| 90 | +| `exporter.metrics.type` | Metrics service type for the exporter | `ClusterIP` | |
| 91 | +| `exporter.metrics.servicePort` | Metrics service port for the exporter | `9200` | |
| 92 | +| `exporter.serviceMonitor.enabled` | Enable Prometheus ServiceMonitor for the exporter | `false` | |
| 93 | +| `postgresql.enabled` | Enable PostgreSQL | `true` | |
| 94 | +| `postgresql.auth.username` | PostgreSQL username | `cvms` | |
| 95 | +| `postgresql.auth.password` | PostgreSQL password | `mysecretpassword` | |
| 96 | +| `postgresql.auth.database` | PostgreSQL database | `cvms` | |
| 97 | +| `postgresql.architecture` | PostgreSQL architecture | `standalone` | |
| 98 | +| `postgresql.primary.resourcesPreset` | PostgreSQL primary resources preset | `nano` | |
| 99 | +| `postgresql.primary.resources` | PostgreSQL primary resources | `{}` | |
| 100 | +| `postgresql.primary.persistence.storageClass` | PostgreSQL primary storage class | `""` | |
| 101 | +| `postgresql.primary.persistence.size` | PostgreSQL primary storage size | `500Mi` | |
| 102 | +| `postgresql.external.host` | External PostgreSQL host | `""` | |
| 103 | +| `postgresql.external.port` | External PostgreSQL port | `5432` | |
| 104 | +| `postgresql.external.user` | External PostgreSQL user | `cvms` | |
| 105 | +| `postgresql.external.password` | External PostgreSQL password | `""` | |
| 106 | +| `postgresql.external.database` | External PostgreSQL database | `cvms` | |
| 107 | + |
| 108 | +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example: |
| 109 | + |
| 110 | +```bash |
| 111 | +helm install my-release /path/to/cvms --set indexer.image.tag=1.0.0 --set exporter.image.tag=1.0.0 |
| 112 | +``` |
| 113 | + |
| 114 | +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example: |
| 115 | + |
| 116 | +```bash |
| 117 | +helm install my-release /path/to/cvms -f values.yaml |
| 118 | +``` |
| 119 | + |
| 120 | +### Detailed Configuration |
| 121 | + |
| 122 | +Below is a more detailed explanation of the values that can be set in the `values.yaml` file: |
| 123 | + |
| 124 | +- `image.repository`: The Docker image repository for the CVMS application. |
| 125 | +- `image.tag`: The tag of the Docker image to use. |
| 126 | +- `image.pullPolicy`: The Kubernetes image pull policy. |
| 127 | +- `service.type`: The type of Kubernetes service to create (e.g., `ClusterIP`, `NodePort`, `LoadBalancer`). |
| 128 | +- `service.port`: The port on which the service will be exposed. |
| 129 | +- `resources`: Resource requests and limits for the CVMS pods. |
| 130 | +- `nodeSelector`: Node labels for pod assignment. |
| 131 | +- `tolerations`: Tolerations for pod assignment. |
| 132 | +- `affinity`: Affinity rules for pod assignment. |
0 commit comments