Warning
Disclaimer: This repository is currently a work in progress. While contributions and feedback are welcome, please note that the code and features may change frequently, and some functionalities may not be fully implemented or tested. Use this project at your own risk.
This chart bootstraps a safe-transaction-service deployment on a Kubernetes cluster using the Helm package manager.
We also package the following helm charts from Bitnami for you to optionally use:
Chart | Descrption |
---|---|
PostgreSQL | For use as a database |
Redis | For enabling caching |
RabbitMQ | For use as a message broker |
- Kubernetes 1.19+
- Persistent Volume provisioner support in the underlying infrastructure
- Helm 3+. Please refer to Helm's documentation to get started.
- Ethereum Node JSON-RPC Endpoint
- PostgreSQL v14 (optional)
- Redis (optional)
- RabbitMQ (optional)
To install the chart with the release name [RELEASE-NAME]
:
helm repo add safe https://5afe.github.io/safe-helm-charts/charts/packages
helm install [RELEASE-NAME] safe/safe-transaction-service \
--set config.node.url=http://rpc-endpoint
The command deploys safe-transaction-service on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.
Tip: List all releases using
helm list
To uninstall the [RELEASE-NAME]
deployment:
helm uninstall [RELEASE-NAME]
The command removes all the Kubernetes components associated with the chart and deletes the release.
To upgrade the [RELEASE-NAME]
deployment with the latest version:
helm upgrade [RELEASE-NAME] safe/safe-transaction-service
The following table lists the configurable parameters of the safe-transaction-service chart and their default values.
See Customizing the Chart Before Installing. To see all configurable options with detailed comments:
helm show values safe/safe-transaction-service
Parameter | Description | Default |
---|---|---|
nameOverride |
Provide a name in place of safe-transaction-service for app: labels |
"" |
fullnameOverride |
Provide a name to substitute for the full names of resources | "" |
Parameter | Description | Default |
---|---|---|
replicaCount |
Number of instance for safe-transaction-service-web | 1 |
image.repository |
safe-transaction-service image name | safeglobal/safe-transaction-service |
image.tag |
safe-transaction-service image tag | latest |
image.pullPolicy |
Image pull policy | Always |
extraEnv |
Specify additional environment variables | [] |
Parameter | Description | Default |
---|---|---|
config.debug |
Enable debug mode | true |
config.queues |
Worker queues to enabled | default,indexing,contracts,tokens,notifications,webhooks |
config.secretKey |
Django secret key | "" |
config.csrf.trustedOrigins |
Trusted origins should refer to safe-wallet-web URL | "" |
config.node.url |
URL of the Ethereum RPC endpoint | "" |
config.node.useGanacheNode |
Specify if you want to use a testing Ganache node | false |
config.database.runMigration |
Run Database migration on startup | true |
config.database.url |
Database URL if safe-transaction-service-postgresql.enabled=false e.g plsql://user:pw@host:port/db |
"" |
config.redis.url |
Redis URL if safe-transaction-service-redis.enabled=false e.g redis://user:pw@host:port/0 |
"" |
config.rabbitmq.url |
RabbitMQ URL if safe-transaction-service-rabbitmq.enabled=false e.g amqp:// |
"" |
config.admin.auth.enabled |
Autoconfigure Django admin panel on startup | true |
config.admin.auth.username |
Django admin panel username | root |
config.admin.auth.password |
Django admin panel password | root123 |
config.admin.auth.email |
Django admin panel email | root@example.com |
Parameter | Description | Default |
---|---|---|
scheduler.nodeSelector |
{} |
|
scheduler.affinity |
{} |
|
scheduler.tolerations |
{} |
|
scheduler.securityContext |
{} |
|
scheduler.podSecurityContext |
{} |
|
scheduler.resources |
{} |
|
indexer.nodeSelector |
{} |
|
indexer.affinity |
{} |
|
indexer.tolerations |
{} |
|
indexer.securityContext |
{} |
|
indexer.podSecurityContext |
{} |
|
indexer.resources |
{} |
|
web.nodeSelector |
{} |
|
web.affinity |
{} |
|
web.tolerations |
{} |
|
web.securityContext |
{} |
|
web.podSecurityContext |
{} |
|
web.resources |
{} |
Parameter | Description | Default |
---|---|---|
ingress.enabled |
Enable ingress | true |
ingress.ingressClassName |
Ingress class name | nginx |
ingress.host |
Ingress host | txs-service.minikube.net |
ingress.annotations |
Ingress annotations | nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |
Parameter | Description | Default |
---|---|---|
ganacheNode.enabled |
Enable a Ganache (testing) node | true |
ganacheNode.config.mnemonic |
Ganache mnemonic used to deploy Safe contracts | "test test test test test test test test test test test junk" |
ganacheNode.config.chainId |
Ganache Chain ID | 1337 |
ganacheNode.config.deterministicDeployment |
Use deterministic deployment (if safe-singleton-factory available) |
true |
ganacheNode.config.persistence.storageClass |
Ganache persistence class | standard |
ganacheNode.config.persistence.size |
Ganache persistence size | 100Mi |
ganacheNode.ingress.enabled |
Enable ingress to expose the node | true |
ganacheNode.ingress.ingressClassName |
Node ingress class | nginx |
ganacheNode.ingress.host |
Node ingress host | node.minikube.net |
ganacheNode.ingress.annotations |
Node ingress annotation | {} |
Parameter | Description | Default |
---|---|---|
safe-transaction-service-postgresql.enabled |
Spin up a PostgreSQL instance | true |
Refer to bitnami/postgresql for configuration.
Parameter | Description | Default |
---|---|---|
safe-transaction-service-redis.enabled |
Spin up a Redis instance | true |
Refer to bitnami/redis for configuration.
Parameter | Description | Default |
---|---|---|
safe-transaction-service-rabbitMQ.enabled |
Spin up a RabbitMQ instance | true |
Refer to bitnami/rabbitmq for configuration.