update

package
v0.11.0-beta.4 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

README

Credit

This package is copied from https://github.com/fluxcd/image-automation-controller so giving credit to them

Documentation

Index

Constants

View Source
const (
	// This is preserved from setters2
	K8sCliExtensionKey = "x-k8s-cli"
)
View Source
const (
	// SetterShortHand is a shorthand that can be used to mark
	// setters; instead of
	// # { "$ref": "#/definitions/
	SetterShortHand = "$imagescan"
)

Variables

This section is empty.

Functions

func WithSetters

func WithSetters(inpath, outpath string, scans []*v1alpha1.ImageScan) error

WithSetters takes all YAML files from `inpath`, updates any that contain an "in scope" image policy marker, and writes files it updated (and only those files) back to `outpath`.

Types

type FileResult

type FileResult struct {
	Objects map[ObjectIdentifier][]ImageRef
}

FileResult gives the updates in a particular file.

type ImageRef

type ImageRef interface {
	// String returns a string representation of the image ref as it
	// is used in the update; e.g., "helloworld:v1.0.1"
	String() string
	// Identifier returns the tag or digest; e.g., "v1.0.1"
	Identifier() string
	// Repository returns the repository component of the ImageRef,
	// with an implied defaults, e.g., "library/helloworld"
	Repository() string
	// Registry returns the registry component of the ImageRef, e.g.,
	// "index.docker.io"
	Registry() string
	// Name gives the fully-qualified reference name, e.g.,
	// "index.docker.io/library/helloworld:v1.0.1"
	Name() string
	// Policy gives the namespaced name of the image policy that led
	// to the update.
	Policy() types.NamespacedName
}

ImageRef represents the image reference used to replace a field value in an update.

type ObjectIdentifier

type ObjectIdentifier struct {
	yaml.ResourceIdentifier
}

ObjectIdentifier holds the identifying data for a particular object. This won't always have a name (e.g., a kustomization.yaml).

type Result

type Result struct {
	Files map[string]FileResult
}

Result reports the outcome of an automated update. It has a nested structure file->objects->images. Different projections (e.g., all the images, regardless of object) are available via methods.

func (Result) Images

func (r Result) Images() []ImageRef

Images returns all the images that were involved in at least one update.

func (Result) Objects

func (r Result) Objects() map[ObjectIdentifier][]ImageRef

Objects returns a map of all the objects against the images updated within, regardless of which file they appear in.

type ScreeningLocalReader

type ScreeningLocalReader struct {
	Token string
	Path  string

	// This records the relative path of each file that passed
	// screening (i.e., contained the token), but couldn't be parsed.
	ProblemFiles []string
}

ScreeningReader is a kio.Reader that includes only files that are pertinent to automation. In practice this means looking for a particular token in each file, and ignoring those files without the token. This avoids most problematic cases -- e.g., templates in a Helm chart, which won't parse as YAML -- and cheaply filters for only those files that need processing.

func (*ScreeningLocalReader) Read

func (r *ScreeningLocalReader) Read() ([]*yaml.RNode, error)

Read scans the .Path recursively for files that contain .Token, and parses any that do. It applies the filename annotation used by [`kio.LocalPackageWriter`](https://godoc.org/sigs.k8s.io/kustomize/kyaml/kio#LocalPackageWriter) so that the same will write files back to their original location. The implementation follows that of [LocalPackageReader.Read](https://godoc.org/sigs.k8s.io/kustomize/kyaml/kio#LocalPackageReader.Read), adapting lightly (mainly to leave features out).

type SetAllCallback

type SetAllCallback struct {
	SettersSchema *spec.Schema
	Callback      func(setter, oldValue, newValue string)
}

func (*SetAllCallback) Filter

func (s *SetAllCallback) Filter(object *yaml.RNode) (*yaml.RNode, error)

Jump to

Keyboard shortcuts

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