|
53 | 53 | <!-- 110_ecosystem/oci/slides.md -->
|
54 | 54 | ## What this is about
|
55 | 55 |
|
56 |
| -build <i class="fa-duotone fa-user-helmet-safety"></i> |
| 56 | +We build <i class="fa-duotone fa-user-helmet-safety"></i> container images <i class="fa-duotone fa-database"></i> and... |
57 | 57 |
|
58 |
| -image <i class="fa-duotone fa-database"></i> |
| 58 | +...push <i class="fa-duotone fa-person-dolly"></i> them into a registry <i class="fa-duotone fa-warehouse-full"></i> |
59 | 59 |
|
60 |
| -push <i class="fa-duotone fa-person-dolly"></i> |
| 60 | +Registries are self-hosted <i class="fa-duotone fa-server"></i> or... |
61 | 61 |
|
62 |
| -registry <i class="fa-duotone fa-warehouse-full"></i> |
| 62 | +...consumed as-a-Service <i class="fa-duotone fa-square-phone"></i> |
63 | 63 |
|
64 |
| -artifacts <i class="fa-duotone fa-box-open-full"></i> |
65 |
| - |
66 |
| -spec <i class="fa-duotone fa-file-certificate"></i> |
67 |
| - |
68 |
| -We are using container registries (aaS, self-hosted) |
69 |
| - |
70 |
| -Registries follow specs |
| 64 | +All of them follow a flexible spec <i class="fa-duotone fa-file-certificate"></i> |
71 | 65 |
|
72 | 66 | Store more than container images
|
73 | 67 |
|
74 |
| -Spec is flexible |
75 |
| - |
76 |
| -Store generic artifacts |
| 68 | +Store generic artifacts <i class="fa-duotone fa-box-open-full"></i> |
77 | 69 | </textarea></section>
|
78 | 70 |
|
79 | 71 | <section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
|
80 | 72 | <!-- 110_ecosystem/oci/slides.md -->
|
81 |
| -## OCI |
| 73 | +## Open Container Initiative |
| 74 | + |
| 75 | +OCI [](https://opencontainers.org/) |
| 76 | + |
| 77 | +Specifications: |
82 | 78 |
|
83 |
| -XXX link |
| 79 | +- Runtime [](https://github.com/opencontainers/runtime-spec) |
| 80 | +- Image [](https://github.com/opencontainers/image-spec) |
| 81 | +- Distribution [](https://github.com/opencontainers/distribution-spec) |
84 | 82 |
|
85 |
| -XXX specs |
| 83 | +runc [](https://github.com/opencontainers/runc) - reference implementation of runtime spec |
86 | 84 |
|
87 |
| -XXX scope of this talk |
| 85 | +XXX history |
| 86 | + |
| 87 | +XXX members |
| 88 | + |
| 89 | +XXX TOC |
| 90 | +</textarea></section> |
| 91 | + |
| 92 | +<section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template=""> |
| 93 | +## Scope of this talk |
88 | 94 |
|
89 | 95 | XXX contents 1.0
|
90 | 96 |
|
|
101 | 107 |
|
102 | 108 | ## Media types
|
103 | 109 |
|
104 |
| -XXX |
| 110 | +OCI defines new media types |
| 111 | + |
| 112 | +Widespread adoption of OCI media types |
105 | 113 |
|
106 | 114 | | What | OCI | Docker |
|
107 | 115 | |----------------|---------------------------------|-----------------------------------------------|
|
|
112 | 120 |
|
113 | 121 | <!-- .element: style="width: 105%; font-size: xx-large;" -->
|
114 | 122 |
|
| 123 | +XXX `Accept` header |
| 124 | + |
115 | 125 | ---
|
116 | 126 |
|
117 | 127 | ## Accept multiple media types
|
118 | 128 |
|
119 |
| -XXX |
| 129 | +`Accept` header can also list multiple media types |
| 130 | + |
| 131 | +XXX example |
120 | 132 | </textarea></section>
|
121 | 133 |
|
122 | 134 | <section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
|
123 | 135 | <!-- 110_ecosystem/oci/slides.md -->
|
124 | 136 | ## How it started
|
125 | 137 |
|
126 |
| -XXX ORaS / OCI artifacts |
127 |
| - |
128 |
| -XXX very low-level |
129 |
| - |
130 |
| -XXX [](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) |
| 138 | +### <span style="font-size: larger;">O</span>CI <span style="font-size: larger;">R</span>egistries <span style="font-size: larger;">a</span>s <span style="font-size: larger;">S</span>torage (ORaS) |
131 | 139 |
|
132 |
| -XXX demo oras.demo |
| 140 | +Initial project to store artifacts in OCI registries |
133 | 141 |
|
134 |
| ---- |
135 |
| - |
136 |
| -## How it's going |
| 142 | +Very low-level |
137 | 143 |
|
138 |
| -### Existing implementations |
| 144 | +Official guidance for artifacts [](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) |
139 | 145 |
|
140 |
| -XXX compose (docker/app, archived) [](https://github.com/docker/app) |
| 146 | +### Demo |
141 | 147 |
|
142 |
| -XXX CNAB [](https://cnab.io/) |
| 148 | +XXX demo oras.demo [](https://github.com/nicholasdille/container-slides/blob/master/110_ecosystem/oci/oras.demo) |
143 | 149 |
|
144 |
| -XXX extension of image index for SBOM by Docker (buildkit.demo) |
| 150 | +--- |
145 | 151 |
|
146 |
| -``` |
147 |
| -Name: localhost:5000/test:oci-sbom |
148 |
| -MediaType: application/vnd.oci.image.index.v1+json |
149 |
| -Digest: sha256:cb961fc14f51de08aea804a4bc1aac3cea32421f6dc87b96a6050917c22f31d4 |
| 152 | +## How it's going |
150 | 153 |
|
151 |
| -Manifests: |
| 154 | +### Existing implementations (excerpt) |
152 | 155 |
|
153 |
| - Name: localhost:5000/test:oci-sbom@sha256:326d32b66725c5007dedc9515be190fc491d37a918ce61df41f9bd6556b79ff5 |
154 |
| - Digest: sha256:326d32b66725c5007dedc9515be190fc491d37a918ce61df41f9bd6556b79ff5 |
155 |
| - MediaType: application/vnd.oci.image.manifest.v1+json |
156 |
| - Platform: linux/amd64 |
| 156 | +Docker App [](https://github.com/docker/app) (archived) |
157 | 157 |
|
158 |
| - Name: localhost:5000/test:oci-sbom@sha256:7fa02a66b3e93c2be01521b1bb8383c8128077c3353be20f95a68a07b1288f6c |
159 |
| - Digest: sha256:7fa02a66b3e93c2be01521b1bb8383c8128077c3353be20f95a68a07b1288f6c |
160 |
| - MediaType: application/vnd.oci.image.manifest.v1+json |
161 |
| - Platform: unknown/unknown |
162 |
| - Annotations: |
163 |
| - vnd.docker.reference.digest: sha256:326d32b66725c5007dedc9515be190fc491d37a918ce61df41f9bd6556b79ff5 |
164 |
| - vnd.docker.reference.type: attestation-manifest |
165 |
| -``` |
| 158 | +Cloud Native Application Bundles (CNAB) [](https://cnab.io/) |
| 159 | +- porter [](https://github.com/getporter/porter) |
166 | 160 |
|
167 |
| -XXX tag-sha used by cosign (cosign.demo) |
| 161 | +SBOM for container images [](https://github.com/moby/buildkit/blob/master/docs/attestations/sbom.md) |
| 162 | +- BuildKit [](https://github.com/moby/buildkit) >=0.11.0 |
| 163 | +- buildx [](https://github.com/docker/buildx) >=0.10.0 |
168 | 164 |
|
169 |
| -XXX helm charts (helm.demo) [](https://helm.sh/docs/topics/registries/) |
| 165 | +Container signatures using sigstore's cosign [](https://www.sigstore.dev/) |
170 | 166 |
|
171 |
| -XXX OPA policies using CLI [](https://github.com/opcr-io/policy#demo-videosrecordings) |
| 167 | +Helm charts [](https://helm.sh/docs/topics/registries/) |
172 | 168 |
|
173 |
| -XXX possibly more |
| 169 | +OPA policies [](https://github.com/opcr-io/policy#demo-videosrecordings) |
174 | 170 | </textarea></section>
|
175 | 171 |
|
176 | 172 | <section data-markdown="" data-separator="^---$" data-separator-vertical="^--$"><textarea data-template="">
|
|
0 commit comments