v1alpha1

package
v0.18.2 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the promoter v1alpha1 API group +kubebuilder:object:generate=true +groupName=promoter.argoproj.io

Index

Constants

View Source
const ChangeTransferPolicyLabel = "promoter.argoproj.io/change-transfer-policy"

ChangeTransferPolicyLabel the change transfer policy which the proposed commit is associated with.

View Source
const ClusterScmProviderFinalizer = "clusterscmprovider.promoter.argoproj.io/finalizer"

ClusterScmProviderFinalizer prevents deletion of ClusterScmProvider while GitRepositories reference it

View Source
const ClusterScmProviderSecretFinalizer = "clusterscmprovider.promoter.argoproj.io/secret-finalizer"

ClusterScmProviderSecretFinalizer prevents deletion of Secret while ClusterScmProvider references it

View Source
const CommitStatusLabel = "promoter.argoproj.io/commit-status"

CommitStatusLabel is the label used to identify commit statuses, this is used to look up commit statuses configured in the PromotionStrategy CR

View Source
const CommitStatusPreviousEnvironmentStatusesAnnotation = "promoter.argoproj.io/previous-environment-statuses"

CommitStatusPreviousEnvironmentStatusesAnnotation is the label used to identify commit statuses that make up the aggregated active commit status

View Source
const EnvironmentLabel = "promoter.argoproj.io/environment"

EnvironmentLabel the environment branch for the proposed commit

View Source
const GitRepositoryFinalizer = "gitrepository.promoter.argoproj.io/finalizer"

GitRepositoryFinalizer prevents deletion of GitRepository while PullRequests reference it

View Source
const PreviousEnvProposedCommitPrefixNameLabel = "promoter-previous-env-"

PreviousEnvProposedCommitPrefixNameLabel is the prefix name for copied proposed commits

View Source
const PreviousEnvironmentCommitStatusKey = "promoter-previous-environment"

PreviousEnvironmentCommitStatusKey the commit status key name used to indicate the previous environment health

View Source
const PromotionStrategyLabel = "promoter.argoproj.io/promotion-strategy"

PromotionStrategyLabel the promotion strategy which the proposed commit is associated with

View Source
const PullRequestFinalizer = "pullrequest.promoter.argoproj.io/finalizer"

PullRequestFinalizer prevents deletion of PullRequest until the PR is closed in the SCM

View Source
const ReconcileAtAnnotation = "promoter.argoproj.io/reconcile-at"

ReconcileAtAnnotation is the annotation used to indicate when the webhook triggered a reconcile

View Source
const ScmProviderFinalizer = "scmprovider.promoter.argoproj.io/finalizer"

ScmProviderFinalizer prevents deletion of ScmProvider while GitRepositories reference it

View Source
const ScmProviderSecretFinalizer = "scmprovider.promoter.argoproj.io/secret-finalizer"

ScmProviderSecretFinalizer prevents deletion of Secret while ScmProvider references it

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "promoter.argoproj.io", Version: "v1alpha1"}

	// 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
)
View Source
var ClusterScmProviderKind = reflect.TypeOf(ClusterScmProvider{}).Name()

ClusterScmProviderKind is the kind of the ClusterScmProvider resource.

View Source
var ScmProviderKind = reflect.TypeOf(ScmProvider{}).Name()

ScmProviderKind is the kind of the ScmProvider resource.

Functions

This section is empty.

Types

type ApplicationsSelected

type ApplicationsSelected struct {
	// Namespace is the namespace of the Argo CD application.
	Namespace string `json:"namespace"`
	// Name is the name of the Argo CD application.
	Name string `json:"name"`
	// Phase is the current phase of the commit status.
	Phase CommitStatusPhase `json:"phase"`
	// Sha is the commit SHA that this status is associated with.
	Sha string `json:"sha"`
	// LastTransitionTime is the last time the phase transitioned.
	// +kubebuilder:validation:Optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime"`
	// Environment is the syncSource.targetBranch of the Argo CD application (in effect, its environment).
	// +required
	// +kubebuilder:validation:MinLength=1
	Environment string `json:"environment,omitempty"`
	// ClusterName is the name of the cluster that the application manifest is deployed to. An empty string indicates
	// the local cluster.
	ClusterName string `json:"clusterName"`
}

ApplicationsSelected represents the Argo CD applications that are selected by the commit status.

func (*ApplicationsSelected) DeepCopy

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

func (*ApplicationsSelected) DeepCopyInto

func (in *ApplicationsSelected) DeepCopyInto(out *ApplicationsSelected)

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

type ArgoCDCommitStatus

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

	Spec   ArgoCDCommitStatusSpec   `json:"spec,omitempty"`
	Status ArgoCDCommitStatusStatus `json:"status,omitempty"`
}

ArgoCDCommitStatus is the Schema for the argocdcommitstatuses API. +kubebuilder:printcolumn:name="Strategy",type=string,JSONPath=`.spec.promotionStrategyRef.name`,priority=1 +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*ArgoCDCommitStatus) DeepCopy

func (in *ArgoCDCommitStatus) DeepCopy() *ArgoCDCommitStatus

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

func (*ArgoCDCommitStatus) DeepCopyInto

func (in *ArgoCDCommitStatus) DeepCopyInto(out *ArgoCDCommitStatus)

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

func (*ArgoCDCommitStatus) DeepCopyObject

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

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

func (*ArgoCDCommitStatus) GetConditions added in v0.8.0

func (cs *ArgoCDCommitStatus) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the ArgoCDCommitStatus.

type ArgoCDCommitStatusConfiguration added in v0.14.0

type ArgoCDCommitStatusConfiguration struct {
	// WorkQueue contains the work queue configuration for the ArgoCDCommitStatus controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`

	// WatchLocalApplications controls whether the controller monitors Argo CD Applications
	// in the local cluster. When false, the controller will only watch Applications in remote clusters
	// configured via kubeconfig secrets. This is useful when the Argo CD Application CRD is not installed
	// in the local cluster or when all Applications are deployed to remote clusters.
	// +required
	// +kubebuilder:default=true
	WatchLocalApplications bool `json:"watchLocalApplications"`
}

ArgoCDCommitStatusConfiguration defines the configuration for the ArgoCDCommitStatus controller.

This configuration controls how the ArgoCDCommitStatus controller processes reconciliation requests, including requeue intervals, concurrency limits, and rate limiting behavior.

func (*ArgoCDCommitStatusConfiguration) DeepCopy added in v0.14.0

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

func (*ArgoCDCommitStatusConfiguration) DeepCopyInto added in v0.14.0

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

type ArgoCDCommitStatusList

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

ArgoCDCommitStatusList contains a list of ArgoCDCommitStatus.

func (*ArgoCDCommitStatusList) DeepCopy

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

func (*ArgoCDCommitStatusList) DeepCopyInto

func (in *ArgoCDCommitStatusList) DeepCopyInto(out *ArgoCDCommitStatusList)

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

func (*ArgoCDCommitStatusList) DeepCopyObject

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

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

type ArgoCDCommitStatusSpec

type ArgoCDCommitStatusSpec struct {
	// PromotionStrategyRef is a reference to the promotion strategy that this commit status applies to.
	// +kubebuilder:validation:Required
	PromotionStrategyRef ObjectReference `json:"promotionStrategyRef,omitempty"`

	// ApplicationSelector is a label selector that selects the Argo CD applications to which this commit status applies.
	// +kubebuilder:validation:Required
	ApplicationSelector *metav1.LabelSelector `json:"applicationSelector,omitempty"`

	// URL generates the URL to use in the CommitStatus, for example a link to the Argo CD UI.
	// +kubebuilder:validation:Optional
	URL URLConfig `json:"url,omitempty"`
}

ArgoCDCommitStatusSpec defines the desired state of ArgoCDCommitStatus.

func (*ArgoCDCommitStatusSpec) DeepCopy

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

func (*ArgoCDCommitStatusSpec) DeepCopyInto

func (in *ArgoCDCommitStatusSpec) DeepCopyInto(out *ArgoCDCommitStatusSpec)

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

type ArgoCDCommitStatusStatus

