engine

package
v0.1.1 Latest Latest
Warning

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

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

Documentation

Overview

Package engine manages the acquisition and compilation of Timoni's CUE modules.

Index

Constants

View Source
const LatestTag = "latest"

LatestTag is the OCI tag name used to denote the latest stable version of a module.

Variables

This section is empty.

Functions

func CopyModule added in v0.0.4

func CopyModule(src string, dst string) (err error)

CopyModule copies the given module to the destination directory, while excluding symlinks. The destination directory must not exit.

func CopyModuleFile added in v0.0.4

func CopyModuleFile(src, dst string) (err error)

CopyModuleFile copies a file from source to destination while preserving permissions.

func ExtractValueFromFile added in v0.0.4

func ExtractValueFromFile(ctx *cue.Context, filePath, expr string) (cue.Value, error)

ExtractValueFromFile compiles the given file and returns the CUE value that matches the given expression.

func MergeValue added in v0.0.4

func MergeValue(overlay, base cue.Value) (cue.Value, error)

MergeValue merges the given overlay on top of the base CUE value. New fields from the overlay are added to the base and existing fields are overridden with the overlay values.

Types

type Fetcher

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

Fetcher downloads a module and extracts it locally.

func NewFetcher

func NewFetcher(ctx context.Context, src, version, dst, creds string) *Fetcher

NewFetcher creates a Fetcher for the given module.

func (*Fetcher) Fetch

func (f *Fetcher) Fetch() (*apiv1.ModuleReference, error)

Fetch downloads a remote module locally into tmp.

func (*Fetcher) GetModuleRoot

func (f *Fetcher) GetModuleRoot() string

type ModuleBuilder added in v0.0.4

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

ModuleBuilder compiles CUE definitions to Kubernetes objects.

func NewModuleBuilder added in v0.0.4

func NewModuleBuilder(ctx *cue.Context, name, namespace, moduleRoot, pkgName string) *ModuleBuilder

NewModuleBuilder creates a ModuleBuilder for the given module and package.

func (*ModuleBuilder) Build added in v0.0.4

func (b *ModuleBuilder) Build() (cue.Value, error)

Build builds a CUE instances for the specified package and returns the CUE value.

func (*ModuleBuilder) GetAPIVersion added in v0.0.6

func (b *ModuleBuilder) GetAPIVersion(value cue.Value) (string, error)

GetAPIVersion returns the list of API version of the Timoni's CUE definition.

func (*ModuleBuilder) GetApplySets added in v0.0.5

func (b *ModuleBuilder) GetApplySets(value cue.Value) ([]ResourceSet, error)

GetApplySets returns the list of Kubernetes unstructured objects to be applied in steps.

func (*ModuleBuilder) GetDefaultValues added in v0.0.4

func (b *ModuleBuilder) GetDefaultValues() (string, error)

GetDefaultValues extracts the default values from the module.

func (*ModuleBuilder) GetModuleName added in v0.0.4

func (b *ModuleBuilder) GetModuleName() (string, error)

GetModuleName returns the module name as defined in 'cue.mod/module.cue'.

func (*ModuleBuilder) GetValues added in v0.0.4

func (b *ModuleBuilder) GetValues(value cue.Value) (string, error)

GetValues extracts the values from the build result.

func (*ModuleBuilder) MergeValuesFile added in v0.0.4

func (b *ModuleBuilder) MergeValuesFile(overlays []string) error

MergeValuesFile merges the given values overlays into the module's root values.cue.

func (*ModuleBuilder) WriteValuesFile added in v0.1.0

func (b *ModuleBuilder) WriteValuesFile(val cue.Value) error

WriteValuesFile overwrites the module's root values.cue.

type ResourceSet added in v0.0.5

type ResourceSet struct {

	// Name of the object list.
	Name string `json:"name"`

	// Objects holds the list of Kubernetes objects.
	// +optional
	Objects []*unstructured.Unstructured `json:"objects,omitempty"`
}

ResourceSet is a named list of Kubernetes resource objects.

func GetResources added in v0.0.5

func GetResources(value cue.Value) ([]ResourceSet, error)

GetResources converts the CUE value to a list of ResourceSets.

type ValuesBuilder added in v0.0.4

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

ValuesBuilder compiles and merges values files.

func NewValuesBuilder added in v0.0.4

func NewValuesBuilder(ctx *cue.Context) *ValuesBuilder

NewValuesBuilder creates a ValuesBuilder for the given context.

func (*ValuesBuilder) MergeValues added in v0.0.4

func (b *ValuesBuilder) MergeValues(overlays []string, base string) (cue.Value, error)

MergeValues merges the given overlays in order using the base as the starting point.

Jump to

Keyboard shortcuts

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