You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Kubernetes manifests for running miss-islington on cabotage instead of Heroku.
4
+
5
+
## What's here
6
+
7
+
`redis.yaml` and `cert.yaml` provision a standalone Redis instance in the `redis` namespace using the OpsTree Redis Operator (already running cluster-wide).
8
+
The cert is issued by the internal `operators-ca-issuer` ClusterIssuer, ECDSA P-256, 90-day rotation.
9
+
10
+
`ingress.yaml` goes in the `python` namespace where cabotage deploys the app. It's a standard nginx ingress with backend-protocol
11
+
HTTPS because cabotage serves on 8443/TLS behind a Service on port 443.
12
+
13
+
`generate-secrets.sh` creates the Redis password Secret and prints the full connection URI you need to set as `REDIS_URL` in cabotage.
14
+
15
+
## Setup
16
+
17
+
Generate the Redis password (once per cluster):
18
+
19
+
```
20
+
./infra/k8s/generate-secrets.sh
21
+
```
22
+
23
+
Apply the Redis CR and TLS cert:
24
+
25
+
```
26
+
kubectl apply -k infra/k8s -n redis
27
+
```
28
+
29
+
After cabotage has deployed the app and the Service exists, apply the ingress:
30
+
31
+
```
32
+
kubectl apply -f infra/k8s/ingress.yaml
33
+
```
34
+
35
+
## Cabotage env vars
36
+
37
+
Set these in the cabotage UI for the miss-islington application:
38
+
39
+
-`GH_SECRET` - GitHub webhook secret
40
+
-`GH_APP_ID` - GitHub App ID
41
+
-`GH_PRIVATE_KEY` - GitHub App private key
42
+
-`GH_AUTH` - GitHub auth token (used by the celery worker to clone cpython)
43
+
-`SENTRY_DSN` - Sentry DSN for error tracking
44
+
-`REDIS_URL` - printed by `generate-secrets.sh`, looks
45
+
like `rediss://:<password>@miss-islington.redis.svc.cluster.local:6379/0?ssl_ca_certs=/var/run/secrets/cabotage.io/ca.crt&ssl_cert_reqs=required`
0 commit comments