type ArgoCDCommitStatusStatus struct {
	// ApplicationsSelected represents the Argo CD applications that are selected by the commit status.
	// This field is sorted by environment (same order as the referenced PromotionStrategy), then namespace, then name.
	ApplicationsSelected []ApplicationsSelected `json:"applicationsSelected,omitempty"`

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ArgoCDCommitStatusStatus defines the observed state of ArgoCDCommitStatus.

func (*ArgoCDCommitStatusStatus) DeepCopy

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

func (*ArgoCDCommitStatusStatus) DeepCopyInto

func (in *ArgoCDCommitStatusStatus) DeepCopyInto(out *ArgoCDCommitStatusStatus)

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

type Bucket added in v0.14.0

type Bucket struct {
	// Qps (queries per second) is the rate at which tokens are added to the bucket.
	// This defines the sustained rate limit for operations. Must be non-negative.
	// +required
	// +Validation:Minimum=0
	Qps int `json:"qps"`

	// Bucket is the maximum number of tokens that can be accumulated in the bucket.
	// This defines the maximum burst size - how many operations can occur in rapid
	// succession before rate limiting takes effect. Must be non-negative.
	// +required
	// +Validation:Minimum=0
	Bucket int `json:"bucket"`
}

Bucket defines a token bucket rate limiter configuration.

This rate limiter uses the token bucket algorithm to control the rate of operations. Tokens are added to the bucket at a rate of Qps per second, up to a maximum of Bucket tokens. Each operation consumes one token. This allows for bursts of activity up to the bucket size while maintaining an average rate of Qps operations per second.

See https://pkg.go.dev/k8s.io/client-go/util/workqueue#TypedBucketRateLimiter

func (*Bucket) DeepCopy added in v0.14.0

func (in *Bucket) DeepCopy() *Bucket

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

func (*Bucket) DeepCopyInto added in v0.14.0

func (in *Bucket) DeepCopyInto(out *Bucket)

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

type ChangeRequestPolicyCommitStatusPhase

type ChangeRequestPolicyCommitStatusPhase struct {
	// Key staging hydrated branch
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern:=([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]
	Key string `json:"key"`

	// Phase what phase is the status in
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum:=pending;success;failure
	Phase string `json:"phase"`

	// Url is the URL of the commit status
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	Url string `json:"url,omitempty"`
}

ChangeRequestPolicyCommitStatusPhase defines the phase of a commit status in a ChangeTransferPolicy.

func (*ChangeRequestPolicyCommitStatusPhase) DeepCopy

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

func (*ChangeRequestPolicyCommitStatusPhase) DeepCopyInto

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

type ChangeTransferPolicy

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

	Spec   ChangeTransferPolicySpec   `json:"spec,omitempty"`
	Status ChangeTransferPolicyStatus `json:"status,omitempty"`
}

ChangeTransferPolicy is the Schema for the changetransferpolicies API +kubebuilder:printcolumn:name="Active Dry Sha",type=string,JSONPath=`.status.active.dry.sha` +kubebuilder:printcolumn:name="Proposed Dry Sha",type=string,JSONPath=`.status.proposed.dry.sha` +kubebuilder:printcolumn:name="PR State",type=string,JSONPath=`.status.pullRequest.state` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*ChangeTransferPolicy) DeepCopy

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

func (*ChangeTransferPolicy) DeepCopyInto

func (in *ChangeTransferPolicy) DeepCopyInto(out *ChangeTransferPolicy)

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

func (*ChangeTransferPolicy) DeepCopyObject

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

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

func (*ChangeTransferPolicy) GetConditions added in v0.8.0

func (ps *ChangeTransferPolicy) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the ChangeTransferPolicy

type ChangeTransferPolicyConfiguration added in v0.14.0

type ChangeTransferPolicyConfiguration struct {
	// WorkQueue contains the work queue configuration for the ChangeTransferPolicy controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`
}

ChangeTransferPolicyConfiguration defines the configuration for the ChangeTransferPolicy controller.

This configuration controls how the ChangeTransferPolicy controller processes reconciliation requests, including requeue intervals, concurrency limits, and rate limiting behavior.

func (*ChangeTransferPolicyConfiguration) DeepCopy added in v0.14.0

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

func (*ChangeTransferPolicyConfiguration) DeepCopyInto added in v0.14.0

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

type ChangeTransferPolicyList

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

ChangeTransferPolicyList contains a list of ChangeTransferPolicy

func (*ChangeTransferPolicyList) DeepCopy

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

func (*ChangeTransferPolicyList) DeepCopyInto

func (in *ChangeTransferPolicyList) DeepCopyInto(out *ChangeTransferPolicyList)

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

func (*ChangeTransferPolicyList) DeepCopyObject

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

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

type ChangeTransferPolicySpec

type ChangeTransferPolicySpec struct {

	// RepositoryReference what repository to open the PR on.
	// +kubebuilder:validation:Required
	RepositoryReference ObjectReference `json:"gitRepositoryRef"`

	// ProposedBranch staging hydrated branch
	// +kubebuilder:validation:Required
	ProposedBranch string `json:"proposedBranch"`

	// ActiveBranch staging hydrated branch
	// +kubebuilder:validation:Required
	ActiveBranch string `json:"activeBranch"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=true
	AutoMerge *bool `json:"autoMerge,omitempty"`

	// ActiveCommitStatuses lists the statuses to be monitored on the active branch
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ActiveCommitStatuses []CommitStatusSelector `json:"activeCommitStatuses"`

	// ProposedCommitStatuses lists the statuses to be monitored on the proposed branch
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ProposedCommitStatuses []CommitStatusSelector `json:"proposedCommitStatuses"`
}

ChangeTransferPolicySpec defines the desired state of ChangeTransferPolicy

func (*ChangeTransferPolicySpec) DeepCopy

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

func (*ChangeTransferPolicySpec) DeepCopyInto

func (in *ChangeTransferPolicySpec) DeepCopyInto(out *ChangeTransferPolicySpec)

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

type ChangeTransferPolicyStatus

type ChangeTransferPolicyStatus struct {
	// Proposed is the state of the proposed branch.
	Proposed CommitBranchState `json:"proposed,omitempty"`
	// Active is the state of the active branch.
	Active CommitBranchState `json:"active,omitempty"`
	// PullRequest is the state of the pull request that was created for this ChangeTransferPolicy.
	PullRequest *PullRequestCommonStatus `json:"pullRequest,omitempty"`

	// History defines the history of promoted changes done by the ChangeTransferPolicy. You can think of
	// it as a list of PRs merged by GitOps Promoter. It will not include changes that were manually merged.
	// The history length is hard-coded to be at most 5 entries. This may change in the future.
	// History is constructed on a best-effort basis and should be used for informational purposes only.
	// History is in reverse chronological order (newest is first).
	History []History `json:"history,omitempty"`

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ChangeTransferPolicyStatus defines the observed state of ChangeTransferPolicy

func (*ChangeTransferPolicyStatus) DeepCopy

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

func (*ChangeTransferPolicyStatus) DeepCopyInto

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

type ClusterScmProvider added in v0.4.0

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

	Spec   ScmProviderSpec   `json:"spec,omitempty"`
	Status ScmProviderStatus `json:"status,omitempty"`
}

ClusterScmProvider is the Schema for the clusterscmproviders API. +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*ClusterScmProvider) DeepCopy added in v0.4.0

func (in *ClusterScmProvider) DeepCopy() *ClusterScmProvider

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

func (*ClusterScmProvider) DeepCopyInto added in v0.4.0

func (in *ClusterScmProvider) DeepCopyInto(out *ClusterScmProvider)

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

func (*ClusterScmProvider) DeepCopyObject added in v0.4.0

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

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

func (*ClusterScmProvider) GetConditions added in v0.17.0

func (s *ClusterScmProvider) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the ClusterScmProvider.

func (*ClusterScmProvider) GetSpec added in v0.4.0

func (s *ClusterScmProvider) GetSpec() *ScmProviderSpec

GetSpec returns the ScmProviderSpec for the cluster-scoped SCM provider.

type ClusterScmProviderList added in v0.4.0

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

ClusterScmProviderList contains a list of ClusterScmProvider.

func (*ClusterScmProviderList) DeepCopy added in v0.4.0

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

func (*ClusterScmProviderList) DeepCopyInto added in v0.4.0

func (in *ClusterScmProviderList) DeepCopyInto(out *ClusterScmProviderList)

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

func (*ClusterScmProviderList) DeepCopyObject added in v0.4.0

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

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

type CommitBranchState

type CommitBranchState struct {
	// Dry is the dry state of the branch, which is the commit that is being proposed.
	Dry CommitShaState `json:"dry,omitempty"`
	// Hydrated is the hydrated state of the branch, which is the commit that is currently being worked on.
	Hydrated CommitShaState `json:"hydrated,omitempty"`
	// CommitStatuses is a list of commit statuses that are being monitored for this branch.
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	CommitStatuses []ChangeRequestPolicyCommitStatusPhase `json:"commitStatuses,omitempty"`
}

CommitBranchState defines the state of a branch in a ChangeTransferPolicy.

func (*CommitBranchState) DeepCopy

func (in *CommitBranchState) DeepCopy() *CommitBranchState

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

func (*CommitBranchState) DeepCopyInto

func (in *CommitBranchState) DeepCopyInto(out *CommitBranchState)

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

func (*CommitBranchState) DryShaShort

func (b *CommitBranchState) DryShaShort() string

DryShaShort returns the first 7 characters of the dry SHA, or the full SHA if it is shorter than 7 characters.

type CommitBranchStateHistoryProposed added in v0.11.0

type CommitBranchStateHistoryProposed struct {
	// Hydrated is the hydrated state of the branch, which is the commit that is currently being worked on.
	Hydrated CommitShaState `json:"hydrated,omitempty"`
	// CommitStatuses is a list of commit statuses that were being monitored for this branch.
	// This contains the state frozen at the moment the PR was merged.
	CommitStatuses []ChangeRequestPolicyCommitStatusPhase `json:"commitStatuses,omitempty"`
}

CommitBranchStateHistoryProposed is identical to CommitBranchState minus the Dry state. In the context of History, the Dry state is not relevant as the proposed dry side at merge becomes the Active.

func (*CommitBranchStateHistoryProposed) DeepCopy added in v0.11.0

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

func (*CommitBranchStateHistoryProposed) DeepCopyInto added in v0.11.0

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

type CommitConfiguration added in v0.11.0

type CommitConfiguration struct {
	// Message is the commit message that will be written for the commit that's made when merging the PR.
	Message string `json:"message"`
}

CommitConfiguration defines the commit configuration for how we will merge/squash/etc the pull request.

func (*CommitConfiguration) DeepCopy added in v0.11.0

func (in *CommitConfiguration) DeepCopy() *CommitConfiguration

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

func (*CommitConfiguration) DeepCopyInto added in v0.11.0

func (in *CommitConfiguration) DeepCopyInto(out *CommitConfiguration)

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

type CommitMetadata added in v0.6.0

type CommitMetadata struct {
	// Author is the author of the commit.
	Author string `json:"author,omitempty"`
	// Date is the date of the commit, formatted as by `git show -s --format=%aI`.
	Date *metav1.Time `json:"date,omitempty"`
	// Subject is the subject line of the commit message, i.e. `git show --format=%s`.
	Subject string `json:"subject,omitempty"`
	// Body is the body of the commit message, excluding the subject line, i.e. `git show --format=%b`.
	Body string `json:"body,omitempty"`
	// Sha is the commit hash.
	Sha string `json:"sha,omitempty"`
	// RepoURL is the URL of the repository where the commit is located.
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	RepoURL string `json:"repoURL,omitempty"`
}

CommitMetadata contains metadata about a commit that is related in some way to another commit.

func (*CommitMetadata) DeepCopy added in v0.6.0

func (in *CommitMetadata) DeepCopy() *CommitMetadata

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

func (*CommitMetadata) DeepCopyInto added in v0.6.0

func (in *CommitMetadata) DeepCopyInto(out *CommitMetadata)

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

type CommitShaState

type CommitShaState struct {
	// Sha is the SHA of the commit in the branch
	Sha string `json:"sha,omitempty"`
	// CommitTime is the time the commit was made
	CommitTime metav1.Time `json:"commitTime,omitempty"`
	// RepoURL is the URL of the repository where the commit is located
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	RepoURL string `json:"repoURL,omitempty"`
	// Author is the author of the commit
	Author string `json:"author,omitempty"`
	// Subject is the subject line of the commit message
	Subject string `json:"subject,omitempty"`
	// Body is the body of the commit message without the subject line
	Body string `json:"body,omitempty"`
	// References are the references to other commits, that went into the hydration of the branch
	References []RevisionReference `json:"references,omitempty"`
}

CommitShaState defines the state of a commit in a branch.

func (*CommitShaState) DeepCopy

func (in *CommitShaState) DeepCopy() *CommitShaState

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

func (*CommitShaState) DeepCopyInto

func (in *CommitShaState) DeepCopyInto(out *CommitShaState)

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

type CommitStatus

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

	Spec   CommitStatusSpec   `json:"spec,omitempty"`
	Status CommitStatusStatus `json:"status,omitempty"`
}

CommitStatus is the Schema for the commitstatuses API +kubebuilder:printcolumn:name="Key",type=string,JSONPath=`.metadata.labels['promoter\.argoproj\.io/commit-status']` +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase` +kubebuilder:printcolumn:name="Sha",type=string,JSONPath=`.status.sha` +kubebuilder:printcolumn:name="Name",type=string,JSONPath=`.spec.name`,priority=1 +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`,priority=1

func (*CommitStatus) DeepCopy

func (in *CommitStatus) DeepCopy() *CommitStatus

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

func (*CommitStatus) DeepCopyInto

func (in *CommitStatus) DeepCopyInto(out *CommitStatus)

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

func (*CommitStatus) DeepCopyObject

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

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

func (*CommitStatus) GetConditions added in v0.8.0

func (cs *CommitStatus) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the CommitStatus

type CommitStatusConfiguration added in v0.14.0

type CommitStatusConfiguration struct {
	// WorkQueue contains the work queue configuration for the CommitStatus controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`
}

