Skip to content

Add plain Kubernetes deployment manifests#90

Open
fenio wants to merge 1 commit into
Kobii-git:mainfrom
fenio:add-kubernetes-manifests
Open

Add plain Kubernetes deployment manifests#90
fenio wants to merge 1 commit into
Kobii-git:mainfrom
fenio:add-kubernetes-manifests

Conversation

@fenio

@fenio fenio commented Jun 26, 2026

Copy link
Copy Markdown

Adds dependency-free Kubernetes manifests under deploy/kubernetes/ so Rackpad can be run on any cluster without Helm, an operator, or a third-party chart — just kubectl apply -k deploy/kubernetes/.

What's included

File Purpose
namespace.yaml rackpad namespace
pvc.yaml 2Gi RWO volume for the SQLite DB at /data
deployment.yaml Single-replica, non-root (uid 10001), read-only-rootfs deployment with /api/health probes
service.yaml ClusterIP on port 3000
ingress.yaml Optional ingress example (commented defaults)
kustomization.yaml Bundles the core resources
README.md Quick start, env vars, discovery networking notes

Design

Mirrors the conventions in docker-compose.yml: single replica (SQLite is single-writer, strategy: Recreate), non-root, read-only root filesystem with a writable /tmp emptyDir, and the database persisted on a PVC. Probes hit the existing /api/health endpoint.

The README also documents the discovery networking tradeoffs on Kubernetes — L3 (ICMP/TCP/SNMP) works from a normal pod with NET_RAW, while L2/ARP MAC capture needs hostNetwork: true + NET_ADMIN (the equivalent of docker-compose.host-discovery.yml). Defaults stay minimal-privilege; raw caps are an opt-in documented step.

Validated with kubectl kustomize and kubectl apply --dry-run=client. Image tag left at :latest with a note to pin for production.

Happy to adjust paths, naming, or fold this into the docs differently if you'd prefer.

Dependency-free manifests under deploy/kubernetes/ (namespace, PVC,
Deployment, Service, optional Ingress, kustomization) so Rackpad can be
run on any cluster with 'kubectl apply -k'.

Mirrors docker-compose.yml: single replica, non-root (uid 10001),
read-only rootfs + writable /tmp, SQLite DB on a PVC, /api/health probes.
README documents env vars and the discovery networking tradeoffs (L3/SNMP
from a normal pod vs L2/ARP needing hostNetwork).
@Kobii-git

Copy link
Copy Markdown
Owner

Thanks so much for taking the time to contribute and open this pull request. I really appreciate the effort and the interest in improving Rackpad.

At this stage, I’m not accepting pull requests directly so I can maintain the integrity, consistency, and direction of the project while it is still moving quickly. For now, the best way to contribute is to open an issue describing the change, bug, or improvement you had in mind.

I’ll review issues, implement the changes in the main codebase where they fit, and then you’re very welcome to test the result, give feedback, and help refine it from there.

Thanks again for the contribution and for understanding.

@fenio

fenio commented Jun 30, 2026

Copy link
Copy Markdown
Author

I completely don't understand your rationale but after all it's your project. Do whatever you think is right ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants