apache / apache/texera

Curate computing-unit images feature

Closed
#8,468 1 comment 0 reactions 1 assignee Claimed by @tanishqgandhi1908 View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### Task Summary

The backend of #8466 : somewhere to keep curated images, an admin-only API to manage them, and a check that an image is one a computing unit can start from.

Without that check, a misspelled reference or an image that is not a computing-unit image is only discovered when a user's unit sits in ImagePullBackOff, with no explanation anywhere in Texera.

A `cu_image` table, one row per image: the reference as given, the digest it resolved to, a status, and the check's output.

An admin-only API to register, refresh, list and remove. Registering normalises the reference — a page address, a bare `owner/name:tag`, and one with the registry spelled out all reduce to the same string — then runs `skopeo inspect` in a job. That reads the manifest and config blob, a few kilobytes, never the layers, so it answers in seconds. The row records `owner/name@sha256:…`, and that is what units are started from.

Uniqueness is enforced by the database, not just checked in the service: two administrators registering the same link at the same moment both pass a read-then-write check and produce two rows for one image.

A curated image is supplied by an administrator and reviewed by nobody, so units started from one run as a non-root user with no privilege escalation and no capabilities. The deployment's own image is left alone.

Done when an admin can register a reference, it reaches READY with a pinned digest, a bad one reaches FAILED with a readable reason, and a unit can be created from a ready image.

### Task Type

- [ ] Refactor / Cleanup
- [ ] DevOps / Deployment / CI
- [ ] Testing / QA
- [ ] Documentation
- [ ] Performance
- [ ] Other

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.