Skip to content

Commit 768f420

Browse files
mchmarnyclaude
andcommitted
docs: position Cloud Run deployment as demo API server example
Update all documentation to clarify that the Cloud Run deployment is a demonstration for testing and development purposes only. Users should self-host eidosd for production use. Changes: - RELEASING.md: Rename "Cloud Run Deployment" to "Demo Cloud Run Deployment" - api-server.md: Rename "Production Deployment" to "Demo API Server Deployment" - README.md (architecture): Update pipeline diagram and deployment description - README.md (actions): Clarify deploy job is for demo purposes - copilot-instructions.md: Update cloud-run-deploy action description - CLAUDE.md: Update reference to demo deployment procedures Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent a1b4600 commit 768f420

File tree

6 files changed

+35
-30
lines changed

6 files changed

+35
-30
lines changed

.claude/CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ See `CONTRIBUTING.md` for contributor documentation:
371371
See `RELEASING.md` for maintainer documentation:
372372
- Release methods (automatic, manual, hotfix)
373373
- Verification commands for attestations and checksums
374-
- Cloud Run deployment and rollback procedures
374+
- Demo API server deployment and rollback procedures (example deployment)
375375
- Emergency hotfix procedure
376376

377377
See `.github/copilot-instructions.md` for extended technical documentation:

.github/actions/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ This action runs `tools/setup-tools --skip-go --skip-docker` in auto mode, which
222222
3. **E2E Tests** (parallel): Full end-to-end tests
223223
4. **Build and Release** (after tests): GoReleaser builds binaries and images to GHCR
224224
5. **Attest Images** (after build): SBOM and provenance for eidos and eidosd images
225-
6. **Deploy API Server** (after attest): Copy image to Artifact Registry and deploy to Cloud Run
225+
6. **Deploy Demo API Server** (after attest): Copy image to Artifact Registry and deploy demo to Cloud Run (example deployment)
226226

227227
### `test-deploy.yaml`
228228
**Trigger**: Manual (workflow_dispatch)

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -955,7 +955,7 @@ Eidos uses a **three-layer composite actions architecture** for reusability:
955955
- `go-ci` – Complete Go CI pipeline (setup → test → lint)
956956
- `go-build-release` – Full build/release pipeline
957957
- `attest-image-from-tag` – Resolve digest + generate attestations
958-
- `cloud-run-deploy` GCP deployment with Workload Identity
958+
- `cloud-run-deploy` Demo API server deployment (example deployment to GCP)
959959

960960
**Layer 3: Workflows** (Orchestrate Actions)
961961
- `on-push.yaml` – CI validation for PRs and main branch
@@ -1000,7 +1000,7 @@ jobs:
10001000
with:
10011001
image_name: 'ghcr.io/nvidia/eidos'
10021002
tag: ${{ github.ref_name }}
1003-
deploy:
1003+
deploy: # Demo deployment (example, not production)
10041004
needs: [attest]
10051005
steps:
10061006
- uses: ./.github/actions/cloud-run-deploy

RELEASING.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ For standard releases from the main branch.
3535
- SBOM generation for all artifacts
3636
- Attestations signed with Sigstore
3737
- GitHub Release created with changelog
38-
- Cloud Run deployment (eidosd API server)
38+
- Demo Cloud Run deployment (eidosd API server example)
3939

