# 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'