remotes

package
v0.0.0-...-5b8e820 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2018 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

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

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL