parent
							
								
									c94f28805e
								
							
						
					
					
						commit
						fcaffa38bc
					
				|  | @ -49,3 +49,4 @@ gopkg.in/square/go-jose.v1 40d457b439244b546f023d056628e5184136899b | |||
| gopkg.in/yaml.v2 bef53efd0c76e49e6de55ead051f886bea7e9420 | ||||
| rsc.io/letsencrypt e770c10b0f1a64775ae91d240407ce00d1a5bdeb https://github.com/dmcgowan/letsencrypt.git | ||||
| github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb | ||||
| github.com/opencontainers/image-spec e0536ae0cb47b8fed6afdaa9ba2589f6bd915caa | ||||
|  |  | |||
|  | @ -0,0 +1,191 @@ | |||
| 
 | ||||
|                                  Apache License | ||||
|                            Version 2.0, January 2004 | ||||
|                         http://www.apache.org/licenses/ | ||||
| 
 | ||||
|    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||||
| 
 | ||||
|    1. Definitions. | ||||
| 
 | ||||
|       "License" shall mean the terms and conditions for use, reproduction, | ||||
|       and distribution as defined by Sections 1 through 9 of this document. | ||||
| 
 | ||||
|       "Licensor" shall mean the copyright owner or entity authorized by | ||||
|       the copyright owner that is granting the License. | ||||
| 
 | ||||
|       "Legal Entity" shall mean the union of the acting entity and all | ||||
|       other entities that control, are controlled by, or are under common | ||||
|       control with that entity. For the purposes of this definition, | ||||
|       "control" means (i) the power, direct or indirect, to cause the | ||||
|       direction or management of such entity, whether by contract or | ||||
|       otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||||
|       outstanding shares, or (iii) beneficial ownership of such entity. | ||||
| 
 | ||||
|       "You" (or "Your") shall mean an individual or Legal Entity | ||||
|       exercising permissions granted by this License. | ||||
| 
 | ||||
|       "Source" form shall mean the preferred form for making modifications, | ||||
|       including but not limited to software source code, documentation | ||||
|       source, and configuration files. | ||||
| 
 | ||||
|       "Object" form shall mean any form resulting from mechanical | ||||
|       transformation or translation of a Source form, including but | ||||
|       not limited to compiled object code, generated documentation, | ||||
|       and conversions to other media types. | ||||
| 
 | ||||
|       "Work" shall mean the work of authorship, whether in Source or | ||||
|       Object form, made available under the License, as indicated by a | ||||
|       copyright notice that is included in or attached to the work | ||||
|       (an example is provided in the Appendix below). | ||||
| 
 | ||||
|       "Derivative Works" shall mean any work, whether in Source or Object | ||||
|       form, that is based on (or derived from) the Work and for which the | ||||
|       editorial revisions, annotations, elaborations, or other modifications | ||||
|       represent, as a whole, an original work of authorship. For the purposes | ||||
|       of this License, Derivative Works shall not include works that remain | ||||
|       separable from, or merely link (or bind by name) to the interfaces of, | ||||
|       the Work and Derivative Works thereof. | ||||
| 
 | ||||
|       "Contribution" shall mean any work of authorship, including | ||||
|       the original version of the Work and any modifications or additions | ||||
|       to that Work or Derivative Works thereof, that is intentionally | ||||
|       submitted to Licensor for inclusion in the Work by the copyright owner | ||||
|       or by an individual or Legal Entity authorized to submit on behalf of | ||||
|       the copyright owner. For the purposes of this definition, "submitted" | ||||
|       means any form of electronic, verbal, or written communication sent | ||||
|       to the Licensor or its representatives, including but not limited to | ||||
|       communication on electronic mailing lists, source code control systems, | ||||
|       and issue tracking systems that are managed by, or on behalf of, the | ||||
|       Licensor for the purpose of discussing and improving the Work, but | ||||
|       excluding communication that is conspicuously marked or otherwise | ||||
|       designated in writing by the copyright owner as "Not a Contribution." | ||||
| 
 | ||||
|       "Contributor" shall mean Licensor and any individual or Legal Entity | ||||
|       on behalf of whom a Contribution has been received by Licensor and | ||||
|       subsequently incorporated within the Work. | ||||
| 
 | ||||
|    2. Grant of Copyright License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       copyright license to reproduce, prepare Derivative Works of, | ||||
|       publicly display, publicly perform, sublicense, and distribute the | ||||
|       Work and such Derivative Works in Source or Object form. | ||||
| 
 | ||||
