diff --git a/charts/incubator/hyperswitch-app/Chart.yaml b/charts/incubator/hyperswitch-app/Chart.yaml index b74abc01..3d9a79df 100644 --- a/charts/incubator/hyperswitch-app/Chart.yaml +++ b/charts/incubator/hyperswitch-app/Chart.yaml @@ -3,12 +3,12 @@ appVersion: 1.16.0 description: Hyperswitch is a community-led, open payments switch designed to empower digital businesses by providing fast, reliable, and affordable access to the best payments infrastructure. name: hyperswitch-app type: application -version: 0.3.0-beta.3 +version: 0.3.0-beta.4 dependencies: - - name: redis - version: 18.6.1 - repository: https://charts.bitnami.com/bitnami - condition: redis.enabled + - name: valkey + version: 0.8.1 + repository: https://valkey.io/valkey-helm/ + condition: valkey.enabled - name: postgresql repository: https://charts.bitnami.com/bitnami version: 15.5.38 diff --git a/charts/incubator/hyperswitch-app/README.md b/charts/incubator/hyperswitch-app/README.md index bb7c6bf3..5456d095 100644 --- a/charts/incubator/hyperswitch-app/README.md +++ b/charts/incubator/hyperswitch-app/README.md @@ -2,7 +2,7 @@ Hyperswitch is a community-led, open payments switch designed to empower digital businesses by providing fast, reliable, and affordable access to the best payments infrastructure. -   +   # Deploy on Kubernetes using Helm @@ -141,10 +141,10 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp | https://charts.bitnami.com/bitnami | clickhouse | 6.3.3 | | https://charts.bitnami.com/bitnami | kafka | 31.0.0 | | https://charts.bitnami.com/bitnami | postgresql | 15.5.38 | -| https://charts.bitnami.com/bitnami | redis | 18.6.1 | | https://codecentric.github.io/helm-charts | mailhog | 4.0.0 | | https://helm.vector.dev | vector | 0.37.0 | | https://juspay.github.io/hyperswitch-helm | hyperswitch-card-vault | 0.1.4 | +| https://valkey.io/valkey-helm/ | valkey | 0.8.1 | ## Values
"""jhdvfvsnbdj""default""Asia/Kolkata"true"clickhouse""error"111false"hyperswitch""hyperswitch"null"hyperswitch""postgresql-ext""hyperswitch""hyperswitch""hyperswitch"false"postgres-service"true""""false"redis-ext-master"11true"kafka0""PLAINTEXT""PLAINTEXT""PLAINTEXT""PLAINTEXT"1290921true"mailhog""replication"true"hyperswitch""ZGJwYXNzd29yZDEx""hyperswitch""""150m"0"100m"1"off"falsefalsetrue10true{
"name": "KAFKA_HOST",
"value": "kafka0:29092"
@@ -391,12 +379,10 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
Description
-
+
{
"destinationRule": {
- "router": {
- "trafficPolicy": {}
- }
+ "trafficPolicy": {}
},
"enabled": false,
"virtualService": {
@@ -405,16 +391,10 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
"hosts": [],
"http": [
{
- "router": {
- "rules": [
- {
- "match": [],
- "retries": {},
- "timeout": "50s",
- "weight": 100
- }
- ]
- }
+ "match": [],
+ "retries": {},
+ "timeout": "50s",
+ "weight": 100
}
]
}
@@ -430,15 +410,15 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
Description
-
+
"default"
Clickhouse database name
-
+
"http://clickhouse:8123"
Clickhouse host in http(s)://: format
-
+
{
"_secretRef": {
"key": "admin-password",
@@ -447,107 +427,107 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Clickhouse password (optional)
-
+
"default"
Clickhouse username
-
+
{
"_secret": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
}
API key hashing key.
-
+
{
"_secret": "dummy_val"
}
Merchant Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Merchant Identity Certificate
-
+
{
"_secret": "dummy_val"
}
Private key generated by RSA:2048 algorithm. Refer Hyperswitch Docs (https://docs.hyperswitch.io/hyperswitch-cloud/payment-methods-setup/wallets/apple-pay/ios-application/) to generate the private key
-
+
{
"_secret": "dummy_val"
}
Payment Processing Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Payment Processing Certificate
-
+
{
"_secret": "dummy_val"
}
Private key generated by Elliptic-curve prime256v1 curve. You can use `openssl ecparam -out private.key -name prime256v1 -genkey` to generate the private key
-
+
{
"_secret": "dummy_val"
}
Refer to config.example.toml to learn how you can generate this value
-
+
{
"_secret": "dummy_val"
}
Merchant Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Merchant Identity Certificate
-
+
{
"_secret": "dummy_val"
}
Private key generate by RSA:2048 algorithm. Refer Hyperswitch Docs (https://docs.hyperswitch.io/hyperswitch-cloud/payment-methods-setup/wallets/apple-pay/ios-application/) to generate the private key
-
+
"us-east-1"
AWS region used by AWS SES
-
+
"arn:aws:iam::123456789012:role/SendEmailRole"
The amazon resource name ( arn ) of the role which has permission to send emails
-
+
"SendEmailRole"
An identifier for the assumed role session, used to uniquely identify a session.
-
+
"business@example.com"
Recipient email for prod intent email
-
+
"recon@example.com"
Recipient email for recon request email
-
+
"example@example.com"
Sender email
-
+
"mailhog"
Host of the smtp server
-
+
{
"_secret": "dummy_val"
}
Api key for making request to foreign exchange Api, Follow https://github.com/juspay/hyperswitch/tree/main/crates/analytics#setting-up-forex-apis to get the forex api key
-
+
{
"_secret": "dummy_val"
}
Forex Api key for the fallback service
-
+
"-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----"
The public key for the locker from locker-public-key.pub, these are only test keys, please change it when deploying to production or other environments
-
+
"-----BEGIN RSA PRIVATE KEY-----...-----END RSA PRIVATE KEY-----"
The private key for the tenant from tenant-private-key.pem, these are only test keys, please change it when deploying to production or other environments
-
+
{
"ca": {
"_secret": "sample_ca"
@@ -558,57 +538,57 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Encryption key used for encrypting data in user_authentication_methods table
-
+
{
"_secret": "kms_key_id"
}
KMS key id for encryption and decryption
-
+
{
"_secret": "dummy_val"
}
Encryption key for redis temp locker
-
+
{
"_secret": "dummy_val"
}
# Payment method auth key used for authorization
-
+
"PAZE_PRIVATE_KEY"
Base 64 Encoded Private Key File cakey.pem generated for Paze -> Command to create private key: openssl req -newkey rsa:2048 -x509 -keyout cakey.pem -out cacert.pem -days 365
-
+
"PAZE_PRIVATE_KEY_PASSPHRASE"
PEM Passphrase used for generating Private Key File cakey.pem
-
+
{
"_secret": "test_admin"
}
admin API key for admin authentication.
-
+
{
"_secret": "test_admin"
}
JWT secret used for user authentication.
-
+
{
"_secret": "471f22516724347bcca9c20c5fa88d9821c4604e63a6aceffd24605809c9237c"
}
Master Encryption key used to encrypt merchant wise encryption key. Should be 32-byte long.
-
+
{
"_secret": "test_admin"
}
Recon Admin API key for recon admin authentication.
-
+
{
"encryption_key": {
"_secret": "A8EF32E029BC3342E54BF2E172A4D7AA43E8EF9D2C3A624A9F04E2EF79DC698F"
@@ -677,15 +657,15 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
"v1.117.0"
Router version
-
+
"http://localhost:9050"
SDK host
-
+
"v1"
SDK subversion
-
+
"0.126.0"
SDK version
@@ -700,62 +680,141 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
-
+
{
"configs": "{{ .Release.Name }}-hyperswitch-configs",
"secrets": "{{ .Release.Name }}-hyperswitch-secrets"
}
Common references for templated resource names
-
+
"{{ .Release.Name }}-hyperswitch-configs"
Hyperswitch configs reference with release name prefix
-
+
"{{ .Release.Name }}-hyperswitch-secrets"
Hyperswitch secrets reference with release name prefix
-
+
+ [
+ {
+ "setCanaryScale": {
+ "replicas": 2
+ }
+ },
+ {
+ "setWeight": 0
+ },
+ {
+ "pause": {}
+ },
+ {
+ "setWeight": 50
+ },
+ {
+ "pause": {
+ "duration": "1m"
+ }
+ },
+ {
+ "setWeight": 75
+ },
+ {
+ "pause": {
+ "duration": "1m"
+ }
+ },
+ {
+ "setWeight": 100
+ }
+]
+ Canary deployment steps with traffic percentage and pause duration
+
+
+ false
+ Enable header-based canary routing
+
+
+ [
+ {
+ "headerName": "X-Canary-Test",
+ "headerValue": {
+ "exact": "true"
+ }
+ }
+]
+ Header matching rules
+
+
+ "header-canary-route"
+ Route name for managed header routing
+
+
+ {
+ "destinationRule": {
+ "canarySubsetName": "canary",
+ "stableSubsetName": "stable"
+ },
+ "enabled": true
+}
+ Enable Istio traffic management for canary deployments
+
+
+ {
+ "canarySubsetName": "canary",
+ "stableSubsetName": "stable"
+}
+ DestinationRule subset names
+
+
+ false
+ Enable Argo Rollouts for canary deployments (uses Rollout resource instead of Deployment) When disabled, standard Kubernetes Deployment is used
+
+
+ 3
+ Revision history limit for rollouts
+
+
true
-
- 10
+
+ 5
-
- 1
+
+ 3
-
+
80
-
+
"clickhouse"
-
+
"bitnamilegacy/clickhouse"
-
+
24.3
-
+
"none"
-
+
"bitnamilegacy/zookeeper"
-
+
false
Enable External Secrets Operator resources
-
+
[
{
"creationPolicy": "Owner",
@@ -773,11 +832,11 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
]
List of external secrets to create You can define multiple secrets here
-
+
"Owner"
Creation policy
-
+
[
{
"extract": {
@@ -787,19 +846,19 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
]
Extract configuration (use dataFrom.extract for full secret)
-
+
"1h"
Refresh interval
-
+
"hyperswitch-secrets"
Target secret name in Kubernetes
-
+
"hyperswitch-secret-store"
Name of the SecretStore
-
+
{
"aws": {
"auth": {
@@ -815,220 +874,176 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Provider configuration (matches External Secrets Operator format) You can use any supported provider here see: https://external-secrets.io/latest/
-
+
{}
Annotations for the service account (e.g., IRSA role)
-
+
true
Create service account
-
+
{}
Extra labels for the service account
-
+
""
Name of the service account (default: hyperswitch-eso-sa)
-
+
true
-
+
"bitnamilegacy/postgresql:16.1.0-debian-11-r18"
-
+
"docker.io"
-
+
"bitnamilegacy/clickhouse:24.3"
-
+
"docker.io"
-
+
30
-
+
"bitnamilegacy/postgresql:16.1.0-debian-11-r18"
-
+
"docker.io"
-
+
60
-
+
true
-
+
"christophwurst/diesel-cli:latest"
-
+
"docker.io"
-
+
"tags"
-
- {
- "router": {
- "trafficPolicy": {}
- }
-}
- DestinationRule configuration
-
-
+
{
"trafficPolicy": {}
}
- Router DestinationRule configuration
+ DestinationRule configuration
-
+
{}
Traffic policy configuration for router - rendered directly as YAML
-
+
false
Enable Istio resources
-
+
{
"create": true,
"gateways": [],
"hosts": [],
"http": [
{
- "router": {
- "rules": [
- {
- "match": [],
- "retries": {},
- "timeout": "50s",
- "weight": 100
- }
- ]
- }
+ "match": [],
+ "retries": {},
+ "timeout": "50s",
+ "weight": 100
}
]
}
VirtualService configuration
-
+
true
Create VirtualService
-
+
[]
Gateways for the VirtualService
-
+
[]
Hosts for the VirtualService
-
+
[
{
- "router": {
- "rules": [
- {
- "match": [],
- "retries": {},
- "timeout": "50s",
- "weight": 100
- }
- ]
- }
+ "match": [],
+ "retries": {},
+ "timeout": "50s",
+ "weight": 100
}
]
HTTP routing rules (ordered list) Note: Rules are processed in the order they appear in this list. Ensure specific routes (like /api/) come before catch-all routes (like /).
-
+
"none"
-
+
"none"
-
+
"offsets.topic.replication.factor=1\ntransaction.state.log.replication.factor=1\n"
-
+
"bitnamilegacy/kafka"
-
+
"bitnamilegacy/zookeeper"
-
+
"loadBalancer-sg"
-
+
"bitnamilegacy/postgresql"
-
+
"16.1.0-debian-11-r18"
-
- "bitnamilegacy/redis"
-
-
-
- "7.2.3-debian-11-r2"
-
-
-
- true
-
-
-
- "bitnamilegacy/redis:7.2.3-debian-11-r2"
-
-
-
- "docker.io"
-
-
-
- 60
-
-
-
+
{}
Annotations that are to be added the the deployments (extends global configuration)
-
+
false
-
+
"clickhouse"
The Analytics source/strategy to be used
-
+
10
Timeout for database connection in seconds
-
+
{
"_configRef": {
"key": "ROUTER__MASTER_DATABASE__DBNAME",
@@ -1037,7 +1052,7 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Database name
-
+
{
"_configRef": {
"key": "ROUTER__MASTER_DATABASE__HOST",
@@ -1046,11 +1061,11 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Database host
-
+
5
Number of connections to keep open
-
+
{
"_configRef": {
"key": "ROUTER__MASTER_DATABASE__PORT",
@@ -1059,11 +1074,11 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Database port
-
+
"Fifo"
Add the queue strategy used by the database bb8 client
-
+
{
"_configRef": {
"key": "ROUTER__MASTER_DATABASE__USERNAME",
@@ -1072,840 +1087,840 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Database username
-
+
"https://apple-pay-gateway.apple.com/paymentservices/registerMerchant"
Apple pay gateway merchant endpoint
-
+
"12345"
Default CellID for Global Cell Information
-
+
false
-
+
"http://0.0.0.0:8000"
-
+
"stripe,adyen,paypal,checkout,braintree,cybersource,square,worldpay,klarna,noon,archipel"
-
+
"merchant_ids"
-
+
"dummy_val"
-
+
"dummy_val"
-
+
true
-
+
"dummy_val"
-
+
"merchant_id_1"
-
+
"merchant_id_2"
-
+
"http://localhost:8080"
-
+
{
"base_url": "http://localhost:8080"
}
Unified Authentication Service Configuration
-
+
"http://localhost:8080"
base url to call unified authentication service
-
+
"GET,POST,PUT,DELETE"
List of methods that are allowed
-
+
30
Maximum time (in seconds) for which this CORS request may be cached.
-
+
"https://hyperswti"
-
+
true
If true, allows any origin to make requests
-
+
"hubspot_proxy"
-
+
"form_id"
-
+
"request_url"
-
+
"SMTP"
The currently active email client
-
+
1
Number of days the api calls ( with jwt token ) can be made without verifying the email
-
+
"plaintext"
connection type to be used for the smtp server
-
+
"1025"
Port of the smtp server
-
+
10
timeout for the smtp server connection
-
+
"no_encryption"
Encryption manager client to be used
-
+
"hyperswitch-api-log-events"
Kafka topic to be used for incoming api events
-
+
"hyperswitch-payment-attempt-events"
Kafka topic to be used for PaymentAttempt events
-
+
"hyperswitch-audit-events"
Kafka topic to be used for Payment Audit events
-
+
"hyperswitch-authentication-events"
Kafka topic to be used for Authentication events
-
+
"kafka0:29092"
-
+
"hyperswitch-outgoing-connector-events"
Kafka topic to be used for connector api events
-
+
"hyperswitch-consolidated-events"
Kafka topic to be used for Consolidated events
-
+
"hyperswitch-dispute-events"
Kafka topic to be used for Dispute events
-
+
"hyperswitch-fraud-check-events"
Kafka topic to be used for Fraud Check events
-
+
"hyperswitch-payment-intent-events"
Kafka topic to be used for PaymentIntent events
-
+
"hyperswitch-outgoing-webhook-events"
Kafka topic to be used for outgoing webhook events
-
+
"hyperswitch-payout-events"
Kafka topic to be used for Payouts and PayoutAttempt events
-
+
"hyperswitch-refund-events"
Kafka topic to be used for Refund events
-
+
"topic"
-
+
"topic"
-
+
"kafka"
The event sink to push events supports kafka or logs (stdout)
-
+
"bucket"
-
+
"us-east-1"
-
+
21600
-
+
100
-
+
172800
-
+
"ach,bacs,sepa"
-
+
"credit,debit"
-
+
"paypal,pix,venmo"
-
+
"900"
-
+
""
Auto-generated from services.sdk. Override with custom URL if needed.
-
+
"https://app.hyperswitch.io/HyperswitchFavicon.png"
-
+
"HyperSwitch"
-
+
"#4285F4"
-
+
"credit,debit"
-
+
"900"
-
+
""
Auto-generated from services.sdk. Override with custom URL if needed.
-
+
"https://app.hyperswitch.io/HyperswitchFavicon.png"
-
+
"HyperSwitch"
-
+
"#4285F4"
-
+
"GOOGLE_PAY_ROOT_SIGNING_KEYS"
-
+
"localhost"
Client Host
-
+
7000
Client Port
-
+
"dynamo"
Client Service Name
-
+
"http://127.0.0.1:8080"
-
+
"http://localhost:8000"
-
+
"10"
-
+
"paytm, phonepe"
-
+
"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsn4glmrihAG7Vppqd3Hm\nRXZiGmuZW0J+NQt72453oSnGc6Sw1Fk/vY0WhQIn6/Ip1Xt6dnMyorI3b9RtfQNP\nDFND3/g7n2I9uMqEr6aYxg0pKw9UW3uBlzR5JzvMVnzEjIRfdtuqSlphdpAVuZPE\nFEN9kE/VasBIeaKmbYFZxmz4AN2IBBvqWCaqIQZOrTRzfGNhVBlX/O+Sv59cy6n6\nQEoYJ/Ww3R7cUlSrueQNlSubkoa8ihBcm9VA7Bdklrps7B17yzMTAgqhZPkLMIQQ\nDBI1vFDlSKrWHNXfm4WyAXJ8MXOl+ThNJdAoDw2wNJmfOrgaPQFiMfPZYgKl/2Gu\nYQIDAQAB\n-----END PUBLIC KEY-----\n"
-
+
"dummy_val"
-
+
"us-east-1"
AWS KMS region
-
+
false
-
+
900
-
+
500
Delay between retries in milliseconds
-
+
180
Seconds before the redis lock expires
-
+
"http://hyperswitch-vault"
Locker host
-
+
null
Rust Locker host
-
+
true
Boolean to enable or disable saving cards in locker
-
+
"1"
Key_id to sign basilisk hs locker
-
+
false
Emulate a locker locally using Postgres
-
+
220752000
Time to live for storage entries in locker
-
+
true
-
+
"DEBUG"
Log level for console logs, ERROR, WARN, INFO, DEBUG
-
+
"json"
-
+
false
-
+
"DEBUG"
-
+
"json"
-
+
15
Interval for collecting the metrics in background thread
-
+
false
boolean [true or false], whether to ignore errors during traces or metrics pipeline setup
-
+
false
boolean [true or false], whether metrics are enabled
-
+
""
URL for external OpenTelemetry Collector endpoint to send metrics and traces to. The OpenTelemetry Collector must have a gRPC OTLP receiver listening at this endpoint. If left empty, the endpoint will be auto-configured as: -opentelemetry-collector..svc.cluster.local:4317 when using hyperswitch-stack with monitoring enabled. Leave empty for auto-configuration or specify custom endpoint.
-
+
5000
timeout (in milliseconds) for sending metrics and traces
-
+
"*/confirm"
-
+
0.1
-
+
false
boolean [true or false], whether traces are enabled
-
+
false
Set this to true for AWS X-ray compatible traces
-
+
10
Timeout for database connection in seconds
-
+
"20"
Number of connections to keep open
-
+
"Fifo"
Add the queue strategy used by the database bb8 client
-
+
false
-
+
false
-
+
"default"
-
+
""
-
+
"public"
-
+
"global"
-
+
"public"
-
+
"http://localhost:8080"
-
+
"default"
-
+
""
-
+
"public"
-
+
"http://localhost:9000"
-
+
"https://example.com/status"
-
+
"https://example.com/delete"
-
+
"https://example.com/fetch"
-
+
"https://example.com/generate"
-
+
"key_id"
-
+
"private_key"
-
+
"public_key"
-
+
"api_key"
-
+
"placeholder_webhook_key"
-
+
"basic"
-
+
"admin"
-
+
"eu-central-1"
-
+
"admin"
-
+
false
-
+
"https://localhost:9200"
-
+
"hyperswitch-dispute-events"
-
+
"hyperswitch-payment-attempt-events"
-
+
"hyperswitch-payment-intent-events"
-
+
"hyperswitch-refund-events"
-
+
"sessionizer-dispute-events"
-
+
"sessionizer-payment-attempt-events"
-
+
"sessionizer-payment-intent-events"
-
+
"sessionizer-refund-events"
-
+
""
Auto-generated from services.sdk. Override with custom URL if needed.
-
+
900
Redis expiry time in milliseconds
-
+
"localhost, cluster.local"
A comma-separated list of domains or IP addresses that should not use the proxy. Whitespace between entries would be ignored.
-
+
false
-
+
"http://proxy_http_url"
Outgoing proxy http URL to proxy the HTTP traffic
-
+
"https://proxy_https_url"
Outgoing proxy https URL to proxy the HTTPS traffic
-
+
false
-
+
true
Whether or not the client should automatically pipeline commands across tasks when possible.
-
+
false
boolean
-
+
[
"redis.cluster.uri-1:8080",
"redis.cluster.uri-2:4115"
]
List of redis cluster urls
-
+
30
An optional timeout to apply to all commands. In seconds
-
+
900
Default TTL for hashes entries, in seconds
-
+
300
Default TTL for entries, in seconds
-
+
false
Whether or not to disable the automatic backpressure features when pipelining is enabled.
-
+
200
The maximum number of frames that will be fed to a socket before flushing.
-
+
5000
The maximum number of in-flight commands (per connection) before backpressure will be applied.
-
+
5
Number of connections to keep open
-
+
5
Delay between reconnection attempts, in milliseconds
-
+
5
Maximum number of reconnection attempts to make before failing. Set to 0 to retry forever.
-
+
1
Default number of entries to read from stream if not provided in stream read options
-
+
10
An optional timeout for Unresponsive commands in seconds. This should be less than default_command_timeout.
-
+
false
RESP protocol for fred crate (set this to true if using RESPv2 or redis version < 6)
-
+
10
Timeout for database connection in seconds
-
+
"20"
Number of connections to keep open
-
+
"Fifo"
Add the queue strategy used by the database bb8 client
-
+
"report_download_config_authentication_function"
Config to authentication function
-
+
"report_download_config_dispute_function"
Config to download dispute report
-
+
"report_download_config_payment_function"
Config to download payment report
-
+
"report_download_config_refund_function"
Config to download refund report
-
+
"report_download_config_region"
Region of the bucket
-
+
20
-
+
20
-
+
20
-
+
20
-
+
10
-
+
35
-
+
20
-
+
20
-
+
10368000
-
+
1
-
+
3888000
-
+
"cascading"
-
+
"1685510751"
-
+
"no_encryption"
Secrets manager client to be used
-
+
"0.0.0.0"
-
+
8080
-
+
32768
HTTP Request body limit. Defaults to 32kB
-
+
30
For more details: https://actix.rs/docs/server/#graceful-shutdown
-
+
8
-
+
"#FFFFFF"
Background color of email body
-
+
"https://example.com/logo.png"
Logo URL of the entity to be used in emails
-
+
"HyperSwitch"
Name of the entity to be showed in emails
-
+
"#000000"
Foreground color of email text
-
+
"#006DF9"
Primary color of email body
-
+
"bucket"
AWS S3 bucket name for theme storage
-
+
"bucket_region"
AWS region where the S3 bucket for theme storage is located
-
+
"aws_s3"
Theme storage backend to be used
-
+
"http://localhost:9000"
-
+
false
-
+
false
-
+
"90"
-
+
"Hyperswitch Sandbox"
-
+
"300"
-
+
false
-
+
false
Enable or disable keymanager
-
+
""
KeyManager service URL
-
+
{}
Labels to be added to the deployment's (match labels) and their pods (extends global configuration)
-
+
{}
Annotations that are to be added to the pods (extends global configuration)
-
+
600
-
+
1
Number of replicas to be used for the application
-
+
{
"limits": {
"cpu": "1000m",
@@ -1918,41 +1933,41 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
}
Resource requests and limits for the router/server
-
+
"sandbox"
Processor URLs will be decided based on this config, Eg: production, sandbox or integ
-
+
{
"eks.amazonaws.com/role-arn": "my-role-arn"
}
Annotations to be added to the service account
-
+
true
Service account creation for the application
-
+
{}
Labels to be added to the service account
-
+
""
Service account name for the application ( default: -hyperswitch-router-role)
-
+
1
-
+
0
-
+
"RollingUpdate"
-
+
30
The time kubernetes will wait after sending the termination signal to the pods
@@ -1971,6 +1986,34 @@ Refer our [postman collection](https://www.postman.com/hyperswitch/workspace/hyp
true
+
+
+ "valkey/valkey"
+
+
+
+ ""
+
+
+
+ 2
+
+
+
+ true
+
+
+
+ "valkey/valkey:8.1.4"
+
+
+
+ "docker.io"
+
+
+
+ 60
+
diff --git a/charts/incubator/hyperswitch-app/Taskfile.yaml b/charts/incubator/hyperswitch-app/Taskfile.yaml
index 87f0409c..22789fce 100644
--- a/charts/incubator/hyperswitch-app/Taskfile.yaml
+++ b/charts/incubator/hyperswitch-app/Taskfile.yaml
@@ -63,21 +63,29 @@ tasks:
aliases:
- har
- helm-redis-install:
- desc: deploy standalone bitnami redis based on helm chart
+ helm-add-valkey-repo:
+ desc: helm add repo and upgrade
cmds:
- - task: helm-add-repo
+ - helm repo add valkey https://valkey.io/valkey-helm/
+ - helm repo update
+ aliases:
+ - har
+
+ helm-valkey-install:
+ desc: deploy standalone valkey based on helm chart
+ cmds:
+ - task: helm-add-valkey-repo
- >-
helm upgrade
--install
{{ .RELEASE_NAME }}
- bitnami/redis
- --version 18.6.1
+ valkey/valkey
+ --version 0.8.1
-n {{ .NAMESPACE }}
--debug
- -f dev/bitnami-redis-values.yaml
+ -f dev/bitnami-valkey-values.yaml
vars:
- RELEASE_NAME: redis-ext
+ RELEASE_NAME: valkey-ext
NAMESPACE: hyperswitch
aliases:
- hri
diff --git a/charts/incubator/hyperswitch-app/dev/bitnami-redis-values.yaml b/charts/incubator/hyperswitch-app/dev/bitnami-redis-values.yaml
deleted file mode 100644
index 15c45b88..00000000
--- a/charts/incubator/hyperswitch-app/dev/bitnami-redis-values.yaml
+++ /dev/null
@@ -1,1958 +0,0 @@
-# Copyright VMware, Inc.
-# SPDX-License-Identifier: APACHE-2.0
-
-## @section Global parameters
-## Global Docker image parameters
-## Please, note that this will override the image parameters, including dependencies, configured to use the global value
-## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
-##
-
-## @param global.imageRegistry Global Docker image registry
-## @param global.imagePullSecrets Global Docker registry secret names as an array
-## @param global.storageClass Global StorageClass for Persistent Volume(s)
-## @param global.redis.password Global Redis® password (overrides `auth.password`)
-##
-global:
- imageRegistry: ""
- ## E.g.
- ## imagePullSecrets:
- ## - myRegistryKeySecretName
- ##
- imagePullSecrets: []
- storageClass: ""
- redis:
- password: ""
-
-## @section Common parameters
-##
-
-## @param kubeVersion Override Kubernetes version
-##
-kubeVersion: ""
-## @param nameOverride String to partially override common.names.fullname
-##
-nameOverride: ""
-## @param fullnameOverride String to fully override common.names.fullname
-##
-fullnameOverride: ""
-## @param namespaceOverride String to fully override common.names.namespace
-##
-namespaceOverride: ""
-## @param commonLabels Labels to add to all deployed objects
-##
-commonLabels: {}
-## @param commonAnnotations Annotations to add to all deployed objects
-##
-commonAnnotations: {}
-## @param secretAnnotations Annotations to add to secret
-##
-secretAnnotations: {}
-## @param clusterDomain Kubernetes cluster domain name
-##
-clusterDomain: cluster.local
-## @param extraDeploy Array of extra objects to deploy with the release
-##
-extraDeploy: []
-## @param useHostnames Use hostnames internally when announcing replication. If false, the hostname will be resolved to an IP address
-##
-useHostnames: true
-## @param nameResolutionThreshold Failure threshold for internal hostnames resolution
-##
-nameResolutionThreshold: 5
-## @param nameResolutionTimeout Timeout seconds between probes for internal hostnames resolution
-##
-nameResolutionTimeout: 5
-
-## Enable diagnostic mode in the deployment
-##
-diagnosticMode:
- ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
- ##
- enabled: false
- ## @param diagnosticMode.command Command to override all containers in the deployment
- ##
- command:
- - sleep
- ## @param diagnosticMode.args Args to override all containers in the deployment
- ##
- args:
- - infinity
-
-## @section Redis® Image parameters
-##
-
-## Bitnami Redis® image
-## ref: https://hub.docker.com/r/bitnami/redis/tags/
-## @param image.registry [default: REGISTRY_NAME] Redis® image registry
-## @param image.repository [default: REPOSITORY_NAME/redis] Redis® image repository
-## @skip image.tag Redis® image tag (immutable tags are recommended)
-## @param image.digest Redis® image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
-## @param image.pullPolicy Redis® image pull policy
-## @param image.pullSecrets Redis® image pull secrets
-## @param image.debug Enable image debug mode
-##
-image:
- registry: docker.io
- repository: bitnami/redis
- tag: 7.2.3-debian-11-r2
- digest: ""
- ## Specify a imagePullPolicy
- ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
- ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
- ##
- pullPolicy: IfNotPresent
- ## Optionally specify an array of imagePullSecrets.
- ## Secrets must be manually created in the namespace.
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- ## e.g:
- ## pullSecrets:
- ## - myRegistryKeySecretName
- ##
- pullSecrets: []
- ## Enable debug mode
- ##
- debug: false
-
-## @section Redis® common configuration parameters
-## https://github.com/bitnami/containers/tree/main/bitnami/redis#configuration
-##
-
-## @param architecture Redis® architecture. Allowed values: `standalone` or `replication`
-##
-architecture: replication
-## Redis® Authentication parameters
-## ref: https://github.com/bitnami/containers/tree/main/bitnami/redis#setting-the-server-password-on-first-run
-##
-auth:
- ## @param auth.enabled Enable password authentication
- ##
- enabled: false
- ## @param auth.sentinel Enable password authentication on sentinels too
- ##
- sentinel: false
- ## @param auth.password Redis® password
- ## Defaults to a random 10-character alphanumeric string if not set
- ##
- password: ""
- ## @param auth.existingSecret The name of an existing secret with Redis® credentials
- ## NOTE: When it's set, the previous `auth.password` parameter is ignored
- ##
- existingSecret: ""
- ## @param auth.existingSecretPasswordKey Password key to be retrieved from existing secret
- ## NOTE: ignored unless `auth.existingSecret` parameter is set
- ##
- existingSecretPasswordKey: ""
- ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
- ##
- usePasswordFiles: false
-
-## @param commonConfiguration [string] Common configuration to be added into the ConfigMap
-## ref: https://redis.io/topics/config
-##
-commonConfiguration: |-
- # Enable AOF https://redis.io/topics/persistence#append-only-file
- appendonly yes
- # Disable RDB persistence, AOF persistence already enabled.
- save ""
-## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for Redis® nodes
-##
-existingConfigmap: ""
-
-## @section Redis® master configuration parameters
-##
-
-master:
- ## @param master.count Number of Redis® master instances to deploy (experimental, requires additional configuration)
- ##
- count: 1
- ## @param master.configuration Configuration for Redis® master nodes
- ## ref: https://redis.io/topics/config
- ##
- configuration: ""
- ## @param master.disableCommands Array with Redis® commands to disable on master nodes
- ## Commands will be completely disabled by renaming each to an empty string.
- ## ref: https://redis.io/topics/security#disabling-of-specific-commands
- ##
- disableCommands:
- - FLUSHDB
- - FLUSHALL
- ## @param master.command Override default container command (useful when using custom images)
- ##
- command: []
- ## @param master.args Override default container args (useful when using custom images)
- ##
- args: []
- ## @param master.enableServiceLinks Whether information about services should be injected into pod's environment variable
- ##
- enableServiceLinks: true
- ## @param master.preExecCmds Additional commands to run prior to starting Redis® master
- ##
- preExecCmds: []
- ## @param master.extraFlags Array with additional command line flags for Redis® master
- ## e.g:
- ## extraFlags:
- ## - "--maxmemory-policy volatile-ttl"
- ## - "--repl-backlog-size 1024mb"
- ##
- extraFlags: []
- ## @param master.extraEnvVars Array with extra environment variables to add to Redis® master nodes
- ## e.g:
- ## extraEnvVars:
- ## - name: FOO
- ## value: "bar"
- ##
- extraEnvVars: []
- ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® master nodes
- ##
- extraEnvVarsCM: ""
- ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® master nodes
- ##
- extraEnvVarsSecret: ""
- ## @param master.containerPorts.redis Container port to open on Redis® master nodes
- ##
- containerPorts:
- redis: 6379
- ## Configure extra options for Redis® containers' liveness and readiness probes
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
- ## @param master.startupProbe.enabled Enable startupProbe on Redis® master nodes
- ## @param master.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
- ## @param master.startupProbe.periodSeconds Period seconds for startupProbe
- ## @param master.startupProbe.timeoutSeconds Timeout seconds for startupProbe
- ## @param master.startupProbe.failureThreshold Failure threshold for startupProbe
- ## @param master.startupProbe.successThreshold Success threshold for startupProbe
- ##
- startupProbe:
- enabled: false
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ## @param master.livenessProbe.enabled Enable livenessProbe on Redis® master nodes
- ## @param master.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
- ## @param master.livenessProbe.periodSeconds Period seconds for livenessProbe
- ## @param master.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
- ## @param master.livenessProbe.failureThreshold Failure threshold for livenessProbe
- ## @param master.livenessProbe.successThreshold Success threshold for livenessProbe
- ##
- livenessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ## @param master.readinessProbe.enabled Enable readinessProbe on Redis® master nodes
- ## @param master.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
- ## @param master.readinessProbe.periodSeconds Period seconds for readinessProbe
- ## @param master.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
- ## @param master.readinessProbe.failureThreshold Failure threshold for readinessProbe
- ## @param master.readinessProbe.successThreshold Success threshold for readinessProbe
- ##
- readinessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 5
- ## @param master.customStartupProbe Custom startupProbe that overrides the default one
- ##
- customStartupProbe: {}
- ## @param master.customLivenessProbe Custom livenessProbe that overrides the default one
- ##
- customLivenessProbe: {}
- ## @param master.customReadinessProbe Custom readinessProbe that overrides the default one
- ##
- customReadinessProbe: {}
- ## Redis® master resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param master.resources.limits The resources limits for the Redis® master containers
- ## @param master.resources.requests The requested resources for the Redis® master containers
- ##
- resources:
- limits: {}
- requests: {}
- ## Configure Pods Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param master.podSecurityContext.enabled Enabled Redis® master pods' Security Context
- ## @param master.podSecurityContext.fsGroup Set Redis® master pod's Security Context fsGroup
- ##
- podSecurityContext:
- enabled: true
- fsGroup: 1001
- ## Configure Container Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param master.containerSecurityContext.enabled Enabled Redis® master containers' Security Context
- ## @param master.containerSecurityContext.runAsUser Set Redis® master containers' Security Context runAsUser
- ## @param master.containerSecurityContext.runAsGroup Set Redis® master containers' Security Context runAsGroup
- ## @param master.containerSecurityContext.runAsNonRoot Set Redis® master containers' Security Context runAsNonRoot
- ## @param master.containerSecurityContext.allowPrivilegeEscalation Is it possible to escalate Redis® pod(s) privileges
- ## @param master.containerSecurityContext.seccompProfile.type Set Redis® master containers' Security Context seccompProfile
- ## @param master.containerSecurityContext.capabilities.drop Set Redis® master containers' Security Context capabilities to drop
- ##
- containerSecurityContext:
- enabled: true
- runAsUser: 1001
- runAsGroup: 0
- runAsNonRoot: true
- allowPrivilegeEscalation: false
- seccompProfile:
- type: RuntimeDefault
- capabilities:
- drop:
- - ALL
- ## @param master.kind Use either Deployment, StatefulSet (default) or DaemonSet
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
- ##
- kind: StatefulSet
- ## @param master.schedulerName Alternate scheduler for Redis® master pods
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- schedulerName: ""
- ## @param master.updateStrategy.type Redis® master statefulset strategy type
- ## @skip master.updateStrategy.rollingUpdate
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
- ##
- updateStrategy:
- ## StrategyType
- ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
- ##
- type: RollingUpdate
- ## @param master.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
- ##
- minReadySeconds: 0
- ## @param master.priorityClassName Redis® master pods' priorityClassName
- ##
- priorityClassName: ""
- ## @param master.hostAliases Redis® master pods host aliases
- ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
- ##
- hostAliases: []
- ## @param master.podLabels Extra labels for Redis® master pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- ##
- podLabels: {}
- ## @param master.podAnnotations Annotations for Redis® master pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
- ##
- podAnnotations: {}
- ## @param master.shareProcessNamespace Share a single process namespace between all of the containers in Redis® master pods
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
- ##
- shareProcessNamespace: false
- ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
- ##
- podAffinityPreset: ""
- ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
- ##
- podAntiAffinityPreset: soft
- ## Node master.affinity preset
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
- ##
- nodeAffinityPreset:
- ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
- ##
- type: ""
- ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
- ##
- key: ""
- ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
- ## E.g.
- ## values:
- ## - e2e-az1
- ## - e2e-az2
- ##
- values: []
- ## @param master.affinity Affinity for Redis® master pods assignment
- ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
- ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
- ##
- affinity: {}
- ## @param master.nodeSelector Node labels for Redis® master pods assignment
- ## ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
- ## @param master.tolerations Tolerations for Redis® master pods assignment
- ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
- ##
- tolerations: []
- ## @param master.topologySpreadConstraints Spread Constraints for Redis® master pod assignment
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
- ## E.g.
- ## topologySpreadConstraints:
- ## - maxSkew: 1
- ## topologyKey: node
- ## whenUnsatisfiable: DoNotSchedule
- ##
- topologySpreadConstraints: []
- ## @param master.dnsPolicy DNS Policy for Redis® master pod
- ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
- ## E.g.
- ## dnsPolicy: ClusterFirst
- ##
- dnsPolicy: ""
- ## @param master.dnsConfig DNS Configuration for Redis® master pod
- ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
- ## E.g.
- ## dnsConfig:
- ## options:
- ## - name: ndots
- ## value: "4"
- ## - name: single-request-reopen
- ##
- dnsConfig: {}
- ## @param master.lifecycleHooks for the Redis® master container(s) to automate configuration before or after startup
- ##
- lifecycleHooks: {}
- ## @param master.extraVolumes Optionally specify extra list of additional volumes for the Redis® master pod(s)
- ##
- extraVolumes: []
- ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® master container(s)
- ##
- extraVolumeMounts: []
- ## @param master.sidecars Add additional sidecar containers to the Redis® master pod(s)
- ## e.g:
- ## sidecars:
- ## - name: your-image-name
- ## image: your-image
- ## imagePullPolicy: Always
- ## ports:
- ## - name: portname
- ## containerPort: 1234
- ##
- sidecars: []
- ## @param master.initContainers Add additional init containers to the Redis® master pod(s)
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
- ## e.g:
- ## initContainers:
- ## - name: your-image-name
- ## image: your-image
- ## imagePullPolicy: Always
- ## command: ['sh', '-c', 'echo "hello world"']
- ##
- initContainers: []
- ## Persistence parameters
- ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- persistence:
- ## @param master.persistence.enabled Enable persistence on Redis® master nodes using Persistent Volume Claims
- ##
- enabled: true
- ## @param master.persistence.medium Provide a medium for `emptyDir` volumes.
- ##
- medium: ""
- ## @param master.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
- ##
- sizeLimit: ""
- ## @param master.persistence.path The path the volume will be mounted at on Redis® master containers
- ## NOTE: Useful when using different Redis® images
- ##
- path: /data
- ## @param master.persistence.subPath The subdirectory of the volume to mount on Redis® master containers
- ## NOTE: Useful in dev environments
- ##
- subPath: ""
- ## @param master.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis® master containers
- ##
- subPathExpr: ""
- ## @param master.persistence.storageClass Persistent Volume storage class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
- ##
- storageClass: ""
- ## @param master.persistence.accessModes Persistent Volume access modes
- ##
- accessModes:
- - ReadWriteOnce
- ## @param master.persistence.size Persistent Volume size
- ##
- size: 8Gi
- ## @param master.persistence.annotations Additional custom annotations for the PVC
- ##
- annotations: {}
- ## @param master.persistence.labels Additional custom labels for the PVC
- ##
- labels: {}
- ## @param master.persistence.selector Additional labels to match for the PVC
- ## e.g:
- ## selector:
- ## matchLabels:
- ## app: my-app
- ##
- selector: {}
- ## @param master.persistence.dataSource Custom PVC data source
- ##
- dataSource: {}
- ## @param master.persistence.existingClaim Use a existing PVC which must be created manually before bound
- ## NOTE: requires master.persistence.enabled: true
- ##
- existingClaim: ""
- ## persistentVolumeClaimRetentionPolicy
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
- ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
- ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
- ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
- ##
- persistentVolumeClaimRetentionPolicy:
- enabled: false
- whenScaled: Retain
- whenDeleted: Retain
- ## Redis® master service parameters
- ##
- service:
- ## @param master.service.type Redis® master service type
- ##
- type: ClusterIP
- ## @param master.service.ports.redis Redis® master service port
- ##
- ports:
- redis: 6379
- ## @param master.service.nodePorts.redis Node port for Redis® master
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ## NOTE: choose port between <30000-32767>
- ##
- nodePorts:
- redis: ""
- ## @param master.service.externalTrafficPolicy Redis® master service external traffic policy
- ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- ##
- externalTrafficPolicy: Cluster
- ## @param master.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
- ##
- extraPorts: []
- ## @param master.service.internalTrafficPolicy Redis® master service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
- ##
- internalTrafficPolicy: Cluster
- ## @param master.service.clusterIP Redis® master service Cluster IP
- ##
- clusterIP: ""
- ## @param master.service.loadBalancerIP Redis® master service Load Balancer IP
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
- loadBalancerIP: ""
- ## @param master.service.loadBalancerClass master service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
- ##
- loadBalancerClass: ""
- ## @param master.service.loadBalancerSourceRanges Redis® master service Load Balancer sources
- ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
- ## e.g.
- ## loadBalancerSourceRanges:
- ## - 10.10.10.0/24
- ##
- loadBalancerSourceRanges: []
- ## @param master.service.externalIPs Redis® master service External IPs
- ## https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
- ## e.g.
- ## externalIPs:
- ## - 10.10.10.1
- ## - 201.22.30.1
- ##
- externalIPs: []
- ## @param master.service.annotations Additional custom annotations for Redis® master service
- ##
- annotations: {}
- ## @param master.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
- ## If "ClientIP", consecutive client requests will be directed to the same Pod
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
- ##
- sessionAffinity: None
- ## @param master.service.sessionAffinityConfig Additional settings for the sessionAffinity
- ## sessionAffinityConfig:
- ## clientIP:
- ## timeoutSeconds: 300
- ##
- sessionAffinityConfig: {}
- ## @param master.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-master pods
- ##
- terminationGracePeriodSeconds: 30
- ## ServiceAccount configuration
- ##
- serviceAccount:
- ## @param master.serviceAccount.create Specifies whether a ServiceAccount should be created
- ##
- create: false
- ## @param master.serviceAccount.name The name of the ServiceAccount to use.
- ## If not set and create is true, a name is generated using the common.names.fullname template
- ##
- name: ""
- ## @param master.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
- ##
- automountServiceAccountToken: true
- ## @param master.serviceAccount.annotations Additional custom annotations for the ServiceAccount
- ##
- annotations: {}
-
-## @section Redis® replicas configuration parameters
-##
-
-replica:
- ## @param replica.kind Use either DaemonSet or StatefulSet (default)
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
- ##
- kind: StatefulSet
- ## @param replica.replicaCount Number of Redis® replicas to deploy
- ##
- replicaCount: 1
- ## @param replica.configuration Configuration for Redis® replicas nodes
- ## ref: https://redis.io/topics/config
- ##
- configuration: ""
- ## @param replica.disableCommands Array with Redis® commands to disable on replicas nodes
- ## Commands will be completely disabled by renaming each to an empty string.
- ## ref: https://redis.io/topics/security#disabling-of-specific-commands
- ##
- disableCommands:
- - FLUSHDB
- - FLUSHALL
- ## @param replica.command Override default container command (useful when using custom images)
- ##
- command: []
- ## @param replica.args Override default container args (useful when using custom images)
- ##
- args: []
- ## @param replica.enableServiceLinks Whether information about services should be injected into pod's environment variable
- ##
- enableServiceLinks: true
- ## @param replica.preExecCmds Additional commands to run prior to starting Redis® replicas
- ##
- preExecCmds: []
- ## @param replica.extraFlags Array with additional command line flags for Redis® replicas
- ## e.g:
- ## extraFlags:
- ## - "--maxmemory-policy volatile-ttl"
- ## - "--repl-backlog-size 1024mb"
- ##
- extraFlags: []
- ## @param replica.extraEnvVars Array with extra environment variables to add to Redis® replicas nodes
- ## e.g:
- ## extraEnvVars:
- ## - name: FOO
- ## value: "bar"
- ##
- extraEnvVars: []
- ## @param replica.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® replicas nodes
- ##
- extraEnvVarsCM: ""
- ## @param replica.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® replicas nodes
- ##
- extraEnvVarsSecret: ""
- ## @param replica.externalMaster.enabled Use external master for bootstrapping
- ## @param replica.externalMaster.host External master host to bootstrap from
- ## @param replica.externalMaster.port Port for Redis service external master host
- ##
- externalMaster:
- enabled: false
- host: ""
- port: 6379
- ## @param replica.containerPorts.redis Container port to open on Redis® replicas nodes
- ##
- containerPorts:
- redis: 6379
- ## Configure extra options for Redis® containers' liveness and readiness probes
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
- ## @param replica.startupProbe.enabled Enable startupProbe on Redis® replicas nodes
- ## @param replica.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
- ## @param replica.startupProbe.periodSeconds Period seconds for startupProbe
- ## @param replica.startupProbe.timeoutSeconds Timeout seconds for startupProbe
- ## @param replica.startupProbe.failureThreshold Failure threshold for startupProbe
- ## @param replica.startupProbe.successThreshold Success threshold for startupProbe
- ##
- startupProbe:
- enabled: true
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 22
- ## @param replica.livenessProbe.enabled Enable livenessProbe on Redis® replicas nodes
- ## @param replica.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
- ## @param replica.livenessProbe.periodSeconds Period seconds for livenessProbe
- ## @param replica.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
- ## @param replica.livenessProbe.failureThreshold Failure threshold for livenessProbe
- ## @param replica.livenessProbe.successThreshold Success threshold for livenessProbe
- ##
- livenessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ## @param replica.readinessProbe.enabled Enable readinessProbe on Redis® replicas nodes
- ## @param replica.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
- ## @param replica.readinessProbe.periodSeconds Period seconds for readinessProbe
- ## @param replica.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
- ## @param replica.readinessProbe.failureThreshold Failure threshold for readinessProbe
- ## @param replica.readinessProbe.successThreshold Success threshold for readinessProbe
- ##
- readinessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 5
- ## @param replica.customStartupProbe Custom startupProbe that overrides the default one
- ##
- customStartupProbe: {}
- ## @param replica.customLivenessProbe Custom livenessProbe that overrides the default one
- ##
- customLivenessProbe: {}
- ## @param replica.customReadinessProbe Custom readinessProbe that overrides the default one
- ##
- customReadinessProbe: {}
- ## Redis® replicas resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param replica.resources.limits The resources limits for the Redis® replicas containers
- ## @param replica.resources.requests The requested resources for the Redis® replicas containers
- ##
- resources:
- # We usually recommend not to specify default resources and to leave this as a conscious
- # choice for the user. This also increases chances charts run on environments with little
- # resources, such as Minikube. If you do want to specify resources, uncomment the following
- # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
- limits: {}
- # cpu: 250m
- # memory: 256Mi
- requests: {}
- # cpu: 250m
- # memory: 256Mi
- ## Configure Pods Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param replica.podSecurityContext.enabled Enabled Redis® replicas pods' Security Context
- ## @param replica.podSecurityContext.fsGroup Set Redis® replicas pod's Security Context fsGroup
- ##
- podSecurityContext:
- enabled: true
- fsGroup: 1001
- ## Configure Container Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param replica.containerSecurityContext.enabled Enabled Redis® replicas containers' Security Context
- ## @param replica.containerSecurityContext.runAsUser Set Redis® replicas containers' Security Context runAsUser
- ## @param replica.containerSecurityContext.runAsGroup Set Redis® replicas containers' Security Context runAsGroup
- ## @param replica.containerSecurityContext.runAsNonRoot Set Redis® replicas containers' Security Context runAsNonRoot
- ## @param replica.containerSecurityContext.allowPrivilegeEscalation Set Redis® replicas pod's Security Context allowPrivilegeEscalation
- ## @param replica.containerSecurityContext.seccompProfile.type Set Redis® replicas containers' Security Context seccompProfile
- ## @param replica.containerSecurityContext.capabilities.drop Set Redis® replicas containers' Security Context capabilities to drop
- ##
- containerSecurityContext:
- enabled: true
- runAsUser: 1001
- runAsGroup: 0
- runAsNonRoot: true
- allowPrivilegeEscalation: false
- seccompProfile:
- type: RuntimeDefault
- capabilities:
- drop:
- - ALL
- ## @param replica.schedulerName Alternate scheduler for Redis® replicas pods
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- schedulerName: ""
- ## @param replica.updateStrategy.type Redis® replicas statefulset strategy type
- ## @skip replica.updateStrategy.rollingUpdate
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
- ##
- updateStrategy:
- ## StrategyType
- ## Can be set to RollingUpdate, OnDelete (statefulset), Recreate (deployment)
- ##
- type: RollingUpdate
- ## @param replica.minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
- ##
- minReadySeconds: 0
- ## @param replica.priorityClassName Redis® replicas pods' priorityClassName
- ##
- priorityClassName: ""
- ## @param replica.podManagementPolicy podManagementPolicy to manage scaling operation of %%MAIN_CONTAINER_NAME%% pods
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
- ##
- podManagementPolicy: ""
- ## @param replica.hostAliases Redis® replicas pods host aliases
- ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
- ##
- hostAliases: []
- ## @param replica.podLabels Extra labels for Redis® replicas pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- ##
- podLabels: {}
- ## @param replica.podAnnotations Annotations for Redis® replicas pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
- ##
- podAnnotations: {}
- ## @param replica.shareProcessNamespace Share a single process namespace between all of the containers in Redis® replicas pods
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
- ##
- shareProcessNamespace: false
- ## @param replica.podAffinityPreset Pod affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
- ##
- podAffinityPreset: ""
- ## @param replica.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
- ##
- podAntiAffinityPreset: soft
- ## Node affinity preset
- ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
- ##
- nodeAffinityPreset:
- ## @param replica.nodeAffinityPreset.type Node affinity preset type. Ignored if `replica.affinity` is set. Allowed values: `soft` or `hard`
- ##
- type: ""
- ## @param replica.nodeAffinityPreset.key Node label key to match. Ignored if `replica.affinity` is set
- ##
- key: ""
- ## @param replica.nodeAffinityPreset.values Node label values to match. Ignored if `replica.affinity` is set
- ## E.g.
- ## values:
- ## - e2e-az1
- ## - e2e-az2
- ##
- values: []
- ## @param replica.affinity Affinity for Redis® replicas pods assignment
- ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
- ## NOTE: `replica.podAffinityPreset`, `replica.podAntiAffinityPreset`, and `replica.nodeAffinityPreset` will be ignored when it's set
- ##
- affinity: {}
- ## @param replica.nodeSelector Node labels for Redis® replicas pods assignment
- ## ref: https://kubernetes.io/docs/user-guide/node-selection/
- ##
- nodeSelector: {}
- ## @param replica.tolerations Tolerations for Redis® replicas pods assignment
- ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
- ##
- tolerations: []
- ## @param replica.topologySpreadConstraints Spread Constraints for Redis® replicas pod assignment
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
- ## E.g.
- ## topologySpreadConstraints:
- ## - maxSkew: 1
- ## topologyKey: node
- ## whenUnsatisfiable: DoNotSchedule
- ##
- topologySpreadConstraints: []
- ## @param replica.dnsPolicy DNS Policy for Redis® replica pods
- ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
- ## E.g.
- ## dnsPolicy: ClusterFirst
- ##
- dnsPolicy: ""
- ## @param replica.dnsConfig DNS Configuration for Redis® replica pods
- ## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
- ## E.g.
- ## dnsConfig:
- ## options:
- ## - name: ndots
- ## value: "4"
- ## - name: single-request-reopen
- ##
- dnsConfig: {}
- ## @param replica.lifecycleHooks for the Redis® replica container(s) to automate configuration before or after startup
- ##
- lifecycleHooks: {}
- ## @param replica.extraVolumes Optionally specify extra list of additional volumes for the Redis® replicas pod(s)
- ##
- extraVolumes: []
- ## @param replica.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® replicas container(s)
- ##
- extraVolumeMounts: []
- ## @param replica.sidecars Add additional sidecar containers to the Redis® replicas pod(s)
- ## e.g:
- ## sidecars:
- ## - name: your-image-name
- ## image: your-image
- ## imagePullPolicy: Always
- ## ports:
- ## - name: portname
- ## containerPort: 1234
- ##
- sidecars: []
- ## @param replica.initContainers Add additional init containers to the Redis® replicas pod(s)
- ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
- ## e.g:
- ## initContainers:
- ## - name: your-image-name
- ## image: your-image
- ## imagePullPolicy: Always
- ## command: ['sh', '-c', 'echo "hello world"']
- ##
- initContainers: []
- ## Persistence Parameters
- ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- persistence:
- ## @param replica.persistence.enabled Enable persistence on Redis® replicas nodes using Persistent Volume Claims
- ##
- enabled: true
- ## @param replica.persistence.medium Provide a medium for `emptyDir` volumes.
- ##
- medium: ""
- ## @param replica.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
- ##
- sizeLimit: ""
- ## @param replica.persistence.path The path the volume will be mounted at on Redis® replicas containers
- ## NOTE: Useful when using different Redis® images
- ##
- path: /data
- ## @param replica.persistence.subPath The subdirectory of the volume to mount on Redis® replicas containers
- ## NOTE: Useful in dev environments
- ##
- subPath: ""
- ## @param replica.persistence.subPathExpr Used to construct the subPath subdirectory of the volume to mount on Redis® replicas containers
- ##
- subPathExpr: ""
- ## @param replica.persistence.storageClass Persistent Volume storage class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
- ##
- storageClass: ""
- ## @param replica.persistence.accessModes Persistent Volume access modes
- ##
- accessModes:
- - ReadWriteOnce
- ## @param replica.persistence.size Persistent Volume size
- ##
- size: 8Gi
- ## @param replica.persistence.annotations Additional custom annotations for the PVC
- ##
- annotations: {}
- ## @param replica.persistence.labels Additional custom labels for the PVC
- ##
- labels: {}
- ## @param replica.persistence.selector Additional labels to match for the PVC
- ## e.g:
- ## selector:
- ## matchLabels:
- ## app: my-app
- ##
- selector: {}
- ## @param replica.persistence.dataSource Custom PVC data source
- ##
- dataSource: {}
- ## @param replica.persistence.existingClaim Use a existing PVC which must be created manually before bound
- ## NOTE: requires replica.persistence.enabled: true
- ##
- existingClaim: ""
- ## persistentVolumeClaimRetentionPolicy
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
- ## @param replica.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
- ## @param replica.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
- ## @param replica.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
- ##
- persistentVolumeClaimRetentionPolicy:
- enabled: false
- whenScaled: Retain
- whenDeleted: Retain
- ## Redis® replicas service parameters
- ##
- service:
- ## @param replica.service.type Redis® replicas service type
- ##
- type: ClusterIP
- ## @param replica.service.ports.redis Redis® replicas service port
- ##
- ports:
- redis: 6379
- ## @param replica.service.nodePorts.redis Node port for Redis® replicas
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ## NOTE: choose port between <30000-32767>
- ##
- nodePorts:
- redis: ""
- ## @param replica.service.externalTrafficPolicy Redis® replicas service external traffic policy
- ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- ##
- externalTrafficPolicy: Cluster
- ## @param replica.service.internalTrafficPolicy Redis® replicas service internal traffic policy (requires Kubernetes v1.22 or greater to be usable)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service-traffic-policy/
- ##
- internalTrafficPolicy: Cluster
- ## @param replica.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
- ##
- extraPorts: []
- ## @param replica.service.clusterIP Redis® replicas service Cluster IP
- ##
- clusterIP: ""
- ## @param replica.service.loadBalancerIP Redis® replicas service Load Balancer IP
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
- loadBalancerIP: ""
- ## @param replica.service.loadBalancerClass replicas service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
- ##
- loadBalancerClass: ""
- ## @param replica.service.loadBalancerSourceRanges Redis® replicas service Load Balancer sources
- ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
- ## e.g.
- ## loadBalancerSourceRanges:
- ## - 10.10.10.0/24
- ##
- loadBalancerSourceRanges: []
- ## @param replica.service.annotations Additional custom annotations for Redis® replicas service
- ##
- annotations: {}
- ## @param replica.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
- ## If "ClientIP", consecutive client requests will be directed to the same Pod
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
- ##
- sessionAffinity: None
- ## @param replica.service.sessionAffinityConfig Additional settings for the sessionAffinity
- ## sessionAffinityConfig:
- ## clientIP:
- ## timeoutSeconds: 300
- ##
- sessionAffinityConfig: {}
- ## @param replica.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-replicas pods
- ##
- terminationGracePeriodSeconds: 30
- ## Autoscaling configuration
- ##
- autoscaling:
- ## @param replica.autoscaling.enabled Enable replica autoscaling settings
- ##
- enabled: false
- ## @param replica.autoscaling.minReplicas Minimum replicas for the pod autoscaling
- ##
- minReplicas: 1
- ## @param replica.autoscaling.maxReplicas Maximum replicas for the pod autoscaling
- ##
- maxReplicas: 11
- ## @param replica.autoscaling.targetCPU Percentage of CPU to consider when autoscaling
- ##
- targetCPU: ""
- ## @param replica.autoscaling.targetMemory Percentage of Memory to consider when autoscaling
- ##
- targetMemory: ""
- ## ServiceAccount configuration
- ##
- serviceAccount:
- ## @param replica.serviceAccount.create Specifies whether a ServiceAccount should be created
- ##
- create: false
- ## @param replica.serviceAccount.name The name of the ServiceAccount to use.
- ## If not set and create is true, a name is generated using the common.names.fullname template
- ##
- name: ""
- ## @param replica.serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
- ##
- automountServiceAccountToken: true
- ## @param replica.serviceAccount.annotations Additional custom annotations for the ServiceAccount
- ##
- annotations: {}
-## @section Redis® Sentinel configuration parameters
-##
-
-sentinel:
- ## @param sentinel.enabled Use Redis® Sentinel on Redis® pods.
- ## IMPORTANT: this will disable the master and replicas services and
- ## create a single Redis® service exposing both the Redis and Sentinel ports
- ##
- enabled: false
- ## Bitnami Redis® Sentinel image version
- ## ref: https://hub.docker.com/r/bitnami/redis-sentinel/tags/
- ## @param sentinel.image.registry [default: REGISTRY_NAME] Redis® Sentinel image registry
- ## @param sentinel.image.repository [default: REPOSITORY_NAME/redis-sentinel] Redis® Sentinel image repository
- ## @skip sentinel.image.tag Redis® Sentinel image tag (immutable tags are recommended)
- ## @param sentinel.image.digest Redis® Sentinel image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
- ## @param sentinel.image.pullPolicy Redis® Sentinel image pull policy
- ## @param sentinel.image.pullSecrets Redis® Sentinel image pull secrets
- ## @param sentinel.image.debug Enable image debug mode
- ##
- image:
- registry: docker.io
- repository: bitnami/redis-sentinel
- tag: 7.2.3-debian-11-r2
- digest: ""
- ## Specify a imagePullPolicy
- ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
- ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
- ##
- pullPolicy: IfNotPresent
- ## Optionally specify an array of imagePullSecrets.
- ## Secrets must be manually created in the namespace.
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- ## e.g:
- ## pullSecrets:
- ## - myRegistryKeySecretName
- ##
- pullSecrets: []
- ## Enable debug mode
- ##
- debug: false
- ## @param sentinel.annotations Additional custom annotations for Redis® Sentinel resource
- ##
- annotations: {}
- ## @param sentinel.masterSet Master set name
- ##
- masterSet: mymaster
- ## @param sentinel.quorum Sentinel Quorum
- ##
- quorum: 2
- ## @param sentinel.getMasterTimeout Amount of time to allow before get_sentinel_master_info() times out.
- ##
- getMasterTimeout: 90
- ## @param sentinel.automateClusterRecovery Automate cluster recovery in cases where the last replica is not considered a good replica and Sentinel won't automatically failover to it.
- ## This also prevents any new replica from starting until the last remaining replica is elected as master to guarantee that it is the one to be elected by Sentinel, and not a newly started replica with no data.
- ## NOTE: This feature requires a "downAfterMilliseconds" value less or equal to 2000.
- ##
- automateClusterRecovery: false
- ## @param sentinel.redisShutdownWaitFailover Whether the Redis® master container waits for the failover at shutdown (in addition to the Redis® Sentinel container).
- ##
- redisShutdownWaitFailover: true
- ## Sentinel timing restrictions
- ## @param sentinel.downAfterMilliseconds Timeout for detecting a Redis® node is down
- ## @param sentinel.failoverTimeout Timeout for performing a election failover
- ##
- downAfterMilliseconds: 60000
- failoverTimeout: 180000
- ## @param sentinel.parallelSyncs Number of replicas that can be reconfigured in parallel to use the new master after a failover
- ##
- parallelSyncs: 1
- ## @param sentinel.configuration Configuration for Redis® Sentinel nodes
- ## ref: https://redis.io/topics/sentinel
- ##
- configuration: ""
- ## @param sentinel.command Override default container command (useful when using custom images)
- ##
- command: []
- ## @param sentinel.args Override default container args (useful when using custom images)
- ##
- args: []
- ## @param sentinel.enableServiceLinks Whether information about services should be injected into pod's environment variable
- ##
- enableServiceLinks: true
- ## @param sentinel.preExecCmds Additional commands to run prior to starting Redis® Sentinel
- ##
- preExecCmds: []
- ## @param sentinel.extraEnvVars Array with extra environment variables to add to Redis® Sentinel nodes
- ## e.g:
- ## extraEnvVars:
- ## - name: FOO
- ## value: "bar"
- ##
- extraEnvVars: []
- ## @param sentinel.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Redis® Sentinel nodes
- ##
- extraEnvVarsCM: ""
- ## @param sentinel.extraEnvVarsSecret Name of existing Secret containing extra env vars for Redis® Sentinel nodes
- ##
- extraEnvVarsSecret: ""
- ## @param sentinel.externalMaster.enabled Use external master for bootstrapping
- ## @param sentinel.externalMaster.host External master host to bootstrap from
- ## @param sentinel.externalMaster.port Port for Redis service external master host
- ##
- externalMaster:
- enabled: false
- host: ""
- port: 6379
- ## @param sentinel.containerPorts.sentinel Container port to open on Redis® Sentinel nodes
- ##
- containerPorts:
- sentinel: 26379
- ## Configure extra options for Redis® containers' liveness and readiness probes
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
- ## @param sentinel.startupProbe.enabled Enable startupProbe on Redis® Sentinel nodes
- ## @param sentinel.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
- ## @param sentinel.startupProbe.periodSeconds Period seconds for startupProbe
- ## @param sentinel.startupProbe.timeoutSeconds Timeout seconds for startupProbe
- ## @param sentinel.startupProbe.failureThreshold Failure threshold for startupProbe
- ## @param sentinel.startupProbe.successThreshold Success threshold for startupProbe
- ##
- startupProbe:
- enabled: true
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 22
- ## @param sentinel.livenessProbe.enabled Enable livenessProbe on Redis® Sentinel nodes
- ## @param sentinel.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
- ## @param sentinel.livenessProbe.periodSeconds Period seconds for livenessProbe
- ## @param sentinel.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
- ## @param sentinel.livenessProbe.failureThreshold Failure threshold for livenessProbe
- ## @param sentinel.livenessProbe.successThreshold Success threshold for livenessProbe
- ##
- livenessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 6
- ## @param sentinel.readinessProbe.enabled Enable readinessProbe on Redis® Sentinel nodes
- ## @param sentinel.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
- ## @param sentinel.readinessProbe.periodSeconds Period seconds for readinessProbe
- ## @param sentinel.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
- ## @param sentinel.readinessProbe.failureThreshold Failure threshold for readinessProbe
- ## @param sentinel.readinessProbe.successThreshold Success threshold for readinessProbe
- ##
- readinessProbe:
- enabled: true
- initialDelaySeconds: 20
- periodSeconds: 5
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 6
- ## @param sentinel.customStartupProbe Custom startupProbe that overrides the default one
- ##
- customStartupProbe: {}
- ## @param sentinel.customLivenessProbe Custom livenessProbe that overrides the default one
- ##
- customLivenessProbe: {}
- ## @param sentinel.customReadinessProbe Custom readinessProbe that overrides the default one
- ##
- customReadinessProbe: {}
- ## Persistence parameters
- ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- persistence:
- ## @param sentinel.persistence.enabled Enable persistence on Redis® sentinel nodes using Persistent Volume Claims (Experimental)
- ##
- enabled: false
- ## @param sentinel.persistence.storageClass Persistent Volume storage class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
- ##
- storageClass: ""
- ## @param sentinel.persistence.accessModes Persistent Volume access modes
- ##
- accessModes:
- - ReadWriteOnce
- ## @param sentinel.persistence.size Persistent Volume size
- ##
- size: 100Mi
- ## @param sentinel.persistence.annotations Additional custom annotations for the PVC
- ##
- annotations: {}
- ## @param sentinel.persistence.labels Additional custom labels for the PVC
- ##
- labels: {}
- ## @param sentinel.persistence.selector Additional labels to match for the PVC
- ## e.g:
- ## selector:
- ## matchLabels:
- ## app: my-app
- ##
- selector: {}
- ## @param sentinel.persistence.dataSource Custom PVC data source
- ##
- dataSource: {}
- ## @param sentinel.persistence.medium Provide a medium for `emptyDir` volumes.
- ##
- medium: ""
- ## @param sentinel.persistence.sizeLimit Set this to enable a size limit for `emptyDir` volumes.
- ##
- sizeLimit: ""
- ## persistentVolumeClaimRetentionPolicy
- ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
- ## @param sentinel.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of a StatefulSet
- ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
- ## @param sentinel.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
- ##
- persistentVolumeClaimRetentionPolicy:
- enabled: false
- whenScaled: Retain
- whenDeleted: Retain
- ## Redis® Sentinel resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param sentinel.resources.limits The resources limits for the Redis® Sentinel containers
- ## @param sentinel.resources.requests The requested resources for the Redis® Sentinel containers
- ##
- resources:
- limits: {}
- requests: {}
- ## Configure Container Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param sentinel.containerSecurityContext.enabled Enabled Redis® Sentinel containers' Security Context
- ## @param sentinel.containerSecurityContext.runAsUser Set Redis® Sentinel containers' Security Context runAsUser
- ## @param sentinel.containerSecurityContext.runAsGroup Set Redis® Sentinel containers' Security Context runAsGroup
- ## @param sentinel.containerSecurityContext.runAsNonRoot Set Redis® Sentinel containers' Security Context runAsNonRoot
- ## @param sentinel.containerSecurityContext.allowPrivilegeEscalation Set Redis® Sentinel containers' Security Context allowPrivilegeEscalation
- ## @param sentinel.containerSecurityContext.seccompProfile.type Set Redis® Sentinel containers' Security Context seccompProfile
- ## @param sentinel.containerSecurityContext.capabilities.drop Set Redis® Sentinel containers' Security Context capabilities to drop
- ##
- containerSecurityContext:
- enabled: true
- runAsUser: 1001
- runAsGroup: 0
- runAsNonRoot: true
- allowPrivilegeEscalation: false
- seccompProfile:
- type: RuntimeDefault
- capabilities:
- drop:
- - ALL
- ## @param sentinel.lifecycleHooks for the Redis® sentinel container(s) to automate configuration before or after startup
- ##
- lifecycleHooks: {}
- ## @param sentinel.extraVolumes Optionally specify extra list of additional volumes for the Redis® Sentinel
- ##
- extraVolumes: []
- ## @param sentinel.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® Sentinel container(s)
- ##
- extraVolumeMounts: []
- ## Redis® Sentinel service parameters
- ##
- service:
- ## @param sentinel.service.type Redis® Sentinel service type
- ##
- type: ClusterIP
- ## @param sentinel.service.ports.redis Redis® service port for Redis®
- ## @param sentinel.service.ports.sentinel Redis® service port for Redis® Sentinel
- ##
- ports:
- redis: 6379
- sentinel: 26379
- ## @param sentinel.service.nodePorts.redis Node port for Redis®
- ## @param sentinel.service.nodePorts.sentinel Node port for Sentinel
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ## NOTE: choose port between <30000-32767>
- ## NOTE: By leaving these values blank, they will be generated by ports-configmap
- ## If setting manually, please leave at least replica.replicaCount + 1 in between sentinel.service.nodePorts.redis and sentinel.service.nodePorts.sentinel to take into account the ports that will be created while incrementing that base port
- ##
- nodePorts:
- redis: ""
- sentinel: ""
- ## @param sentinel.service.externalTrafficPolicy Redis® Sentinel service external traffic policy
- ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- ##
- externalTrafficPolicy: Cluster
- ## @param sentinel.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
- ##
- extraPorts: []
- ## @param sentinel.service.clusterIP Redis® Sentinel service Cluster IP
- ##
- clusterIP: ""
- ## @param sentinel.service.loadBalancerIP Redis® Sentinel service Load Balancer IP
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
- loadBalancerIP: ""
- ## @param sentinel.service.loadBalancerClass sentinel service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
- ##
- loadBalancerClass: ""
- ## @param sentinel.service.loadBalancerSourceRanges Redis® Sentinel service Load Balancer sources
- ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
- ## e.g.
- ## loadBalancerSourceRanges:
- ## - 10.10.10.0/24
- ##
- loadBalancerSourceRanges: []
- ## @param sentinel.service.annotations Additional custom annotations for Redis® Sentinel service
- ##
- annotations: {}
- ## @param sentinel.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
- ## If "ClientIP", consecutive client requests will be directed to the same Pod
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
- ##
- sessionAffinity: None
- ## @param sentinel.service.sessionAffinityConfig Additional settings for the sessionAffinity
- ## sessionAffinityConfig:
- ## clientIP:
- ## timeoutSeconds: 300
- ##
- sessionAffinityConfig: {}
- ## Headless service properties
- ##
- headless:
- ## @param sentinel.service.headless.annotations Annotations for the headless service.
- ##
- annotations: {}
- ## @param sentinel.terminationGracePeriodSeconds Integer setting the termination grace period for the redis-node pods
- ##
- terminationGracePeriodSeconds: 30
-
-## @section Other Parameters
-##
-
-## @param serviceBindings.enabled Create secret for service binding (Experimental)
-## Ref: https://servicebinding.io/service-provider/
-##
-serviceBindings:
- enabled: false
-
-## Network Policy configuration
-## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
-##
-networkPolicy:
- ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
- ##
- enabled: false
- ## @param networkPolicy.allowExternal Don't require client label for connections
- ## When set to false, only pods with the correct client label will have network access to the ports
- ## Redis® is listening on. When true, Redis® will accept connections from any source
- ## (with the correct destination port).
- ##
- allowExternal: true
- ## @param networkPolicy.extraIngress Add extra ingress rules to the NetworkPolicy
- ## e.g:
- ## extraIngress:
- ## - ports:
- ## - port: 1234
- ## from:
- ## - podSelector:
- ## - matchLabels:
- ## - role: frontend
- ## - podSelector:
- ## - matchExpressions:
- ## - key: role
- ## operator: In
- ## values:
- ## - frontend
- ##
- extraIngress: []
- ## @param networkPolicy.extraEgress Add extra egress rules to the NetworkPolicy
- ## e.g:
- ## extraEgress:
- ## - ports:
- ## - port: 1234
- ## to:
- ## - podSelector:
- ## - matchLabels:
- ## - role: frontend
- ## - podSelector:
- ## - matchExpressions:
- ## - key: role
- ## operator: In
- ## values:
- ## - frontend
- ##
- extraEgress: []
- ## @param networkPolicy.ingressNSMatchLabels Labels to match to allow traffic from other namespaces
- ## @param networkPolicy.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces
- ##
- ingressNSMatchLabels: {}
- ingressNSPodMatchLabels: {}
-
- metrics:
- ## @param networkPolicy.metrics.allowExternal Don't require client label for connections for metrics endpoint
- ## When set to false, only pods with the correct client label will have network access to the metrics port
- ##
- allowExternal: true
- ## @param networkPolicy.metrics.ingressNSMatchLabels Labels to match to allow traffic from other namespaces to metrics endpoint
- ## @param networkPolicy.metrics.ingressNSPodMatchLabels Pod labels to match to allow traffic from other namespaces to metrics endpoint
- ##
- ingressNSMatchLabels: {}
- ingressNSPodMatchLabels: {}
-
-## PodSecurityPolicy configuration
-## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
-##
-podSecurityPolicy:
- ## @param podSecurityPolicy.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
- ##
- create: false
- ## @param podSecurityPolicy.enabled Enable PodSecurityPolicy's RBAC rules
- ##
- enabled: false
-## RBAC configuration
-##
-rbac:
- ## @param rbac.create Specifies whether RBAC resources should be created
- ##
- create: false
- ## @param rbac.rules Custom RBAC rules to set
- ## e.g:
- ## rules:
- ## - apiGroups:
- ## - ""
- ## resources:
- ## - pods
- ## verbs:
- ## - get
- ## - list
- ##
- rules: []
-## ServiceAccount configuration
-##
-serviceAccount:
- ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
- ##
- create: true
- ## @param serviceAccount.name The name of the ServiceAccount to use.
- ## If not set and create is true, a name is generated using the common.names.fullname template
- ##
- name: ""
- ## @param serviceAccount.automountServiceAccountToken Whether to auto mount the service account token
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
- ##
- automountServiceAccountToken: true
- ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
- ##
- annotations: {}
-## Redis® Pod Disruption Budget configuration
-## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
-##
-pdb:
- ## @param pdb.create Specifies whether a PodDisruptionBudget should be created
- ##
- create: false
- ## @param pdb.minAvailable Min number of pods that must still be available after the eviction
- ##
- minAvailable: 1
- ## @param pdb.maxUnavailable Max number of pods that can be unavailable after the eviction
- ##
- maxUnavailable: ""
-## TLS configuration
-##
-tls:
- ## @param tls.enabled Enable TLS traffic
- ##
- enabled: false
- ## @param tls.authClients Require clients to authenticate
- ##
- authClients: true
- ## @param tls.autoGenerated Enable autogenerated certificates
- ##
- autoGenerated: false
- ## @param tls.existingSecret The name of the existing secret that contains the TLS certificates
- ##
- existingSecret: ""
- ## @param tls.certificatesSecret DEPRECATED. Use existingSecret instead.
- ##
- certificatesSecret: ""
- ## @param tls.certFilename Certificate filename
- ##
- certFilename: ""
- ## @param tls.certKeyFilename Certificate Key filename
- ##
- certKeyFilename: ""
- ## @param tls.certCAFilename CA Certificate filename
- ##
- certCAFilename: ""
- ## @param tls.dhParamsFilename File containing DH params (in order to support DH based ciphers)
- ##
- dhParamsFilename: ""
-
-## @section Metrics Parameters
-##
-
-metrics:
- ## @param metrics.enabled Start a sidecar prometheus exporter to expose Redis® metrics
- ##
- enabled: false
- ## Bitnami Redis® Exporter image
- ## ref: https://hub.docker.com/r/bitnami/redis-exporter/tags/
- ## @param metrics.image.registry [default: REGISTRY_NAME] Redis® Exporter image registry
- ## @param metrics.image.repository [default: REPOSITORY_NAME/redis-exporter] Redis® Exporter image repository
- ## @skip metrics.image.tag Redis® Exporter image tag (immutable tags are recommended)
- ## @param metrics.image.digest Redis® Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
- ## @param metrics.image.pullPolicy Redis® Exporter image pull policy
- ## @param metrics.image.pullSecrets Redis® Exporter image pull secrets
- ##
- image:
- registry: docker.io
- repository: bitnami/redis-exporter
- tag: 1.55.0-debian-11-r3
- digest: ""
- pullPolicy: IfNotPresent
- ## Optionally specify an array of imagePullSecrets.
- ## Secrets must be manually created in the namespace.
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- ## e.g:
- ## pullSecrets:
- ## - myRegistryKeySecretName
- ##
- pullSecrets: []
- ## Configure extra options for Redis® containers' liveness, readiness & startup probes
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
- ## @param metrics.startupProbe.enabled Enable startupProbe on Redis® replicas nodes
- ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
- ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
- ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
- ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
- ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
- ##
- startupProbe:
- enabled: false
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ## @param metrics.livenessProbe.enabled Enable livenessProbe on Redis® replicas nodes
- ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
- ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
- ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
- ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
- ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
- ##
- livenessProbe:
- enabled: true
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- successThreshold: 1
- failureThreshold: 5
- ## @param metrics.readinessProbe.enabled Enable readinessProbe on Redis® replicas nodes
- ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
- ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
- ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
- ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
- ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
- ##
- readinessProbe:
- enabled: true
- initialDelaySeconds: 5
- periodSeconds: 10
- timeoutSeconds: 1
- successThreshold: 1
- failureThreshold: 3
- ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
- ##
- customStartupProbe: {}
- ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
- ##
- customLivenessProbe: {}
- ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
- ##
- customReadinessProbe: {}
- ## @param metrics.command Override default metrics container init command (useful when using custom images)
- ##
- command: []
- ## @param metrics.redisTargetHost A way to specify an alternative Redis® hostname
- ## Useful for certificate CN/SAN matching
- ##
- redisTargetHost: "localhost"
- ## @param metrics.extraArgs Extra arguments for Redis® exporter, for example:
- ## e.g.:
- ## extraArgs:
- ## check-keys: myKey,myOtherKey
- ##
- extraArgs: {}
- ## @param metrics.extraEnvVars Array with extra environment variables to add to Redis® exporter
- ## e.g:
- ## extraEnvVars:
- ## - name: FOO
- ## value: "bar"
- ##
- extraEnvVars: []
- ## Configure Container Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
- ## @param metrics.containerSecurityContext.enabled Enabled Redis® exporter containers' Security Context
- ## @param metrics.containerSecurityContext.runAsUser Set Redis® exporter containers' Security Context runAsUser
- ## @param metrics.containerSecurityContext.runAsGroup Set Redis® exporter containers' Security Context runAsGroup
- ## @param metrics.containerSecurityContext.runAsNonRoot Set Redis® exporter containers' Security Context runAsNonRoot
- ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set Redis® exporter containers' Security Context allowPrivilegeEscalation
- ## @param metrics.containerSecurityContext.seccompProfile.type Set Redis® exporter containers' Security Context seccompProfile
- ## @param metrics.containerSecurityContext.capabilities.drop Set Redis® exporter containers' Security Context capabilities to drop
- ##
- containerSecurityContext:
- enabled: true
- runAsUser: 1001
- runAsGroup: 0
- runAsNonRoot: true
- allowPrivilegeEscalation: false
- seccompProfile:
- type: RuntimeDefault
- capabilities:
- drop:
- - ALL
- ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Redis® metrics sidecar
- ##
- extraVolumes: []
- ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Redis® metrics sidecar
- ##
- extraVolumeMounts: []
- ## Redis® exporter resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param metrics.resources.limits The resources limits for the Redis® exporter container
- ## @param metrics.resources.requests The requested resources for the Redis® exporter container
- ##
- resources:
- limits: {}
- requests: {}
- ## @param metrics.podLabels Extra labels for Redis® exporter pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
- ##
- podLabels: {}
- ## @param metrics.podAnnotations [object] Annotations for Redis® exporter pods
- ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
- ##
- podAnnotations:
- prometheus.io/scrape: "true"
- prometheus.io/port: "9121"
- ## Redis® exporter service parameters
- ##
- service:
- ## @param metrics.service.type Redis® exporter service type
- ##
- type: ClusterIP
- ## @param metrics.service.port Redis® exporter service port
- ##
- port: 9121
- ## @param metrics.service.externalTrafficPolicy Redis® exporter service external traffic policy
- ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
- ##
- externalTrafficPolicy: Cluster
- ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
- ##
- extraPorts: []
- ## @param metrics.service.loadBalancerIP Redis® exporter service Load Balancer IP
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
- loadBalancerIP: ""
- ## @param metrics.service.loadBalancerClass exporter service Load Balancer class if service type is `LoadBalancer` (optional, cloud specific)
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
- ##
- loadBalancerClass: ""
- ## @param metrics.service.loadBalancerSourceRanges Redis® exporter service Load Balancer sources
- ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
- ## e.g.
- ## loadBalancerSourceRanges:
- ## - 10.10.10.0/24
- ##
- loadBalancerSourceRanges: []
- ## @param metrics.service.annotations Additional custom annotations for Redis® exporter service
- ##
- annotations: {}
- ## @param metrics.service.clusterIP Redis® exporter service Cluster IP
- ##
- clusterIP: ""
- ## Prometheus Service Monitor
- ## ref: https://github.com/coreos/prometheus-operator
- ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
- ##
- serviceMonitor:
- ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource(s) for scraping metrics using PrometheusOperator
- ##
- enabled: false
- ## @param metrics.serviceMonitor.namespace The namespace in which the ServiceMonitor will be created
- ##
- namespace: ""
- ## @param metrics.serviceMonitor.interval The interval at which metrics should be scraped
- ##
- interval: 30s
- ## @param metrics.serviceMonitor.scrapeTimeout The timeout after which the scrape is ended
- ##
- scrapeTimeout: ""
- ## @param metrics.serviceMonitor.relabellings Metrics RelabelConfigs to apply to samples before scraping.
- ##
- relabellings: []
- ## @param metrics.serviceMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
- ##
- metricRelabelings: []
- ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
- ##
- honorLabels: false
- ## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor resource(s) can be discovered by Prometheus
- ##
- additionalLabels: {}
- ## @param metrics.serviceMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
- ##
- podTargetLabels: []
- ## @param metrics.serviceMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
- ##
- sampleLimit: false
- ## @param metrics.serviceMonitor.targetLimit Limit of how many targets should be scraped
- ##
- targetLimit: false
- ## Prometheus Pod Monitor
- ## ref: https://github.com/coreos/prometheus-operator
- ## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#podmonitor
- ##
- podMonitor:
- ## @param metrics.podMonitor.enabled Create PodMonitor resource(s) for scraping metrics using PrometheusOperator
- ##
- enabled: false
- ## @param metrics.podMonitor.namespace The namespace in which the PodMonitor will be created
- ##
- namespace: ""
- ## @param metrics.podMonitor.interval The interval at which metrics should be scraped
- ##
- interval: 30s
- ## @param metrics.podMonitor.scrapeTimeout The timeout after which the scrape is ended
- ##
- scrapeTimeout: ""
- ## @param metrics.podMonitor.relabellings Metrics RelabelConfigs to apply to samples before scraping.
- ##
- relabellings: []
- ## @param metrics.podMonitor.metricRelabelings Metrics RelabelConfigs to apply to samples before ingestion.
- ##
- metricRelabelings: []
- ## @param metrics.podMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
- ##
- honorLabels: false
- ## @param metrics.podMonitor.additionalLabels Additional labels that can be used so PodMonitor resource(s) can be discovered by Prometheus
- ##
- additionalLabels: {}
- ## @param metrics.podMonitor.podTargetLabels Labels from the Kubernetes pod to be transferred to the created metrics
- ##
- podTargetLabels: []
- ## @param metrics.podMonitor.sampleLimit Limit of how many samples should be scraped from every Pod
- ##
- sampleLimit: false
- ## @param metrics.podMonitor.targetLimit Limit of how many targets should be scraped
- ##
- targetLimit: false
-
- ## Custom PrometheusRule to be defined
- ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
- ##
- prometheusRule:
- ## @param metrics.prometheusRule.enabled Create a custom prometheusRule Resource for scraping metrics using PrometheusOperator
- ##
- enabled: false
- ## @param metrics.prometheusRule.namespace The namespace in which the prometheusRule will be created
- ##
- namespace: ""
- ## @param metrics.prometheusRule.additionalLabels Additional labels for the prometheusRule
- ##
- additionalLabels: {}
- ## @param metrics.prometheusRule.rules Custom Prometheus rules
- ## e.g:
- ## rules:
- ## - alert: RedisDown
- ## expr: redis_up{service="{{ template "common.names.fullname" . }}-metrics"} == 0
- ## for: 2m
- ## labels:
- ## severity: error
- ## annotations:
- ## summary: Redis® instance {{ "{{ $labels.instance }}" }} down
- ## description: Redis® instance {{ "{{ $labels.instance }}" }} is down
- ## - alert: RedisMemoryHigh
- ## expr: >
- ## redis_memory_used_bytes{service="{{ template "common.names.fullname" . }}-metrics"} * 100
- ## /
- ## redis_memory_max_bytes{service="{{ template "common.names.fullname" . }}-metrics"}
- ## > 90
- ## for: 2m
- ## labels:
- ## severity: error
- ## annotations:
- ## summary: Redis® instance {{ "{{ $labels.instance }}" }} is using too much memory
- ## description: |
- ## Redis® instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
- ## - alert: RedisKeyEviction
- ## expr: |
- ## increase(redis_evicted_keys_total{service="{{ template "common.names.fullname" . }}-metrics"}[5m]) > 0
- ## for: 1s
- ## labels:
- ## severity: error
- ## annotations:
- ## summary: Redis® instance {{ "{{ $labels.instance }}" }} has evicted keys
- ## description: |
- ## Redis® instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
- ##
- rules: []
-
-## @section Init Container Parameters
-##
-
-## 'volumePermissions' init container parameters
-## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
-## based on the *podSecurityContext/*containerSecurityContext parameters
-##
-volumePermissions:
- ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
- ##
- enabled: false
- ## OS Shell + Utility image
- ## ref: https://hub.docker.com/r/bitnami/os-shell/tags/
- ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
- ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
- ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
- ## @param volumePermissions.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
- ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
- ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
- ##
- image:
- registry: docker.io
- repository: bitnami/os-shell
- tag: 11-debian-11-r92
- digest: ""
- pullPolicy: IfNotPresent
- ## Optionally specify an array of imagePullSecrets.
- ## Secrets must be manually created in the namespace.
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- ## e.g:
- ## pullSecrets:
- ## - myRegistryKeySecretName
- ##
- pullSecrets: []
- ## Init container's resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param volumePermissions.resources.limits The resources limits for the init container
- ## @param volumePermissions.resources.requests The requested resources for the init container
- ##
- resources:
- limits: {}
- requests: {}
- ## Init container Container Security Context
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
- ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
- ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
- ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
- ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
- ##
- containerSecurityContext:
- runAsUser: 0
-
-## init-sysctl container parameters
-## used to perform sysctl operation to modify Kernel settings (needed sometimes to avoid warnings)
-##
-sysctl:
- ## @param sysctl.enabled Enable init container to modify Kernel settings
- ##
- enabled: false
- ## OS Shell + Utility image
- ## ref: https://hub.docker.com/r/bitnami/os-shell/tags/
- ## @param sysctl.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
- ## @param sysctl.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
- ## @skip sysctl.image.tag OS Shell + Utility image tag (immutable tags are recommended)
- ## @param sysctl.image.digest OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
- ## @param sysctl.image.pullPolicy OS Shell + Utility image pull policy
- ## @param sysctl.image.pullSecrets OS Shell + Utility image pull secrets
- ##
- image:
- registry: docker.io
- repository: bitnami/os-shell
- tag: 11-debian-11-r92
- digest: ""
- pullPolicy: IfNotPresent
- ## Optionally specify an array of imagePullSecrets.
- ## Secrets must be manually created in the namespace.
- ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
- ## e.g:
- ## pullSecrets:
- ## - myRegistryKeySecretName
- ##
- pullSecrets: []
- ## @param sysctl.command Override default init-sysctl container command (useful when using custom images)
- ##
- command: []
- ## @param sysctl.mountHostSys Mount the host `/sys` folder to `/host-sys`
- ##
- mountHostSys: false
- ## Init container's resource requests and limits
- ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
- ## @param sysctl.resources.limits The resources limits for the init container
- ## @param sysctl.resources.requests The requested resources for the init container
- ##
- resources:
- limits: {}
- requests: {}
-
-## @section useExternalDNS Parameters
-##
-## @param useExternalDNS.enabled Enable various syntax that would enable external-dns to work. Note this requires a working installation of `external-dns` to be usable.
-## @param useExternalDNS.additionalAnnotations Extra annotations to be utilized when `external-dns` is enabled.
-## @param useExternalDNS.annotationKey The annotation key utilized when `external-dns` is enabled. Setting this to `false` will disable annotations.
-## @param useExternalDNS.suffix The DNS suffix utilized when `external-dns` is enabled. Note that we prepend the suffix with the full name of the release.
-##
-useExternalDNS:
- enabled: false
- suffix: ""
- annotationKey: external-dns.alpha.kubernetes.io/
- additionalAnnotations: {}
diff --git a/charts/incubator/hyperswitch-app/dev/bitnami-valkey-values.yaml b/charts/incubator/hyperswitch-app/dev/bitnami-valkey-values.yaml
new file mode 100644
index 00000000..b5f58d02
--- /dev/null
+++ b/charts/incubator/hyperswitch-app/dev/bitnami-valkey-values.yaml
@@ -0,0 +1,374 @@
+global:
+ # The global image registry (this will override the registry of all container images defined in this chart)
+ imageRegistry: ""
+ # The global image pull secrets (list of secret names)
+ imagePullSecrets: []
+
+# Number of Valkey pods to run
+replicaCount: 1
+
+image:
+ # Image registry
+ registry: "docker.io"
+ # Valkey container image repository
+ repository: valkey/valkey
+ # Image pull policy (Always, IfNotPresent, Never)
+ pullPolicy: IfNotPresent
+ # Image tag (leave empty to use .Chart.AppVersion)
+ tag: ""
+
+# List of image pull secrets (for private registries)
+imagePullSecrets: []
+
+# Override the default name or full name of resources
+nameOverride: ""
+fullnameOverride: ""
+
+serviceAccount:
+ # Create a service account for Valkey
+ create: true
+ # Whether to automount the service account token
+ automount: false
+ # Annotations to add to the service account
+ annotations: {}
+ # Name of an existing service account to use (if create: false)
+ name: ""
+
+# Annotations and labels for the pods
+podAnnotations: {}
+podLabels: {}
+
+# Common labels to add to all resources (Deployment, Service, ConfigMap, etc.)
+commonLabels: {}
+
+# Security context for the pod (applies to all containers)
+podSecurityContext:
+ fsGroup: 1000
+ runAsUser: 1000
+ runAsGroup: 1000
+
+# Priority class name for pod scheduling (leave empty to use cluster's default)
+priorityClassName: ""
+
+# Security context for the Valkey containers
+securityContext:
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ runAsUser: 1000
+
+service:
+ # Type of Kubernetes service (ClusterIP, NodePort, LoadBalancer)
+ type: ClusterIP
+ # Port on which Valkey will be exposed
+ port: 6379
+ annotations: {}
+ # NodePort value (if service.type is NodePort)
+ nodePort: 0
+ # ClusterIP value
+ clusterIP: ""
+ # Class of a load balancer implementation
+ loadBalancerClass: ""
+ # Application protocol
+ appProtocol: ""
+
+# Network policy to control traffic to the pods
+# More info: https://kubernetes.io/docs/concepts/services-networking/network-policies/
+networkPolicy: {}
+
+# Resource limits/requests for the main Valkey container
+resources: {}
+ # Example:
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+
+# Resource limits/requests for init containers
+initResources: {}
+ # Example:
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+
+# Additional init containers
+extraInitContainers: []
+
+# Persistent storage configuration
+dataStorage:
+ # Enable persistent volume claim creation
+ enabled: false
+
+ # Use existing PVC by name (skip dynamic provisioning if set)
+ persistentVolumeClaimName: ""
+
+ # Subpath inside PVC to mount
+ subPath: ""
+
+ # Name of the volume (referenced in deployment)
+ volumeName: "valkey-data"
+
+ # Request size (e.g. 5Gi) for dynamically provisioned volume
+ requestedSize: ""
+
+ # Name of the storage class to use
+ className: ""
+
+ # Access modes for the PVC (e.g., ReadWriteOnce, ReadWriteMany)
+ accessModes:
+ - ReadWriteOnce
+
+ # If true, keep the PVC on Helm uninstall
+ keepPvc: false
+
+ # Optional annotations to add to the PVC
+ annotations: {}
+
+ # Optional labels to add to the PVC
+ labels: {}
+
+# Mount additional secrets into the Valkey container
+extraValkeySecrets: []
+
+# Mount additional configMaps into the Valkey container
+extraValkeyConfigs: []
+
+# Mount extra secrets as volume to init container (deprecated, use extraValkeySecrets)
+extraSecretValkeyConfigs: false
+
+# Mount additional emptyDir or hostPath volumes (advanced use)
+extraStorage: []
+
+# Content for valkey.conf (will be mounted via ConfigMap)
+valkeyConfig: ""
+
+auth:
+ # Enable ACL-based authentication
+ enabled: false
+
+ # Use an existing secret for user passwords. Key defaults to username.
+ usersExistingSecret: ""
+
+ # Map of users to create with ACL permissions.
+ # If usersExistingSecret is set, passwords from the secret take priority over inline passwords.
+ aclUsers: {}
+ # Example:
+ # default:
+ # permissions: "~* &* +@all"
+ # password: "secretpass" # Inline password (fallback if usersExistingSecret not set)
+ # passwordKey: "admin-pwd" # Key in usersExistingSecret (defaults to username)
+ # read-user:
+ # permissions: "~* -@all +@read +ping +info"
+
+ # Inline ACL configuration that will be appended after generated users.
+ aclConfig: ""
+ # Example:
+ # aclConfig: |
+ # user default on >secretpass ~* &* +@all
+
+tls:
+ # Enable TLS
+ enabled: false
+ # Name of the Secret containing TLS keys (required)
+ existingSecret: ""
+ # Secret key name containing server public certificate
+ serverPublicKey: server.crt
+ # Secret key name containing server private key
+ serverKey: server.key
+ # Secret key name containing Certificate Authority public certificate
+ caPublicKey: ca.crt
+ # Secret key name containing DH parameters (optional)
+ dhParamKey: ""
+ # Require that clients authenticate with a certificate
+ requireClientCertificate: false
+
+# Node selector for pod assignment
+nodeSelector: {}
+
+# Tolerations for pod assignment to tainted nodes
+tolerations: []
+
+# Affinity rules for pod scheduling
+affinity: {}
+
+# Set Deployment strategy. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
+deploymentStrategy: RollingUpdate
+
+# See https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints
+topologySpreadConstraints: []
+
+# Valkey logging level: debug, verbose, notice, warning
+valkeyLogLevel: "notice"
+# Environment variables to inject into Valkey container
+env: {}
+ # Example:
+ # LOG_LEVEL: info
+
+metrics:
+ # Enable Prometheus exporter sidecar
+ enabled: false
+ # Exporter configuration
+ exporter:
+ # Command to run in the metrics exporter container (overrides args)
+ command: []
+ # Arguments to pass to the metrics exporter container
+ args: []
+ # Example:
+ # - --redis.addr=redis:6379
+ # Port on which the metrics exporter will listen
+ port: 9121
+ # Image configuration
+ image:
+ # Image registry
+ registry: ghcr.io
+ # Prometheus exporter container image repository
+ repository: oliver006/redis_exporter
+ # Image pull policy (Always, IfNotPresent, Never)
+ pullPolicy: IfNotPresent
+ # Image tag (leave empty to use latest)
+ tag: "v1.79.0"
+ resources: {}
+ # Example:
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+ # Extra volume mounts for metrics exporter container
+ extraVolumeMounts: []
+ # Environment variables to inject into the metrics exporter container
+ extraEnvs: {}
+ # Example:
+ # LOG_LEVEL: info
+ securityContext: {}
+ # Example:
+ # runAsNonRoot: true
+ # runAsUser: 1000
+ # runAsGroup: 1000
+ # capabilities:
+ # drop:
+ # - ALL
+ # readOnlyRootFilesystem: true
+
+ # Service configuration for the metrics exporter
+ service:
+ # Enable a separate service for the metrics exporter
+ enabled: true
+ # Service type (ClusterIP, NodePort, LoadBalancer)
+ type: ClusterIP
+ # Port on which the metrics exporter service will be exposed
+ ports:
+ http: 9121
+ # Optional annotations for the metrics exporter service
+ annotations: {}
+ # Optional labels for the metrics exporter service
+ extraLabels: {}
+ # ServiceMonitor configuration for Prometheus Operator
+ # Application protocol
+ appProtocol: ""
+ serviceMonitor:
+ # Enable ServiceMonitor resource for scraping service metrics
+ enabled: false
+ # Port name or number to scrape metrics from
+ port: metrics
+ # Extra labels for the ServiceMonitor resource
+ extraLabels: {}
+ # Extra annotations for the ServiceMonitor resource
+ annotations: {}
+ # How often Prometheus should scrape metrics
+ interval: 30s
+ # Maximum duration allowed for a scrape request
+ scrapeTimeout: ""
+ # Relabeling rules applied before scraping metrics
+ relabelings: []
+ # Relabeling rules applied before ingesting metrics
+ metricRelabelings: []
+ # Set honorLabels to true to preserve original metric labels
+ honorLabels: false
+ # Extra labels to help Prometheus discover ServiceMonitor resources
+ additionalLabels: {}
+ # Pod labels to copy onto the generated metrics
+ podTargetLabels: []
+ # Maximum number of samples to collect per Pod scrape
+ sampleLimit: false
+ # Maximum number of scrape targets allowed
+ targetLimit: false
+ podMonitor:
+ # Enable PodMonitor resource for scraping pod metrics
+ enabled: false
+ # Port name or number to scrape metrics from
+ port: metrics
+ # Extra labels for the ServiceMonitor resource
+ extraLabels: {}
+ # Extra annotations for the ServiceMonitor resource
+ annotations: {}
+ # Frequency for Prometheus to scrape pod metrics
+ interval: 30s
+ # Time limit for each scrape operation
+ scrapeTimeout: ""
+ # Relabeling rules to apply before scraping pod metrics
+ relabelings: []
+ # Relabeling rules to apply before ingesting pod metrics
+ metricRelabelings: []
+ # If true, keeps original labels from the pod metrics
+ honorLabels: false
+ # Additional labels for Prometheus to find PodMonitor resources
+ additionalLabels: {}
+ # Pod labels to attach to the metrics
+ podTargetLabels: []
+ # Maximum samples to scrape from each Pod
+ sampleLimit: false
+ # Maximum number of pods to scrape
+ targetLimit: false
+
+ # PrometheusRule configuration for alerting rules (used by kube-prometheus-stack)
+ prometheusRule:
+ # Enable creation of PrometheusRule resource
+ enabled: false
+ # Extra labels to add to the PrometheusRule resource
+ extraLabels: {}
+ # Extra annotations to add to the PrometheusRule resource
+ extraAnnotations: {}
+ # List of Prometheus alerting rules
+ rules: []
+ # Example alerting rules:
+ # - alert: ValkeyDown
+ # annotations:
+ # summary: Valkey instance {{ "{{ $labels.instance }}" }} down
+ # description: Valkey instance {{ "{{ $labels.instance }}" }} is down.
+ # expr: |
+ # redis_up{service="{{ include "valkey.fullname" . }}-metrics"} == 0
+ # for: 2m
+ # labels:
+ # severity: error
+ # - alert: ValkeyMemoryHigh
+ # annotations:
+ # summary: Valkey instance {{ "{{ $labels.instance }}" }} is using too much memory
+ # description: |
+ # Valkey instance {{ "{{ $labels.instance }}" }} is using {{ "{{ $value }}" }}% of its available memory.
+ # expr: |
+ # redis_memory_used_bytes{service="{{ include "valkey.fullname" . }}-metrics"} * 100
+ # /
+ # redis_memory_max_bytes{service="{{ include "valkey.fullname" . }}-metrics"}
+ # > 90 <= 100
+ # for: 2m
+ # labels:
+ # severity: error
+ # - alert: ValkeyKeyEviction
+ # annotations:
+ # summary: Valkey instance {{ "{{ $labels.instance }}" }} has evicted keys
+ # description: |
+ # Valkey instance {{ "{{ $labels.instance }}" }} has evicted {{ "{{ $value }}" }} keys in the last 5 minutes.
+ # expr: |
+ # increase(redis_evicted_keys_total{service="{{ include "valkey.fullname" . }}-metrics"}[5m]) > 0
+ # for: 1s
+ # labels:
+ # severity: error
diff --git a/charts/incubator/hyperswitch-app/templates/_helpers.tpl b/charts/incubator/hyperswitch-app/templates/_helpers.tpl
index 86d8abed..0d7dbbd0 100644
--- a/charts/incubator/hyperswitch-app/templates/_helpers.tpl
+++ b/charts/incubator/hyperswitch-app/templates/_helpers.tpl
@@ -74,30 +74,30 @@ Allow the release namespace to be overridden for multi-namespace deployments
{{/* Redis configuration validation template */}}
{{- define "validate.redis.config" -}}
- {{- if not (or .Values.redis.enabled .Values.externalRedis.enabled) }}
+ {{- if not (or .Values.valkey.enabled .Values.externalRedis.enabled) }}
{{- fail
- "Both redis.enabled and externalRedis.enabled cannot be 'false' at the same time. Please, onfigure at least one Redis."
+ "Both redis.enabled and externalRedis.enabled cannot be 'false' at the same time. Please, configure at least one Redis."
}}
- {{- else if and .Values.redis.enabled .Values.externalRedis.enabled }}
+ {{- else if and .Values.valkey.enabled .Values.externalRedis.enabled }}
{{- fail
"Both redis.enabled and externalRedis.enabled cannot be 'true' at the same time. Select only once please"
}}
{{- end }}
{{- end }}
-{{/* Valide Redis configuration and */}}
-{{/* select Redis host Internal or External depends on configuration */}}
-{{- define "redis.host" -}}
+{{/* Valide Valkey configuration and */}}
+{{/* select Valkey host Internal or External depends on configuration */}}
+{{- define "valkey.host" -}}
{{- $test_redis := include "validate.redis.config" . }}
- {{- if .Values.redis.enabled }}
- {{- printf "%s-redis-master" .Release.Name | trunc 63 | trimSuffix "-" -}}
+ {{- if .Values.valkey.enabled }}
+ {{- printf "%s-valkey" .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else if .Values.externalRedis.enabled }}
{{- printf "%s" .Values.externalRedis.host -}}
{{- end -}}
{{- end -}}
{{/* Select Redis port Internal or External depends on configuration */}}
-{{- define "redis.port" -}}
+{{- define "valkey.port" -}}
{{- printf "6379" -}}
{{- end -}}
@@ -105,7 +105,7 @@ Allow the release namespace to be overridden for multi-namespace deployments
{{- define "validate.postgresql.config" -}}
{{- if not (or .Values.postgresql.enabled .Values.externalPostgresql.enabled) }}
{{- fail
- "Both postgresql.enabled and externalPostgresql.enabled cannot be 'false' at the same time. Please, onfigure at least one Postgresql."
+ "Both postgresql.enabled and externalPostgresql.enabled cannot be 'false' at the same time. Please, configure at least one Postgresql."
}}
{{- else if and .Values.postgresql.enabled .Values.externalPostgresql.enabled }}
{{- fail
diff --git a/charts/incubator/hyperswitch-app/templates/_init-container.tpl b/charts/incubator/hyperswitch-app/templates/_init-container.tpl
index 1c8fa3cb..985ff516 100644
--- a/charts/incubator/hyperswitch-app/templates/_init-container.tpl
+++ b/charts/incubator/hyperswitch-app/templates/_init-container.tpl
@@ -27,17 +27,17 @@
{{/*Ensure Redis is up and running */}}
{{- define "redis.initContainer.check.ready" -}}
- name: check-redis
- {{- $registry := .Values.global.imageRegistry | default .Values.redisMiscConfig.checkRedisIsUp.initContainer.imageRegistry }}
- image: "{{ $registry }}/{{ .Values.redisMiscConfig.checkRedisIsUp.initContainer.image }}"
+ {{- $registry := .Values.global.imageRegistry | default .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.imageRegistry }}
+ image: "{{ $registry }}/{{ .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.image }}"
imagePullPolicy: IfNotPresent
command: [ "/bin/sh", "-c" ]
#language=sh
args:
- >
- MAX_ATTEMPTS={{ .Values.redisMiscConfig.checkRedisIsUp.initContainer.maxAttempt }};
+ MAX_ATTEMPTS={{ .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.maxAttempt }};
SLEEP_SECONDS=5;
attempt=0;
- while ! redis-cli -h {{ include "redis.host" . }} -p 6379 ping; do
+ while ! redis-cli -h {{ include "valkey.host" . }} -p 6379 ping; do
if [ $attempt -ge $MAX_ATTEMPTS ]; then
echo "Redis did not become ready in time";
exit 1;
diff --git a/charts/incubator/hyperswitch-app/templates/consumer/deployment.yaml b/charts/incubator/hyperswitch-app/templates/consumer/deployment.yaml
index 24fce10b..00b3c93e 100644
--- a/charts/incubator/hyperswitch-app/templates/consumer/deployment.yaml
+++ b/charts/incubator/hyperswitch-app/templates/consumer/deployment.yaml
@@ -55,12 +55,12 @@ spec:
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- if or .Values.initDB.enable .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if or .Values.initDB.enable .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
initContainers:
{{- if .Values.initDB.enable }}
{{- include "postgresql.initContainer.check.ready" . | nindent 8 }}
{{- end }}
- {{- if .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
{{- include "redis.initContainer.check.ready" . | nindent 8 }}
{{- end }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/templates/drainer/deployment.yaml b/charts/incubator/hyperswitch-app/templates/drainer/deployment.yaml
index 32ba0977..787f18f1 100644
--- a/charts/incubator/hyperswitch-app/templates/drainer/deployment.yaml
+++ b/charts/incubator/hyperswitch-app/templates/drainer/deployment.yaml
@@ -48,12 +48,12 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
terminationGracePeriodSeconds: {{ .Values.drainer.terminationGracePeriodSeconds | default .Values.global.terminationGracePeriodSeconds }}
- {{- if or .Values.initDB.enable .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if or .Values.initDB.enable .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
initContainers:
{{- if .Values.initDB.enable }}
{{- include "postgresql.initContainer.check.ready" . | nindent 8 }}
{{- end }}
- {{- if .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
{{- include "redis.initContainer.check.ready" . | nindent 8 }}
{{- end }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/templates/drainer/secret.yaml b/charts/incubator/hyperswitch-app/templates/drainer/secret.yaml
index d1dab58e..818df6fa 100644
--- a/charts/incubator/hyperswitch-app/templates/drainer/secret.yaml
+++ b/charts/incubator/hyperswitch-app/templates/drainer/secret.yaml
@@ -9,6 +9,6 @@ data:
DRAINER__MASTER_DATABASE__DBNAME: {{ include "postgresql.database" . | b64enc }}
DRAINER__MASTER_DATABASE__PORT: {{ include "postgresql.port" . | toString | b64enc }}
DRAINER__MASTER_DATABASE__USERNAME: {{ include "postgresql.username" . | b64enc }}
- DRAINER__REDIS__HOST: {{ include "redis.host" . | b64enc }}
- DRAINER__REDIS__PORT: {{ include "redis.port" . | toString | b64enc }}
+ DRAINER__REDIS__HOST: {{ include "valkey.host" . | b64enc }}
+ DRAINER__REDIS__PORT: {{ include "valkey.port" . | toString | b64enc }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/templates/misc/configmap.yaml b/charts/incubator/hyperswitch-app/templates/misc/configmap.yaml
index bad207f9..5a8371d0 100644
--- a/charts/incubator/hyperswitch-app/templates/misc/configmap.yaml
+++ b/charts/incubator/hyperswitch-app/templates/misc/configmap.yaml
@@ -18,8 +18,8 @@ data:
ROUTER__REPLICA_DATABASE__PORT: {{ include "postgresql.port" . | quote }}
ROUTER__REPLICA_DATABASE__USERNAME: {{ include "postgresqlreplica.username" . }}
# Redis configs
- ROUTER__REDIS__HOST: {{ include "redis.host" . }}
- ROUTER__REDIS__PORT: {{ include "redis.port" . | quote }}
+ ROUTER__REDIS__HOST: {{ include "valkey.host" . }}
+ ROUTER__REDIS__PORT: {{ include "valkey.port" . | quote }}
# Configs from values.server.configs will be generated as environment variables with prefix ROUTER_
{{- include "hyperswitch.configToEnvVars" (dict "config" .Values.server.configs "prefix" "ROUTER" "context" .) | nindent 2 }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/templates/producer/deployment.yaml b/charts/incubator/hyperswitch-app/templates/producer/deployment.yaml
index a394dc09..7a595009 100644
--- a/charts/incubator/hyperswitch-app/templates/producer/deployment.yaml
+++ b/charts/incubator/hyperswitch-app/templates/producer/deployment.yaml
@@ -55,12 +55,12 @@ spec:
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- if or .Values.initDB.enable .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if or .Values.initDB.enable .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
initContainers:
{{- if .Values.initDB.enable }}
{{- include "postgresql.initContainer.check.ready" . | nindent 8 }}
{{- end }}
- {{- if .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
{{- include "redis.initContainer.check.ready" . | nindent 8 }}
{{- end }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/templates/router/deployment.yaml b/charts/incubator/hyperswitch-app/templates/router/deployment.yaml
index 11573ffb..bc0b18bc 100644
--- a/charts/incubator/hyperswitch-app/templates/router/deployment.yaml
+++ b/charts/incubator/hyperswitch-app/templates/router/deployment.yaml
@@ -88,12 +88,12 @@ spec:
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- if or .Values.initDB.enable .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if or .Values.initDB.enable .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
initContainers:
{{- if .Values.initDB.enable }}
{{- include "postgresql.initContainer.check.ready" . | nindent 8 }}
{{- end }}
- {{- if .Values.redisMiscConfig.checkRedisIsUp.initContainer.enable }}
+ {{- if .Values.valkeyMiscConfig.checkValkeyIsUp.initContainer.enable }}
{{- include "redis.initContainer.check.ready" . | nindent 8 }}
{{- end }}
{{- end }}
diff --git a/charts/incubator/hyperswitch-app/values.yaml b/charts/incubator/hyperswitch-app/values.yaml
index 3b43a94e..302b48be 100644
--- a/charts/incubator/hyperswitch-app/values.yaml
+++ b/charts/incubator/hyperswitch-app/values.yaml
@@ -1160,29 +1160,20 @@ drainer:
stream_read_count: 1
use_legacy_version: false
-# https://artifacthub.io/packages/helm/bitnami/redis
-redis:
- # -- - enable Bitnami redis sub-chart helm installation
+# https://valkey.io/valkey-helm/
+valkey:
+ # -- - enable Valkey (a Redis alternative) sub-chart helm installation
# @section -- Dependencies configuration
enabled: true
image:
- repository: bitnamilegacy/redis
- tag: 7.2.3-debian-11-r2
- master:
- # -- Number of replicas to be used for master
- # @section -- Dependencies configuration
- count: 1
- replica:
- # -- Number of replicas to be used for replica
- # @section -- Dependencies configuration
- replicaCount: 0
+ repository: valkey/valkey
+ tag: ""
+ # Number of Valkey pods to run
+ replicaCount: 2
auth:
- # -- enable or disable redis auth
+ # -- enable or disable Valkey auth
# @section -- Dependencies configuration
enabled: false
- # -- enable or disable sentinel
- # @section -- Dependencies configuration
- sentinel: false
externalRedis:
# -- Link this service to an external Redis server
@@ -1202,12 +1193,12 @@ externalRedis:
# @section -- Dependencies configuration
password: ""
-redisMiscConfig:
- checkRedisIsUp:
+valkeyMiscConfig:
+ checkValkeyIsUp:
initContainer:
enable: true
imageRegistry: docker.io
- image: bitnamilegacy/redis:7.2.3-debian-11-r2
+ image: valkey/valkey:8.1.4
maxAttempt: 60
# https://artifacthub.io/packages/helm/bitnami/postgresql