v1beta2

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2023 License: Apache-2.0 Imports: 7 Imported by: 23

Documentation

Overview

Package v1beta2 contains API types for the image API group, version v1beta2. These types are concerned with reflecting metadata from OCI image repositories into a cluster, so they can be consulted for e.g., automation.

+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 (
	// ImageURLInvalidReason represents the fact that a given repository has an invalid image URL.
	ImageURLInvalidReason string = "ImageURLInvalid"

	// DependencyNotReadyReason represents the fact that
	// one of the dependencies is not ready.
	DependencyNotReadyReason string = "DependencyNotReady"

	// AuthenticationFailedReason signals that a Secret does not have the
	// required fields, or the provided credentials do not match.
	AuthenticationFailedReason string = "AuthenticationFailed"

	// ReadOperationFailedReason signals a failure caused by a read operation.
	ReadOperationFailedReason string = "ReadOperationFailed"
)
View Source
const ImagePolicyFinalizer = "finalizers.fluxcd.io"
View Source
const ImagePolicyKind = "ImagePolicy"
View Source
const ImageRepositoryFinalizer = "finalizers.fluxcd.io"
View Source
const ImageRepositoryKind = "ImageRepository"

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 AlphabeticalPolicy

type AlphabeticalPolicy struct {
	// Order specifies the sorting order of the tags. Given the letters of the
	// alphabet as tags, ascending order would select Z, and descending order
	// would select A.
	// +kubebuilder:default:="asc"
	// +kubebuilder:validation:Enum=asc;desc
	// +optional
	Order string `json:"order,omitempty"`
}

AlphabeticalPolicy specifies a alphabetical ordering policy.

func (*AlphabeticalPolicy) DeepCopy

func (in *AlphabeticalPolicy) DeepCopy() *AlphabeticalPolicy

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

func (*AlphabeticalPolicy) DeepCopyInto

func (in *AlphabeticalPolicy) DeepCopyInto(out *AlphabeticalPolicy)

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

type ImagePolicy

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

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

ImagePolicy is the Schema for the imagepolicies API

func (*ImagePolicy) DeepCopy

func (in *ImagePolicy) DeepCopy() *ImagePolicy

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

func (*ImagePolicy) DeepCopyInto

func (in *ImagePolicy) DeepCopyInto(out *ImagePolicy)

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

func (*ImagePolicy) DeepCopyObject

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

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

func (ImagePolicy) GetConditions

func (p ImagePolicy) GetConditions() []metav1.Condition

GetConditions returns the status conditions of the object.

func (*ImagePolicy) SetConditions

func (p *ImagePolicy) SetConditions(conditions []metav1.Condition)

SetConditions sets the status conditions on the object.

type ImagePolicyChoice

type ImagePolicyChoice struct {
	// SemVer gives a semantic version range to check against the tags
	// available.
	// +optional
	SemVer *SemVerPolicy `json:"semver,omitempty"`
	// Alphabetical set of rules to use for alphabetical ordering of the tags.
	// +optional
	Alphabetical *AlphabeticalPolicy `json:"alphabetical,omitempty"`
	// Numerical set of rules to use for numerical ordering of the tags.
	// +optional
	Numerical *NumericalPolicy `json:"numerical,omitempty"`
}

ImagePolicyChoice is a union of all the types of policy that can be supplied.

func (*ImagePolicyChoice) DeepCopy

func (in *ImagePolicyChoice) DeepCopy() *ImagePolicyChoice

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

func (*ImagePolicyChoice) DeepCopyInto

func (in *ImagePolicyChoice) DeepCopyInto(out *ImagePolicyChoice)

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

type ImagePolicyList

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

ImagePolicyList contains a list of ImagePolicy

func (*ImagePolicyList) DeepCopy

func (in *ImagePolicyList) DeepCopy() *ImagePolicyList

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

func (*ImagePolicyList) DeepCopyInto

func (in *ImagePolicyList) DeepCopyInto(out *ImagePolicyList)

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

func (*ImagePolicyList) DeepCopyObject

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

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

type ImagePolicySpec

type ImagePolicySpec struct {
	// ImageRepositoryRef points at the object specifying the image
	// being scanned
	// +required
	ImageRepositoryRef meta.NamespacedObjectReference `json:"imageRepositoryRef"`
	// Policy gives the particulars of the policy to be followed in
	// selecting the most recent image
	// +required
	Policy ImagePolicyChoice `json:"policy"`
	// FilterTags enables filtering for only a subset of tags based on a set of
	// rules. If no rules are provided, all the tags from the repository will be
	// ordered and compared.
	// +optional
	FilterTags *TagFilter `json:"filterTags,omitempty"`
}

