diff --git a/kubernetes/README.md b/kubernetes/README.md index 9de23eb..d5badb4 100644 --- a/kubernetes/README.md +++ b/kubernetes/README.md @@ -10,20 +10,20 @@ This directory contains base Kubernetes manifests to self-host Rallly. It separa ## Configuration -1. **Secrets (`secrets.yaml`):** - - **Important:** Do not commit the `secrets.yaml` file with real credentials to version control. - - Update `POSTGRES_PASSWORD` and `SECRET_PASSWORD` (use `openssl rand -hex 32` to generate). - - **Critical:** Ensure the password in `DATABASE_URL` matches `POSTGRES_PASSWORD`. Both must use the same value. - - **Format:** The `DATABASE_URL` format should look like this: `postgres://:@:5432/`. +1. **Secrets (`secrets.yaml`):** + - **Important:** Do not commit the `secrets.yaml` file with real credentials to version control. + - Update `POSTGRES_PASSWORD` and `SECRET_PASSWORD` (use `openssl rand -hex 32` to generate). + - **Critical:** Ensure the password in `DATABASE_URL` matches `POSTGRES_PASSWORD`. Both must use the same value. + - **Format:** The `DATABASE_URL` format should look like this: `postgres://:@:5432/`. -2. **Config (`rallly-config.yaml`):** - - Update `NEXT_PUBLIC_BASE_URL` to match your domain. - - Configure your SMTP settings for emails. +2. **Config (`rallly-config.yaml`):** + - Update `NEXT_PUBLIC_BASE_URL` to match your domain. + - Configure your SMTP settings for emails. -3. **Ingress (`ingress.yaml`):** - - Change `host: rallly.example.com` to your actual domain. - - Ensure `ingressClassName` matches your cluster's controller (default is set to `nginx`). - - **TLS:** Create the TLS certificate Secret named `rallly-tls` or enable cert-manager (see comments in `ingress.yaml` for options). +3. **Ingress (`ingress.yaml`):** + - Change `host: rallly.example.com` to your actual domain. + - Ensure `ingressClassName` matches your cluster's controller (default is set to `nginx`). + - **TLS:** Create the TLS certificate Secret named `rallly-tls` or enable cert-manager (see comments in `ingress.yaml` for options). ## Deployment Order @@ -50,6 +50,8 @@ kubectl apply -f ingress.yaml kubectl rollout restart deployment rallly ``` +This performs a **rolling restart**, so there will be no downtime. However, ensure the new configuration is valid; if pods fail to start, check the logs with `kubectl logs -f deployment/rallly`. + ## Verification Check that the pods are running: @@ -62,4 +64,4 @@ The Postgres pod should show `1/1 Running` and the Rallly pod should eventually ## Notes on Storage -The PostgreSQL StatefulSet requests a 1Gi PersistentVolume. Ensure your cluster has a default StorageClass configured, or update the `volumeClaimTemplates` in `postgres.yaml` to specify a StorageClass. +The PostgreSQL StatefulSet requests a 1Gi PersistentVolume. Ensure your cluster has a default StorageClass configured, or update the `volumeClaimTemplates` in `postgres.yaml` to specify a StorageClass. If no StorageClass is available, the PersistentVolumeClaim will remain pending and the postgres pod will not start. Check your cluster's available StorageClasses with `kubectl get storageclass`.