4040
4. **Verify artifacts** (see [Verification](#verification) below)
4141

@@ -66,8 +66,8 @@ For rebuilding from existing tags or emergency releases:
6666
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
6767
│ Tag Push │───▶│ Go CI │───▶│ Build │───▶│ Attest │───▶│ Deploy │
6868
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
69-
tests + binaries + SBOM + Cloud Run
70-
lint images provenance (eidosd)
69+
tests + binaries + SBOM + Demo Deploy
70+
lint images provenance (example)
7171
```
7272

7373
## Released Components
@@ -161,16 +161,18 @@ curl http://localhost:8080/health
161161
- **Pre-releases**: `v1.2.3-rc1`, `v1.2.3-beta1` (automatically marked in GitHub)
162162
- **Breaking changes**: Increment MAJOR version
163163

164-
## Cloud Run Deployment
164+
## Demo Cloud Run Deployment
165165

166-
The `eidosd` API server is automatically deployed to Google Cloud Run on successful release:
166+
> **Note**: This is a **demonstration deployment** for testing and development purposes only. It is not a production service. Users should self-host the `eidosd` API server in their own infrastructure for production use. See [API Server Documentation](docs/architecture/api-server.md) for deployment guidance.
167+
168+
The `eidosd` API server demo is automatically deployed to Google Cloud Run on successful release:
167169

168170
- **Project**: `eidosx`
169171
- **Region**: `us-west1`
170172
- **Service**: `api`
171173
- **Authentication**: Workload Identity Federation (keyless)
172174

173-
Deployment only occurs if the build step succeeds.
175+
This demo deployment only occurs if the build step succeeds and serves as an example of how to deploy the API server.
174176

175177
## Troubleshooting
176178

@@ -186,7 +188,9 @@ Deployment only occurs if the build step succeeds.
186188

187189
Use manual workflow trigger with the existing tag. No need to delete and recreate tags.
188190

189-
### Rollback Cloud Run
191+
### Rollback Demo Deployment
192+
193+
To rollback the demo Cloud Run deployment (maintainers only):
190194

191195
```bash
192196
# List revisions
@@ -242,5 +246,5 @@ After release:
242246
- [ ] GitHub Release created with changelog
243247
- [ ] Container images available in GHCR
244248
- [ ] Attestations verifiable
245-
- [ ] Cloud Run deployment successful
249+
- [ ] Demo Cloud Run deployment successful (optional)
246250
- [ ] Announce release (if applicable)

docs/architecture/README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,8 +1102,8 @@ Eidos uses GitHub Actions with a three-layer composite actions architecture for
11021102
└──────┬──────┘
11031103
11041104
┌──────▼──────┐
1105-
Deploy to
1106-
Cloud Run
1105+
Demo Deploy
1106+
(example)
11071107
└─────────────┘
11081108
```
11091109
@@ -1124,10 +1124,11 @@ Eidos uses GitHub Actions with a three-layer composite actions architecture for
11241124
- Record in Rekor transparency log (Sigstore)
11251125
- Achieves **SLSA Build Level 3** compliance
11261126
1127-
**Deployment** (`cloud-run-deploy` action):
1127+
**Demo Deployment** (`cloud-run-deploy` action):
1128+
- Demonstrates deployment to Google Cloud Run (users should self-host for production)
11281129
- Authenticate with Workload Identity Federation (keyless)
11291130
- Copy image from GHCR to Artifact Registry (us-docker.pkg.dev/eidosx/demo)
1130-
- Deploy eidosd to Google Cloud Run from Artifact Registry
1131+
- Deploy eidosd to Cloud Run as example deployment
11311132
11321133
**Permissions**: `attestations: write`, `contents: write`, `id-token: write`, `packages: write`
11331134

docs/architecture/api-server.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -523,53 +523,53 @@ curl http://localhost:8080/ready
523523
curl http://localhost:8080/metrics
524524
```
525525

526-
## Production Deployment
526+
## Demo API Server Deployment
527527

528-
### Google Cloud Run Deployment
528+
> **Note**: This section describes the **demonstration deployment** of the `eidosd` API server for testing and development purposes only. It is not a production service. Users should self-host the `eidosd` API server in their own infrastructure for production use. See the [Kubernetes Deployment](#kubernetes-deployment) section below for deployment guidance.
529529
530-
The API server is deployed to Google Cloud Run with the following configuration:
530+
### Example: Google Cloud Run
531531

532-
**Live Service:**
533-
- **URL**: http://localhost:8080
532+
The demo API server is deployed to Google Cloud Run as an example of how to deploy `eidosd`:
533+
534+
**Demo Configuration:**
534535
- **Platform**: Google Cloud Run (fully managed serverless)
535-
- **Authentication**: Public access
536+
- **Authentication**: Public access (for demo purposes)
536537
- **Auto-scaling**: 0-100 instances based on load
537-
- **Region**: Multi-region for high availability
538+
- **Region**: `us-west1`
538539

539540
**CI/CD Pipeline** (`on-tag.yaml`):
540541
```mermaid
541542
flowchart LR
542543
A["Git Tag<br/>v0.8.12"] --> B["GitHub Actions"]
543544
B --> C["Go CI<br/>(Test + Lint)"]
544545
C --> D["Build Image<br/>(ko + goreleaser)"]
545-
D --> E["Generate SBOM<br/>(Syft)"]
546+
D --> E["Generate SBOM<br/>(Syft)"]
546547
E --> F["Sign Attestations<br/>(Cosign keyless)"]
547548
F --> G["Push to GHCR<br/>ghcr.io/nvidia/eidosd"]
548-
G --> H["Deploy to Cloud Run<br/>(WIF auth)"]
549+
G --> H["Demo Deploy<br/>(example)"]
549550
H --> I["Health Check<br/>Verification"]
550551
```
551552

552553
**Supply Chain Security:**
553554
- **SLSA Build Level 3** compliance
554555
- **Signed SBOMs** in SPDX format
555-
- **Attestations** logged in Rekor transparency log
556+
- **Attestations** logged in Rekor transparency log
556557
- **Verification**: `gh attestation verify oci://ghcr.io/nvidia/eidosd:TAG --owner nvidia`
557558

558-
**Monitoring:**
559+
**Demo Monitoring:**
559560
- Health endpoint: `/health`
560561
- Readiness endpoint: `/ready`
561562
- Prometheus metrics: `/metrics`
562563
- Request tracing with `X-Request-Id` headers
563-
- Cloud Monitoring integration
564564

565-
**Scaling Behavior:**
565+
**Scaling Behavior (demo):**
566566
- **Min instances**: 0 (scales to zero when idle)
567567
- **Max instances**: 100 (automatic scaling)
568568
- **Cold start**: 2-3 seconds
569569
- **Request timeout**: 30 seconds
570570
- **Concurrency**: 80 requests per instance
571571

572-
**Benefits:**
572+
**Cloud Run Benefits (for reference):**
573573
- Zero operational overhead
574574
- Automatic HTTPS with managed certificates
575575
- Built-in DDoS protection

0 commit comments

Comments
 (0)