CommitStatusConfiguration defines the configuration for the CommitStatus controller.

This configuration controls how the CommitStatus controller processes reconciliation requests, including requeue intervals, concurrency limits, and rate limiting behavior.

func (*CommitStatusConfiguration) DeepCopy added in v0.14.0

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

func (*CommitStatusConfiguration) DeepCopyInto added in v0.14.0

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

type CommitStatusList

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

CommitStatusList contains a list of CommitStatus

func (*CommitStatusList) DeepCopy

func (in *CommitStatusList) DeepCopy() *CommitStatusList

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

func (*CommitStatusList) DeepCopyInto

func (in *CommitStatusList) DeepCopyInto(out *CommitStatusList)

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

func (*CommitStatusList) DeepCopyObject

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

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

type CommitStatusPhase

type CommitStatusPhase string

CommitStatusPhase represents the phase of a commit status.

const (
	// CommitPhaseFailure indicates that the commit status has failed.
	CommitPhaseFailure CommitStatusPhase = "failure"
	// CommitPhaseSuccess indicates that the commit status has been successfully completed.
	CommitPhaseSuccess CommitStatusPhase = "success"
	// CommitPhasePending indicates that the commit status is still being processed or has not yet been set.
	CommitPhasePending CommitStatusPhase = "pending"
)

type CommitStatusSelector

type CommitStatusSelector struct {
	// +required
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=63
	// +kubebuilder:validation:Pattern:=([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]
	Key string `json:"key"`
}

CommitStatusSelector is used to select commit statuses by their key.

func (*CommitStatusSelector) DeepCopy

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

func (*CommitStatusSelector) DeepCopyInto

func (in *CommitStatusSelector) DeepCopyInto(out *CommitStatusSelector)

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

type CommitStatusSpec

