|
1 | 1 | # ReadySet Helm Chart |
2 | 2 |
|
3 | | -Coming soon |
| 3 | +> :exclamation: This chart is currently alpha-level quality |
| 4 | +
|
| 5 | +## Overview |
| 6 | + |
| 7 | +This is the official ReadySet Helm chart for deploying a ReadySet cluster on Kubernetes. |
| 8 | + |
| 9 | +## Kubernetes platform support |
| 10 | + |
| 11 | +This chart aims to install with minimal configuration required for both GKE and EKS currently. We are soon expanding our testing suite to cover other providers and configurations and we will document a support matrix soon. |
| 12 | + |
| 13 | +## Preconfiguration |
| 14 | + |
| 15 | +Assuming you have a Kubernetes cluster that you are able to deploy apps to with Helm you will need to configure a kubernetes secret that contains the information needed for ReadySet to connect to your upstream database. You can configure this secret with the follow block |
| 16 | + |
| 17 | +``` |
| 18 | +export READYSET_USER=your-username |
| 19 | +export READYSET_PASS=your-password |
| 20 | +export DATABASE_NAME=your-database-name |
| 21 | +export DATABASE_HOST=your-database-host |
| 22 | +export DATABASE_TYPE=your-database-type # mysql OR psql |
| 23 | +export DATABASE_URI="${DATABASE_TYPE}://${READYSET_USER}:${READYSET_PASS}@${DATABASE_HOST}/${DATABASE_NAME}" |
| 24 | +
|
| 25 | +# The name `readyset-upstream-database` is expected by the chart, do not rename it! |
| 26 | +kubectl create secret generic readyset-upstream-database \ |
| 27 | + --from-literal=url="${DATABASE_TYPE}://${READYSET_USER}:${READYSET_PASS}@${DATABASE_HOST}/${DATABASE_NAME}" \ |
| 28 | + --from-literal=host="${DATABASE_HOST}" \ |
| 29 | + --from-literal=username="${READYSET_USER}" \ |
| 30 | + --from-literal=password=${READYSET_PASS} \ |
| 31 | + --from-literal=database=${DATABASE_NAME} \ |
| 32 | + --from-literal=database_type=${DATABASE_TYPE} |
| 33 | +``` |
| 34 | + |
| 35 | +## Add the repo |
| 36 | + |
| 37 | +Provided you have Helm installed, a simple |
| 38 | +``` |
| 39 | +helm repo add readyset https://helm.releases.readyset.io |
| 40 | +``` |
| 41 | +will configure the ReadySet Helm repository |
| 42 | + |
| 43 | +### Search the repo for releases |
| 44 | + |
| 45 | +You can search the ReadySet repo explicitly by |
| 46 | +``` |
| 47 | +$ helm search repo readyset/readyset |
| 48 | +NAME CHART VERSION APP VERSION DESCRIPTION |
| 49 | +readyset/readyset 0.2.0 latest Official ReadySet Chart |
| 50 | +``` |
| 51 | +or you can search via ArtifactHub |
| 52 | +``` |
| 53 | +$ helm search hub readyset |
| 54 | +URL CHART VERSION APP VERSION DESCRIPTION |
| 55 | +https://artifacthub.io/packages/helm/readyset/r... 0.2.0 latest Official ReadySet Chart |
| 56 | +``` |
| 57 | + |
| 58 | +## Deploying the chart |
| 59 | + |
| 60 | +``` |
| 61 | +helm install readyset readyset/readyset --version=0.2.0 --dry-run |
| 62 | +``` |
| 63 | +See below for configuring the cluster beyond the default values. |
| 64 | + |
| 65 | +## Configuring the chart |
| 66 | + |
| 67 | +To configure the chart for your environment, you can run the following command |
| 68 | +``` |
| 69 | +helm show values readyset/readyset > values.yaml |
| 70 | +``` |
| 71 | +to dump a yaml document of the default configuration values. Edit them to your liking and deploy the chart as described above but add the values file like the following example |
| 72 | +``` |
| 73 | +helm install readyset readyset/readyset --version=0.2.0 --values=values.yaml |
| 74 | +``` |
| 75 | + |
| 76 | +## When the chart has successfully deployed |
| 77 | + |
| 78 | +A message will be displayed with instructions on connecting to your ReadySet instance. They will look similar to the following: |
| 79 | + |
| 80 | +``` |
| 81 | +Congrats, ReadySet has been deployed!! |
| 82 | +
|
| 83 | +CHART NAME: readyset |
| 84 | +CHART VERSION: 0.3.0 |
| 85 | +APP VERSION: latest |
| 86 | +
|
| 87 | +Give the chart approximately 5 minutes to deploy. When the service is ready, you should see all pods up. |
| 88 | +
|
| 89 | +For connecting to the readyset-adapter via MySQL: |
| 90 | +
|
| 91 | +mysql -u $(kubectl get secret readyset-upstream-database -o jsonpath="{.data.username}" | base64 -d) \ |
| 92 | + -h $(kubectl get svc readyset-adapter --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}") \ |
| 93 | + --password=$(kubectl get secret readyset-upstream-database -o jsonpath="{.data.password}" | base64 -d) \ |
| 94 | + --database=$(kubectl get secret readyset-upstream-database -o jsonpath="{.data.database}" | base64 -d) |
| 95 | +``` |
0 commit comments