Documentation
¶
Index ¶
- func CreateResolver(cfg *configfile.ConfigFile, plainHTTP bool) docker.ResolverBlobMounter
- func FixupBundle(ctx context.Context, b *bundle.Bundle, ref reference.Named, ...) error
- func Pull(ctx context.Context, ref reference.Named, resolver remotes.Resolver) (*bundle.Bundle, error)
- func Push(ctx context.Context, b *bundle.Bundle, ref reference.Named, ...) (ocischemav1.Descriptor, error)
- type ManifestOption
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateResolver ¶
func CreateResolver(cfg *configfile.ConfigFile, plainHTTP bool) docker.ResolverBlobMounter
CreateResolver creates a docker registry resolver, using the local docker CLI credentials
func FixupBundle ¶
func FixupBundle(ctx context.Context, b *bundle.Bundle, ref reference.Named, resolver docker.ResolverBlobMounter) error
FixupBundle checks that all the references are present in the referenced repository, otherwise it will mount all the manifests to that repository. The bundle is then patched with the new digested references.
func Pull ¶
func Pull(ctx context.Context, ref reference.Named, resolver remotes.Resolver) (*bundle.Bundle, error)
Pull pulls a bundle from an OCI Image Index manifest
Example ¶
// Use remotes.CreateResolver for creating your remotes.Resolver resolver := createExampleResolver() ref, err := reference.ParseNamed("my.registry/namespace/my-app:my-tag") if err != nil { panic(err) } // Pull the CNAB and get the bundle resultBundle, err := Pull(context.Background(), ref, resolver) if err != nil { panic(err) } resultBundle.WriteTo(os.Stdout)
Output: { "name": "my-app", "version": "0.1.0", "description": "description", "keywords": [ "keyword1", "keyword2" ], "maintainers": [ { "name": "docker", "email": "docker@docker.com", "url": "docker.com" } ], "invocationImages": [ { "imageType": "docker", "image": "my.registry/namespace/my-app@sha256:d59a1aa7866258751a261bae525a1842c7ff0662d4f34a355d5f36826abc0341", "size": 506, "mediaType": "application/vnd.docker.distribution.manifest.v2+json" } ], "images": { "image-1": { "imageType": "oci", "image": "my.registry/namespace/my-app@sha256:d59a1aa7866258751a261bae525a1842c7ff0662d4f34a355d5f36826abc0341", "size": 507, "mediaType": "application/vnd.oci.image.manifest.v1+json", "description": "nginx:2.12" } }, "actions": { "action-1": { "Modifies": true } }, "parameters": { "param1": { "type": "type", "defaultValue": "hello", "allowedValues": [ "value1", true, 1 ], "required": false, "metadata": {}, "destination": { "path": "/some/path", "env": "env_var" } } }, "credentials": { "cred-1": { "path": "/some/path", "env": "env-var" } } }
func Push ¶
func Push(ctx context.Context, b *bundle.Bundle, ref reference.Named, resolver remotes.Resolver, options ...ManifestOption) (ocischemav1.Descriptor, error)
Push pushes a bundle as an OCI Image Index manifest
Example ¶
resolver := createExampleResolver() b := createExampleBundle() ref, err := reference.ParseNamed("my.registry/namespace/my-app:my-tag") if err != nil { panic(err) } // Push the bundle here descriptor, err := Push(context.Background(), b, ref, resolver) if err != nil { panic(err) } bytes, err := json.MarshalIndent(descriptor, "", " ") if err != nil { panic(err) } fmt.Printf("%s", string(bytes))
Output: { "mediaType": "application/vnd.oci.image.index.v1+json", "digest": "sha256:780346d71e4a7ae4375e1b8c2dfced63ed6429d411667c4c0aa30e0a68b75c1e", "size": 1121 }
Types ¶
type ManifestOption ¶
type ManifestOption func(*ocischemav1.Index) error
ManifestOption is a callback used to customize a manifest before pushing it
Click to show internal directories.
Click to hide internal directories.