Giter VIP home page Giter VIP logo

oci-conformance's People

Contributors

aisofer avatar caniszczyk avatar christiankniep avatar developer-guy avatar dklyle avatar gildardogmsft avatar guacamole avatar hallyn avatar hasheddan avatar jdolitsky avatar jlbutler avatar joaodrp avatar maxknee avatar pmengelbert avatar rchincha avatar robdolinms avatar shizhmsft avatar stephenrwalli avatar stevelasker avatar sudo-bmitch avatar supersandro2000 avatar swinslow avatar tianon avatar vsoch avatar wwwsylvia avatar wy65701436 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oci-conformance's Issues

No member company can review its own results

Shall we add one note that "no company can review its own results" to the following clause if "peer verification" doesn't indicate it?

(4) Peer Verification

One or more members of the OCI Certification Program Working Group (Cert WG) may attempt to reproduce the test results for your product and may contact you with questions.

Indicate Yes, No, AND not-implemented

So that people running tests have a clear indication of not just YES/Pass or NO/Fail, we may want to also include a "not implemented" value if a particular functionality is simply not implemented.

(This issue was raised in an OCI Runtime ConCall the week of 5/8 - 5/12/2017)

Scope of OCI Runtime Certification with software higher in the stack

The OCI runtime validation suite is able to test runtimes that expose the OCI Runtime interface to users (operations create, start, etc. and the config.json file). It should be possible to test software like runc, bwrap-oci, crun, railcar.

What about software that use a OCI runtime internally but don't directly expose the OCI Bundle to users, such as containerd, Docker, CRI-O? Should they be able to be certified in some ways?

I am not sure it would make much sense but I have not seen discussion whether it should be in scope of the certification or not.

Technically, if the software does not follow the OCI Runtime Command Line Interface, the validation suite cannot test it. Exposing such a CLI interface in containerd or CRI-O does not make sense to me, since their goal is to expose a gRPC interface which is semantically different to the OCI Runtime CLI.

/cc @caniszczyk

Opt-in for registries to appear on public test dashboard

Regarding the conformance dashboard located here: https://oci.bloodorange.io

I think the source for that github pages site + CI should be migrated to this repo, and some domain setup such as conformance.opencontainers.org.

However, it's not clear which results should be included. What if, as part of submission for certification via PR, the submitter can set a field in PRODUCT.yaml:

ci: true

or something similar, which indicates that there is an associated CI definition located in this repo, which will be built on some timer, updating the dashboard results page.

As part of this, commercial vendors would need to supply secrets/credentials with access to some test registry that we can use for the tests.

Example script looks for non-existent Dockerfile

In the example script, the following line exists:

cd tmp && docker build -t conformance:latest -f Dockerfile.conformance .

For the distribution spec, the Dockerfile is called Dockerfile, not Dockerfile.conformance. I'm not sure if this should be changed in the script or if it would be better to rename the Dockerfile in the distribution-spec repo.

The OCI Certification Program to issue certificate of approval?

Not sure should it be a program or a committee, e.g., the Trademark Board or Certification Working Group, to issue an official certificate of approval?

(5) Certify

If your product passes testing and peer review, the OCI Certification Program will issue an official certificate of approval.

conformance for django-oci

Hey there! Django-oci is a bit different than the registries I see here in that it's not an official service, it's something that a user can implement as a plugin in their own Django app. That said, I do run the complete conformance testing suite: https://vsoch.github.io/django-oci/conformance/. Is there a way that we can include it here? Maybe a different kind of group that is for plugins and similar that implement the OCI distribution spec?

Assign Open Badges for certification?

Last year I'd floated Open Badges as a user-verifiable way for certified implementations to show their certification status. I think that should be part of the regular process, for a few reasons:

  • It has space for an account of the achievement (e.g. โ€œOCI Certified Runtime v1.0 on amd64 Linux. {link to opencontainers/certification issue with results}โ€). That makes it easy to show a pretty, tiny graphic (nice for the certified implementation) while still allowing access to the technical details (nice for a curious user).
  • The issuer can revoke badges unilaterally, instead of the current policy of asking the certified implementation to remove their stale marks (which may be difficult if the certified implementation has become abandonware).

Thoughts?

Scope of the Image Certification program: include conversion to OCI bundle?

I see different kinds of software and services who could be interested by a certification related to the image-spec:

  1. any containerized software, to be able to say "this image of e.g. Redis is an OCI Certified Image".
  2. container runtimes, to be able to say "the containerd runtime can generate a OCI bundle from an OCI image as per the OCI Image Spec"
  3. registry services, to be able to say "all images provided by quay.io/Docker Hub respect the OCI image spec"
  4. builders, like "docker build", or buildah

If I understand the description in #26, the focus of the OCI Certified Image program is on my point 1.

But parts of the image-spec are not only about the image format but about specifying the actions that a container runtime could do (my point 2). See image-spec/conversion.md:

  • Extraction of the root filesystem from the set of filesystem layers.
  • Conversion of the image configuration blob to an OCI Runtime configuration blob.

Shouldn't we have a certification program for this as well? The rules about the filesystem layers with the whiteout files can be tricky, so it seems useful to me to have a series of tests that container runtimes could run.

/cc @opencontainers/image-tools-maintainers @opencontainers/image-spec-maintainers

Reasonable timeline for version deprecation

Certification program version deprecation should align with product cycles.

Ex: Products with software on disk may be easier to update than products with software burned into silicon.

Potential testing race conditions

OCI-conformnace tests for all registry service providers are done via GitHub actions locating at .github/workflows/.

By looking through all the yaml files, all 4 tests against a single registry are conducted at the same time with the same repositories.
Taking ACR as an example,

  • acr_1.yml is scheduled at 0 6 * * *, running against ocitest.
  • acr_2.yml is scheduled at 0 6 * * *, running against ocitest.
  • acr_3.yml is scheduled at 0 6 * * *, running against ocitest.
  • acr_4.yml is scheduled at 0 6 * * *, running against ocitest.

It is possible that acr_2.yml is running in the middle but some tags or blobs are removed by the tear down phase of other tests, causing false positive results.

Here are two options on the solutions.

  1. Run tests against different OCI_NAMESPACE per test scenario.
  2. Run tests at different times like
    • 0 6 * * * for *_1.yml
    • 10 6 * * * for *_2.yml
    • 20 6 * * * for *_3.yml
    • 30 6 * * * for *_4.yml

Membership Requirement for Certification?

There's some mixed views on whether an OCI membership should be required for certification or not. We should have a discussion to come up with a final decision here, there are pros and cons, but I generally like to require membership with certification as it's a membership benefit and helps sustain the project over the long term.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.