Skip to content

feat(service-catalog): add first media-service lane to the service-catalog pipeline (closes #80)#204

Open
clubanderson wants to merge 1 commit into
projectbluefin:mainfrom
clubanderson:feat/service-catalog-media-lane
Open

feat(service-catalog): add first media-service lane to the service-catalog pipeline (closes #80)#204
clubanderson wants to merge 1 commit into
projectbluefin:mainfrom
clubanderson:feat/service-catalog-media-lane

Conversation

@clubanderson

Copy link
Copy Markdown
Contributor

Summary

Adds the first concrete media-service lane to the service-catalog pipeline, implementing #80:

  • Fixtures: Jellyfin (linuxserver.io) Kubernetes manifests with config (1Gi) and data (10Gi) PVCs, Deployment with PUID/PGID/TZ env vars, ClusterIP Service on port 8096
  • Tests: 18 pytest checks in tests/service_catalog/media/test_media_lane.py covering deployment, PVC lifecycle, reachability, env injection, persistence across restarts, teardown verification, and observability
  • Pipeline integration: argo/service-catalog-media.yaml submit wrapper using lane=media with the shared service-catalog-pipeline WorkflowTemplate from feat: add service-catalog pipeline and shared homelab workload test harness #79
  • Justfile: run-service-media target with image-tag and branch parameters
  • Docs: WORKFLOWS.md and RUNBOOK.md updated with lane details, failure modes, and operator entry points

GPU transcoding and device passthrough are explicitly deferred to #63 via pytest.mark.skip.

Acceptance criteria

  • Media fixtures under tests/service-catalog/media/fixtures/
  • Media lane tests under tests/service-catalog/media/
  • Shared pipeline can execute lane=media
  • Justfile target run-service-media exists
  • WORKFLOWS.md and RUNBOOK.md updated
  • GPU transcoding/passthrough kept out of base lane (→ feat: split GPU transcoding and passthrough from the base media lane #63)
  • Runs entirely in k8s

Dependencies

Test plan

… pipeline (closes projectbluefin#80)

Add the first concrete media-service lane to the service-catalog pipeline,
deploying a Jellyfin (linuxserver.io) workload in Kubernetes with config
and data PVCs. Tests validate deployment, persistence across restarts,
reachability, environment injection, and teardown. GPU transcoding and
device passthrough are explicitly deferred to projectbluefin#63.

Depends-on: projectbluefin#79 (shared pipeline), projectbluefin#59 (contract), projectbluefin#66 (workload contract)
Signed-off-by: unknown <unknown@users.noreply.github.com>

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — well-structured test/infra addition, clean code.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Service-catalog lane addition. Merge after foundational #202. LGTM.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved via org-wide review.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved via org-wide review.

@hanthor hanthor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Approved ✅

Part of the structured service-catalog project build-up. Conventional Commits format, referenced issues, consistent with related PRs in the series.

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.

3 participants