type CommitStatusSpec struct {

	// +kubebuilder:validation:Required
	RepositoryReference ObjectReference `json:"gitRepositoryRef"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=64
	// +kubebuilder:validation:Pattern=`^[a-fA-F0-9]+$`
	Sha string `json:"sha"`

	// +kubebuilder:validation:Required
	Name string `json:"name"`

	Description string `json:"description"`

	// +kubebuilder:validation:Required
	// +kubebuilder:default:=pending
	// +kubebuilder:validation:Enum:=pending;success;failure
	Phase CommitStatusPhase `json:"phase"` // pending, success, failure

	// Url is a URL that the user can follow to see more details about the status
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	Url string `json:"url,omitempty"`
}

CommitStatusSpec defines the desired state of CommitStatus

func (*CommitStatusSpec) DeepCopy

func (in *CommitStatusSpec) DeepCopy() *CommitStatusSpec

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

func (*CommitStatusSpec) DeepCopyInto

func (in *CommitStatusSpec) DeepCopyInto(out *CommitStatusSpec)

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

type CommitStatusStatus

type CommitStatusStatus struct {

	// Id is the unique identifier of the commit status, set by the SCM
	Id  string `json:"id"`
	Sha string `json:"sha"`
	// +kubebuilder:default:=pending
	// +kubebuilder:validation:Enum:=pending;success;failure;""
	// +kubebuilder:validation:Optional
	Phase CommitStatusPhase `json:"phase,omitempty"`

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

CommitStatusStatus defines the observed state of CommitStatus

func (*CommitStatusStatus) DeepCopy

func (in *CommitStatusStatus) DeepCopy() *CommitStatusStatus

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

func (*CommitStatusStatus) DeepCopyInto

func (in *CommitStatusStatus) DeepCopyInto(out *CommitStatusStatus)

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

type ControllerConfiguration added in v0.2.0

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

	Spec   ControllerConfigurationSpec   `json:"spec,omitempty"`
	Status ControllerConfigurationStatus `json:"status,omitempty"`
}

ControllerConfiguration is the Schema for the controllerconfigurations API.

func (*ControllerConfiguration) DeepCopy added in v0.2.0

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

func (*ControllerConfiguration) DeepCopyInto added in v0.2.0

func (in *ControllerConfiguration) DeepCopyInto(out *ControllerConfiguration)

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

func (*ControllerConfiguration) DeepCopyObject added in v0.2.0

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

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

type ControllerConfigurationList added in v0.2.0

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

ControllerConfigurationList contains a list of ControllerConfiguration.

func (*ControllerConfigurationList) DeepCopy added in v0.2.0

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

func (*ControllerConfigurationList) DeepCopyInto added in v0.2.0

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

func (*ControllerConfigurationList) DeepCopyObject added in v0.2.0

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

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

type ControllerConfigurationSpec added in v0.2.0

type ControllerConfigurationSpec struct {
	// PromotionStrategy contains the configuration for the PromotionStrategy controller,
	// including WorkQueue settings that control reconciliation behavior.
	// +required
	PromotionStrategy PromotionStrategyConfiguration `json:"promotionStrategy"`

	// ChangeTransferPolicy contains the configuration for the ChangeTransferPolicy controller,
	// including WorkQueue settings that control reconciliation behavior.
	// +required
	ChangeTransferPolicy ChangeTransferPolicyConfiguration `json:"changeTransferPolicy"`

	// PullRequest contains the configuration for the PullRequest controller,
	// including WorkQueue settings and pull request template configuration.
	// +required
	PullRequest PullRequestConfiguration `json:"pullRequest"`

	// CommitStatus contains the configuration for the CommitStatus controller,
	// including WorkQueue settings that control reconciliation behavior.
	// +required
	CommitStatus CommitStatusConfiguration `json:"commitStatus"`

	// ArgoCDCommitStatus contains the configuration for the ArgoCDCommitStatus controller,
	// including WorkQueue settings that control reconciliation behavior.
	// +required
	ArgoCDCommitStatus ArgoCDCommitStatusConfiguration `json:"argocdCommitStatus"`

	// TimedCommitStatus contains the configuration for the TimedCommitStatus controller,
	// including WorkQueue settings that control reconciliation behavior.
	// +required
	TimedCommitStatus TimedCommitStatusConfiguration `json:"timedCommitStatus"`
}

ControllerConfigurationSpec defines the desired state of ControllerConfiguration.

This spec contains the global configuration for all controllers in the promoter system. Each controller has its own configuration section that specifies WorkQueue settings, rate limiters, and other controller-specific parameters. All fields should be required, with defaults set in manifests rather than in code.

func (*ControllerConfigurationSpec) DeepCopy added in v0.2.0

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

func (*ControllerConfigurationSpec) DeepCopyInto added in v0.2.0

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

type ControllerConfigurationStatus added in v0.2.0

type ControllerConfigurationStatus struct{}

ControllerConfigurationStatus defines the observed state of ControllerConfiguration.

Currently, this resource does not maintain any status information as it is a configuration-only resource. Status fields may be added in the future to track configuration validation or controller health metrics.

func (*ControllerConfigurationStatus) DeepCopy added in v0.2.0

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

func (*ControllerConfigurationStatus) DeepCopyInto added in v0.2.0

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

type Environment

type Environment struct {
	// Branch is the name of the active branch for the environment.
	// +kubebuilder:validation:Required
	Branch string `json:"branch"`
	// AutoMerge determines whether the dry commit should be automatically merged into the next branch in the sequence.
	// If false, the dry commit will be proposed but not merged.
	// +kubebuilder:validation:Optional
	// +kubebuilder:default:=true
	AutoMerge *bool `json:"autoMerge,omitempty"`
	// ActiveCommitStatuses are commit statuses describing an actively running dry commit. If an active commit status
	// is failing for an environment, subsequent environments will not deploy the failing commit.
	//
	// The commit statuses specified in this field apply to this environment only. You can also specify commit statuses
	// for all environments in the `spec.activeCommitStatuses` field.
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ActiveCommitStatuses []CommitStatusSelector `json:"activeCommitStatuses"`
	// ProposedCommitStatuses are commit statuses describing a proposed dry commit, i.e. one that is not yet running
	// in a live environment. If a proposed commit status is failing for a given environment, the dry commit will not
	// be promoted to that environment.
	//
	// The commit statuses specified in this field apply to this environment only. You can also specify commit statuses
	// for all environments in the `spec.proposedCommitStatuses` field.
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ProposedCommitStatuses []CommitStatusSelector `json:"proposedCommitStatuses"`
}

Environment defines a single environment in the promotion sequence.

func (*Environment) DeepCopy

func (in *Environment) DeepCopy() *Environment

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

func (*Environment) DeepCopyInto

func (in *Environment) DeepCopyInto(out *Environment)

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

func (*Environment) GetAutoMerge

func (e *Environment) GetAutoMerge() bool

GetAutoMerge returns the value of the AutoMerge field, defaulting to true if the field is nil.

type EnvironmentStatus

type EnvironmentStatus struct {
	// Branch is the name of the active branch for the environment.
	Branch string `json:"branch"`
	// Proposed is the state of the proposed branch for the environment.
	Proposed CommitBranchState `json:"proposed"`
	// Active is the state of the active branch for the environment.
	Active CommitBranchState `json:"active"`

	// PullRequest is the state of the pull request that was created for this environment.
	PullRequest *PullRequestCommonStatus `json:"pullRequest,omitempty"`

	// LastHealthyDryShas is a list of dry commits that were observed to be healthy in the environment.
	// +kubebuilder:validation:Optional
	LastHealthyDryShas []HealthyDryShas `json:"lastHealthyDryShas"`

	// History defines the history of promoted changes done by the PromotionStrategy for each environment.
	// You can think of it as a list of PRs merged by GitOps Promoter. It will not include changes that were
	// manually merged. The history length is hard-coded to be at most 5 entries. This may change in the future.
	// History is constructed on a best-effort basis and should be used for informational purposes only.
	// History is in reverse chronological order (newest is first).
	History []History `json:"history,omitempty"`
}

EnvironmentStatus defines the observed state of an environment in a PromotionStrategy.

func (*EnvironmentStatus) DeepCopy

func (in *EnvironmentStatus) DeepCopy() *EnvironmentStatus

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

func (*EnvironmentStatus) DeepCopyInto

func (in *EnvironmentStatus) DeepCopyInto(out *EnvironmentStatus)

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

type ExponentialFailure added in v0.14.0

type ExponentialFailure struct {
	// BaseDelay is the initial delay after the first failure. Subsequent failures will exponentially
	// increase this delay (2x, 4x, 8x, etc.) until MaxDelay is reached.
	// Format follows Go's time.Duration syntax (e.g., "1s" for 1 second).
	// +required
	BaseDelay metav1.Duration `json:"baseDelay"`

	// MaxDelay is the maximum delay between retry attempts. Once the exponential backoff reaches
	// this value, all subsequent retries will use this delay.
	// Format follows Go's time.Duration syntax (e.g., "1m" for 1 minute).
	// +required
	MaxDelay metav1.Duration `json:"maxDelay"`
}

ExponentialFailure defines an exponential backoff rate limiter configuration.

This rate limiter increases the delay exponentially with each consecutive failure, starting at BaseDelay and capping at MaxDelay. This is useful for backing off when operations fail repeatedly, reducing load on external systems while they recover. The delay doubles with each failure until reaching the maximum.

See https://pkg.go.dev/k8s.io/client-go/util/workqueue#NewTypedItemExponentialFailureRateLimiter

func (*ExponentialFailure) DeepCopy added in v0.14.0

func (in *ExponentialFailure) DeepCopy() *ExponentialFailure

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

func (*ExponentialFailure) DeepCopyInto added in v0.14.0

func (in *ExponentialFailure) DeepCopyInto(out *ExponentialFailure)

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

type Fake

type Fake struct {
	// Domain is the domain of the fake SCM provider. This is used for testing purposes.
	Domain string `json:"domain,omitempty"`
}

Fake is a placeholder for a fake SCM provider, used for testing purposes.

func (*Fake) DeepCopy

func (in *Fake) DeepCopy() *Fake

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

func (*Fake) DeepCopyInto

func (in *Fake) DeepCopyInto(out *Fake)

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

type FakeRepo added in v0.1.0

type FakeRepo struct {
	// Owner is the owner of the repository.
	// +kubebuilder:validation:Required
	Owner string `json:"owner"`
	// Name is the name of the repository.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

FakeRepo is a placeholder for a repository in the fake SCM provider, used for testing purposes.

func (*FakeRepo) DeepCopy added in v0.1.0

func (in *FakeRepo) DeepCopy() *FakeRepo

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

func (*FakeRepo) DeepCopyInto added in v0.1.0

func (in *FakeRepo) DeepCopyInto(out *FakeRepo)

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

type FastSlow added in v0.14.0

type FastSlow struct {
	// FastDelay is the delay used for the first MaxFastAttempts retry attempts.
	// Format follows Go's time.Duration syntax (e.g., "100ms" for 100 milliseconds).
	// +required
	FastDelay metav1.Duration `json:"fastDelay"`

	// SlowDelay is the delay used for retry attempts after MaxFastAttempts have been exhausted.
	// Format follows Go's time.Duration syntax (e.g., "10s" for 10 seconds).
	// +required
	SlowDelay metav1.Duration `json:"slowDelay"`

	// MaxFastAttempts is the number of retry attempts that use FastDelay before switching to SlowDelay.
	// Must be at least 1.
	// +required
	// +Validation:Minimum=1
	MaxFastAttempts int `json:"maxFastAttempts"`
}

FastSlow defines a rate limiter that uses different delays based on failure count.

This rate limiter returns FastDelay for the first MaxFastAttempts failures, then switches to SlowDelay for all subsequent failures. This is useful for quickly retrying transient errors while backing off for persistent failures, without the exponential growth of ExponentialFailure.

See https://pkg.go.dev/k8s.io/client-go/util/workqueue#NewTypedItemFastSlowRateLimiter

func (*FastSlow) DeepCopy added in v0.14.0

func (in *FastSlow) DeepCopy() *FastSlow

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

func (*FastSlow) DeepCopyInto added in v0.14.0

func (in *FastSlow) DeepCopyInto(out *FastSlow)

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

type Forgejo added in v0.6.0

type Forgejo struct {
	// Domain is the Forgejo domain, such as "codeberg.org" or "forgejo.mycompany.com".
	// There is no default domain since Forgejo is not a service like Gitlab or Github.
	// +kubebuilder:validation:Required
	Domain string `json:"domain"`
}

Forgejo is a Forgejo SCM provider configuration. It is used to configure the Forgejo settings.

func (*Forgejo) DeepCopy added in v0.6.0

func (in *Forgejo) DeepCopy() *Forgejo

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

func (*Forgejo) DeepCopyInto added in v0.6.0

func (in *Forgejo) DeepCopyInto(out *Forgejo)

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

type ForgejoRepo added in v0.6.0

type ForgejoRepo struct {
	// Owner is the owner of the repository.
	// +kubebuilder:validation:Required
	Owner string `json:"owner"`
	// Name is the name of the repository.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

ForgejoRepo is a repository in Forgejo, identified by its owner and name.

func (*ForgejoRepo) DeepCopy added in v0.6.0

func (in *ForgejoRepo) DeepCopy() *ForgejoRepo

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

func (*ForgejoRepo) DeepCopyInto added in v0.6.0

func (in *ForgejoRepo) DeepCopyInto(out *ForgejoRepo)

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

type GenericScmProvider added in v0.4.0

type GenericScmProvider interface {
	runtime.Object
	metav1.Object
	GetSpec() *ScmProviderSpec
}

GenericScmProvider is a common interface for interacting with either cluster-scoped ClusterScmProvider or namespaced ScmProviders.

type GitHub

type GitHub struct {
	// Domain is the GitHub domain, such as "github.mycompany.com". If using the default GitHub domain, leave this field
	// empty.
	// +kubebuilder:validation:XValidation:rule=`self != "github.com"`, message="Instead of setting the domain to github.com, leave the field blank"
	Domain string `json:"domain,omitempty"`
	// AppID is the GitHub App ID.
	// +kubebuilder:validation:Required
	AppID int64 `json:"appID"`
	// InstallationID is the GitHub App Installation ID. If you want to use this ScmProvider for multiple
	// GitHub orgs, do not specify this field. The installation ID will be inferred from the repo owner
	// when needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	InstallationID int64 `json:"installationID,omitempty"`
}

GitHub is a GitHub SCM provider configuration. It is used to configure the GitHub settings.

func (*GitHub) DeepCopy

func (in *GitHub) DeepCopy() *GitHub

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

func (*GitHub) DeepCopyInto

func (in *GitHub) DeepCopyInto(out *GitHub)

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

type GitHubRepo added in v0.1.0

type GitHubRepo struct {

	// Owner is the owner of the repository, which can be a user or an organization.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=39
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9][a-zA-Z0-9\-]*$
	Owner string `json:"owner"`
	// Name is the name of the repository.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=100
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9_\-\.]+$
	Name string `json:"name"`
}

GitHubRepo is a repository in GitHub, identified by its owner and name.

func (*GitHubRepo) DeepCopy added in v0.1.0

func (in *GitHubRepo) DeepCopy() *GitHubRepo

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

func (*GitHubRepo) DeepCopyInto added in v0.1.0

func (in *GitHubRepo) DeepCopyInto(out *GitHubRepo)

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

type GitLab added in v0.1.0

type GitLab struct {
	// Domain is the GitLab domain, such as "gitlab.mycompany.com". If using the default GitLab domain, leave this field
	// empty.
	Domain string `json:"domain,omitempty"`
}

GitLab is a GitLab SCM provider configuration. It is used to configure the GitLab settings.

func (*GitLab) DeepCopy added in v0.1.0

func (in *GitLab) DeepCopy() *GitLab

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

func (*GitLab) DeepCopyInto added in v0.1.0

func (in *GitLab) DeepCopyInto(out *GitLab)

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

type GitLabRepo added in v0.1.0

type GitLabRepo struct {
	// Namespace is the user, group or group with subgroup (e.g. group/subgroup).
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9_\-\/.]+$
	Namespace string `json:"namespace"`
	// Name is the project slug of the repository.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=^[a-zA-Z0-9_\-\/.]+$
	Name string `json:"name"`
	// ProjectID is the ID of the project in GitLab.
	// +kubebuilder:validation:Required
	ProjectID int `json:"projectId"`
}

GitLabRepo is a repository in GitLab, identified by its namespace, name, and project ID.

func (*GitLabRepo) DeepCopy added in v0.1.0

func (in *GitLabRepo) DeepCopy() *GitLabRepo

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

func (*GitLabRepo) DeepCopyInto added in v0.1.0

func (in *GitLabRepo) DeepCopyInto(out *GitLabRepo)

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

type GitRepository

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

	Spec   GitRepositorySpec   `json:"spec,omitempty"`
	Status GitRepositoryStatus `json:"status,omitempty"`
}

GitRepository is the Schema for the gitrepositories API +kubebuilder:printcolumn:name="Provider",type=string,JSONPath=`.spec.scmProviderRef.name` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*GitRepository) DeepCopy

func (in *GitRepository) DeepCopy() *GitRepository

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

func (*GitRepository) DeepCopyInto

func (in *GitRepository) DeepCopyInto(out *GitRepository)

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

func (*GitRepository) DeepCopyObject

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

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

func (*GitRepository) GetConditions added in v0.17.0

func (gr *GitRepository) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the GitRepository.

type GitRepositoryList

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

GitRepositoryList contains a list of GitRepository

func (*GitRepositoryList) DeepCopy

func (in *GitRepositoryList) DeepCopy() *GitRepositoryList

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

func (*GitRepositoryList) DeepCopyInto

func (in *GitRepositoryList) DeepCopyInto(out *GitRepositoryList)

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

func (*GitRepositoryList) DeepCopyObject

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

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

type GitRepositorySpec

type GitRepositorySpec struct {
	GitHub  *GitHubRepo  `json:"github,omitempty"`
	GitLab  *GitLabRepo  `json:"gitlab,omitempty"`
	Forgejo *ForgejoRepo `json:"forgejo,omitempty"`
	Fake    *FakeRepo    `json:"fake,omitempty"`
	// +kubebuilder:validation:Required
	ScmProviderRef ScmProviderObjectReference `json:"scmProviderRef"`
}

GitRepositorySpec defines the desired state of GitRepository +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake

func (*GitRepositorySpec) DeepCopy

func (in *GitRepositorySpec) DeepCopy() *GitRepositorySpec

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

func (*GitRepositorySpec) DeepCopyInto

func (in *GitRepositorySpec) DeepCopyInto(out *GitRepositorySpec)

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

type GitRepositoryStatus

type GitRepositoryStatus struct {

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

GitRepositoryStatus defines the observed state of GitRepository

func (*GitRepositoryStatus) DeepCopy

func (in *GitRepositoryStatus) DeepCopy() *GitRepositoryStatus

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

func (*GitRepositoryStatus) DeepCopyInto

func (in *GitRepositoryStatus) DeepCopyInto(out *GitRepositoryStatus)

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

type HealthyDryShas

type HealthyDryShas struct {
	// Sha is the commit SHA of the dry commit that was observed to be healthy.
	Sha string `json:"sha"`
	// Time is the time when the proposed commit for the given dry SHA was merged into the active branch.
	Time metav1.Time `json:"time"`
}

HealthyDryShas is a list of dry commits that were observed to be healthy in the environment.

func (*HealthyDryShas) DeepCopy

func (in *HealthyDryShas) DeepCopy() *HealthyDryShas

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

func (*HealthyDryShas) DeepCopyInto

func (in *HealthyDryShas) DeepCopyInto(out *HealthyDryShas)

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

type History added in v0.11.0

type History struct {
	// Proposed is the state of the proposed branch at the time the PR was merged.
	Proposed CommitBranchStateHistoryProposed `json:"proposed,omitempty"`
	// Active is the state of the active branch at the time the PR was merged.
	Active CommitBranchState `json:"active,omitempty"`
	// PullRequest is the state of the pull request that was created for this ChangeTransferPolicy.
	PullRequest *PullRequestCommonStatus `json:"pullRequest,omitempty"`
}

History describes a particular change that was promoted by the ChangeTransferPolicy.

func (*History) DeepCopy added in v0.11.0

func (in *History) DeepCopy() *History

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

func (*History) DeepCopyInto added in v0.11.0

func (in *History) DeepCopyInto(out *History)

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

type ObjectReference

type ObjectReference struct {
	// Name is the name of the object to refer to.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

ObjectReference is a reference to an object by name. It is used to refer to objects in the same namespace.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

type PromotionStrategy

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

	Spec   PromotionStrategySpec   `json:"spec,omitempty"`
	Status PromotionStrategyStatus `json:"status,omitempty"`
}

PromotionStrategy is the Schema for the promotionstrategies API +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*PromotionStrategy) DeepCopy

func (in *PromotionStrategy) DeepCopy() *PromotionStrategy

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

func (*PromotionStrategy) DeepCopyInto

func (in *PromotionStrategy) DeepCopyInto(out *PromotionStrategy)

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

func (*PromotionStrategy) DeepCopyObject

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

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

func (*PromotionStrategy) GetConditions added in v0.8.0

func (ps *PromotionStrategy) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the PromotionStrategy.

type PromotionStrategyConfiguration added in v0.14.0

type PromotionStrategyConfiguration struct {
	// WorkQueue contains the work queue configuration for the PromotionStrategy controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`
}