ImagePolicySpec defines the parameters for calculating the ImagePolicy.

func (*ImagePolicySpec) DeepCopy

func (in *ImagePolicySpec) DeepCopy() *ImagePolicySpec

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

func (*ImagePolicySpec) DeepCopyInto

func (in *ImagePolicySpec) DeepCopyInto(out *ImagePolicySpec)

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

type ImagePolicyStatus

type ImagePolicyStatus struct {
	// LatestImage gives the first in the list of images scanned by
	// the image repository, when filtered and ordered according to
	// the policy.
	LatestImage string `json:"latestImage,omitempty"`
	// ObservedPreviousImage is the observed previous LatestImage. It is used
	// to keep track of the previous and current images.
	// +optional
	ObservedPreviousImage string `json:"observedPreviousImage,omitempty"`
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ImagePolicyStatus defines the observed state of ImagePolicy

func (*ImagePolicyStatus) DeepCopy

func (in *ImagePolicyStatus) DeepCopy() *ImagePolicyStatus

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

func (*ImagePolicyStatus) DeepCopyInto

func (in *ImagePolicyStatus) DeepCopyInto(out *ImagePolicyStatus)

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

type ImageRepository

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

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

ImageRepository is the Schema for the imagerepositories API

func (*ImageRepository) DeepCopy

func (in *ImageRepository) DeepCopy() *ImageRepository

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

func (*ImageRepository) DeepCopyInto

func (in *ImageRepository) DeepCopyInto(out *ImageRepository)

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

func (*ImageRepository) DeepCopyObject

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

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

func (ImageRepository) GetConditions

func (in ImageRepository) GetConditions() []metav1.Condition

GetConditions returns the status conditions of the object.

func (ImageRepository) GetExclusionList

func (in ImageRepository) GetExclusionList() []string

GetExclusionList returns the exclusion list with default.

func (ImageRepository) GetProvider

func (in ImageRepository) GetProvider() string

GetProvider returns the provider with default.

func (ImageRepository) GetRequeueAfter

func (in ImageRepository) GetRequeueAfter() time.Duration

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

func (ImageRepository) GetTimeout

func (in ImageRepository) GetTimeout() time.Duration

GetTimeout returns the timeout with default.

func (*ImageRepository) SetConditions

func (in *ImageRepository) SetConditions(conditions []metav1.Condition)

SetConditions sets the status conditions on the object.

type ImageRepositoryList

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

ImageRepositoryList contains a list of ImageRepository

func (*ImageRepositoryList) DeepCopy

func (in *ImageRepositoryList) DeepCopy() *ImageRepositoryList

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

func (*ImageRepositoryList) DeepCopyInto

func (in *ImageRepositoryList) DeepCopyInto(out *ImageRepositoryList)

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

func (*ImageRepositoryList) DeepCopyObject

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

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

type ImageRepositorySpec

type ImageRepositorySpec struct {
	// Image is the name of the image repository
	// +required
	Image string `json:"image,omitempty"`
	// Interval is the length of time to wait between
	// scans of the image repository.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
	// +required
	Interval metav1.Duration `json:"interval,omitempty"`

	// Timeout for image scanning.
	// Defaults to 'Interval' duration.
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m))+$"
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// SecretRef can be given the name of a secret containing
	// credentials to use for the image registry. The secret should be
	// created with `kubectl create secret docker-registry`, or the
	// equivalent.
	// +optional
	SecretRef *meta.LocalObjectReference `json:"secretRef,omitempty"`

	// ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate
	// the image pull if the service account has attached pull secrets.
	// +kubebuilder:validation:MaxLength=253
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// CertSecretRef can be given the name of a secret containing
	// either or both of
	//
	//  - a PEM-encoded client certificate (`certFile`) and private
	//  key (`keyFile`);
	//  - a PEM-encoded CA certificate (`caFile`)
	//
	//  and whichever are supplied, will be used for connecting to the
	//  registry. The client cert and key are useful if you are
	//  authenticating with a certificate; the CA cert is useful if
	//  you are using a self-signed server certificate.
	// +optional
	CertSecretRef *meta.LocalObjectReference `json:"certSecretRef,omitempty"`

	// This flag tells the controller to suspend subsequent image scans.
	// It does not apply to already started scans. Defaults to false.
	// +optional
	Suspend bool `json:"suspend,omitempty"`

	// AccessFrom defines an ACL for allowing cross-namespace references
	// to the ImageRepository object based on the caller's namespace labels.
	// +optional
	AccessFrom *acl.AccessFrom `json:"accessFrom,omitempty"`

	// ExclusionList is a list of regex strings used to exclude certain tags
	// from being stored in the database.
	// +kubebuilder:default:={"^.*\\.sig$"}
	// +kubebuilder:validation:MaxItems:=25
	// +optional
	ExclusionList []string `json:"exclusionList,omitempty"`

	// The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.
	// When not specified, defaults to 'generic'.
	// +kubebuilder:validation:Enum=generic;aws;azure;gcp
	// +kubebuilder:default:=generic
	// +optional
	Provider string `json:"provider,omitempty"`
}