|    3. Grant of Patent License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       (except as stated in this section) patent license to make, have made, | ||||
|       use, offer to sell, sell, import, and otherwise transfer the Work, | ||||
|       where such license applies only to those patent claims licensable | ||||
|       by such Contributor that are necessarily infringed by their | ||||
|       Contribution(s) alone or by combination of their Contribution(s) | ||||
|       with the Work to which such Contribution(s) was submitted. If You | ||||
|       institute patent litigation against any entity (including a | ||||
|       cross-claim or counterclaim in a lawsuit) alleging that the Work | ||||
|       or a Contribution incorporated within the Work constitutes direct | ||||
|       or contributory patent infringement, then any patent licenses | ||||
|       granted to You under this License for that Work shall terminate | ||||
|       as of the date such litigation is filed. | ||||
| 
 | ||||
|    4. Redistribution. You may reproduce and distribute copies of the | ||||
|       Work or Derivative Works thereof in any medium, with or without | ||||
|       modifications, and in Source or Object form, provided that You | ||||
|       meet the following conditions: | ||||
| 
 | ||||
|       (a) You must give any other recipients of the Work or | ||||
|           Derivative Works a copy of this License; and | ||||
| 
 | ||||
|       (b) You must cause any modified files to carry prominent notices | ||||
|           stating that You changed the files; and | ||||
| 
 | ||||
|       (c) You must retain, in the Source form of any Derivative Works | ||||
|           that You distribute, all copyright, patent, trademark, and | ||||
|           attribution notices from the Source form of the Work, | ||||
|           excluding those notices that do not pertain to any part of | ||||
|           the Derivative Works; and | ||||
| 
 | ||||
|       (d) If the Work includes a "NOTICE" text file as part of its | ||||
|           distribution, then any Derivative Works that You distribute must | ||||
|           include a readable copy of the attribution notices contained | ||||
|           within such NOTICE file, excluding those notices that do not | ||||
|           pertain to any part of the Derivative Works, in at least one | ||||
|           of the following places: within a NOTICE text file distributed | ||||
|           as part of the Derivative Works; within the Source form or | ||||
|           documentation, if provided along with the Derivative Works; or, | ||||
|           within a display generated by the Derivative Works, if and | ||||
|           wherever such third-party notices normally appear. The contents | ||||
|           of the NOTICE file are for informational purposes only and | ||||
|           do not modify the License. You may add Your own attribution | ||||
|           notices within Derivative Works that You distribute, alongside | ||||
|           or as an addendum to the NOTICE text from the Work, provided | ||||
|           that such additional attribution notices cannot be construed | ||||
|           as modifying the License. | ||||
| 
 | ||||
|       You may add Your own copyright statement to Your modifications and | ||||
|       may provide additional or different license terms and conditions | ||||
|       for use, reproduction, or distribution of Your modifications, or | ||||
|       for any such Derivative Works as a whole, provided Your use, | ||||
|       reproduction, and distribution of the Work otherwise complies with | ||||
|       the conditions stated in this License. | ||||
| 
 | ||||
|    5. Submission of Contributions. Unless You explicitly state otherwise, | ||||
|       any Contribution intentionally submitted for inclusion in the Work | ||||
|       by You to the Licensor shall be under the terms and conditions of | ||||
|       this License, without any additional terms or conditions. | ||||
|       Notwithstanding the above, nothing herein shall supersede or modify | ||||
|       the terms of any separate license agreement you may have executed | ||||
|       with Licensor regarding such Contributions. | ||||
| 
 | ||||
|    6. Trademarks. This License does not grant permission to use the trade | ||||
|       names, trademarks, service marks, or product names of the Licensor, | ||||
|       except as required for reasonable and customary use in describing the | ||||
|       origin of the Work and reproducing the content of the NOTICE file. | ||||
| 
 | ||||
|    7. Disclaimer of Warranty. Unless required by applicable law or | ||||
|       agreed to in writing, Licensor provides the Work (and each | ||||
|       Contributor provides its Contributions) on an "AS IS" BASIS, | ||||
|       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||||
|       implied, including, without limitation, any warranties or conditions | ||||
|       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||||
|       PARTICULAR PURPOSE. You are solely responsible for determining the | ||||
|       appropriateness of using or redistributing the Work and assume any | ||||
|       risks associated with Your exercise of permissions under this License. | ||||
| 
 | ||||
