source

package
v0.0.0-...-9d7e926 Latest Latest
Warning

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

Go to latest
Published: May 23, 2023 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CoreOwnerKindKey          = "core.rukpak.io/owner-kind"
	CoreOwnerNameKey          = "core.rukpak.io/owner-name"
	CoreBundleTemplateHashKey = "core.rukpak.io/bundle-template-hash"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigMaps

type ConfigMaps struct {
	Reader             client.Reader
	ConfigMapNamespace string
}

func (*ConfigMaps) Unpack

func (o *ConfigMaps) Unpack(ctx context.Context, bundle *rukpakv1alpha1.Bundle) (*Result, error)

type Git

type Git struct {
	client.Reader
	SecretNamespace string
}

func (*Git) Unpack

func (r *Git) Unpack(ctx context.Context, bundle *rukpakv1alpha1.Bundle) (*Result, error)

type HTTP

type HTTP struct {
	client.Reader
	SecretNamespace string
}

http is a bundle source that sources bundles from the specified url.

func (*HTTP) Unpack

func (b *HTTP) Unpack(ctx context.Context, bundle *rukpakv1alpha1.Bundle) (*Result, error)

Unpack unpacks a bundle by requesting the bundle contents from a specified URL

type Image

type Image struct {
	Client       client.Client
	KubeClient   kubernetes.Interface
	PodNamespace string
	UnpackImage  string
}

func (*Image) Unpack

func (i *Image) Unpack(ctx context.Context, bundle *rukpakv1alpha1.Bundle) (*Result, error)

type Result

type Result struct {
	// Bundle contains the full filesystem of a bundle's root directory.
	Bundle fs.FS

	// ResolvedSource is a reproducible view of a Bundle's Source.
	// When possible, source implementations should return a ResolvedSource
	// that pins the Source such that future fetches of the bundle content can
	// be guaranteed to fetch the exact same bundle content as the original
	// unpack.
	//
	// For example, resolved image sources should reference a container image
	// digest rather than an image tag, and git sources should reference a
	// commit hash rather than a branch or tag.
	ResolvedSource *rukpakv1alpha1.BundleSource

	// State is the current state of unpacking the bundle content.
	State State

	// Message is contextual information about the progress of unpacking the
	// bundle content.
	Message string
}

Result conveys progress information about unpacking bundle content.

type State

type State string
const (
	// StatePending conveys that a request for unpacking a bundle has been
	// acknowledged, but not yet started.
	StatePending State = "Pending"

	// StateUnpacking conveys that the source is currently unpacking a bundle.
	// This state should be used when the bundle contents are being downloaded
	// and processed.
	StateUnpacking State = "Unpacking"

	// StateUnpacked conveys that the bundle has been successfully unpacked.
	StateUnpacked State = "Unpacked"
)

type Unpacker

type Unpacker interface {
	Unpack(context.Context, *rukpakv1alpha1.Bundle) (*Result, error)
}

Unpacker unpacks bundle content, either synchronously or asynchronously and returns a Result, which conveys information about the progress of unpacking the bundle content.

If a Source unpacks content asynchronously, it should register one or more watches with a controller to ensure that Bundles referencing this source can be reconciled as progress updates are available.

For asynchronous Sources, multiple calls to Unpack should be made until the returned result includes state StateUnpacked.

NOTE: A source is meant to be agnostic to specific bundle formats and specifications. A source should treat a bundle root directory as an opaque file tree and delegate bundle format concerns to bundle parsers.

func NewDefaultUnpacker

func NewDefaultUnpacker(systemNsCluster cluster.Cluster, namespace, unpackImage string, baseUploadManagerURL string, rootCAs *x509.CertPool) (Unpacker, error)

NewDefaultUnpacker returns a new composite Source that unpacks bundles using a default source mapping with built-in implementations of all of the supported source types.

TODO: refactor NewDefaultUnpacker due to growing parameter list

func NewUnpacker

func NewUnpacker(sources map[rukpakv1alpha1.SourceType]Unpacker) Unpacker

NewUnpacker returns a new composite Source that unpacks bundles using the source mapping provided by the configured sources.

type Upload

type Upload struct {
	// contains filtered or unexported fields
}

Upload is a bundle source that sources bundles from the rukpak upload service.

func (*Upload) Unpack

func (b *Upload) Unpack(ctx context.Context, bundle *rukpakv1alpha1.Bundle) (*Result, error)

Unpack unpacks an uploaded bundle by requesting the bundle contents from a web server hosted by rukpak's upload service.

Jump to

Keyboard shortcuts

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