Deploy and Operate Excalidraw
Excalidraw is a whiteboard tool with a hand-drawn look, used for diagrams and quick sketches. Edka deploys the official container as a stateless web client in your Kubernetes cluster. There is no database or persistent volume to configure.
Architecture
Section titled “Architecture”| Component | Purpose | How Edka connects it |
|---|---|---|
| Excalidraw web client | Serves the whiteboard UI as a static web client | Installed from the Edka Excalidraw chart |
| ClusterIP Service | Internal access on port 80 | Created automatically at http://<release>.<namespace>.svc.cluster.local |
| Envoy Gateway | Optional public HTTPS access | Select a traffic class and hostname when Expose Excalidraw via Gateway is enabled |
Prerequisites
Section titled “Prerequisites”Before installing Excalidraw, prepare:
- an Edka cluster; Excalidraw needs no database, object storage, or persistent volume
- if you want to publish the whiteboard outside the cluster, an Envoy Gateway traffic class with managed TLS and a DNS hostname
See Gateway API and Domains and TLS if Gateway access is not ready yet.
Install Excalidraw
Section titled “Install Excalidraw”- Open your cluster and select Apps.
- Find Excalidraw and select Install.
- In General, choose the Namespace (defaults to
excalidraw), set the Excalidraw Chart Version and Excalidraw Image Tag, and decide whether to enable Auto-update App. - In Resources, review the CPU and memory requests and limits.
- In Placement, optionally select a Node Pool and whether to Tolerate Node Pool Taints.
- In Access, optionally enable Expose Excalidraw via Gateway, then select a Traffic Class and enter a Hostname.
- Select Install App and follow the operation progress until Excalidraw is ready.
Data and Persistence
Section titled “Data and Persistence”Excalidraw’s container serves a static web client with no backing database and no persistent volume. Drawings are stored in the browser of whoever created them, not on the cluster, so restarting or redeploying the pod does not affect any saved scene. Sharing a drawing requires exporting a file or a link from within Excalidraw; this deployment does not include a real-time collaboration server.
Access
Section titled “Access”Excalidraw is reachable inside the cluster by default, at the Excalidraw UI internal service endpoint. Enable Expose Excalidraw via Gateway in the Access tab to publish it externally:
- Select the Traffic Class available in the cluster.
- Enter a Hostname for the web client, for example
excalidraw.example.com.
Edka creates the HTTPRoute only when the selected traffic class is an Envoy Gateway class. After installation, the app endpoints show the internal Excalidraw UI URL and, when access is enabled, the External URL over HTTPS.
Resources and Placement
Section titled “Resources and Placement”| Setting | CPU | Memory |
|---|---|---|
| Request | 50m | 64Mi |
| Limit | 250m | 256Mi |
CPU and memory requests and limits are all set by default. You can also place Excalidraw on a selected node pool and have Edka automatically add tolerations for that pool’s taints.
Updates
Section titled “Updates”Auto-updates are opt-in through Auto-update App. When enabled, choose an
Auto-update Policy of patch, minor, major, all, or a custom tag pattern,
and an Auto-update Check interval of every 5 minutes, 30 minutes,
1 hour, 6 hours, or daily. The custom pattern accepts a glob: or regexp:
prefix to filter allowed tags.
Auto-updates apply to two independent targets: the Excalidraw Chart
Version from the https://charts.edka.io repository, and the
Excalidraw Image Tag from the excalidraw/excalidraw image repository.
The image tag defaults to latest and is editable, so pin it to a specific
tag if you want predictable upgrades instead of tracking latest.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Check |
|---|---|
| External URL is missing after enabling access | Confirm the selected Traffic Class is an Envoy Gateway class; Edka only creates the HTTPRoute for Gateway-type traffic classes |
| Hostname is rejected | Enter a valid domain in Hostname, for example excalidraw.example.com |
| Pod stays unready | Check Logs for image pull errors and confirm the Excalidraw Image Tag exists in the excalidraw/excalidraw repository |
| Drawings disappear after a pod restart | Expected: Excalidraw stores scenes in the browser, not on the cluster; export or share drawings before restarting |