Helm charts

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:

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

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

Cleaning up

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