ImageRepositorySpec defines the parameters for scanning an image repository, e.g., `fluxcd/flux`.

func (*ImageRepositorySpec) DeepCopy

func (in *ImageRepositorySpec) DeepCopy() *ImageRepositorySpec

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

func (*ImageRepositorySpec) DeepCopyInto

func (in *ImageRepositorySpec) DeepCopyInto(out *ImageRepositorySpec)

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

type ImageRepositoryStatus

type ImageRepositoryStatus struct {
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ObservedGeneration is the last reconciled generation.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// CanonicalName is the name of the image repository with all the
	// implied bits made explicit; e.g., `docker.io/library/alpine`
	// rather than `alpine`.
	// +optional
	CanonicalImageName string `json:"canonicalImageName,omitempty"`

	// LastScanResult contains the number of fetched tags.
	// +optional
	LastScanResult *ScanResult `json:"lastScanResult,omitempty"`

	// ObservedExclusionList is a list of observed exclusion list. It reflects
	// the exclusion rules used for the observed scan result in
	// spec.lastScanResult.
	ObservedExclusionList []string `json:"observedExclusionList,omitempty"`

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

ImageRepositoryStatus defines the observed state of ImageRepository

func (*ImageRepositoryStatus) DeepCopy

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

func (*ImageRepositoryStatus) DeepCopyInto

func (in *ImageRepositoryStatus) DeepCopyInto(out *ImageRepositoryStatus)

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

type NumericalPolicy

type NumericalPolicy struct {
	// Order specifies the sorting order of the tags. Given the integer values
	// from 0 to 9 as tags, ascending order would select 9, and descending order
	// would select 0.
	// +kubebuilder:default:="asc"
	// +kubebuilder:validation:Enum=asc;desc
	// +optional
	Order string `json:"order,omitempty"`
}

NumericalPolicy specifies a numerical ordering policy.

func (*NumericalPolicy) DeepCopy

func (in *NumericalPolicy) DeepCopy() *NumericalPolicy

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

func (*NumericalPolicy) DeepCopyInto

func (in *NumericalPolicy) DeepCopyInto(out *NumericalPolicy)

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

type ScanResult

type ScanResult struct {
	TagCount   int         `json:"tagCount"`
	ScanTime   metav1.Time `json:"scanTime,omitempty"`
	LatestTags []string    `json:"latestTags,omitempty"`
}

func (*ScanResult) DeepCopy

func (in *ScanResult) DeepCopy() *ScanResult

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

func (*ScanResult) DeepCopyInto

func (in *ScanResult) DeepCopyInto(out *ScanResult)

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

type SemVerPolicy

type SemVerPolicy struct {
	// Range gives a semver range for the image tag; the highest
	// version within the range that's a tag yields the latest image.
	// +required
	Range string `json:"range"`
}

SemVerPolicy specifies a semantic version policy.

func (*SemVerPolicy) DeepCopy

func (in *SemVerPolicy) DeepCopy() *SemVerPolicy

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

func (*SemVerPolicy) DeepCopyInto

func (in *SemVerPolicy) DeepCopyInto(out *SemVerPolicy)

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

type TagFilter

type TagFilter struct {
	// Pattern specifies a regular expression pattern used to filter for image
	// tags.
	// +optional
	Pattern string `json:"pattern"`
	// Extract allows a capture group to be extracted from the specified regular
	// expression pattern, useful before tag evaluation.
	// +optional
	Extract string `json:"extract"`
}

TagFilter enables filtering tags based on a set of defined rules

func (*TagFilter) DeepCopy

func (in *TagFilter) DeepCopy() *TagFilter

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

func (*TagFilter) DeepCopyInto

func (in *TagFilter) DeepCopyInto(out *TagFilter)

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

Jump to

Keyboard shortcuts

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