A Helm chart for Jesse trade bot.
This document provides a comprehensive guide for deploying the Jesse trade bot using the Helm chart provided in this repository.
For testing purposes, you can create a kind cluster:
kind create cluster --name jesse-cluster
Pull the values file:
helm show values oci://ghcr.io/trianalab/jesse-chart/jesse --version 0.0.11 > values.yaml
Add the LICENSE_API_TOKEN
within the config
field in the values.yaml
file according to Jesse's documentation.
helm install jesse oci://ghcr.io/trianalab/jesse-chart/jesse --version 0.0.11 --namespace jesse-namespace --create-namespace -f values.yaml
Wait for the deployment to be ready (it can take up to a minute):
kubectl wait --for=condition=available --namespace jesse-namespace deployment/jesse --timeout=300s
Ensure all the pods, services, and ingress resources are created and running as expected:
kubectl get all --namespace jesse-namespace
The service is exposed as a ClusterIP
by default. To access it externally, you can use port forwarding or an ingress resource. The Helm chart's NOTES.txt
provides details on accessing the service.
To remove the deployment, run the following commands:
helm uninstall jesse --namespace jesse-namespace
kubectl delete namespace jesse-namespace
- For troubleshooting or additional configuration, consult the
NOTES.txt
generated by the Helm chart or refer to the official Jesse documentation. - Advanced users can modify the
values.yaml
file to fit specific deployment needs.
Repository | Name | Version |
---|---|---|
https://charts.bitnami.com/bitnami | postgresql | 16.3.4 |
https://charts.bitnami.com/bitnami | redis | 20.6.1 |
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
affinity expands nodeSelectors, more information can be found here. |
autoscaling.enabled | bool | false |
autoscaling.enabled is for enabling horizontal autoscaling, more information can be found here |
autoscaling.maxReplicas | int | 10 |
autoscaling.maxReplicas sets the maximum number of replicas. |
autoscaling.minReplicas | int | 1 |
autoscaling.minReplicas sets the minimum number of replicas. |
autoscaling.targetCPUUtilizationPercentage | int | 80 |
autoscaling.targetCPUUtilizationPercentage sets CPU threshold that triggers the autoscaling. |
config | string | "PASSWORD=test\nAPP_PORT=9000\n\nPOSTGRES_HOST=postgresql\nPOSTGRES_NAME=jesse_db\nPOSTGRES_PORT=5432\nPOSTGRES_USERNAME=jesse_user\nPOSTGRES_PASSWORD=pg-password\n\nREDIS_HOST=redis-master\nREDIS_PORT=6379\nREDIS_PASSWORD=redis-password\n\nLICENSE_API_TOKEN=<TOKEN>" |
config contains all the configuration variables for Jesse, more information can be found here. |
fullnameOverride | string | "" |
fullnameOverride is to fully override the chart name. |
image.command | string | "" |
image.command overrides the default command to run in the jesse container. |
image.pullPolicy | string | "IfNotPresent" |
image.pullPolicy sets the pull policy for images. |
image.repository | string | "salehmir/jesse" |
image.repository sets the container image more information can be found here. |
image.tag | string | "" |
image.tag overrides the image tag whose default is the chart appVersion. |
imagePullSecrets | list | [] |
imagePullSecrets is for the secretes for pulling an image from a private repository more information can be found here. |
ingress.annotations | object | {} |
ingress.annotations is for setting Kubernetes Annotations to the Ingress, more information can be found here. |
ingress.className | string | "" |
ingress.className sets the ingress class, more information can be found here. |
ingress.enabled | bool | false |
ingress.enabled is for setting up the ingress, more information can be found here. |
ingress.hosts | list | [] |
ingress.hosts is a list of ingress hosts. |
ingress.tls | list | [] |
ingress.tls is the secret holding the TLS key and secret, more information can be found here. |
nameOverride | string | "" |
nameOverride is to override the chart name. |
nodeSelector | object | {} |
nodeSelector constrains a pod to be scheduled on a particular node, more information can be found here. |
podAnnotations | object | {} |
podAnnotations is for setting Kubernetes Annotations to a Pod, more information can be found here. |
podLabels | object | {} |
podLabels is for setting Kubernetes Labels to a Pod, more information can be found here. |
podSecurityContext | object | {} |
podSecurityContext defines privilege and access control settings for a pod, more information can be found here. |
postgresql.auth.database | string | "jesse_db" |
postgresql.database is the database used by Jesse. |
postgresql.auth.password | string | "pg-password" |
postgresql.password is the database password used by Jesse. |
postgresql.auth.username | string | "jesse_user" |
postgresql.username is the database username used by Jesse. |
redis.auth.password | string | "redis-password" |
redis.auth.password is the redis password used by Jesse. |
replicaCount | int | 1 |
replicaCount will set the replicaset count more information can be found here. |
resources | object | {} |
resources sets the amount of resources the container needs, more information can be found here. |
securityContext | object | {} |
securityContext defines privilege and access control settings for a container, more information can be found here. |
service.annotations | object | {} |
service.annotations is for setting Kubernetes Annotations to a Service, more information can be found here. |
service.nodePort | string | "nil" |
service.nodePort sets a specific node port when service.type is set to NodePort , more information can be found here. |
service.port | int | 9000 |
service.port sets the port, more information can be found here. |
service.type | string | "ClusterIP" |
service.type sets the service type, more information can be found here. |
serviceAccount.annotations | object | {} |
serviceAccount.annotations to add to the service account. |
serviceAccount.automount | bool | true |
serviceAccount.automount automatically mounts ServiceAccount's API credentials. |
serviceAccount.create | bool | true |
serviceAccount.create specifies whether a service account should be created, more information can be found here. |
serviceAccount.name | string | "" |
serviceAccount.name is the name of the service account to use. If not set and create is true, a name is generated using the fullname template. |
tolerations | list | [] |
tolerations allow the scheduler to schedule pods with matching taints, more information can be found here. |
volumeMounts | list | [] |
volumeMounts is a list of additional volumeMounts on the output Deployment definition. |
volumes | list | [] |
volumes is a list of additional volumes on the output Deployment definition. |
This repository is licensed under the GNU Affero General Public License v3.0 (AGPLv3).
By using this project, you agree to comply with the terms of the AGPLv3 license. See the LICENSE file for details.
This project also includes third-party dependencies that are subject to their respective licenses. See the NOTICES.md file for attribution.
If you encounter any issues, feel free to open an issue.
Contributions are welcome! Please follow these steps:
- Fork this repository.
- Make your changes.
- Submit a pull request with a detailed description of your changes.
This project builds upon the incredible work of: