Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for OCI engine #914

Merged
merged 45 commits into from
Jan 22, 2025
Merged

Add support for OCI engine #914

merged 45 commits into from
Jan 22, 2025

Conversation

ezekg
Copy link
Member

@ezekg ezekg commented Nov 8, 2024

Closes #911. In the end, it should be as simple as building an OCI image layout via docker buildx build --platform linux/amd64,linux/arm64 -o type=oci,dest=- . > keygen-1.0.0.tar and keygen upload keygen-1.0.0.tar — the rest should be automatically handled by the OCI engine. Afterwards, docker pull oci.pkg.keygen.sh/keygen/api should work.

Like with npm and friends, docker push will not be supported right away.

Prereqs

  • Implement the Docker/OCI manifest and blob API endpoints.
  • Test parsing of internal/popular images (e.g. Alpine, Ubuntu, Keygen, Relay, etc.)
  • Test multi-platform images using docker buildx.
  • Test OCI conformance (namely OCI_TEST_PULL=1).1
  • Test compatibility with docker CLI.
  • Test compatibility with oras CLI.
  • Test compatibility with skopeo CLI. (With caveat.)
  • Write tests for OCI spec conformance.
  • Write tests for manifests API.
  • Write tests for blobs API.
  • Write tests for tags API.
  • Helm compatibility (should be fine?) Can dig into this later.
  • Make EE-only.
  • Cut a self-hosted release beforehand.

Subreqs

  • Set up oci.pkg.keygen.sh subdomain.
  • Update dashboard.
  • Update changelog.
  • Update website (e.g. landing pages, EE features, etc.)
  • Update blog.
  • Update docs. (Note: add new webhook events!)
  • Add OCI conformance test results1 to website.
  • Outreach.
  • Stdout?
  • Apply?

Footnotes

  1. Results from the OCI conformance test can be found here. 2

@ezekg ezekg force-pushed the feature/docker-engine branch 3 times, most recently from 49c2e66 to ba9255f Compare November 8, 2024 23:08
app/workers/process_docker_image_worker.rb Outdated Show resolved Hide resolved
app/workers/process_docker_image_worker.rb Outdated Show resolved Hide resolved
spec/support/matchers/upload_matcher.rb Outdated Show resolved Hide resolved
require 'minitar'
require 'zlib'

class ProcessDockerImageWorker < BaseWorker
Copy link
Member Author

Choose a reason for hiding this comment

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

This worker should be in a high_memory queue.

@ezekg ezekg force-pushed the feature/docker-engine branch 4 times, most recently from 576478c to 39740c4 Compare November 11, 2024 22:21
@ezekg ezekg force-pushed the feature/docker-engine branch 2 times, most recently from 7758cb0 to a4c8292 Compare November 15, 2024 00:10
@ezekg ezekg force-pushed the feature/docker-engine branch from a4c8292 to 306a26c Compare November 15, 2024 01:13
@ezekg ezekg force-pushed the feature/docker-engine branch 3 times, most recently from 6967323 to 76844ea Compare January 22, 2025 15:59
@ezekg ezekg force-pushed the feature/docker-engine branch from 76844ea to 88314e2 Compare January 22, 2025 16:19
@ezekg ezekg merged commit 3c496e2 into master Jan 22, 2025
5 checks passed
@ezekg ezekg mentioned this pull request Jan 24, 2025
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.

Add support for Docker/OCI container registry
1 participant