|    8. Limitation of Liability. In no event and under no legal theory, | ||||
|       whether in tort (including negligence), contract, or otherwise, | ||||
|       unless required by applicable law (such as deliberate and grossly | ||||
|       negligent acts) or agreed to in writing, shall any Contributor be | ||||
|       liable to You for damages, including any direct, indirect, special, | ||||
|       incidental, or consequential damages of any character arising as a | ||||
|       result of this License or out of the use or inability to use the | ||||
|       Work (including but not limited to damages for loss of goodwill, | ||||
|       work stoppage, computer failure or malfunction, or any and all | ||||
|       other commercial damages or losses), even if such Contributor | ||||
|       has been advised of the possibility of such damages. | ||||
| 
 | ||||
|    9. Accepting Warranty or Additional Liability. While redistributing | ||||
|       the Work or Derivative Works thereof, You may choose to offer, | ||||
|       and charge a fee for, acceptance of support, warranty, indemnity, | ||||
|       or other liability obligations and/or rights consistent with this | ||||
|       License. However, in accepting such obligations, You may act only | ||||
|       on Your own behalf and on Your sole responsibility, not on behalf | ||||
|       of any other Contributor, and only if You agree to indemnify, | ||||
|       defend, and hold each Contributor harmless for any liability | ||||
|       incurred by, or claims asserted against, such Contributor by reason | ||||
|       of your accepting any such warranty or additional liability. | ||||
| 
 | ||||
|    END OF TERMS AND CONDITIONS | ||||
| 
 | ||||
|    Copyright 2016 The Linux Foundation. | ||||
| 
 | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
| 
 | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
| 
 | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
|  | @ -0,0 +1,167 @@ | |||
| # OCI Image Format Specification | ||||
| <div> | ||||
| <a href="https://travis-ci.org/opencontainers/image-spec"> | ||||
| <img src="https://travis-ci.org/opencontainers/image-spec.svg?branch=master"></img> | ||||
| </a> | ||||
| </div> | ||||
| 
 | ||||
| The OCI Image Format project creates and maintains the software shipping container image format spec (OCI Image Format). | ||||
| 
 | ||||
| **[The specification can be found here](spec.md).** | ||||
| 
 | ||||
| This repository also provides [Go types](specs-go), [intra-blob validation tooling, and JSON Schema](schema). | ||||
| The Go types and validation should be compatible with the current Go release; earlier Go releases are not supported. | ||||
| 
 | ||||
| Additional documentation about how this group operates: | ||||
| 
 | ||||
