v1beta2

package
v0.39.0 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2024 License: Apache-2.0 Imports: 8 Imported by: 2

Documentation

Overview

Package v1beta2 contains API types for the image API group, version v1beta2. The types here are concerned with automated updates to git, based on metadata from OCI image registries gathered by the image-reflector-controller.

+kubebuilder:object:generate=true +groupName=image.toolkit.fluxcd.io

Package v1beta2 contains API Schema definitions for the image v1beta2 API group +kubebuilder:object:generate=true +groupName=image.toolkit.fluxcd.io

Index

Constants

View Source
const (
	// InvalidUpdateStrategyReason represents an invalid image update strategy
	// configuration.
	InvalidUpdateStrategyReason string = "InvalidUpdateStrategy"

	// InvalidSourceConfigReason represents an invalid source configuration.
	InvalidSourceConfigReason string = "InvalidSourceConfiguration"

	// SourceManagerFailedReason represents a failure in the SourceManager which
	// manages the source.
	SourceManagerFailedReason string = "SourceManagerFailed"

	// GitOperationFailedReason represents a failure in Git source operation.
	GitOperationFailedReason string = "GitOperationFailed"

	// UpdateFailedReason represents a failure during source update.
	UpdateFailedReason string = "UpdateFailed"

	// InvalidPolicySelectorReason represents an invalid policy selector.
	InvalidPolicySelectorReason string = "InvalidPolicySelector"
)
View Source
const (
	ImageUpdateAutomationKind      = "ImageUpdateAutomation"
	ImageUpdateAutomationFinalizer = "finalizers.fluxcd.io"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "image.toolkit.fluxcd.io", Version: "v1beta2"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type CommitSpec

type CommitSpec struct {
	// Author gives the email and optionally the name to use as the
	// author of commits.
	// +required
	Author CommitUser `json:"author"`
	// SigningKey provides the option to sign commits with a GPG key
	// +optional
	SigningKey *SigningKey `json:"signingKey,omitempty"`
	// MessageTemplate provides a template for the commit message,
	// into which will be interpolated the details of the change made.
	// +optional
	MessageTemplate string `json:"messageTemplate,omitempty"`
}

CommitSpec specifies how to commit changes to the git repository

func (*CommitSpec) DeepCopy

func (in *CommitSpec) DeepCopy() *CommitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommitSpec.

func (*CommitSpec) DeepCopyInto

func (in *CommitSpec) DeepCopyInto(out *CommitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CommitUser

type CommitUser struct {
	// Name gives the name to provide when making a commit.
	// +optional
	Name string `json:"name,omitempty"`
	// Email gives the email to provide when making a commit.
	// +required
	Email string `json:"email"`
}

func (*CommitUser) DeepCopy

func (in *CommitUser) DeepCopy() *CommitUser

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommitUser.

func (*CommitUser) DeepCopyInto

func (in *CommitUser) DeepCopyInto(out *CommitUser)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CrossNamespaceSourceReference

type CrossNamespaceSourceReference struct {
	// API version of the referent.
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`

	// Kind of the referent.
	// +kubebuilder:validation:Enum=GitRepository
	// +kubebuilder:default=GitRepository
	// +required
	Kind string `json:"kind"`

	// Name of the referent.
	// +required
	Name string `json:"name"`

	// Namespace of the referent, defaults to the namespace of the Kubernetes resource object that contains the reference.
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

CrossNamespaceSourceReference contains enough information to let you locate the typed Kubernetes resource object at cluster level.

func (*CrossNamespaceSourceReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossNamespaceSourceReference.

func (*CrossNamespaceSourceReference) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CrossNamespaceSourceReference) String

type GitCheckoutSpec

type GitCheckoutSpec struct {
	// Reference gives a branch, tag or commit to clone from the Git
	// repository.
	// +required
	Reference sourcev1.GitRepositoryRef `json:"ref"`
}

func (*GitCheckoutSpec) DeepCopy

func (in *GitCheckoutSpec) DeepCopy() *GitCheckoutSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitCheckoutSpec.

func (*GitCheckoutSpec) DeepCopyInto

func (in *GitCheckoutSpec) DeepCopyInto(out *GitCheckoutSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GitSpec

type GitSpec struct {
	// Checkout gives the parameters for cloning the git repository,
	// ready to make changes. If not present, the `spec.ref` field from the
	// referenced `GitRepository` or its default will be used.
	// +optional
	Checkout *GitCheckoutSpec `json:"checkout,omitempty"`

	// Commit specifies how to commit to the git repository.
	// +required
	Commit CommitSpec `json:"commit"`

	// Push specifies how and where to push commits made by the
	// automation. If missing, commits are pushed (back) to
	// `.spec.checkout.branch` or its default.
	// +optional
	Push *PushSpec `json:"push,omitempty"`
}

func (*GitSpec) DeepCopy

func (in *GitSpec) DeepCopy() *GitSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitSpec.

func (*GitSpec) DeepCopyInto

func (in *GitSpec) DeepCopyInto(out *GitSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (GitSpec) HasRefspec

func (gs GitSpec) HasRefspec() bool

HasRefspec returns if the GitSpec has a Refspec.

type ImageRef

type ImageRef struct {
	// Name is the bare image's name.
	// +required
	Name string `json:"name"`
	// Tag is the image's tag.
	// +required
	Tag string `json:"tag"`
}

ImageRef represents an image reference.

func (*ImageRef) DeepCopy

func (in *ImageRef) DeepCopy() *ImageRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageRef.

func (*ImageRef) DeepCopyInto

func (in *ImageRef) DeepCopyInto(out *ImageRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ImageRef) String

func (r ImageRef) String() string

String combines the components of ImageRef to construct a string representation of the image reference.

type ImageUpdateAutomation

type ImageUpdateAutomation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ImageUpdateAutomationSpec `json:"spec,omitempty"`
	// +kubebuilder:default={"observedGeneration":-1}
	Status ImageUpdateAutomationStatus `json:"status,omitempty"`
}

ImageUpdateAutomation is the Schema for the imageupdateautomations API

func (*ImageUpdateAutomation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUpdateAutomation.

func (*ImageUpdateAutomation) DeepCopyInto

func (in *ImageUpdateAutomation) DeepCopyInto(out *ImageUpdateAutomation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImageUpdateAutomation) DeepCopyObject

func (in *ImageUpdateAutomation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (ImageUpdateAutomation) GetConditions

func (auto ImageUpdateAutomation) GetConditions() []metav1.Condition

GetConditions returns the status conditions of the object.

func (ImageUpdateAutomation) GetRequeueAfter

func (auto ImageUpdateAutomation) GetRequeueAfter() time.Duration

GetRequeueAfter returns the duration after which the ImageUpdateAutomation must be reconciled again.

func (*ImageUpdateAutomation) SetConditions

func (auto *ImageUpdateAutomation) SetConditions(conditions []metav1.Condition)

SetConditions sets the status conditions on the object.

type ImageUpdateAutomationList

type ImageUpdateAutomationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ImageUpdateAutomation `json:"items"`
}

ImageUpdateAutomationList contains a list of ImageUpdateAutomation

func (*ImageUpdateAutomationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUpdateAutomationList.

func (*ImageUpdateAutomationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImageUpdateAutomationList) DeepCopyObject

func (in *ImageUpdateAutomationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ImageUpdateAutomationSpec

type ImageUpdateAutomationSpec struct {
	// SourceRef refers to the resource giving access details
	// to a git repository.
	// +required
	SourceRef CrossNamespaceSourceReference `json:"sourceRef"`

	// GitSpec contains all the git-specific definitions. This is
	// technically optional, but in practice mandatory until there are
	// other kinds of source allowed.
	// +optional
	GitSpec *GitSpec `json:"git,omitempty"`

	// Interval gives an lower bound for how often the automation
	// run should be attempted.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +required
	Interval metav1.Duration `json:"interval"`

	// PolicySelector allows to filter applied policies based on labels.
	// By default includes all policies in namespace.
	// +optional
	PolicySelector *metav1.LabelSelector `json:"policySelector,omitempty"`

	// Update gives the specification for how to update the files in
	// the repository. This can be left empty, to use the default
	// value.
	// +kubebuilder:default={"strategy":"Setters"}
	Update *UpdateStrategy `json:"update,omitempty"`

	// Suspend tells the controller to not run this automation, until
	// it is unset (or set to false). Defaults to false.
	// +optional
	Suspend bool `json:"suspend,omitempty"`
}

ImageUpdateAutomationSpec defines the desired state of ImageUpdateAutomation

func (*ImageUpdateAutomationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUpdateAutomationSpec.

func (*ImageUpdateAutomationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ImageUpdateAutomationStatus

type ImageUpdateAutomationStatus struct {
	// LastAutomationRunTime records the last time the controller ran
	// this automation through to completion (even if no updates were
	// made).
	// +optional
	LastAutomationRunTime *metav1.Time `json:"lastAutomationRunTime,omitempty"`
	// LastPushCommit records the SHA1 of the last commit made by the
	// controller, for this automation object
	// +optional
	LastPushCommit string `json:"lastPushCommit,omitempty"`
	// LastPushTime records the time of the last pushed change.
	// +optional
	LastPushTime *metav1.Time `json:"lastPushTime,omitempty"`
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// ObservedPolicies is the list of observed ImagePolicies that were
	// considered by the ImageUpdateAutomation update process.
	// +optional
	ObservedPolicies ObservedPolicies `json:"observedPolicies,omitempty"`
	// ObservedPolicies []ObservedPolicy `json:"observedPolicies,omitempty"`
	// ObservedSourceRevision is the last observed source revision. This can be
	// used to determine if the source has been updated since last observation.
	// +optional
	ObservedSourceRevision string `json:"observedSourceRevision,omitempty"`

	meta.ReconcileRequestStatus `json:",inline"`
}

ImageUpdateAutomationStatus defines the observed state of ImageUpdateAutomation

func (*ImageUpdateAutomationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageUpdateAutomationStatus.

func (*ImageUpdateAutomationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObservedPolicies

type ObservedPolicies map[string]ImageRef

ObservedPolicies is a map of policy name and ImageRef of their latest ImageRef.

func (ObservedPolicies) DeepCopy

func (in ObservedPolicies) DeepCopy() ObservedPolicies

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservedPolicies.

func (ObservedPolicies) DeepCopyInto

func (in ObservedPolicies) DeepCopyInto(out *ObservedPolicies)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PushSpec

type PushSpec struct {
	// Branch specifies that commits should be pushed to the branch
	// named. The branch is created using `.spec.checkout.branch` as the
	// starting point, if it doesn't already exist.
	// +optional
	Branch string `json:"branch,omitempty"`

	// Refspec specifies the Git Refspec to use for a push operation.
	// If both Branch and Refspec are provided, then the commit is pushed
	// to the branch and also using the specified refspec.
	// For more details about Git Refspecs, see:
	// https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
	// +optional
	Refspec string `json:"refspec,omitempty"`

	// Options specifies the push options that are sent to the Git
	// server when performing a push operation. For details, see:
	// https://git-scm.com/docs/git-push#Documentation/git-push.txt---push-optionltoptiongt
	// +optional
	Options map[string]string `json:"options,omitempty"`
}

PushSpec specifies how and where to push commits.

func (*PushSpec) DeepCopy

func (in *PushSpec) DeepCopy() *PushSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PushSpec.

func (*PushSpec) DeepCopyInto

func (in *PushSpec) DeepCopyInto(out *PushSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SigningKey

type SigningKey struct {
	// SecretRef holds the name to a secret that contains a 'git.asc' key
	// corresponding to the ASCII Armored file containing the GPG signing
	// keypair as the value. It must be in the same namespace as the
	// ImageUpdateAutomation.
	// +required
	SecretRef meta.LocalObjectReference `json:"secretRef,omitempty"`
}

SigningKey references a Kubernetes secret that contains a GPG keypair

func (*SigningKey) DeepCopy

func (in *SigningKey) DeepCopy() *SigningKey

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SigningKey.

func (*SigningKey) DeepCopyInto

func (in *SigningKey) DeepCopyInto(out *SigningKey)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpdateStrategy

type UpdateStrategy struct {
	// Strategy names the strategy to be used.
	// +required
	// +kubebuilder:default=Setters
	Strategy UpdateStrategyName `json:"strategy"`

	// Path to the directory containing the manifests to be updated.
	// Defaults to 'None', which translates to the root path
	// of the GitRepositoryRef.
	// +optional
	Path string `json:"path,omitempty"`
}

UpdateStrategy is a union of the various strategies for updating the Git repository. Parameters for each strategy (if any) can be inlined here.

func (*UpdateStrategy) DeepCopy

func (in *UpdateStrategy) DeepCopy() *UpdateStrategy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy.

func (*UpdateStrategy) DeepCopyInto

func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpdateStrategyName

type UpdateStrategyName string

UpdateStrategyName is the type for names that go in .update.strategy. NB the value in the const immediately below. +kubebuilder:validation:Enum=Setters

const (
	// UpdateStrategySetters is the name of the update strategy that
	// uses kyaml setters. NB the value in the enum annotation for the
	// type, above.
	UpdateStrategySetters UpdateStrategyName = "Setters"
)

Jump to

Keyboard shortcuts

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