packagestructure

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// DefaultValidators that don't require any inputs.
	DefaultValidators = ValidatorList{
		&ObjectGVKValidator{},
		&ObjectLabelsValidator{},
		&ObjectPhaseAnnotationValidator{},
	}
)

Functions

func ObjectsFromBytes

func ObjectsFromBytes(ctx context.Context, path string, content []byte) (
	objects []unstructured.Unstructured, err error,
)

func TransformEachObject

func TransformEachObject(ctx context.Context, packageContent *PackageContent, transform TransformEachObjectFn) error

func ValidateEachObject

func ValidateEachObject(ctx context.Context, mm ManifestMap, validate ValidateEachObjectFn) error

Types

type CommonObjectLabelsTransformer

type CommonObjectLabelsTransformer struct {
	Package metav1.Object
}

func (CommonObjectLabelsTransformer) Transform

func (t CommonObjectLabelsTransformer) Transform(ctx context.Context, packageContent *PackageContent) error

type Loader

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

func NewLoader

func NewLoader(scheme *runtime.Scheme, opts ...LoaderOption) *Loader

func (*Loader) LoadFromFS

func (l *Loader) LoadFromFS(ctx context.Context, fs fs.FS, opts ...LoaderOption) (*PackageContent, error)

func (*Loader) LoadFromFileMap

func (l *Loader) LoadFromFileMap(ctx context.Context, fileMap map[string][]byte, opts ...LoaderOption) (*PackageContent, error)

func (*Loader) LoadFromImage

func (l *Loader) LoadFromImage(ctx context.Context, image v1.Image, opts ...LoaderOption) (*PackageContent, error)

func (*Loader) LoadFromPath

func (l *Loader) LoadFromPath(ctx context.Context, path string, opts ...LoaderOption) (*PackageContent, error)

type LoaderOption

type LoaderOption func(opt *LoaderOptions)

func WithByteTransformers

func WithByteTransformers(transformer ...packagebytes.Transformer) LoaderOption

func WithByteValidators

func WithByteValidators(validators ...packagebytes.Validator) LoaderOption

func WithManifestTransformers

func WithManifestTransformers(transformer ...Transformer) LoaderOption

func WithManifestValidators

func WithManifestValidators(validators ...Validator) LoaderOption

type LoaderOptions

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

type ManifestMap

type ManifestMap map[string][]unstructured.Unstructured

Maps filenames to kubernetes manifests.

func (ManifestMap) ToFileMap

func (mm ManifestMap) ToFileMap() (packagebytes.FileMap, error)

Converts the PackageImage back into a FileMap.

type ManifestMapLoader

type ManifestMapLoader struct{}

func NewManifestMapLoader

func NewManifestMapLoader() *ManifestMapLoader

func (*ManifestMapLoader) FromFileMap

func (l *ManifestMapLoader) FromFileMap(ctx context.Context, fileMap packagebytes.FileMap) (ManifestMap, error)

type ObjectGVKValidator

type ObjectGVKValidator struct{}

func (*ObjectGVKValidator) Validate

func (v *ObjectGVKValidator) Validate(ctx context.Context, packageContent *PackageContent) error

type ObjectLabelsValidator

type ObjectLabelsValidator struct{}

func (*ObjectLabelsValidator) Validate

func (v *ObjectLabelsValidator) Validate(ctx context.Context, packageContent *PackageContent) error

type ObjectPhaseAnnotationValidator

type ObjectPhaseAnnotationValidator struct{}

func (*ObjectPhaseAnnotationValidator) Validate

func (v *ObjectPhaseAnnotationValidator) Validate(ctx context.Context, packageContent *PackageContent) error

type PackageContent

type PackageContent struct {
	PackageManifest *manifestsv1alpha1.PackageManifest
	Manifests       ManifestMap
}

PackageContent represents the parsed content of an PKO package.

func (*PackageContent) ToFileMap

func (pc *PackageContent) ToFileMap() (packagebytes.FileMap, error)

Converts the PackageContent back into a FileMap.

func (*PackageContent) ToTemplateSpec

func (pc *PackageContent) ToTemplateSpec() (templateSpec corev1alpha1.ObjectSetTemplateSpec)

type PackageManifestLoader

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

PackageManifestLoader implements parsing of PackageManifest object from bytes or files. This loader can handle GVK mismatches gracefully for forward and backwards compatibility.

func NewPackageManifestLoader

func NewPackageManifestLoader(scheme *runtime.Scheme) *PackageManifestLoader

func (*PackageManifestLoader) FromFileMap

Load PackageManifest from the given FileMap.

type PackageScopeValidator

type PackageScopeValidator manifestsv1alpha1.PackageManifestScope

func (PackageScopeValidator) Validate

func (scope PackageScopeValidator) Validate(ctx context.Context, packageContent *PackageContent) error

type TransformEachObjectFn

type TransformEachObjectFn func(
	ctx context.Context, path string, index int,
	packageManifest *manifestsv1alpha1.PackageManifest,
	obj *unstructured.Unstructured,
) error

type Transformer

type Transformer interface {
	Transform(ctx context.Context, packageContent *PackageContent) error
}

type TransformerList

type TransformerList []Transformer

Runs a list of Transformer over the given content.

func (TransformerList) Transform

func (l TransformerList) Transform(ctx context.Context, packageContent *PackageContent) error

type ValidateEachObjectFn

type ValidateEachObjectFn func(
	ctx context.Context, path string, index int, obj unstructured.Unstructured,
) error

type Validator

type Validator interface {
	Validate(ctx context.Context, packageContent *PackageContent) error
}

type ValidatorList

type ValidatorList []Validator

Runs a list of Validator over the given content.

func (ValidatorList) Validate

func (l ValidatorList) Validate(ctx context.Context, packageContent *PackageContent) error

Jump to

Keyboard shortcuts

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