92 lines
4.1 KiB
Markdown
92 lines
4.1 KiB
Markdown
# Payouts Helm Chart
|
|
|
|
This chart deploys the payouts service to a Kubernetes cluster using Helm.
|
|
|
|
## Introduction
|
|
|
|
This chart bootstraps a payouts service deployment on a Kubernetes cluster using the Helm package manager.
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.19+
|
|
- Helm 3.0+
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
helm install my-release .
|
|
```
|
|
|
|
The command deploys the payouts service on the Kubernetes cluster in the default configuration. The [Values](#values) section lists the parameters that can be configured during installation.
|
|
|
|
## Uninstalling the Chart
|
|
|
|
To uninstall/delete the `my-release` deployment:
|
|
|
|
```bash
|
|
helm delete my-release
|
|
```
|
|
|
|
## Values
|
|
|
|
| Key | Type | Default | Description |
|
|
|-----|------|---------|-------------|
|
|
| replicaCount | int | `1` | Number of replicas |
|
|
| image.repository | string | `"payouts"` | Image repository |
|
|
| image.tag | string | `"latest"` | Image tag |
|
|
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
|
|
| service.type | string | `"ClusterIP"` | Service type |
|
|
| service.port | int | `8080` | Service port |
|
|
| ingress.enabled | bool | `false` | Enable ingress |
|
|
| ingress.className | string | `""` | Ingress class name |
|
|
| ingress.hosts[0].host | string | `"chart-example.local"` | Ingress host |
|
|
| ingress.hosts[0].paths[0].path | string | `"/"` | Ingress path |
|
|
| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | Ingress path type |
|
|
| server.port | string | `":8080"` | Server port |
|
|
| server.writeTimeout | string | `"35s"` | Server write timeout |
|
|
| server.readTimeout | string | `"35s"` | Server read timeout |
|
|
| server.enablePProfEndpoints | bool | `false` | Enable pprof endpoints |
|
|
| database.type | string | `""` | Database type |
|
|
| database.connection | string | `""` | Database connection string |
|
|
| database.logLevel | string | `"Info"` | Database log level |
|
|
| database.traceRequests | bool | `false` | Trace database requests |
|
|
| cache.ttl | string | `"24h"` | Cache TTL |
|
|
| log.level | string | `"DEBUG"` | Log level |
|
|
| log.filePath | string | `"./logs/payouts.log"` | Log file path |
|
|
| log.textOutput | bool | `false` | Text output format |
|
|
| log.stdoutEnabled | bool | `true` | Enable stdout logging |
|
|
| log.fileEnabled | bool | `false` | Enable file logging |
|
|
| log.fluentEnabled | bool | `false` | Enable fluent logging |
|
|
| metrics.endpoint | string | `"/metrics"` | Metrics endpoint |
|
|
| metrics.histogramBuckets | string | `"0.001,0.002,0.005,0.01,0.025,0.05,0.1,0.25,0.5,1,2.5,5,10"` | Histogram buckets |
|
|
| metrics.http.histogramEnabled | bool | `true` | Enable HTTP histogram |
|
|
| metrics.http.buckets | string | `"0.001,0.002,0.005,0.01,0.025,0.05,0.1,0.25,0.5,1,2.5,5,10"` | HTTP buckets |
|
|
| yookassa.baseUrl | string | `"https://api.yookassa.ru/v3"` | YooKassa base URL |
|
|
| yookassa.timeout | string | `"2s"` | YooKassa timeout |
|
|
| yookassa.retry.enabled | bool | `false` | Enable retry |
|
|
| yookassa.retry.count | int | `3` | Retry count |
|
|
| yookassa.retry.waitTime | string | `"200ms"` | Retry wait time |
|
|
| yookassa.retry.maxWaitTime | string | `"5s"` | Max retry wait time |
|
|
| yookassa.test | bool | `false` | Test mode |
|
|
| yookassa.checkAllowedCallbackAddress | bool | `true` | Check callback address |
|
|
| yookassa.allowedCallbackSubnets | string | `"185.71.76.0/27,185.71.77.0/27,77.75.153.0/25,77.75.156.11/32,77.75.156.35/32,77.75.154.128/25,2a02:5180::/32"` | Allowed callback subnets |
|
|
| yookassa.callbackProcessTimeout | string | `"1s"` | Callback process timeout |
|
|
|
|
## Secrets
|
|
|
|
The following secrets are used for sensitive configuration and must be provided via Kubernetes secrets:
|
|
|
|
- `yookassa-base-key`: YooKassa base API key
|
|
- `yookassa-base-secret`: YooKassa base API secret
|
|
- `yookassa-payment-key`: YooKassa payment API key
|
|
- `yookassa-payment-secret`: YooKassa payment API secret
|
|
|
|
Example to create the secret:
|
|
```bash
|
|
kubectl create secret generic payouts-secrets \
|
|
--from-literal=yookassa-base-key='YOUR_BASE_KEY' \
|
|
--from-literal=yookassa-base-secret='YOUR_BASE_SECRET' \
|
|
--from-literal=yookassa-payment-key='YOUR_PAYMENT_KEY' \
|
|
--from-literal=yookassa-payment-secret='YOUR_PAYMENT_SECRET' |