| - [Code of Conduct](https://github.com/opencontainers/tob/blob/d2f9d68c1332870e40693fe077d311e0742bc73d/code-of-conduct.md) | ||||
| - [Roadmap](#roadmap) | ||||
| - [Releases](RELEASES.md) | ||||
| - [Project Documentation](project.md) | ||||
| 
 | ||||
| The _optional_ and _base_ layers of all OCI projects are tracked in the [OCI Scope Table](https://www.opencontainers.org/about/oci-scope-table). | ||||
| 
 | ||||
| ## Running an OCI Image | ||||
| 
 | ||||
| The OCI Image Format partner project is the [OCI Runtime Spec project](https://github.com/opencontainers/runtime-spec). | ||||
| The Runtime Specification outlines how to run a "[filesystem bundle](https://github.com/opencontainers/runtime-spec/blob/master/bundle.md)" that is unpacked on disk. | ||||
| At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle. | ||||
| At this point the OCI Runtime Bundle would be run by an OCI Runtime. | ||||
| 
 | ||||
| This entire workflow supports the UX that users have come to expect from container engines like Docker and rkt: primarily, the ability to run an image with no additional arguments: | ||||
| 
 | ||||
| * docker run example.com/org/app:v1.0.0 | ||||
| * rkt run example.com/org/app,version=v1.0.0 | ||||
| 
 | ||||
| To support this UX the OCI Image Format contains sufficient information to launch the application on the target platform (e.g. command, arguments, environment variables, etc). | ||||
| 
 | ||||
| ## FAQ | ||||
| 
 | ||||
| **Q: Why doesn't this project mention distribution?** | ||||
| 
 | ||||
| A: Distribution, for example using HTTP as both Docker v2.2 and AppC do today, is currently out of scope on the [OCI Scope Table](https://www.opencontainers.org/about/oci-scope-table). | ||||
| There has been [some discussion on the TOB mailing list](https://groups.google.com/a/opencontainers.org/d/msg/tob/A3JnmI-D-6Y/tLuptPDHAgAJ) to make distribution an optional layer, but this topic is a work in progress. | ||||
| 
 | ||||
| **Q: What happens to AppC or Docker Image Formats?** | ||||
| 
 | ||||
| A: Existing formats can continue to be a proving ground for technologies, as needed. | ||||
| The OCI Image Format project strives to provide a dependable open specification that can be shared between different tools and be evolved for years or decades of compatibility; as the deb and rpm format have. | ||||
| 
 | ||||
| Find more [FAQ on the OCI site](https://www.opencontainers.org/faq). | ||||
| 
 | ||||
| ## Roadmap | ||||
| 
 | ||||
| The [GitHub milestones](https://github.com/opencontainers/image-spec/milestones) lay out the path to the OCI v1.0.0 release in late 2016. | ||||
| 
 | ||||
| # Contributing | ||||
| 
 | ||||
| Development happens on GitHub for the spec. | ||||
| Issues are used for bugs and actionable items and longer discussions can happen on the [mailing list](#mailing-list). | ||||
| 
 | ||||
| The specification and code is licensed under the Apache 2.0 license found in the `LICENSE` file of this repository. | ||||
| 
 | ||||
| ## Discuss your design | ||||
| 
 | ||||
| The project welcomes submissions, but please let everyone know what you are working on. | ||||
| 
 | ||||
| Before undertaking a nontrivial change to this specification, send mail to the [mailing list](#mailing-list) to discuss what you plan to do. | ||||
| This gives everyone a chance to validate the design, helps prevent duplication of effort, and ensures that the idea fits. | ||||
| It also guarantees that the design is sound before code is written; a GitHub pull-request is not the place for high-level discussions. | ||||
| 
 | ||||
| Typos and grammatical errors can go straight to a pull-request. | ||||
| When in doubt, start on the [mailing-list](#mailing-list). | ||||
| 
 | ||||
| ## Weekly Call | ||||
| 
 | ||||
| The contributors and maintainers of all OCI projects have a weekly meeting Wednesdays at 2:00 PM (USA Pacific). | ||||
| Everyone is welcome to participate via [UberConference web][UberConference] or audio-only: +1-415-968-0849 (no PIN needed). | ||||
| An initial agenda will be posted to the [mailing list](#mailing-list) earlier in the week, and everyone is welcome to propose additional topics or suggest other agenda alterations there. | ||||
| Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived [here][minutes]. | ||||
| 
 | ||||
| ## Mailing List | ||||
| 
 | ||||
| You can subscribe and join the mailing list on [Google Groups](https://groups.google.com/a/opencontainers.org/forum/#!forum/dev). | ||||
| 
 | ||||
| ## IRC | ||||
| 
 | ||||
| OCI discussion happens on #opencontainers on Freenode ([logs][irc-logs]). | ||||
| 
 | ||||
| ## Markdown style | ||||
| 
 | ||||
| To keep consistency throughout the Markdown files in the Open Container spec all files should be formatted one sentence per line. | ||||
| This fixes two things: it makes diffing easier with git and it resolves fights about line wrapping length. | ||||
| For example, this paragraph will span three lines in the Markdown source. | ||||
| 
 | ||||
| ## Git commit | ||||
| 
 | ||||
| ### Sign your work | ||||
| 
 | ||||
| The sign-off is a simple line at the end of the explanation for the patch, which certifies that you wrote it or otherwise have the right to pass it on as an open-source patch. | ||||
| The rules are pretty simple: if you can certify the below (from [developercertificate.org](http://developercertificate.org/)): | ||||
| 
 | ||||
| ``` | ||||
| Developer Certificate of Origin | ||||
| Version 1.1 | ||||
| 
 | ||||
| Copyright (C) 2004, 2006 The Linux Foundation and its contributors. | ||||
| 660 York Street, Suite 102, | ||||
| San Francisco, CA 94110 USA | ||||
| 
 | ||||
| Everyone is permitted to copy and distribute verbatim copies of this | ||||
| license document, but changing it is not allowed. | ||||
| 
 | ||||
| 
 | ||||
| Developer's Certificate of Origin 1.1 | ||||
| 
 | ||||
| By making a contribution to this project, I certify that: | ||||
| 
 | ||||
| (a) The contribution was created in whole or in part by me and I | ||||
|     have the right to submit it under the open source license | ||||
|     indicated in the file; or | ||||
| 
 | ||||
| (b) The contribution is based upon previous work that, to the best | ||||
|     of my knowledge, is covered under an appropriate open source | ||||
|     license and I have the right under that license to submit that | ||||
|     work with modifications, whether created in whole or in part | ||||
|     by me, under the same open source license (unless I am | ||||
|     permitted to submit under a different license), as indicated | ||||
|     in the file; or | ||||
| 
 | ||||
| (c) The contribution was provided directly to me by some other | ||||
|     person who certified (a), (b) or (c) and I have not modified | ||||
|     it. | ||||
| 
 | ||||
| (d) I understand and agree that this project and the contribution | ||||
|     are public and that a record of the contribution (including all | ||||
|     personal information I submit with it, including my sign-off) is | ||||
|     maintained indefinitely and may be redistributed consistent with | ||||
|     this project or the open source license(s) involved. | ||||
| ``` | ||||
| 
 | ||||
| then you just add a line to every git commit message: | ||||
| 
 | ||||
|     Signed-off-by: Joe Smith <joe@gmail.com> | ||||
| 
 | ||||
| using your real name (sorry, no pseudonyms or anonymous contributions.) | ||||
| 
 | ||||
| You can add the sign off when creating the git commit via `git commit -s`. | ||||
| 
 | ||||
| ### Commit Style | ||||
| 
 | ||||
| Simple house-keeping for clean git history. | ||||
| Read more on [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/) or the Discussion section of [`git-commit(1)`](http://git-scm.com/docs/git-commit). | ||||
| 
 | ||||
| 1. Separate the subject from body with a blank line | ||||
| 2. Limit the subject line to 50 characters | ||||
| 3. Capitalize the subject line | ||||
| 4. Do not end the subject line with a period | ||||
| 5. Use the imperative mood in the subject line | ||||
| 6. Wrap the body at 72 characters | ||||
| 7. Use the body to explain what and why vs. how | ||||
|   * If there was important/useful/essential conversation or information, copy or include a reference | ||||
| 8. When possible, one keyword to scope the change in the subject (i.e. "README: ...", "runtime: ...") | ||||
| 
 | ||||
| 
 | ||||
| [UberConference]: https://www.uberconference.com/opencontainers | ||||
| [irc-logs]: http://ircbot.wl.linuxfoundation.org/eavesdrop/%23opencontainers/ | ||||
| [minutes]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/ | ||||
							
								
								
									
										56
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/annotations.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										56
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/annotations.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,56 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| const ( | ||||
| 	// AnnotationCreated is the annotation key for the date and time on which the image was built (date-time string as defined by RFC 3339).
 | ||||
| 	AnnotationCreated = "org.opencontainers.image.created" | ||||
| 
 | ||||
| 	// AnnotationAuthors is the annotation key for the contact details of the people or organization responsible for the image (freeform string).
 | ||||
| 	AnnotationAuthors = "org.opencontainers.image.authors" | ||||
| 
 | ||||
| 	// AnnotationURL is the annotation key for the URL to find more information on the image.
 | ||||
| 	AnnotationURL = "org.opencontainers.image.url" | ||||
| 
 | ||||
| 	// AnnotationDocumentation is the annotation key for the URL to get documentation on the image.
 | ||||
| 	AnnotationDocumentation = "org.opencontainers.image.documentation" | ||||
| 
 | ||||
| 	// AnnotationSource is the annotation key for the URL to get source code for building the image.
 | ||||
| 	AnnotationSource = "org.opencontainers.image.source" | ||||
| 
 | ||||
| 	// AnnotationVersion is the annotation key for the version of the packaged software.
 | ||||
| 	// The version MAY match a label or tag in the source code repository.
 | ||||
| 	// The version MAY be Semantic versioning-compatible.
 | ||||
| 	AnnotationVersion = "org.opencontainers.image.version" | ||||
| 
 | ||||
| 	// AnnotationRevision is the annotation key for the source control revision identifier for the packaged software.
 | ||||
| 	AnnotationRevision = "org.opencontainers.image.revision" | ||||
| 
 | ||||
| 	// AnnotationVendor is the annotation key for the name of the distributing entity, organization or individual.
 | ||||
| 	AnnotationVendor = "org.opencontainers.image.vendor" | ||||
| 
 | ||||
| 	// AnnotationLicenses is the annotation key for the license(s) under which contained software is distributed as an SPDX License Expression.
 | ||||
| 	AnnotationLicenses = "org.opencontainers.image.licenses" | ||||
| 
 | ||||
| 	// AnnotationRefName is the annotation key for the name of the reference for a target.
 | ||||
| 	// SHOULD only be considered valid when on descriptors on `index.json` within image layout.
 | ||||
| 	AnnotationRefName = "org.opencontainers.image.ref.name" | ||||
| 
 | ||||
| 	// AnnotationTitle is the annotation key for the human-readable title of the image.
 | ||||
| 	AnnotationTitle = "org.opencontainers.image.title" | ||||
| 
 | ||||
| 	// AnnotationDescription is the annotation key for the human-readable description of the software packaged in the image.
 | ||||
| 	AnnotationDescription = "org.opencontainers.image.description" | ||||
| ) | ||||
							
								
								
									
										103
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/config.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										103
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/config.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,103 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| import ( | ||||
| 	"time" | ||||
| 
 | ||||
| 	digest "github.com/opencontainers/go-digest" | ||||
| ) | ||||
| 
 | ||||
| // ImageConfig defines the execution parameters which should be used as a base when running a container using an image.
 | ||||
| type ImageConfig struct { | ||||
| 	// User defines the username or UID which the process in the container should run as.
 | ||||
| 	User string `json:"User,omitempty"` | ||||
| 
 | ||||
| 	// ExposedPorts a set of ports to expose from a container running this image.
 | ||||
| 	ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"` | ||||
| 
 | ||||
| 	// Env is a list of environment variables to be used in a container.
 | ||||
| 	Env []string `json:"Env,omitempty"` | ||||
| 
 | ||||
| 	// Entrypoint defines a list of arguments to use as the command to execute when the container starts.
 | ||||
| 	Entrypoint []string `json:"Entrypoint,omitempty"` | ||||
| 
 | ||||
| 	// Cmd defines the default arguments to the entrypoint of the container.
 | ||||
| 	Cmd []string `json:"Cmd,omitempty"` | ||||
| 
 | ||||
| 	// Volumes is a set of directories describing where the process is likely write data specific to a container instance.
 | ||||
| 	Volumes map[string]struct{} `json:"Volumes,omitempty"` | ||||
| 
 | ||||
| 	// WorkingDir sets the current working directory of the entrypoint process in the container.
 | ||||
| 	WorkingDir string `json:"WorkingDir,omitempty"` | ||||
| 
 | ||||
| 	// Labels contains arbitrary metadata for the container.
 | ||||
| 	Labels map[string]string `json:"Labels,omitempty"` | ||||
| 
 | ||||
| 	// StopSignal contains the system call signal that will be sent to the container to exit.
 | ||||
| 	StopSignal string `json:"StopSignal,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // RootFS describes a layer content addresses
 | ||||
| type RootFS struct { | ||||
| 	// Type is the type of the rootfs.
 | ||||
| 	Type string `json:"type"` | ||||
| 
 | ||||
| 	// DiffIDs is an array of layer content hashes (DiffIDs), in order from bottom-most to top-most.
 | ||||
| 	DiffIDs []digest.Digest `json:"diff_ids"` | ||||
| } | ||||
| 
 | ||||
| // History describes the history of a layer.
 | ||||
| type History struct { | ||||
| 	// Created is the combined date and time at which the layer was created, formatted as defined by RFC 3339, section 5.6.
 | ||||
| 	Created *time.Time `json:"created,omitempty"` | ||||
| 
 | ||||
| 	// CreatedBy is the command which created the layer.
 | ||||
| 	CreatedBy string `json:"created_by,omitempty"` | ||||
| 
 | ||||
| 	// Author is the author of the build point.
 | ||||
| 	Author string `json:"author,omitempty"` | ||||
| 
 | ||||
| 	// Comment is a custom message set when creating the layer.
 | ||||
| 	Comment string `json:"comment,omitempty"` | ||||
| 
 | ||||
| 	// EmptyLayer is used to mark if the history item created a filesystem diff.
 | ||||
| 	EmptyLayer bool `json:"empty_layer,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // Image is the JSON structure which describes some basic information about the image.
 | ||||
| // This provides the `application/vnd.oci.image.config.v1+json` mediatype when marshalled to JSON.
 | ||||
| type Image struct { | ||||
| 	// Created is the combined date and time at which the image was created, formatted as defined by RFC 3339, section 5.6.
 | ||||
| 	Created *time.Time `json:"created,omitempty"` | ||||
| 
 | ||||
| 	// Author defines the name and/or email address of the person or entity which created and is responsible for maintaining the image.
 | ||||
| 	Author string `json:"author,omitempty"` | ||||
| 
 | ||||
| 	// Architecture is the CPU architecture which the binaries in this image are built to run on.
 | ||||
| 	Architecture string `json:"architecture"` | ||||
| 
 | ||||
| 	// OS is the name of the operating system which the image is built to run on.
 | ||||
| 	OS string `json:"os"` | ||||
| 
 | ||||
| 	// Config defines the execution parameters which should be used as a base when running a container using the image.
 | ||||
| 	Config ImageConfig `json:"config,omitempty"` | ||||
| 
 | ||||
| 	// RootFS references the layer content addresses used by the image.
 | ||||
| 	RootFS RootFS `json:"rootfs"` | ||||
| 
 | ||||
| 	// History describes the history of each layer.
 | ||||
| 	History []History `json:"history,omitempty"` | ||||
| } | ||||
							
								
								
									
										64
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/descriptor.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										64
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/descriptor.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,64 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| import digest "github.com/opencontainers/go-digest" | ||||
| 
 | ||||
| // Descriptor describes the disposition of targeted content.
 | ||||
| // This structure provides `application/vnd.oci.descriptor.v1+json` mediatype
 | ||||
| // when marshalled to JSON.
 | ||||
| type Descriptor struct { | ||||
| 	// MediaType is the media type of the object this schema refers to.
 | ||||
| 	MediaType string `json:"mediaType,omitempty"` | ||||
| 
 | ||||
| 	// Digest is the digest of the targeted content.
 | ||||
| 	Digest digest.Digest `json:"digest"` | ||||
| 
 | ||||
| 	// Size specifies the size in bytes of the blob.
 | ||||
| 	Size int64 `json:"size"` | ||||
| 
 | ||||
| 	// URLs specifies a list of URLs from which this object MAY be downloaded
 | ||||
| 	URLs []string `json:"urls,omitempty"` | ||||
| 
 | ||||
| 	// Annotations contains arbitrary metadata relating to the targeted content.
 | ||||
| 	Annotations map[string]string `json:"annotations,omitempty"` | ||||
| 
 | ||||
| 	// Platform describes the platform which the image in the manifest runs on.
 | ||||
| 	//
 | ||||
| 	// This should only be used when referring to a manifest.
 | ||||
| 	Platform *Platform `json:"platform,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // Platform describes the platform which the image in the manifest runs on.
 | ||||
| type Platform struct { | ||||
| 	// Architecture field specifies the CPU architecture, for example
 | ||||
| 	// `amd64` or `ppc64`.
 | ||||
| 	Architecture string `json:"architecture"` | ||||
| 
 | ||||
| 	// OS specifies the operating system, for example `linux` or `windows`.
 | ||||
| 	OS string `json:"os"` | ||||
| 
 | ||||
| 	// OSVersion is an optional field specifying the operating system
 | ||||
| 	// version, for example on Windows `10.0.14393.1066`.
 | ||||
| 	OSVersion string `json:"os.version,omitempty"` | ||||
| 
 | ||||
| 	// OSFeatures is an optional field specifying an array of strings,
 | ||||
| 	// each listing a required OS feature (for example on Windows `win32k`).
 | ||||
| 	OSFeatures []string `json:"os.features,omitempty"` | ||||
| 
 | ||||
| 	// Variant is an optional field specifying a variant of the CPU, for
 | ||||
| 	// example `v7` to specify ARMv7 when architecture is `arm`.
 | ||||
| 	Variant string `json:"variant,omitempty"` | ||||
| } | ||||
|  | @ -0,0 +1,29 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| import "github.com/opencontainers/image-spec/specs-go" | ||||
| 
 | ||||
| // Index references manifests for various platforms.
 | ||||
| // This structure provides `application/vnd.oci.image.index.v1+json` mediatype when marshalled to JSON.
 | ||||
| type Index struct { | ||||
| 	specs.Versioned | ||||
| 
 | ||||
| 	// Manifests references platform specific manifests.
 | ||||
| 	Manifests []Descriptor `json:"manifests"` | ||||
| 
 | ||||
| 	// Annotations contains arbitrary metadata for the image index.
 | ||||
| 	Annotations map[string]string `json:"annotations,omitempty"` | ||||
| } | ||||
|  | @ -0,0 +1,28 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| const ( | ||||
| 	// ImageLayoutFile is the file name of oci image layout file
 | ||||
| 	ImageLayoutFile = "oci-layout" | ||||
| 	// ImageLayoutVersion is the version of ImageLayout
 | ||||
| 	ImageLayoutVersion = "1.0.0" | ||||
| ) | ||||
| 
 | ||||
| // ImageLayout is the structure in the "oci-layout" file, found in the root
 | ||||
| // of an OCI Image-layout directory.
 | ||||
| type ImageLayout struct { | ||||
| 	Version string `json:"imageLayoutVersion"` | ||||
| } | ||||
							
								
								
									
										32
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/manifest.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										32
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/manifest.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,32 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| import "github.com/opencontainers/image-spec/specs-go" | ||||
| 
 | ||||
| // Manifest provides `application/vnd.oci.image.manifest.v1+json` mediatype structure when marshalled to JSON.
 | ||||
| type Manifest struct { | ||||
| 	specs.Versioned | ||||
| 
 | ||||
| 	// Config references a configuration object for a container, by digest.
 | ||||
| 	// The referenced configuration object is a JSON blob that the runtime uses to set up the container.
 | ||||
| 	Config Descriptor `json:"config"` | ||||
| 
 | ||||
| 	// Layers is an indexed list of layers referenced by the manifest.
 | ||||
| 	Layers []Descriptor `json:"layers"` | ||||
| 
 | ||||
| 	// Annotations contains arbitrary metadata for the image manifest.
 | ||||
| 	Annotations map[string]string `json:"annotations,omitempty"` | ||||
| } | ||||
							
								
								
									
										48
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/mediatype.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										48
									
								
								vendor/github.com/opencontainers/image-spec/specs-go/v1/mediatype.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,48 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package v1 | ||||
| 
 | ||||
| const ( | ||||
| 	// MediaTypeDescriptor specifies the media type for a content descriptor.
 | ||||
| 	MediaTypeDescriptor = "application/vnd.oci.descriptor.v1+json" | ||||
| 
 | ||||
| 	// MediaTypeLayoutHeader specifies the media type for the oci-layout.
 | ||||
| 	MediaTypeLayoutHeader = "application/vnd.oci.layout.header.v1+json" | ||||
| 
 | ||||
| 	// MediaTypeImageManifest specifies the media type for an image manifest.
 | ||||
| 	MediaTypeImageManifest = "application/vnd.oci.image.manifest.v1+json" | ||||
| 
 | ||||
| 	// MediaTypeImageIndex specifies the media type for an image index.
 | ||||
| 	MediaTypeImageIndex = "application/vnd.oci.image.index.v1+json" | ||||
| 
 | ||||
| 	// MediaTypeImageLayer is the media type used for layers referenced by the manifest.
 | ||||
| 	MediaTypeImageLayer = "application/vnd.oci.image.layer.v1.tar" | ||||
| 
 | ||||
| 	// MediaTypeImageLayerGzip is the media type used for gzipped layers
 | ||||
| 	// referenced by the manifest.
 | ||||
| 	MediaTypeImageLayerGzip = "application/vnd.oci.image.layer.v1.tar+gzip" | ||||
| 
 | ||||
| 	// MediaTypeImageLayerNonDistributable is the media type for layers referenced by
 | ||||
| 	// the manifest but with distribution restrictions.
 | ||||
| 	MediaTypeImageLayerNonDistributable = "application/vnd.oci.image.layer.nondistributable.v1.tar" | ||||
| 
 | ||||
| 	// MediaTypeImageLayerNonDistributableGzip is the media type for
 | ||||
| 	// gzipped layers referenced by the manifest but with distribution
 | ||||
| 	// restrictions.
 | ||||
| 	MediaTypeImageLayerNonDistributableGzip = "application/vnd.oci.image.layer.nondistributable.v1.tar+gzip" | ||||
| 
 | ||||
| 	// MediaTypeImageConfig specifies the media type for the image configuration.
 | ||||
| 	MediaTypeImageConfig = "application/vnd.oci.image.config.v1+json" | ||||
| ) | ||||
|  | @ -0,0 +1,32 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package specs | ||||
| 
 | ||||
| import "fmt" | ||||
| 
 | ||||
| const ( | ||||
| 	// VersionMajor is for an API incompatible changes
 | ||||
| 	VersionMajor = 1 | ||||
| 	// VersionMinor is for functionality in a backwards-compatible manner
 | ||||
| 	VersionMinor = 0 | ||||
| 	// VersionPatch is for backwards-compatible bug fixes
 | ||||
| 	VersionPatch = 0 | ||||
| 
 | ||||
| 	// VersionDev indicates development branch. Releases will be empty string.
 | ||||
| 	VersionDev = "-rc6-dev" | ||||
| ) | ||||
| 
 | ||||
| // Version is the specification version that the package types support.
 | ||||
| var Version = fmt.Sprintf("%d.%d.%d%s", VersionMajor, VersionMinor, VersionPatch, VersionDev) | ||||
|  | @ -0,0 +1,23 @@ | |||
| // Copyright 2016 The Linux Foundation
 | ||||
| //
 | ||||
| // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||
| // you may not use this file except in compliance with the License.
 | ||||
| // You may obtain a copy of the License at
 | ||||
| //
 | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, software
 | ||||
| // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||
| // See the License for the specific language governing permissions and
 | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| package specs | ||||
| 
 | ||||
| // Versioned provides a struct with the manifest schemaVersion and mediaType.
 | ||||
| // Incoming content with unknown schema version can be decoded against this
 | ||||
| // struct to check the version.
 | ||||
| type Versioned struct { | ||||
| 	// SchemaVersion is the image manifest schema that this image follows
 | ||||
| 	SchemaVersion int `json:"schemaVersion"` | ||||
| } | ||||
		Loading…
	
		Reference in New Issue