PromotionStrategyConfiguration defines the configuration for the PromotionStrategy controller.

This configuration controls how the PromotionStrategy controller processes reconciliation requests, including requeue intervals, concurrency limits, and rate limiting behavior.

func (*PromotionStrategyConfiguration) DeepCopy added in v0.14.0

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

func (*PromotionStrategyConfiguration) DeepCopyInto added in v0.14.0

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

type PromotionStrategyList

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

PromotionStrategyList contains a list of PromotionStrategy

func (*PromotionStrategyList) DeepCopy

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

func (*PromotionStrategyList) DeepCopyInto

func (in *PromotionStrategyList) DeepCopyInto(out *PromotionStrategyList)

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

func (*PromotionStrategyList) DeepCopyObject

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

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

type PromotionStrategySpec

type PromotionStrategySpec struct {

	// RepositoryReference indicates what repository to promote commits in.
	// +kubebuilder:validation:Required
	RepositoryReference ObjectReference `json:"gitRepositoryRef"`

	// ActiveCommitStatuses are commit statuses describing an actively running dry commit. If an active commit status
	// is failing for an environment, subsequent environments will not deploy the failing commit.
	//
	// The commit statuses specified in this field apply to all environments in the promotion sequence. You can also
	// specify commit statuses for individual environments in the `environments` field.
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ActiveCommitStatuses []CommitStatusSelector `json:"activeCommitStatuses"`

	// ProposedCommitStatuses are commit statuses describing a proposed dry commit, i.e. one that is not yet running
	// in a live environment. If a proposed commit status is failing for a given environment, the dry commit will not
	// be promoted to that environment.
	//
	// The commit statuses specified in this field apply to all environments in the promotion sequence. You can also
	// specify commit statuses for individual environments in the `environments` field.
	// +kubebuilder:validation:Optional
	// +listType:=map
	// +listMapKey=key
	ProposedCommitStatuses []CommitStatusSelector `json:"proposedCommitStatuses"`

	// Environments is the sequence of environments that a dry commit will be promoted through.
	// +kubebuilder:validation:MinItems:=1
	// +listType:=map
	// +listMapKey=branch
	Environments []Environment `json:"environments"`
}

