Helm charts

Unofficial Helm charts are available for deployment to Kubernetes.

Clone the charts:

gh repo clone sentry-kubernetes/charts

Add a missing storage set to the Snuba configuration to allow its migrations to complete successfully.

Set your Kubernetes context, or spin up Minikube. Ensure the cluster has a reasonably large amount of free CPU and memory capacity, because we're going to spin up a lot of dependencies. Deploy the chart with:

helm install \
  -n sentry --create-namespace \
  --timeout 900s --wait --wait-for-jobs \
  \
  --set images.sentry.tag=22.7.0 \
  --set images.snuba.tag=22.7.0 \
  --set images.relay.tag=22.7.0 \
  --set images.symbolicator.tag=0.5.1 \
  \
  --set service.type=NodePort \
  \
  --set user.email=user@example.com \
  --set user.password=password \
  \
  --set kafka.resources.requests.cpu=100m \
  --set kafka.resources.requests.memory=1Gi \
  --set kafka.resources.limits.cpu=400m \
  --set kafka.resources.limits.memory=1.5Gi \
  \
  --set sentry.web.resources.requests.cpu=100m \
  --set sentry.web.resources.requests.memory=1Gi \
  --set sentry.web.resources.limits.cpu=400m \
  --set sentry.web.resources.limits.memory=1.5Gi \
  \
  --set postgresql.enabled=true \
  --set postgresql.postgresqlUsername=postgres \
  --set postgresql.postgresqlPassword=postgres \
  --set postgresql.postgresqlDatabase=sentry \
  \
  sentry ./charts/sentry

Open a couple of other terminals to monitor the deployment with and keep an eye on how it's progressing. Toward the end of the installation some Jobss are run to apply database migrations to both PostgreSQL and ClickHouse. Verify that these have completed successfully, and dig into the logs, with k logs $pod, to troubleshoot. Some good places to start are:

kubectl config set-context --current --namespace=sentry
kubectl get deploy,statefulset -w
kubectl get event -w
kubectl rollout status deploy/sentry-web

When things seem settled access service/sentry-web and complete organisation and user set up.

Cleaning up

kubectl uninstall -n sentry sentry
# Necessary since some jobs will get left behind
kubectl delete po -l app=sentry

Backlinks