Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the promoter v1alpha1 API group +kubebuilder:object:generate=true +groupName=promoter.argoproj.io
Index ¶
- Constants
- Variables
- type ApplicationsSelected
- type ArgoCDCommitStatus
- type ArgoCDCommitStatusConfiguration
- type ArgoCDCommitStatusList
- type ArgoCDCommitStatusSpec
- type ArgoCDCommitStatusStatus
- type Bucket
- type ChangeRequestPolicyCommitStatusPhase
- type ChangeTransferPolicy
- type ChangeTransferPolicyConfiguration
- type ChangeTransferPolicyList
- type ChangeTransferPolicySpec
- type ChangeTransferPolicyStatus
- type ClusterScmProvider
- func (in *ClusterScmProvider) DeepCopy() *ClusterScmProvider
- func (in *ClusterScmProvider) DeepCopyInto(out *ClusterScmProvider)
- func (in *ClusterScmProvider) DeepCopyObject() runtime.Object
- func (s *ClusterScmProvider) GetConditions() *[]metav1.Condition
- func (s *ClusterScmProvider) GetSpec() *ScmProviderSpec
- type ClusterScmProviderList
- type CommitBranchState
- type CommitBranchStateHistoryProposed
- type CommitConfiguration
- type CommitMetadata
- type CommitShaState
- type CommitStatus
- type CommitStatusConfiguration
- type CommitStatusList
- type CommitStatusPhase
- type CommitStatusSelector
- type CommitStatusSpec
- type CommitStatusStatus
- type ControllerConfiguration
- type ControllerConfigurationList
- type ControllerConfigurationSpec
- type ControllerConfigurationStatus
- type Environment
- type EnvironmentStatus
- type ExponentialFailure
- type Fake
- type FakeRepo
- type FastSlow
- type Forgejo
- type ForgejoRepo
- type GenericScmProvider
- type GitHub
- type GitHubRepo
- type GitLab
- type GitLabRepo
- type GitRepository
- type GitRepositoryList
- type GitRepositorySpec
- type GitRepositoryStatus
- type HealthyDryShas
- type History
- type ObjectReference
- type PromotionStrategy
- type PromotionStrategyConfiguration
- type PromotionStrategyList
- type PromotionStrategySpec
- type PromotionStrategyStatus
- type PullRequest
- type PullRequestCommonStatus
- type PullRequestConfiguration
- type PullRequestList
- type PullRequestSpec
- type PullRequestState
- type PullRequestStatus
- type PullRequestTemplate
- type RateLimiter
- type RateLimiterTypes
- type RevertCommit
- type RevertCommitList
- type RevertCommitSpec
- type RevertCommitStatus
- type RevisionReference
- type ScmProvider
- type ScmProviderList
- type ScmProviderObjectReference
- type ScmProviderSpec
- type ScmProviderStatus
- type TimedCommitStatus
- type TimedCommitStatusConfiguration
- type TimedCommitStatusEnvironments
- type TimedCommitStatusEnvironmentsStatus
- type TimedCommitStatusList
- type TimedCommitStatusSpec
- type TimedCommitStatusStatus
- type URLConfig
- type WorkQueue
Constants ¶
const ChangeTransferPolicyLabel = "promoter.argoproj.io/change-transfer-policy"
ChangeTransferPolicyLabel the change transfer policy which the proposed commit is associated with.
const ClusterScmProviderFinalizer = "clusterscmprovider.promoter.argoproj.io/finalizer"
ClusterScmProviderFinalizer prevents deletion of ClusterScmProvider while GitRepositories reference it
const ClusterScmProviderSecretFinalizer = "clusterscmprovider.promoter.argoproj.io/secret-finalizer"
ClusterScmProviderSecretFinalizer prevents deletion of Secret while ClusterScmProvider references it
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
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
const EnvironmentLabel = "promoter.argoproj.io/environment"
EnvironmentLabel the environment branch for the proposed commit
const GitRepositoryFinalizer = "gitrepository.promoter.argoproj.io/finalizer"
GitRepositoryFinalizer prevents deletion of GitRepository while PullRequests reference it
const PreviousEnvProposedCommitPrefixNameLabel = "promoter-previous-env-"
PreviousEnvProposedCommitPrefixNameLabel is the prefix name for copied proposed commits
const PreviousEnvironmentCommitStatusKey = "promoter-previous-environment"
PreviousEnvironmentCommitStatusKey the commit status key name used to indicate the previous environment health
const PromotionStrategyLabel = "promoter.argoproj.io/promotion-strategy"
PromotionStrategyLabel the promotion strategy which the proposed commit is associated with
const PullRequestFinalizer = "pullrequest.promoter.argoproj.io/finalizer"
PullRequestFinalizer prevents deletion of PullRequest until the PR is closed in the SCM
const ReconcileAtAnnotation = "promoter.argoproj.io/reconcile-at"
ReconcileAtAnnotation is the annotation used to indicate when the webhook triggered a reconcile
const ScmProviderFinalizer = "scmprovider.promoter.argoproj.io/finalizer"
ScmProviderFinalizer prevents deletion of ScmProvider while GitRepositories reference it
const ScmProviderSecretFinalizer = "scmprovider.promoter.argoproj.io/secret-finalizer"
ScmProviderSecretFinalizer prevents deletion of Secret while ScmProvider references it
Variables ¶
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 )
var ClusterScmProviderKind = reflect.TypeOf(ClusterScmProvider{}).Name()
ClusterScmProviderKind is the kind of the ClusterScmProvider resource.
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 ¶
func (in *ApplicationsSelected) DeepCopy() *ApplicationsSelected
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
func (in *ArgoCDCommitStatusConfiguration) DeepCopy() *ArgoCDCommitStatusConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgoCDCommitStatusConfiguration.
func (*ArgoCDCommitStatusConfiguration) DeepCopyInto ¶ added in v0.14.0
func (in *ArgoCDCommitStatusConfiguration) DeepCopyInto(out *ArgoCDCommitStatusConfiguration)
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 ¶
func (in *ArgoCDCommitStatusList) DeepCopy() *ArgoCDCommitStatusList
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 ¶
func (in *ArgoCDCommitStatusSpec) DeepCopy() *ArgoCDCommitStatusSpec
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 ¶
func (in *ArgoCDCommitStatusStatus) DeepCopy() *ArgoCDCommitStatusStatus
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bucket.
func (*Bucket) DeepCopyInto ¶ added in v0.14.0
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 ¶
func (in *ChangeRequestPolicyCommitStatusPhase) DeepCopy() *ChangeRequestPolicyCommitStatusPhase
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChangeRequestPolicyCommitStatusPhase.
func (*ChangeRequestPolicyCommitStatusPhase) DeepCopyInto ¶
func (in *ChangeRequestPolicyCommitStatusPhase) DeepCopyInto(out *ChangeRequestPolicyCommitStatusPhase)
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 ¶
func (in *ChangeTransferPolicy) DeepCopy() *ChangeTransferPolicy
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
func (in *ChangeTransferPolicyConfiguration) DeepCopy() *ChangeTransferPolicyConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChangeTransferPolicyConfiguration.
func (*ChangeTransferPolicyConfiguration) DeepCopyInto ¶ added in v0.14.0
func (in *ChangeTransferPolicyConfiguration) DeepCopyInto(out *ChangeTransferPolicyConfiguration)
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 ¶
func (in *ChangeTransferPolicyList) DeepCopy() *ChangeTransferPolicyList
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 ¶
func (in *ChangeTransferPolicySpec) DeepCopy() *ChangeTransferPolicySpec
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 ¶
func (in *ChangeTransferPolicyStatus) DeepCopy() *ChangeTransferPolicyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChangeTransferPolicyStatus.
func (*ChangeTransferPolicyStatus) DeepCopyInto ¶
func (in *ChangeTransferPolicyStatus) DeepCopyInto(out *ChangeTransferPolicyStatus)
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
func (in *ClusterScmProviderList) DeepCopy() *ClusterScmProviderList
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
func (in *CommitBranchStateHistoryProposed) DeepCopy() *CommitBranchStateHistoryProposed
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommitBranchStateHistoryProposed.
func (*CommitBranchStateHistoryProposed) DeepCopyInto ¶ added in v0.11.0
func (in *CommitBranchStateHistoryProposed) DeepCopyInto(out *CommitBranchStateHistoryProposed)
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
func (in *CommitStatusConfiguration) DeepCopy() *CommitStatusConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommitStatusConfiguration.
func (*CommitStatusConfiguration) DeepCopyInto ¶ added in v0.14.0
func (in *CommitStatusConfiguration) DeepCopyInto(out *CommitStatusConfiguration)
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 ¶
func (in *CommitStatusSelector) DeepCopy() *CommitStatusSelector
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
func (in *ControllerConfiguration) DeepCopy() *ControllerConfiguration
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
func (in *ControllerConfigurationList) DeepCopy() *ControllerConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigurationList.
func (*ControllerConfigurationList) DeepCopyInto ¶ added in v0.2.0
func (in *ControllerConfigurationList) DeepCopyInto(out *ControllerConfigurationList)
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
func (in *ControllerConfigurationSpec) DeepCopy() *ControllerConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigurationSpec.
func (*ControllerConfigurationSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ControllerConfigurationSpec) DeepCopyInto(out *ControllerConfigurationSpec)
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
func (in *ControllerConfigurationStatus) DeepCopy() *ControllerConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfigurationStatus.
func (*ControllerConfigurationStatus) DeepCopyInto ¶ added in v0.2.0
func (in *ControllerConfigurationStatus) DeepCopyInto(out *ControllerConfigurationStatus)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Fake.
func (*Fake) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FakeRepo.
func (*FakeRepo) DeepCopyInto ¶ added in v0.1.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FastSlow.
func (*FastSlow) DeepCopyInto ¶ added in v0.14.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Forgejo.
func (*Forgejo) DeepCopyInto ¶ added in v0.6.0
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHub.
func (*GitHub) DeepCopyInto ¶
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitLab.
func (*GitLab) DeepCopyInto ¶ added in v0.1.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new History.
func (*History) DeepCopyInto ¶ added in v0.11.0
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
func (in *PromotionStrategyConfiguration) DeepCopy() *PromotionStrategyConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromotionStrategyConfiguration.
func (*PromotionStrategyConfiguration) DeepCopyInto ¶ added in v0.14.0
func (in *PromotionStrategyConfiguration) DeepCopyInto(out *PromotionStrategyConfiguration)
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 ¶
func (in *PromotionStrategyList) DeepCopy() *PromotionStrategyList
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 ¶
func (in *PromotionStrategySpec) DeepCopy() *PromotionStrategySpec
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 ¶
func (in *PromotionStrategyStatus) DeepCopy() *PromotionStrategyStatus
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
func (in *PullRequestCommonStatus) DeepCopy() *PullRequestCommonStatus
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
func (in *PullRequestConfiguration) DeepCopy() *PullRequestConfiguration
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
func (in *ScmProviderObjectReference) DeepCopy() *ScmProviderObjectReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScmProviderObjectReference.
func (*ScmProviderObjectReference) DeepCopyInto ¶ added in v0.4.0
func (in *ScmProviderObjectReference) DeepCopyInto(out *ScmProviderObjectReference)
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
func (in *TimedCommitStatusConfiguration) DeepCopy() *TimedCommitStatusConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimedCommitStatusConfiguration.
func (*TimedCommitStatusConfiguration) DeepCopyInto ¶ added in v0.16.0
func (in *TimedCommitStatusConfiguration) DeepCopyInto(out *TimedCommitStatusConfiguration)
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
func (in *TimedCommitStatusEnvironments) DeepCopy() *TimedCommitStatusEnvironments
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimedCommitStatusEnvironments.
func (*TimedCommitStatusEnvironments) DeepCopyInto ¶ added in v0.16.0
func (in *TimedCommitStatusEnvironments) DeepCopyInto(out *TimedCommitStatusEnvironments)
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
func (in *TimedCommitStatusEnvironmentsStatus) DeepCopy() *TimedCommitStatusEnvironmentsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimedCommitStatusEnvironmentsStatus.
func (*TimedCommitStatusEnvironmentsStatus) DeepCopyInto ¶ added in v0.16.0
func (in *TimedCommitStatusEnvironmentsStatus) DeepCopyInto(out *TimedCommitStatusEnvironmentsStatus)
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
func (in *TimedCommitStatusList) DeepCopy() *TimedCommitStatusList
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
func (in *TimedCommitStatusSpec) DeepCopy() *TimedCommitStatusSpec
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
func (in *TimedCommitStatusStatus) DeepCopy() *TimedCommitStatusStatus
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new URLConfig.
func (*URLConfig) DeepCopyInto ¶ added in v0.11.0
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
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkQueue.
func (*WorkQueue) DeepCopyInto ¶ added in v0.14.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- argocdcommitstatus_types.go
- changetransferpolicy_types.go
- clusterscmprovider_types.go
- commitstatus_types.go
- common_types.go
- constants.go
- controllerconfiguration_types.go
- gitrepository_types.go
- groupversion_info.go
- promotionstrategy_types.go
- pullrequest_types.go
- revertcommit_types.go
- scmprovider_types.go
- timedcommitstatus_types.go
- zz_generated.deepcopy.go