PromotionStrategySpec defines the desired state of PromotionStrategy

func (*PromotionStrategySpec) DeepCopy

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

func (*PromotionStrategySpec) DeepCopyInto

func (in *PromotionStrategySpec) DeepCopyInto(out *PromotionStrategySpec)

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

type PromotionStrategyStatus

type PromotionStrategyStatus struct {
	// Environments holds the status of each environment in the promotion sequence.
	// +listType:=map
	// +listMapKey=branch
	Environments []EnvironmentStatus `json:"environments"`

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PromotionStrategyStatus defines the observed state of PromotionStrategy

func (*PromotionStrategyStatus) DeepCopy

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

func (*PromotionStrategyStatus) DeepCopyInto

func (in *PromotionStrategyStatus) DeepCopyInto(out *PromotionStrategyStatus)

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

type PullRequest

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

	Spec   PullRequestSpec   `json:"spec,omitempty"`
	Status PullRequestStatus `json:"status,omitempty"`
}

PullRequest is the Schema for the pullrequests API +kubebuilder:printcolumn:name="State",type=string,JSONPath=`.status.state` +kubebuilder:printcolumn:name="ID",type=string,JSONPath=`.status.ID` +kubebuilder:printcolumn:name="Source",type=string,JSONPath=`.spec.sourceBranch`,priority=1 +kubebuilder:printcolumn:name="Target",type=string,JSONPath=`.spec.targetBranch`,priority=1 +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status` +kubebuilder:printcolumn:name="URL",type=string,JSONPath=`.status.url`,priority=1 +kubebuilder:validation:XValidation:rule=`self.spec.state == 'open' || has(self.status.id) && self.status.id != ""`,message="Cannot transition to 'closed' or 'merged' state when status.id is empty"

func (*PullRequest) DeepCopy

func (in *PullRequest) DeepCopy() *PullRequest

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

func (*PullRequest) DeepCopyInto

func (in *PullRequest) DeepCopyInto(out *PullRequest)

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

func (*PullRequest) DeepCopyObject

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

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

func (*PullRequest) GetConditions added in v0.8.0

func (ps *PullRequest) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the PullRequest.

type PullRequestCommonStatus added in v0.10.0

type PullRequestCommonStatus struct {
	// ID is the unique identifier of the pull request, set by the SCM.
	ID string `json:"id,omitempty"`
	// State is the state of the pull request.
	// +kubebuilder:validation:Enum=closed;merged;open
	State PullRequestState `json:"state,omitempty"`
	// PRCreationTime is the time when the pull request was created.
	PRCreationTime metav1.Time `json:"prCreationTime,omitempty"`
	// PRMergeTime is the time when the pull request was merged. This time can vary slightly from the actual merge time because
	// it is the time when the ChangeTransferPolicy controller sets the pull requests spec to merge. In the future we plan on making
	// this time more accurate by fetching the actual merge time from the SCM via the webhook this would then be updated in the git note
	// for that commit.
	PRMergeTime metav1.Time `json:"prMergeTime,omitempty"`
	// Url is the URL of the pull request.
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	Url string `json:"url,omitempty"`
}

PullRequestCommonStatus defines the common status fields for a pull request.

func (*PullRequestCommonStatus) DeepCopy added in v0.10.0

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

func (*PullRequestCommonStatus) DeepCopyInto added in v0.10.0

func (in *PullRequestCommonStatus) DeepCopyInto(out *PullRequestCommonStatus)

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

type PullRequestConfiguration added in v0.1.0

type PullRequestConfiguration struct {
	// Template is the template configuration used to generate pull request titles and descriptions.
	// Uses Go template syntax with Sprig functions available.
	// +required
	Template PullRequestTemplate `json:"template"`

	// WorkQueue contains the work queue configuration for the PullRequest controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`
}

PullRequestConfiguration defines the configuration for the PullRequest controller.

This configuration controls how the PullRequest controller processes reconciliation requests and generates pull requests, including WorkQueue settings and template configuration.

func (*PullRequestConfiguration) DeepCopy added in v0.1.0

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

func (*PullRequestConfiguration) DeepCopyInto added in v0.1.0

func (in *PullRequestConfiguration) DeepCopyInto(out *PullRequestConfiguration)

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

type PullRequestList

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

PullRequestList contains a list of PullRequest

func (*PullRequestList) DeepCopy

func (in *PullRequestList) DeepCopy() *PullRequestList

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

func (*PullRequestList) DeepCopyInto

func (in *PullRequestList) DeepCopyInto(out *PullRequestList)

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

func (*PullRequestList) DeepCopyObject

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

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

type PullRequestSpec

type PullRequestSpec struct {

	// RepositoryReference indicates what repository to open the PR on.
	// +kubebuilder:validation:Required
	RepositoryReference ObjectReference `json:"gitRepositoryRef"`
	// Title is the title of the pull request.
	// +kubebuilder:validation:Required
	Title string `json:"title"`
	// TargetBranch is the head the git reference we are merging from Head ---> Base
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Required
	TargetBranch string `json:"targetBranch"`
	// SourceBranch is the base the git reference that we are merging into Head ---> Base
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	// +kubebuilder:validation:Required
	SourceBranch string `json:"sourceBranch"`
	// Description is the description body of the pull/merge request
	Description string `json:"description,omitempty"`
	// Commit contains configuration for how we will merge/squash/etc the pull request.
	Commit CommitConfiguration `json:"commit,omitempty"`
	// MergeSha is the commit SHA that the head branch must match before the PR can be merged.
	// This prevents a race condition where a PR is merged with a different commit than intended.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=64
	// +kubebuilder:validation:Pattern=`^[a-fA-F0-9]+$`
	MergeSha string `json:"mergeSha"`
	// State of the pull request (closed, merged, or open). Must always be "open" when creating a new pull request.
	// This value may not be changed to "closed" or "merged" unless the pull request status.id is set.
	// +kubebuilder:default:=open
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=closed;merged;open
	State PullRequestState `json:"state"`
}

PullRequestSpec defines the desired state of PullRequest

func (*PullRequestSpec) DeepCopy

func (in *PullRequestSpec) DeepCopy() *PullRequestSpec

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

func (*PullRequestSpec) DeepCopyInto

func (in *PullRequestSpec) DeepCopyInto(out *PullRequestSpec)

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

type PullRequestState

type PullRequestState string

PullRequestState represents the state of a pull request.

const (
	// PullRequestClosed indicates that the pull request is closed.
	PullRequestClosed PullRequestState = "closed"
	// PullRequestOpen indicates that the pull request is open.
	PullRequestOpen PullRequestState = "open"
	// PullRequestMerged indicates that the pull request has been merged.
	PullRequestMerged PullRequestState = "merged"
)

type PullRequestStatus

