update

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// K8sCliExtensionKey is preserved from setters2
	K8sCliExtensionKey = "x-k8s-cli"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Change

type Change struct {
	OldValue string
	NewValue string
	Setter   string
}

Change contains the setter that resulted in a Change, the old and the new value after the Change.

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 ObjectChanges

type ObjectChanges map[ObjectIdentifier][]Change

ObjectChanges contains all the changes made to objects.

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 {
	FileChanges map[string]ObjectChanges
}

Result contains the file changes made during the update. It contains details about the exact changes made to the files and the objects in them. It has a nested structure file->objects->changes.

func UpdateWithSetters

func UpdateWithSetters(tracelog logr.Logger, inpath, outpath string, policies []reflectorv1.ImagePolicy) (Result, error)

UpdateWithSetters 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`. It also returns the result of the changes it made as Result.

func (*Result) AddChange

func (r *Result) AddChange(file string, objectID ObjectIdentifier, changes ...Change)

AddChange adds changes to Result for a given file, object and changes associated with it.

func (Result) Changes

func (r Result) Changes() []Change

Changes returns all the changes that were made in at least one update.

func (Result) Objects

func (r Result) Objects() ObjectChanges

Objects returns ObjectChanges, regardless of which file they appear in.

type ScreeningLocalReader

type ScreeningLocalReader struct {
	Token string
	Path  string

	Trace logr.Logger

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

ScreeningLocalReader 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)
	Trace         logr.Logger
}

func (*SetAllCallback) Filter

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

func (*SetAllCallback) TraceOrDiscard

func (s *SetAllCallback) TraceOrDiscard() logr.Logger

Jump to

Keyboard shortcuts

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