timoni
timoni copied to clipboard
Register Timoni Module type with ArtifactHub
We should try to add the Timoni Module as a supported type in ArtifactHub. Modules which are published on public container registries could then be listed on https://artifacthub.io.
A Timoni module is an OCI artifact with the following media types:
- artifact media type
application/vnd.oci.image.manifest.v1+json
- config media type
application/vnd.timoni.config.v1+json
- content media type
application/vnd.timoni.content.v1.tar+gzip
ArtifactHub can list the versions of a module by querying the container repository tags.
ArtifactHub can extract the OCI annotations for each module version to display information such as:
- Description (optional)
org.opencontainers.image.description
- License (optional)
org.opencontainers.image.licenses
- Created date
org.opencontainers.image.created
- Version
org.opencontainers.image.revision
- Source code repo
org.opencontainers.image.source
- Readme markdown link
org.opencontainers.image.documentation
The org.opencontainers.image.documentation
contains the full URL to the markdown file which can be rendered in ArtifactHub.
Example:
$ crane manifest ghcr.io/stefanprodan/modules/podinfo|jq
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.timoni.config.v1+json",
"size": 233,
"digest": "sha256:3de741c3faf410c540698083003f86747d5c38fd5c0a217d3a471395c514d217"
},
"layers": [
{
"mediaType": "application/vnd.timoni.content.v1.tar+gzip",
"size": 164527,
"digest": "sha256:a2a86fead1ddb43a219255093ac749e2b15e848d2234ef733b2e7d5388177099"
}
],
"annotations": {
"org.opencontainers.image.created": "2023-04-08T11:15:09Z",
"org.opencontainers.image.description": "A timoni.sh module for deploying Podinfo.",
"org.opencontainers.image.documentation": "https://github.com/stefanprodan/timoni/blob/main/examples/podinfo/README.md",
"org.opencontainers.image.revision": "6.3.5",
"org.opencontainers.image.source": "https://github.com/stefanprodan/podinfo"
}
}