惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
B
Blog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
W
WeLiveSecurity
N
News and Events Feed by Topic
F
Fortinet All Blogs
PCI Perspectives
PCI Perspectives
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
腾讯CDC
Last Week in AI
Last Week in AI
月光博客
月光博客
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Help Net Security
Help Net Security
V
V2EX
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Heimdal Security Blog
L
LINUX DO - 最新话题
GbyAI
GbyAI
The Hacker News
The Hacker News
罗磊的独立博客
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
O
OpenAI News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

Open Container Initiative

OCI Runtime Spec v1.3 - Open Container Initiative OCI Image and Distribution Specs v1.1 Releases OCI Runtime Spec v1.2 - Open Container Initiative OCI in 2024 and TOB Election Results Summary of Upcoming Changes in OCI Image and Distribution Specs v1.1 OCI at The Container Plumbing Conference OCI in 2023 and TOB Election Results OCI in 2022 and TOB Election Results OCI Member Spotlight – Chainguard Calling All Registries to Submit OCI Conformance! OCI Summit 2021 - Open Container Initiative Introducing fuzzing for runC and Umoci OCI in 2021 and TOB Election Results Consuming Public Content - Open Container Initiative OCI accepts new project, umoci Introducing and open sourcing the OCI Icon Set Open Sourcing runc Security Audit Container Journal – “OCI Launches Artifacts Project to Reduce Registries Required” New OCI Artifacts Project - Open Container Initiative Open Container Initiative Explained…with Dolls! OCI 2019 Elections and New TOB Lineup 2018’s Biggest Moments + What’s Coming for OCI in 2019 Bringing OCI images to the desktop with Flatpak OCI Image Support Comes to Open Source Docker Registry Open Container Initiative Welcomes Alibaba Cloud as Newest Member PouchContainer – How OCI Specifications Power Alibaba CRI-O – How Standards Power a Container Runtime OCI Member Spotlight – OpenStack (Kata Containers) Teaming up with Docker to Support a Diverse Container Ecosystem The New Stack – “Open Container Initiative Creates a Distribution Specification for Registries” SDxCentral – “OCI Standardizes Container Image Distribution Based on Docker Registry” ZDNet – “​Open Container Initiative nails down container image distribution standard” Container Journal – “OCI Standardizes Container Registry Protocol” Distribution-Spec is Here! - Open Container Initiative OCI Announces 2018 TOB Election Results OCI Member Spotlight – Kontena Windows ITPro – Using Containers? Look for the OCI Seal of Approval SiliconAngle - Why the new Open Container Initiative standard is a milestone for software OCI Welcomes New Project Maintainers OCI Member Spotlight – EasyStack SDxCentral – Open Container Initiative Marks Success, Looks for What’s Next Fostering Diversity and Inclusivity at DockerCon Europe eWeek – Open Container Initiative Specifications Reach 1.0 Milestone GeekWire – Cloud computing’s Open Container Initiative hits the 1.0 release milestone InformationWeek – Unity Rules As OCI Launches 1.0 Container Spec OCI v1.0 – Bringing Containers Closer to Standardization TechCrunch – The Open Container Initiative launches version 1.0 of its container specs The New Stack – OCI’s Long-Awaited Container Runtime and Image Specifications Hit the Streets The Register – Contain(er) your enthusiasm, nerds – Docker-backed OCI runtime spec hits 1.0 ZDNet – Containers consolidation – Open Container Initiative 1.0 released Open Container Initiative (OCI) Releases v1.0 of Container Standards OCI Member Spotlight – CoreOS OCI Member Spotlight – Cycle.io Join OCI for OSCON’s Open Container Day Innovative Cloud Organizations Join the Open Container Initiative to Help Shape Industry Container Standards OCI Member Spotlight – Mesosphere OCI Member Spotlight – Univa OCI Member Spotlight – Wercker OCI Member Spotlight – IBM OCI Member Spotlight – Rancher Labs OCI Moves into 2017 - Open Container Initiative The OCI Applauds containerd and rkt to CNCF OCI Member Spotlight – ContainerShip OCI Member Spotlight – SUSE OCI Member Spotlight – Apcera OCI Member Spotlight – Portworx OCI Member Spotlight – Huawei OCI Member Spotlight – Pivotal OCI Member Spotlight – Fujitsu OCI Member Spotlight – Weaveworks OCI Member Spotlight – Red Hat OCI Member Spotlight – Google help-guide-the-future-of-container-technology-through-the-open-container-initiative - Open Container Initiative developerWorks Webcast Recap – Open Container Initiative at 12 months OCI Member Spotlight – Intel OCI Member Spotlight – Microsoft Docker 1.11 – The first runtime built on containerd and based on OCI technology Celebrating the Open Container Initiative Image Specification New Image Specification Project for Container Images Open Container Initiative Launches a Container Image Format Spec Open Container Format Progress Report Community Rallies Behind Open Container Initiative Industry Leaders Unite to Create Project for Open Container Standards About the Open Container Initiative Community Overview - Open Container Initiative Contact us - Open Container Initiative FAQ - Open Container Initiative Join - Open Container Initiative Leadership - Open Container Initiative OCI Certified - Open Container Initiative OCI distribution-spec v 1.0.0 release notice OCI distribution-spec v 1.0.1 release notice OCI distribution-spec v. 1.1.0 release notice OCI distribution-spec v. 1.1.1 release notice OCI image-spec v. 1.0.1 release notice OCI image-spec v. 1.0.2 release notice OCI image-spec v. 1.1.0 release notice OCI image-spec v. 1.1.1 release notice OCI runtime-spec v. 1.0.1 release notice OCI Runtime Spec v1.1 - Open Container Initiative
OCI Distribution Spec Conformance Redesign
map[name:Open Container Initiative tag:oci] · 2026-04-06 · via Open Container Initiative

