Files
payouts/helm-chart

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:

helm install my-release .

The command deploys the payouts service on the Kubernetes cluster in the default configuration. The Values section lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

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:

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'