feat: complete deploy demo with React UI

Backend:
- Spring Boot 3.4, Java 21, REST API for app lifecycle
- Build pipeline: JAR → Dockerfile → docker build/push → kubectl apply
- In-memory state with K8s reconciliation on startup
- Configurable via env vars

Frontend:
- React 19 + @cameleer/design-system v0.1.26
- Dashboard table with status polling (5s)
- Deploy dialog with drag-and-drop JAR upload
- Resource limit/request configuration
- Environment variable editor
- Build log viewer
- Delete with confirmation dialog

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-03 00:20:48 +02:00
parent 5a6247abc7
commit 5ed0d80695
21 changed files with 2175 additions and 2 deletions

View File

@@ -1,3 +1,63 @@
# cameleer-deploy-demo
# Cameleer Deploy Demo
Demo prototype: upload Camel JARs, build containers with agent injection, deploy to K8s with full observability
Demo prototype: upload Camel JARs, build containers with automatic agent injection, deploy to K8s with full observability via cameleer3-server.
## Architecture
```
Browser (React + @cameleer/design-system)
└─ Deploy Service (Spring Boot 3, port 8082)
├─ docker build (inject cameleer3 agent)
├─ docker push (Gitea registry)
└─ kubectl apply (k3s cluster)
└─ Agent auto-registers → cameleer3-server
```
## Prerequisites
- Java 21
- Node.js 22+
- Docker (for building images)
- kubectl configured for your k3s cluster
- cameleer3-server running (for agent registration)
## Quick Start
### Backend
```bash
mvn clean package -DskipTests
java -jar target/cameleer-deploy-demo-0.1.0-SNAPSHOT.jar \
--cameleer.deploy.server-url=http://cameleer3-server.cameleer.svc:8081 \
--cameleer.deploy.bootstrap-token=YOUR_TOKEN \
--cameleer.deploy.cameleer-server-ui=http://localhost:8081
```
### Frontend
```bash
cd ui
npm install
npm run dev
```
Open http://localhost:5174
## Configuration
| Env Var | Default | Description |
|---------|---------|-------------|
| `CAMELEER_SERVER_URL` | `http://cameleer3-server.cameleer.svc:8081` | cameleer3-server URL for agent registration |
| `CAMELEER_BOOTSTRAP_TOKEN` | `changeme` | Bootstrap token for agent auth |
| `CAMELEER_REGISTRY` | `gitea.siegeln.net/cameleer/demo-apps` | Container registry prefix |
| `CAMELEER_AGENT_MAVEN_URL` | (Gitea Maven) | URL for cameleer3-agent JAR |
| `CAMELEER_DEMO_NAMESPACE` | `cameleer-demo` | K8s namespace for deployed apps |
| `CAMELEER_SERVER_UI` | `http://localhost:8081` | cameleer3-server UI URL (for links) |
## Demo Flow
1. Open the UI
2. Click "Deploy Application"
3. Upload a Camel JAR, configure resources and env vars
4. Watch the build log stream
5. Open cameleer3-server — your app appears with full observability