The OCI Distribution Spec conformance suite has received a significant rewrite. As a result of this rewrite, registry authors and operators will likely see new issues reported that were not detected in previous versions of the conformance suite. However, efforts have been made to make the transition backwards compatible so that any automated jobs running these tests do not themselves break.

Why Redesign the Old Tests?

The original conformance tests were starting to experience growing pains. They were designed to run a single set of data through four groups of tests:

  1. Push
  2. Pull
  3. Content Discovery
  4. Content Management

The push tests would upload manifests and blobs using various put and post requests. The pull tests would retrieve that content with various head and get requests. The discovery tests would list tags and referrers. And the management tests would delete the content.

All of these tests would run as a go test generated binary, and were built on top of some 3rd party abstractions to simplify the writing of those tests.

However, as OCI has grown, particularly to support artifacts and new APIs, a few issues became apparent:

  1. Writing tests and running them with go test resulted in a non-idiomatic workflow for both the maintainers and the users of those tests.
  2. As more types of data were being tested, the conformance suite was not efficiently scaling, and instead required lots of copy-and-paste code that would get out of sync as bugs were fixed.
  3. The API tests were not granular, making it difficult to handle specific APIs being disabled on a registry.
  4. Any API failure would only report the first error, rather than listing all of the issues.
  5. There was no ability to select what kinds of data to test on the registry.
  6. Specifying the version of the specification to test leveraged the git tag, which restricted the ability to test old versions of the spec with new data types and prevented any bug fixes from being released without a revision of the specification.
  7. The results only identified the four major API groups as a pass/fail, and granular details required reviewing the logs.

How Are the New Tests Designed?

The redesigned conformance suite performs the following steps at a high level:

  1. Process Configuration
  2. Generate Data
  3. Run Blob Tests
  4. Run Image Tests
  5. Run Invalid Input Tests
  6. Output Results

The configuration now includes the following:

  • Registry connection details (hostname, TLS settings, login credentials, and repository names)
  • OCI distribution-spec release to test (this no longer depends on the git tag)
  • APIs to test (with more granularity)
  • Kinds of data to test

The data generation step creates various manifests and blobs for the different kinds of data permitted in the configuration. This includes lots of edge cases, including artifacts, different digest algorithms, empty lists, various fields in the JSON, and a nested index (containing another index). These various edge cases are added as OCI encounters implementations that break in unexpected ways. Data from newer versions of the image-spec will be tested against older versions of the distribution-spec by default, since these specs are independently versioned and data portability between registries is an important goal of OCI.

An independent set of blob tests is performed since there are multiple ways to push blobs to an OCI registry. The suite of blob tests is performed per digest algorithm being tested, making it easier to extend the conformance suite for new algorithms. This also includes tests for different error handling scenarios when pushing blobs, like pushing chunks out of order, or mounting blobs that do not exist. A variety of blob range requests are also tested, which is becoming more popular with lazy loading of layers and chunked pulling of very large blobs.

After verifying the various blob APIs, tests are run using the data that was generated above. Each test begins by pushing the various blobs and manifests, then queries are run to ensure the data was correctly uploaded and can be pulled, followed by deletion requests run in reverse. Many of these API tests may be enabled or disabled, with a default set of APIs enabled according to the OCI distribution-spec version in the configuration. The same test procedure is performed for each of the generated data sets, allowing code reuse as new types of data are added to the conformance suite, more thorough test coverage, and a consistent cleanup at the end of the test (assuming the deletion APIs are enabled).

The results now include a results.yaml file. In addition to a redacted version of the configuration used to run the test, this file reports the status of the API and data tests with several possible values:

  • Pass: All conformance tests were successful.
  • Skip: At least one test was run but the registry indicated the feature was not supported.
  • Disabled: The test was not enabled in the configuration.
  • FAIL: At least one test was run and the registry returned an invalid response.

The difference between Skip and FAIL is whether the response was valid according to the specification. For example, with several blob upload APIs, the registry may return a 202 Accepted instead of a 201 Created to indicate the blob upload was not supported with the first API, but with a location where the client can now complete that upload. Projects may find it helpful to disable unsupported APIs to avoid failing data test results, or to disable an unsupported data type to avoid failing API results.

Running the Conformance Suite

To run the tests, you first need to input your configuration. The conformance tests accept configuration using either environment variables or a yaml configuration. An example yaml configuration (saved to oci-conformance.yaml) could look like:

version: "1.1"
registry: localhost:5000
tls: disabled
repo1: conformance/repo1
repo2: conformance/repo2
username: "test"
password: "secret123"
apis:
  blobs:
    delete: false
data:
  nondistributable: false
  customFields: false
  sha512: false

This would run the tests with the default configuration for the distribution-spec 1.1 release with blob deletion and a few types of data disabled. The full yaml configuration and associated environment variables are listed in the conformance README.

Running the conformance tests can be performed with Go, Docker, or GitHub Actions. For each of these options, see the conformance README for the exact steps.

Publishing Results

Conformance results are voluntarily submitted to conformance.opencontainers.org. Those submissions may include disabled and failed results to help users identify portability and compatibility issues they may encounter. To submit your own registries results, see the opencontainers/oci-conformance repo, specifically the submission instructions for the list of steps to submit a pull request.