type PullRequestStatus struct {

	// ID the id of the pull request
	ID string `json:"id,omitempty"`
	// State of the merge request closed/merged/open
	// +kubebuilder:validation:Enum="";closed;merged;open
	State PullRequestState `json:"state,omitempty"`
	// PRCreationTime the time the PR was created
	PRCreationTime metav1.Time `json:"prCreationTime,omitempty"`
	// Url is the URL of the pull request.
	// +kubebuilder:validation:XValidation:rule="self == ” || isURL(self)",message="must be a valid URL"
	// +kubebuilder:validation:Pattern="^(https?://.*)?$"
	Url string `json:"url,omitempty"`

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

PullRequestStatus defines the observed state of PullRequest

func (*PullRequestStatus) DeepCopy

func (in *PullRequestStatus) DeepCopy() *PullRequestStatus

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

func (*PullRequestStatus) DeepCopyInto

func (in *PullRequestStatus) DeepCopyInto(out *PullRequestStatus)

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

type PullRequestTemplate added in v0.1.0

type PullRequestTemplate struct {
	// Title is the template used to generate the title of the pull request.
	// Uses Go template syntax with Sprig functions available for string manipulation.
	// +required
	Title string `json:"title"`

	// Description is the template used to generate the body/description of the pull request.
	// Uses Go template syntax with Sprig functions available for string manipulation.
	// +required
	Description string `json:"description"`
}

PullRequestTemplate defines the template configuration for generating pull requests.

Templates use Go template syntax and have access to Sprig functions for flexible string manipulation and formatting. The template receives context about the promotion being performed, which can be used to generate informative titles and descriptions.

func (*PullRequestTemplate) DeepCopy added in v0.1.0

func (in *PullRequestTemplate) DeepCopy() *PullRequestTemplate

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

func (*PullRequestTemplate) DeepCopyInto added in v0.1.0

func (in *PullRequestTemplate) DeepCopyInto(out *PullRequestTemplate)

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

type RateLimiter added in v0.14.0

type RateLimiter struct {
	// RateLimiterTypes can be one of: FastSlow, ExponentialFailure, or Bucket.
	// +optional
	RateLimiterTypes `json:",inline"`

	// MaxOf allows combining multiple rate limiters, where the maximum delay from all
	// limiters is used. This enables sophisticated rate limiting that respects multiple
	// constraints simultaneously (e.g., both per-item exponential backoff and global rate limits).
	// +optional
	// +kubebuilder:validation:MaxItems=3
	MaxOf []RateLimiterTypes `json:"maxOf,omitempty"`
}

RateLimiter defines the rate limiting configuration for controllers.

This type supports both simple rate limiting strategies (FastSlow, ExponentialFailure, Bucket) and composite strategies using MaxOf, which returns the maximum delay from multiple rate limiters. This allows for sophisticated rate limiting behavior that combines multiple strategies.

Exactly one of the rate limiter types or MaxOf must be specified.

See https://pkg.go.dev/k8s.io/client-go/util/workqueue for rate limiter implementation details. +kubebuilder:validation:AtMostOneOf=fastSlow;exponentialFailure;bucket;maxOf

func (*RateLimiter) DeepCopy added in v0.14.0

func (in *RateLimiter) DeepCopy() *RateLimiter

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

func (*RateLimiter) DeepCopyInto added in v0.14.0

func (in *RateLimiter) DeepCopyInto(out *RateLimiter)

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

type RateLimiterTypes added in v0.14.0

type RateLimiterTypes struct {
	// FastSlow rate limiter provides fast retries initially, then switches to slow retries.
	// Useful for quickly retrying transient errors while backing off for persistent failures.
	// +optional
	FastSlow *FastSlow `json:"fastSlow,omitempty"`

	// ExponentialFailure rate limiter increases delay exponentially with each failure.
	// Standard approach for backing off when operations fail repeatedly.
	// +optional
	ExponentialFailure *ExponentialFailure `json:"exponentialFailure,omitempty"`

	// Bucket rate limiter uses a token bucket algorithm to control request rate.
	// Allows bursts while maintaining an average rate limit.
	// +optional
	Bucket *Bucket `json:"bucket,omitempty"`
}

RateLimiterTypes defines the different algorithms available for rate limiting.

Exactly one of the three rate limiter types must be specified:

  • FastSlow: Quick retry for transient errors, then slower retry for persistent failures
  • ExponentialFailure: Standard exponential backoff for repeated failures
  • Bucket: Token bucket algorithm for controlling overall request rate

See https://pkg.go.dev/k8s.io/client-go/util/workqueue for implementation details. +kubebuilder:validation:AtMostOneOf=fastSlow;exponentialFailure;bucket

func (*RateLimiterTypes) DeepCopy added in v0.14.0

func (in *RateLimiterTypes) DeepCopy() *RateLimiterTypes

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

func (*RateLimiterTypes) DeepCopyInto added in v0.14.0

func (in *RateLimiterTypes) DeepCopyInto(out *RateLimiterTypes)

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

type RevertCommit

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

	Spec   RevertCommitSpec   `json:"spec,omitempty"`
	Status RevertCommitStatus `json:"status,omitempty"`
}

RevertCommit is the Schema for the revertcommits API

func (*RevertCommit) DeepCopy

func (in *RevertCommit) DeepCopy() *RevertCommit

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

func (*RevertCommit) DeepCopyInto

func (in *RevertCommit) DeepCopyInto(out *RevertCommit)

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

func (*RevertCommit) DeepCopyObject

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

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

type RevertCommitList

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

RevertCommitList contains a list of RevertCommit

func (*RevertCommitList) DeepCopy

func (in *RevertCommitList) DeepCopy() *RevertCommitList

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

func (*RevertCommitList) DeepCopyInto

func (in *RevertCommitList) DeepCopyInto(out *RevertCommitList)

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

func (*RevertCommitList) DeepCopyObject

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

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

type RevertCommitSpec

type RevertCommitSpec struct {

	// Foo is an example field of RevertCommit. Edit revertcommit_types.go to remove/update
	Foo string `json:"foo,omitempty"`
}

RevertCommitSpec defines the desired state of RevertCommit

func (*RevertCommitSpec) DeepCopy

func (in *RevertCommitSpec) DeepCopy() *RevertCommitSpec

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

func (*RevertCommitSpec) DeepCopyInto

func (in *RevertCommitSpec) DeepCopyInto(out *RevertCommitSpec)

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

type RevertCommitStatus

type RevertCommitStatus struct {
}

RevertCommitStatus defines the observed state of RevertCommit

func (*RevertCommitStatus) DeepCopy

func (in *RevertCommitStatus) DeepCopy() *RevertCommitStatus

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

func (*RevertCommitStatus) DeepCopyInto

func (in *RevertCommitStatus) DeepCopyInto(out *RevertCommitStatus)

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

type RevisionReference added in v0.6.0

type RevisionReference struct {
	// Commit contains metadata about the commit that is related in some way to another commit.
	Commit *CommitMetadata `json:"commit,omitempty"`
}

RevisionReference contains a reference to a some information that is related in some way to another commit. For now, it supports only references to a commit. In the future, it may support other types of references.

func (*RevisionReference) DeepCopy added in v0.6.0

func (in *RevisionReference) DeepCopy() *RevisionReference

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

func (*RevisionReference) DeepCopyInto added in v0.6.0

func (in *RevisionReference) DeepCopyInto(out *RevisionReference)

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

type ScmProvider

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

	Spec   ScmProviderSpec   `json:"spec,omitempty"`
	Status ScmProviderStatus `json:"status,omitempty"`
}

ScmProvider is the Schema for the scmproviders API +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*ScmProvider) DeepCopy

func (in *ScmProvider) DeepCopy() *ScmProvider

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

func (*ScmProvider) DeepCopyInto

func (in *ScmProvider) DeepCopyInto(out *ScmProvider)

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

func (*ScmProvider) DeepCopyObject

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

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

func (*ScmProvider) GetConditions added in v0.17.0

func (s *ScmProvider) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the ScmProvider.

func (*ScmProvider) GetSpec added in v0.4.0

func (s *ScmProvider) GetSpec() *ScmProviderSpec

GetSpec returns the ScmProviderSpec for the ScmProvider.

type ScmProviderList

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

ScmProviderList contains a list of ScmProvider

func (*ScmProviderList) DeepCopy

func (in *ScmProviderList) DeepCopy() *ScmProviderList

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

func (*ScmProviderList) DeepCopyInto

func (in *ScmProviderList) DeepCopyInto(out *ScmProviderList)

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

func (*ScmProviderList) DeepCopyObject

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

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

type ScmProviderObjectReference added in v0.4.0

type ScmProviderObjectReference struct {
	// Kind is the type of resource being referenced
	// +kubebuilder:validation:Required
	// +kubebuilder:default:=ScmProvider
	// +kubebuilder:validation:Enum:=ScmProvider;ClusterScmProvider
	Kind string `json:"kind"`
	// Name is the name of the resource being referenced
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

ScmProviderObjectReference is a reference to a SCM provider object.

func (*ScmProviderObjectReference) DeepCopy added in v0.4.0

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

func (*ScmProviderObjectReference) DeepCopyInto added in v0.4.0

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

type ScmProviderSpec

type ScmProviderSpec struct {

	// SecretRef contains the credentials required to auth to a specific provider
	SecretRef *v1.LocalObjectReference `json:"secretRef,omitempty"`

	// GitHub required configuration for GitHub as the SCM provider
	GitHub *GitHub `json:"github,omitempty"`

	// GitLab required configuration for GitLab as the SCM provider
	GitLab *GitLab `json:"gitlab,omitempty"`

	// Forgejo required configuration for Forgejo as the SCM provider
	Forgejo *Forgejo `json:"forgejo,omitempty"`

	// Fake required configuration for Fake as the SCM provider
	Fake *Fake `json:"fake,omitempty"`
}

ScmProviderSpec defines the desired state of ScmProvider +kubebuilder:validation:ExactlyOneOf=github;gitlab;forgejo;fake

func (*ScmProviderSpec) DeepCopy

func (in *ScmProviderSpec) DeepCopy() *ScmProviderSpec

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

func (*ScmProviderSpec) DeepCopyInto

func (in *ScmProviderSpec) DeepCopyInto(out *ScmProviderSpec)

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

type ScmProviderStatus

type ScmProviderStatus struct {

	// Conditions Represents the observations of the current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ScmProviderStatus defines the observed state of ScmProvider

func (*ScmProviderStatus) DeepCopy

func (in *ScmProviderStatus) DeepCopy() *ScmProviderStatus

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

func (*ScmProviderStatus) DeepCopyInto

func (in *ScmProviderStatus) DeepCopyInto(out *ScmProviderStatus)

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

type TimedCommitStatus added in v0.16.0

type TimedCommitStatus struct {
	metav1.TypeMeta `json:",inline"`

	// metadata is a standard object metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// spec defines the desired state of TimedCommitStatus
	// +required
	Spec TimedCommitStatusSpec `json:"spec"`

	// status defines the observed state of TimedCommitStatus
	// +optional
	Status TimedCommitStatusStatus `json:"status,omitempty"`
}

TimedCommitStatus is the Schema for the timedcommitstatuses API +kubebuilder:printcolumn:name="Strategy",type=string,JSONPath=`.spec.promotionStrategyRef.name` +kubebuilder:printcolumn:name="Ready",type=string,JSONPath=`.status.conditions[?(@.type=="Ready")].status`

func (*TimedCommitStatus) DeepCopy added in v0.16.0

func (in *TimedCommitStatus) DeepCopy() *TimedCommitStatus

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

func (*TimedCommitStatus) DeepCopyInto added in v0.16.0

func (in *TimedCommitStatus) DeepCopyInto(out *TimedCommitStatus)

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

func (*TimedCommitStatus) DeepCopyObject added in v0.16.0

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

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

func (*TimedCommitStatus) GetConditions added in v0.16.0

func (tcs *TimedCommitStatus) GetConditions() *[]metav1.Condition

GetConditions returns the conditions of the TimedCommitStatus.

type TimedCommitStatusConfiguration added in v0.16.0

type TimedCommitStatusConfiguration struct {
	// WorkQueue contains the work queue configuration for the TimedCommitStatus controller.
	// This includes requeue duration, maximum concurrent reconciles, and rate limiter settings.
	// +required
	WorkQueue WorkQueue `json:"workQueue"`
}

TimedCommitStatusConfiguration defines the configuration for the TimedCommitStatus controller.

This configuration controls how the TimedCommitStatus controller processes reconciliation requests, including requeue intervals, concurrency limits, and rate limiting behavior.

func (*TimedCommitStatusConfiguration) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusConfiguration) DeepCopyInto added in v0.16.0

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

type TimedCommitStatusEnvironments added in v0.16.0

type TimedCommitStatusEnvironments struct {
	// Branch is the name of the branch/environment you want to gate for the configured duration.
	// +required
	Branch string `json:"branch"`
	// Duration is the time duration to wait before considering the commit status as success.
	// The duration should be in a format accepted by Go's time.ParseDuration function, e.g., "5m", "1h30m".
	// +required
	Duration metav1.Duration `json:"duration"`
}

TimedCommitStatusEnvironments defines the branch/environment and duration to wait before reporting the gate as success.

func (*TimedCommitStatusEnvironments) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusEnvironments) DeepCopyInto added in v0.16.0

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

type TimedCommitStatusEnvironmentsStatus added in v0.16.0

type TimedCommitStatusEnvironmentsStatus struct {
	// Branch is the name of the branch/environment.
	// +required
	Branch string `json:"branch"`

	// Sha is the commit SHA being tracked for this environment.
	// +required
	Sha string `json:"sha"`

	// CommitTime is when the commit was deployed to the active environment.
	// +required
	CommitTime metav1.Time `json:"commitTime"`

	// RequiredDuration is the duration that must elapse before promotion is allowed.
	// If this is updated in the spec with a pending time. The new duration will be calculated from the original CommitTime.
	// Allowing you to extend the duration of an already deployed commit, if the time has not yet elapsed.
	// +required
	RequiredDuration metav1.Duration `json:"requiredDuration"`

	// Phase represents the current phase of the timed gate.
	// +kubebuilder:validation:Enum=pending;success
	// +required
	Phase string `json:"phase"`

	// AtMostDurationRemaining is the maximum amount of time remaining until the gate is satisfied.
	// This is calculated at reconciliation time. When the gate is satisfied (phase=success), this will be 0.
	// +required
	AtMostDurationRemaining metav1.Duration `json:"atMostDurationRemaining"`
}

TimedCommitStatusEnvironmentsStatus defines the observed timing status for a specific environment.

func (*TimedCommitStatusEnvironmentsStatus) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusEnvironmentsStatus) DeepCopyInto added in v0.16.0

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

type TimedCommitStatusList added in v0.16.0

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

TimedCommitStatusList contains a list of TimedCommitStatus

func (*TimedCommitStatusList) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusList) DeepCopyInto added in v0.16.0

func (in *TimedCommitStatusList) DeepCopyInto(out *TimedCommitStatusList)

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

func (*TimedCommitStatusList) DeepCopyObject added in v0.16.0

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

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

type TimedCommitStatusSpec added in v0.16.0

type TimedCommitStatusSpec struct {

	// PromotionStrategyRef is a reference to the promotion strategy that this timed commit status applies to.
	// +required
	PromotionStrategyRef ObjectReference `json:"promotionStrategyRef"`

	// +required
	Environments []TimedCommitStatusEnvironments `json:"environments"`
}

TimedCommitStatusSpec defines the desired state of TimedCommitStatus

func (*TimedCommitStatusSpec) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusSpec) DeepCopyInto added in v0.16.0

func (in *TimedCommitStatusSpec) DeepCopyInto(out *TimedCommitStatusSpec)

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

type TimedCommitStatusStatus added in v0.16.0

type TimedCommitStatusStatus struct {

	// Environments holds the status of each environment being tracked.
	// +listType=map
	// +listMapKey=branch
	// +optional
	Environments []TimedCommitStatusEnvironmentsStatus `json:"environments,omitempty"`

	// Conditions represent the latest available observations of an object's state
	// +listType=map
	// +listMapKey=type
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

TimedCommitStatusStatus defines the observed state of TimedCommitStatus.

func (*TimedCommitStatusStatus) DeepCopy added in v0.16.0

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

func (*TimedCommitStatusStatus) DeepCopyInto added in v0.16.0

func (in *TimedCommitStatusStatus) DeepCopyInto(out *TimedCommitStatusStatus)

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

type URLConfig added in v0.11.0

type URLConfig struct {
	// Template is a go text template and receives .Environment and .ArgoCDCommitStatus variables. A function called urlQueryEscape
	// is available to escape url query parameters. The template can be configured with options to control the behavior
	// during execution if a variable is not present.
	//
	// Example:
	//
	//   {{- $baseURL := "https://dev.argocd.local" -}}
	//   {{- if eq .Environment "environment/development" -}}
	//   {{- $baseURL = "https://dev.argocd.local" -}}
	//   {{- else if eq .Environment "environment/staging" -}}
	//   {{- $baseURL = "https://staging.argocd.local" -}}
	//   {{- else if eq .Environment "environment/production" -}}
	//   {{- $baseURL = "https://prod.argocd.local" -}}
	//   {{- end -}}
	//   {{- $labels := "" -}}
	//   {{- range $key, $value := .ArgoCDCommitStatus.Spec.ApplicationSelector.MatchLabels -}}
	//   {{- $labels = printf "%s%s=%s," $labels $key $value -}}
	//   {{- end -}}
	//   {{ printf "%s/applications?labels=%s" $baseURL (urlQueryEscape $labels) }}
	//
	// +kubebuilder:validation:Optional
	Template string `json:"template,omitempty"`

	// Options sets options for the template. Options are described by
	// strings, either a simple string or "key=value". There can be at
	// most one equals sign in an option string. If the option string
	// is unrecognized or otherwise invalid, Option panics.
	//
	// Known options:
	//
	// missingkey: Control the behavior during execution if a map is
	// indexed with a key that is not present in the map.
	//
	//	"missingkey=default" or "missingkey=invalid"
	//		The default behavior: Do nothing and continue execution.
	//		If printed, the result of the index operation is the string
	//		"<no value>".
	//	"missingkey=zero"
	//		The operation returns the zero value for the map type's element.
	//	"missingkey=error"
	//		Execution stops immediately with an error.
	//
	// +kubebuilder:validation:Optional
	Options []string `json:"options,omitempty"`
}

URLConfig is a template that can be rendered using the Go template engine.

func (*URLConfig) DeepCopy added in v0.11.0

func (in *URLConfig) DeepCopy() *URLConfig

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

func (*URLConfig) DeepCopyInto added in v0.11.0

func (in *URLConfig) DeepCopyInto(out *URLConfig)

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

type WorkQueue added in v0.14.0

type WorkQueue struct {
	// RequeueDuration specifies how frequently resources should be requeued for automatic reconciliation.
	// This creates a periodic reconciliation loop that ensures the desired state is maintained even
	// without external triggers. Format follows Go's time.Duration syntax (e.g., "5m" for 5 minutes).
	// +required
	RequeueDuration metav1.Duration `json:"requeueDuration"`

	// MaxConcurrentReconciles defines the maximum number of concurrent reconcile operations
	// that can run for this controller. Higher values increase throughput but consume more
	// resources. Must be at least 1.
	// +required
	// +Validation:Minimum=1
	MaxConcurrentReconciles int `json:"maxConcurrentReconciles"`

	// RateLimiter defines the rate limiting strategy for the controller's work queue.
	// Rate limiting controls how quickly failed reconciliations are retried and helps
	// prevent overwhelming external APIs or systems.
	// +required
	RateLimiter RateLimiter `json:"rateLimiter"`
}

WorkQueue defines the work queue configuration for a controller.

This configuration directly correlates to parameters used with Kubernetes client-go work queues. It controls how frequently resources are reconciled, how many reconciliations can run concurrently, and how rate limiting is applied to prevent overwhelming external systems.

See https://pkg.go.dev/k8s.io/client-go/util/workqueue for implementation details.

func (*WorkQueue) DeepCopy added in v0.14.0

func (in *WorkQueue) DeepCopy() *WorkQueue

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

func (*WorkQueue) DeepCopyInto added in v0.14.0

func (in *WorkQueue) DeepCopyInto(out *WorkQueue)

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