Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the fluxcd v1 API group +kubebuilder:object:generate=true +groupName=fluxcd.controlplane.io
Index ¶
- Constants
- Variables
- func AllUserActions() []string
- func FluxGroupFor(kind string) (*schema.GroupKind, error)
- func IsFluxAPI(apiVersion string) bool
- func IsUserAction(verb string) bool
- func RepositoryID(repo string) string
- type AgentCatalog
- type AgentCatalogInventoryEntry
- type AgentCatalogSkill
- type AgentCatalogSource
- type AgentCatalogSpec
- type AgentCatalogStatus
- type AgentCatalogVerify
- type AnonymousAuthenticationSpec
- type AuthenticationSpec
- type ClaimsProcessorSpec
- type Cluster
- type ClusterInfo
- type CommonMetadata
- type Component
- type ComponentImage
- type Dependency
- type Distribution
- type FluxComponentStatus
- type FluxDistributionStatus
- type FluxInstance
- func (in *FluxInstance) DeepCopy() *FluxInstance
- func (in *FluxInstance) DeepCopyInto(out *FluxInstance)
- func (in *FluxInstance) DeepCopyObject() runtime.Object
- func (in *FluxInstance) GetArtifactInterval() time.Duration
- func (in *FluxInstance) GetCluster() Cluster
- func (in *FluxInstance) GetComponents() []string
- func (in *FluxInstance) GetConditions() []metav1.Condition
- func (in *FluxInstance) GetDistribution() Distribution
- func (in *FluxInstance) GetInterval() time.Duration
- func (in *FluxInstance) GetLastHandledForceRequestStatus() *string
- func (in *FluxInstance) GetLastHandledReconcileRequest() string
- func (in *FluxInstance) GetMigrateResources() bool
- func (in *FluxInstance) GetTimeout() time.Duration
- func (in *FluxInstance) GetWait() bool
- func (in *FluxInstance) IsDisabled() bool
- func (in *FluxInstance) IsShardingStorageEnabled() bool
- func (in *FluxInstance) SetConditions(conditions []metav1.Condition)
- func (in *FluxInstance) SetLastHandledReconcileAt(value string)
- type FluxInstanceList
- type FluxInstanceSpec
- type FluxInstanceStatus
- type FluxKindInfo
- type FluxObject
- type FluxReconcilerStats
- type FluxReconcilerStatus
- type FluxReport
- func (in *FluxReport) DeepCopy() *FluxReport
- func (in *FluxReport) DeepCopyInto(out *FluxReport)
- func (in *FluxReport) DeepCopyObject() runtime.Object
- func (in *FluxReport) GetConditions() []metav1.Condition
- func (in *FluxReport) GetInterval() time.Duration
- func (in *FluxReport) IsDisabled() bool
- func (in *FluxReport) SetConditions(conditions []metav1.Condition)
- func (in *FluxReport) SetLastHandledReconcileAt(value string)
- type FluxReportList
- type FluxReportSpec
- type FluxReportStatus
- type FluxSyncStatus
- type History
- func (in History) DeepCopy() History
- func (in History) DeepCopyInto(out *History)
- func (h History) Latest() *Snapshot
- func (h History) Len() int
- func (h History) Less(i, j int) bool
- func (h History) Swap(i, j int)
- func (h *History) Upsert(digest string, timestamp time.Time, duration time.Duration, status string, ...)
- type ImpersonationSpec
- type InputProvider
- type InputProviderReference
- type InputStrategySpec
- type Kustomize
- type NextSchedule
- type OAuth2AuthenticationSpec
- type OIDCIdentity
- type OperatorInfo
- type ProfileSpec
- type ResourceInventory
- type ResourceRef
- type ResourceSet
- func (in *ResourceSet) DeepCopy() *ResourceSet
- func (in *ResourceSet) DeepCopyInto(out *ResourceSet)
- func (in *ResourceSet) DeepCopyObject() runtime.Object
- func (in *ResourceSet) GetConditions() []metav1.Condition
- func (in *ResourceSet) GetIncludeEmptyProviders() bool
- func (in *ResourceSet) GetInputStrategy() string
- func (in *ResourceSet) GetInputs() ([]map[string]any, error)
- func (in *ResourceSet) GetInterval() time.Duration
- func (in *ResourceSet) GetTimeout() time.Duration
- func (in *ResourceSet) HasSteps() bool
- func (in *ResourceSet) IsDisabled() bool
- func (in *ResourceSet) IsForceEnabled() bool
- func (in *ResourceSet) SetConditions(conditions []metav1.Condition)
- func (in *ResourceSet) SetLastHandledReconcileAt(value string)
- type ResourceSetInput
- type ResourceSetInputFilter
- type ResourceSetInputProvider
- func (in *ResourceSetInputProvider) DeepCopy() *ResourceSetInputProvider
- func (in *ResourceSetInputProvider) DeepCopyInto(out *ResourceSetInputProvider)
- func (in *ResourceSetInputProvider) DeepCopyObject() runtime.Object
- func (in *ResourceSetInputProvider) GetConditions() []metav1.Condition
- func (in *ResourceSetInputProvider) GetDefaultInputs() (map[string]any, error)
- func (in *ResourceSetInputProvider) GetFilterLimit() int
- func (in *ResourceSetInputProvider) GetInputs() ([]map[string]any, error)
- func (in *ResourceSetInputProvider) GetInterval() time.Duration
- func (in *ResourceSetInputProvider) GetLastHandledForceRequestStatus() *string
- func (in ResourceSetInputProvider) GetLastHandledReconcileRequest() string
- func (in *ResourceSetInputProvider) GetTimeout() time.Duration
- func (in *ResourceSetInputProvider) IsDisabled() bool
- func (in *ResourceSetInputProvider) SetConditions(conditions []metav1.Condition)
- func (in *ResourceSetInputProvider) SetLastHandledReconcileAt(value string)
- type ResourceSetInputProviderList
- type ResourceSetInputProviderSpec
- type ResourceSetInputProviderStatus
- type ResourceSetInputSkip
- type ResourceSetList
- type ResourceSetSpec
- type ResourceSetStatus
- type ResourceSetStep
- type Schedule
- type SearchSpec
- type Sharding
- type Snapshot
- type Storage
- type Sync
- type UserActionsSpec
- type ValidationSpec
- type VariableSpec
- type WebConfig
- type WebConfigSpec
Constants ¶
const ( // AgentCatalogKind is the kind of the Agent Catalog API. AgentCatalogKind = "Catalog" // AgentCatalogVerifyProviderCosign is the cosign verification provider. AgentCatalogVerifyProviderCosign = "cosign" )
const ( EnabledValue = "enabled" DisabledValue = "disabled" ReconciliationDisabledReason = "ReconciliationDisabled" ReconciliationDisabledMessage = "Reconciliation is disabled" HealthCheckExpr = "status.conditions.filter(c, c.type == 'Ready').all(c, c.status == 'True' && c.observedGeneration == metadata.generation)" )
const ( FluxKustomizeGroup = "kustomize.toolkit.fluxcd.io" FluxKustomizationKind = "Kustomization" FluxHelmGroup = "helm.toolkit.fluxcd.io" FluxHelmReleaseKind = "HelmRelease" FluxSourceGroup = "source.toolkit.fluxcd.io" FluxGitRepositoryKind = "GitRepository" FluxBucketKind = "Bucket" FluxOCIRepositoryKind = "OCIRepository" FluxHelmRepositoryKind = "HelmRepository" FluxHelmChartKind = "HelmChart" FluxExternalArtifactKind = "ExternalArtifact" FluxNotificationGroup = "notification.toolkit.fluxcd.io" FluxAlertKind = "Alert" FluxAlertProviderKind = "Provider" FluxReceiverKind = "Receiver" FluxImageGroup = "image.toolkit.fluxcd.io" FluxImageRepositoryKind = "ImageRepository" FluxImagePolicyKind = "ImagePolicy" FluxImageUpdateAutomationKind = "ImageUpdateAutomation" FluxSourceExtensionsGroup = "source.extensions.fluxcd.io" FluxArtifactGeneratorKind = "ArtifactGenerator" )
Flux APIs Kind and Group constants.
const ( FluxOperator = "flux-operator" FluxSourceController = "source-controller" FluxKustomizeController = "kustomize-controller" FluxHelmController = "helm-controller" FluxNotificationController = "notification-controller" FluxImageReflectorController = "image-reflector-controller" FluxImageAutomationController = "image-automation-controller" FluxSourceWatcher = "source-watcher" )
Flux controller names.
const ( DefaultInstanceName = "flux" DefaultNamespace = "flux-system" FluxInstanceKind = "FluxInstance" OutdatedReason = "OutdatedVersion" )
const ( ResourceSetInputProviderKind = "ResourceSetInputProvider" InputProviderStatic = "Static" InputProviderGitHubBranch = "GitHubBranch" InputProviderGitHubTag = "GitHubTag" InputProviderGitHubPullRequest = "GitHubPullRequest" InputProviderGitLabBranch = "GitLabBranch" InputProviderGitLabTag = "GitLabTag" InputProviderGitLabMergeRequest = "GitLabMergeRequest" InputProviderGitLabEnvironment = "GitLabEnvironment" InputProviderAzureDevOpsBranch = "AzureDevOpsBranch" InputProviderAzureDevOpsPullRequest = "AzureDevOpsPullRequest" InputProviderAzureDevOpsTag = "AzureDevOpsTag" InputProviderAWSCodeCommitBranch = "AWSCodeCommitBranch" InputProviderAWSCodeCommitTag = "AWSCodeCommitTag" InputProviderAWSCodeCommitPullRequest = "AWSCodeCommitPullRequest" InputProviderGiteaBranch = "GiteaBranch" InputProviderGiteaTag = "GiteaTag" InputProviderGiteaPullRequest = "GiteaPullRequest" InputProviderOCIArtifactTag = "OCIArtifactTag" InputProviderACRArtifactTag = "ACRArtifactTag" InputProviderECRArtifactTag = "ECRArtifactTag" InputProviderGARArtifactTag = "GARArtifactTag" InputProviderExternalService = "ExternalService" ReasonInvalidDefaultValues = "InvalidDefaultValues" ReasonInvalidExportedInputs = "InvalidExportedInputs" ReasonInvalidSpec = "InvalidSpec" DefaultResourceSetInputProviderFilterLimit = 100 )
const ( ReasonInvalidSchedule = "InvalidSchedule" ReasonSkippedDueToSchedule = "SkippedDueToSchedule" )
const ( // WebConfigKind is the kind of the Flux Status Page configuration API. WebConfigKind = "Config" // AuthenticationTypeAnonymous is the name of the Anonymous authentication type. AuthenticationTypeAnonymous = "Anonymous" // AuthenticationTypeOAuth2 is the name of the OAuth2 authentication type. AuthenticationTypeOAuth2 = "OAuth2" // OAuth2ProviderOIDC is the name of the OIDC OAuth2 provider. OAuth2ProviderOIDC = "OIDC" // UserActionReconcile is the reconcile user action for Flux resources. UserActionReconcile = "reconcile" // UserActionSuspend is the suspend user action for Flux resources. UserActionSuspend = "suspend" // UserActionResume is the resume user action for Flux resources. UserActionResume = "resume" // UserActionDownload is the download user action for Flux artifacts. UserActionDownload = "download" // UserActionRestart is the restart user action for workloads // (Deployments, StatefulSets, DaemonSets, CronJobs). UserActionRestart = "restart" // UserActionDelete is the delete user action for resources // managed by Flux. UserActionDelete = "delete" // UserActionDeletePods is the delete user action for pods of workloads // managed by Flux. This constant is not used for RBAC checks, and is // only used for sinalizing to the frontend that the user can delete // pods of a workload. Should not be added to the userActions map. UserActionDeletePods = "deletePods" // UserActionViewLogs is the view-logs user action for pods of workloads // managed by Flux. Like UserActionDeletePods, this constant is not a // custom RBAC verb: it only signals to the frontend that the user is // allowed to read pod logs (the native "get" verb on the "pods/log" // subresource). It must not be added to the userActions map. UserActionViewLogs = "logs" // UserActionsAccessImpersonated configures GitOps actions to be performed // by impersonating the user's Kubernetes RBAC identity. This is the default // and requires the user to hold both the custom per-action verb and the // native Kubernetes verbs (e.g. patch) required by the action. UserActionsAccessImpersonated = "Impersonated" // UserActionsAccessFineGrained configures GitOps actions to be performed // using the Flux Operator Web UI's own privileges, requiring the user to // hold only the custom per-action verb (e.g. suspend). This enables // stricter least-privilege setups. UserActionsAccessFineGrained = "FineGrained" )
const (
FluxReportKind = "FluxReport"
)
const (
// MaxHistorySize defines the maximum number of snapshots to keep in history.
MaxHistorySize = 5
)
const (
ResourceSetKind = "ResourceSet"
)
Variables ¶
var ( Finalizer = fmt.Sprintf("%s/finalizer", GroupVersion.Group) ReconcileAnnotation = fmt.Sprintf("%s/reconcile", GroupVersion.Group) ReconcileEveryAnnotation = fmt.Sprintf("%s/reconcileEvery", GroupVersion.Group) ReconcileArtifactEveryAnnotation = fmt.Sprintf("%s/reconcileArtifactEvery", GroupVersion.Group) ReconcileTimeoutAnnotation = fmt.Sprintf("%s/reconcileTimeout", GroupVersion.Group) PruneAnnotation = fmt.Sprintf("%s/prune", GroupVersion.Group) ForceAnnotation = fmt.Sprintf("%s/force", GroupVersion.Group) RecreateOnFailureAnnotation = fmt.Sprintf("%s/recreateOnFailure", GroupVersion.Group) RevisionAnnotation = fmt.Sprintf("%s/revision", GroupVersion.Group) CopyFromAnnotation = fmt.Sprintf("%s/copyFrom", GroupVersion.Group) ConvertKubeConfigFromAnnotation = fmt.Sprintf("%s/convertKubeConfigFrom", GroupVersion.Group) ChecksumFromAnnotation = fmt.Sprintf("%s/checksumFrom", GroupVersion.Group) ChecksumAnnotation = fmt.Sprintf("%s/checksum", GroupVersion.Group) SuspendedByAnnotation = fmt.Sprintf("%s/suspendedBy", GroupVersion.Group) CreatedByAnnotation = fmt.Sprintf("%s/createdBy", GroupVersion.Group) )
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "fluxcd.controlplane.io", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &groupVersionBuilder{} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = schemeBuilder.AddToScheme )
var ( GroupOwnerLabelResourceSet = fmt.Sprintf("resourceset.%s", GroupVersion.Group) OwnerLabelResourceSetName = fmt.Sprintf("%s/name", GroupOwnerLabelResourceSet) OwnerLabelResourceSetNamespace = fmt.Sprintf("%s/namespace", GroupOwnerLabelResourceSet) InputStrategyFlatten = "Flatten" InputStrategyPermute = "Permute" )
var ( // AllAuthenticationTypes lists all possible authentication types. AllAuthenticationTypes = []string{ AuthenticationTypeAnonymous, AuthenticationTypeOAuth2, } // AllUserActionsAccessModes lists all possible user actions access modes. AllUserActionsAccessModes = []string{ UserActionsAccessImpersonated, UserActionsAccessFineGrained, } )
var ( // AgentGroupVersion is the group and version of the Agent Catalog API. AgentGroupVersion = schema.GroupVersion{Group: "agent.fluxcd.controlplane.io", Version: "v1"} )
var ControllerCRDKinds = map[string][]string{ FluxSourceController: {FluxGitRepositoryKind, FluxOCIRepositoryKind, FluxBucketKind, FluxHelmRepositoryKind, FluxHelmChartKind, FluxExternalArtifactKind}, FluxKustomizeController: {FluxKustomizationKind}, FluxHelmController: {FluxHelmReleaseKind}, FluxNotificationController: {FluxAlertKind, FluxAlertProviderKind, FluxReceiverKind}, FluxImageReflectorController: {FluxImageRepositoryKind, FluxImagePolicyKind}, FluxImageAutomationController: {FluxImageUpdateAutomationKind}, FluxSourceWatcher: {FluxArtifactGeneratorKind}, }
ControllerCRDKinds maps each Flux controller to the CRD kinds it manages. The kind names reference existing constants; use FluxGroupFor() to get the API group and FindFluxKindInfo() to get the plural for each kind.
var FluxKinds = []FluxKindInfo{ {Name: FluxKustomizationKind, Plural: "kustomizations", ShortName: "ks", Reconcilable: true}, {Name: FluxHelmReleaseKind, Plural: "helmreleases", ShortName: "hr", Reconcilable: true}, {Name: FluxGitRepositoryKind, Plural: "gitrepositories", ShortName: "gitrepo", Reconcilable: true}, {Name: FluxOCIRepositoryKind, Plural: "ocirepositories", ShortName: "ocirepo", Reconcilable: true}, {Name: FluxBucketKind, Plural: "buckets", ShortName: "bucket", Reconcilable: true}, {Name: FluxHelmRepositoryKind, Plural: "helmrepositories", ShortName: "helmrepo", Reconcilable: true}, {Name: FluxHelmChartKind, Plural: "helmcharts", ShortName: "hc", Reconcilable: true}, {Name: FluxArtifactGeneratorKind, Plural: "artifactgenerators", ShortName: "ag", Reconcilable: true}, {Name: FluxExternalArtifactKind, Plural: "externalartifacts", ShortName: "ea", Reconcilable: false}, {Name: FluxAlertKind, Plural: "alerts", ShortName: "alert", Reconcilable: false}, {Name: FluxAlertProviderKind, Plural: "providers", ShortName: "provider", Reconcilable: false}, {Name: FluxReceiverKind, Plural: "receivers", ShortName: "receiver", Reconcilable: true}, {Name: FluxImageRepositoryKind, Plural: "imagerepositories", ShortName: "imgrepo", Reconcilable: true}, {Name: FluxImagePolicyKind, Plural: "imagepolicies", ShortName: "imgpol", Reconcilable: true}, {Name: FluxImageUpdateAutomationKind, Plural: "imageupdateautomations", ShortName: "imgauto", Reconcilable: true}, }
FluxKinds is a list of all supported Flux kinds and their properties.
var FluxOperatorKinds = []FluxKindInfo{ {Name: FluxInstanceKind, Plural: "fluxinstances", ShortName: "instance", Reconcilable: true}, {Name: FluxReportKind, Plural: "fluxreports", ShortName: "report", Reconcilable: true}, {Name: ResourceSetKind, Plural: "resourcesets", ShortName: "rset", Reconcilable: true}, {Name: ResourceSetInputProviderKind, Plural: "resourcesetinputproviders", ShortName: "rsip", Reconcilable: true}, }
FluxOperatorKinds is a list of all supported Flux Operator kinds and their properties.
var ( // WebConfigGroupVersion is group and version of the Flux Status Page configuration API. WebConfigGroupVersion = schema.GroupVersion{Group: "web.fluxcd.controlplane.io", Version: "v1"} )
Functions ¶
func AllUserActions ¶ added in v0.41.0
func AllUserActions() []string
AllUserActions returns all supported user action verbs, sorted, derived from the userActions source of truth.
func FluxGroupFor ¶ added in v0.25.0
FluxGroupFor returns the GroupKind for the given kind.
func IsFluxAPI ¶ added in v0.25.0
IsFluxAPI checks if the given API version or API group is part of the Flux API group.
func IsUserAction ¶ added in v0.51.0
IsUserAction reports whether the given verb is a supported user action.
func RepositoryID ¶ added in v0.44.0
RepositoryID returns the Adler-32 checksum of a repository URL as a hex string.
Types ¶
type AgentCatalog ¶ added in v0.44.0
type AgentCatalog struct {
metav1.TypeMeta `json:",inline"`
// Spec holds the catalog configuration.
// +required
Spec AgentCatalogSpec `json:"spec"`
// Status holds the catalog status.
// +optional
Status AgentCatalogStatus `json:"status,omitempty"`
}
AgentCatalog is the Agent skills catalog.
func (*AgentCatalog) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalog) DeepCopy() *AgentCatalog
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalog.
func (*AgentCatalog) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalog) DeepCopyInto(out *AgentCatalog)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentCatalogInventoryEntry ¶ added in v0.44.0
type AgentCatalogInventoryEntry struct {
// ID is the Adler-32 checksum of the source repository URL.
// +required
ID string `json:"id"`
// URL is the OCI artifact URL including tag.
// +required
URL string `json:"url"`
// Digest is the OCI artifact digest.
// +required
Digest string `json:"digest"`
// LastUpdateAt is the timestamp of the last update.
// +required
LastUpdateAt string `json:"lastUpdateAt"`
// Annotations holds the OCI artifact manifest annotations.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Skills is the list of skills provided by this source.
// +optional
Skills []AgentCatalogSkill `json:"skills,omitempty"`
}
AgentCatalogInventoryEntry holds the status of an installed skill source.
func (*AgentCatalogInventoryEntry) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogInventoryEntry) DeepCopy() *AgentCatalogInventoryEntry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogInventoryEntry.
func (*AgentCatalogInventoryEntry) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogInventoryEntry) DeepCopyInto(out *AgentCatalogInventoryEntry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentCatalogInventoryEntry) SkillNames ¶ added in v0.44.0
func (e *AgentCatalogInventoryEntry) SkillNames() []string
SkillNames returns a slice of skill names from the inventory entry.
type AgentCatalogSkill ¶ added in v0.44.0
type AgentCatalogSkill struct {
// Name is the skill name.
// +required
Name string `json:"name"`
// Checksum is the directory hash of the installed skill contents.
// +required
Checksum string `json:"checksum"`
}
AgentCatalogSkill holds the metadata of an installed skill.
func (*AgentCatalogSkill) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogSkill) DeepCopy() *AgentCatalogSkill
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogSkill.
func (*AgentCatalogSkill) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogSkill) DeepCopyInto(out *AgentCatalogSkill)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentCatalogSource ¶ added in v0.44.0
type AgentCatalogSource struct {
// Repository is the OCI repository URL.
// +required
Repository string `json:"repository"`
// Tag is the OCI artifact tag.
// +required
Tag string `json:"tag"`
// Verify holds the signature verification configuration.
// +optional
Verify *AgentCatalogVerify `json:"verify,omitempty"`
// TargetAgents is the list of agent IDs for which skill symlinks are managed.
// +optional
TargetAgents []string `json:"targetAgents,omitempty"`
// TargetSkills is the list of skill names to install from this source.
// When empty, all skills from the artifact are installed.
// +optional
TargetSkills []string `json:"targetSkills,omitempty"`
}
AgentCatalogSource holds the configuration for an OCI skills source.
func (*AgentCatalogSource) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogSource) DeepCopy() *AgentCatalogSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogSource.
func (*AgentCatalogSource) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogSource) DeepCopyInto(out *AgentCatalogSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentCatalogSpec ¶ added in v0.44.0
type AgentCatalogSpec struct {
// Sources is the list of OCI repositories providing skills.
// +optional
Sources []AgentCatalogSource `json:"sources,omitempty"`
}
AgentCatalogSpec holds the catalog configuration.
func (*AgentCatalogSpec) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogSpec) DeepCopy() *AgentCatalogSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogSpec.
func (*AgentCatalogSpec) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogSpec) DeepCopyInto(out *AgentCatalogSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentCatalogSpec) FindSource ¶ added in v0.44.0
func (s *AgentCatalogSpec) FindSource(repo string) (*AgentCatalogSource, int)
FindSource returns the source matching the given repository and its index, or nil and -1 if not found.
type AgentCatalogStatus ¶ added in v0.44.0
type AgentCatalogStatus struct {
// Inventory is the list of installed skill sources.
// +optional
Inventory []AgentCatalogInventoryEntry `json:"inventory,omitempty"`
}
AgentCatalogStatus holds the catalog status.
func (*AgentCatalogStatus) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogStatus) DeepCopy() *AgentCatalogStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogStatus.
func (*AgentCatalogStatus) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogStatus) DeepCopyInto(out *AgentCatalogStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentCatalogStatus) FindInventoryEntry ¶ added in v0.44.0
func (s *AgentCatalogStatus) FindInventoryEntry(repo string) (*AgentCatalogInventoryEntry, int)
FindInventoryEntry returns the inventory entry matching the given repository and its index, or -1 if not found.
type AgentCatalogVerify ¶ added in v0.44.0
type AgentCatalogVerify struct {
// Provider is the verification provider (e.g. "cosign").
// +required
Provider string `json:"provider"`
// MatchOIDCIdentity is the list of OIDC identity matchers.
// +optional
MatchOIDCIdentity []OIDCIdentity `json:"matchOIDCIdentity,omitempty"`
}
AgentCatalogVerify holds the signature verification configuration.
func (*AgentCatalogVerify) DeepCopy ¶ added in v0.44.0
func (in *AgentCatalogVerify) DeepCopy() *AgentCatalogVerify
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentCatalogVerify.
func (*AgentCatalogVerify) DeepCopyInto ¶ added in v0.44.0
func (in *AgentCatalogVerify) DeepCopyInto(out *AgentCatalogVerify)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AnonymousAuthenticationSpec ¶ added in v0.41.0
type AnonymousAuthenticationSpec struct {
// Username is used for Kubernetes User RBAC impersonation.
// +optional
Username string `json:"username"`
// Groups is used for Kubernetes Group RBAC impersonation.
// +optional
Groups []string `json:"groups"`
}
AnonymousAuthenticationSpec holds the Anonymous authentication configuration. At least one of the fields must be set.
func (*AnonymousAuthenticationSpec) Configured ¶ added in v0.41.0
func (a *AnonymousAuthenticationSpec) Configured() bool
Configured checks if the AnonymousAuthenticationSpec is configured.
func (*AnonymousAuthenticationSpec) DeepCopy ¶ added in v0.41.0
func (in *AnonymousAuthenticationSpec) DeepCopy() *AnonymousAuthenticationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnonymousAuthenticationSpec.
func (*AnonymousAuthenticationSpec) DeepCopyInto ¶ added in v0.41.0
func (in *AnonymousAuthenticationSpec) DeepCopyInto(out *AnonymousAuthenticationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthenticationSpec ¶ added in v0.41.0
type AuthenticationSpec struct {
// Type is the authentication type.
// +kubebuilder:validation:Enum=Anonymous;OAuth2
// +required
Type string `json:"type"`
// Anonymous holds the Anonymous authentication configuration.
// +optional
Anonymous *AnonymousAuthenticationSpec `json:"anonymous"`
// OAuth2 holds the OAuth2 authentication configuration.
// +optional
OAuth2 *OAuth2AuthenticationSpec `json:"oauth2"`
// SessionDuration is the duration of the user session.
// Defaults to one week.
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
// +optional
SessionDuration *metav1.Duration `json:"sessionDuration"`
// UserCacheSize is the size of the user cache in number of users.
// Defaults to 100.
// +optional
UserCacheSize int `json:"userCacheSize"`
}
AuthenticationSpec holds the Flux Status Page authentication configuration.
func (*AuthenticationSpec) DeepCopy ¶ added in v0.41.0
func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.
func (*AuthenticationSpec) DeepCopyInto ¶ added in v0.41.0
func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClaimsProcessorSpec ¶ added in v0.41.0
type ClaimsProcessorSpec struct {
// Variables is a list of CEL expressions to extract information from the ID token claims
// into named variables that can be reused in other expressions, e.g. "variables.username".
// +optional
Variables []VariableSpec `json:"variables"`
// Validations is a list of CEL expressions that validate the ID token claims and extracted
// variables. Each expression must return the type bool. If the expression evaluates to false,
// the message is returned as an error.
// +optional
Validations []ValidationSpec `json:"validations"`
// Profile contains CEL expressions to extract user profile information from the ID token
// claims and extracted variables for populating the user profile.
// Defaults to ProfileSpec{
// Name: "has(claims.name) ? claims.name : (has(claims.email) ? claims.email : ”)",
// }
// +optional
Profile *ProfileSpec `json:"profile"`
// Impersonation is a pair of CEL expressions that extract the username and groups
// from the ID token claims and extracted variables for Kubernetes RBAC impersonation.
// The username expression must return the type string, while the groups expression
// must return the type []string.
// Defaults to ImpersonationSpec{
// Username: "has(claims.email) ? claims.email : ”",
// Groups: "has(claims.groups) ? claims.groups : []",
// }
// +optional
Impersonation *ImpersonationSpec `json:"impersonation"`
}
ClaimsProcessorSpec holds the configuration for processing claims with CEL expressions.
func (*ClaimsProcessorSpec) DeepCopy ¶ added in v0.41.0
func (in *ClaimsProcessorSpec) DeepCopy() *ClaimsProcessorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClaimsProcessorSpec.
func (*ClaimsProcessorSpec) DeepCopyInto ¶ added in v0.41.0
func (in *ClaimsProcessorSpec) DeepCopyInto(out *ClaimsProcessorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Cluster ¶
type Cluster struct {
// Domain is the cluster domain used for generating the FQDN of services.
// Defaults to 'cluster.local'.
// +kubebuilder:default:=cluster.local
// +optional
Domain string `json:"domain,omitempty"`
// Multitenant enables the multitenancy lockdown. Defaults to false.
// +kubebuilder:default:=false
// +optional
Multitenant bool `json:"multitenant,omitempty"`
// MultitenantWorkloadIdentity enables the multitenancy lockdown for
// workload identity. Defaults to false.
// +kubebuilder:default:=false
// +optional
MultitenantWorkloadIdentity bool `json:"multitenantWorkloadIdentity,omitempty"`
// TenantDefaultServiceAccount is the name of the service account
// to use as default when the multitenant lockdown is enabled, for
// kustomize-controller and helm-controller.
// This field will also be used for multitenant workload identity
// lockdown for source-controller, notification-controller,
// image-reflector-controller and image-automation-controller.
// Defaults to the 'default' service account from the tenant namespace.
// +optional
TenantDefaultServiceAccount string `json:"tenantDefaultServiceAccount,omitempty"`
// TenantDefaultDecryptionServiceAccount is the name of the service account
// to use as default for kustomize-controller SOPS decryption when the
// multitenant lockdown for workload identity is enabled. Defaults to the
// 'default' service account from the tenant namespace.
// +optional
TenantDefaultDecryptionServiceAccount string `json:"tenantDefaultDecryptionServiceAccount,omitempty"`
// TenantDefaultKubeConfigServiceAccount is the name of the service account
// to use as default for kustomize-controller and helm-controller remote
// cluster access via spec.kubeConfig.configMapRef when the multitenant
// lockdown for workload identity is enabled. Defaults to the 'default'
// service account from the tenant namespace.
// +optional
TenantDefaultKubeConfigServiceAccount string `json:"tenantDefaultKubeConfigServiceAccount,omitempty"`
// ObjectLevelWorkloadIdentity enables the feature gate
// required for object-level workload identity.
// This feature is only available in Flux v2.6.0 and later.
// +optional
ObjectLevelWorkloadIdentity bool `json:"objectLevelWorkloadIdentity,omitempty"`
// NetworkPolicy restricts network access to the current namespace.
// Defaults to true.
// +kubebuilder:default:=true
// +optional
NetworkPolicy bool `json:"networkPolicy"`
// Type specifies the distro of the Kubernetes cluster.
// Defaults to 'kubernetes'.
// +kubebuilder:validation:Enum:=kubernetes;openshift;aws;azure;gcp
// +kubebuilder:default:=kubernetes
// +optional
Type string `json:"type,omitempty"`
// Size defines the vertical scaling profile of the Flux controllers.
// The size is used to determine the concurrency and CPU/Memory limits for the Flux controllers.
// Accepted values are: 'small', 'medium' and 'large'.
// +kubebuilder:validation:Enum:=small;medium;large
// +optional
Size string `json:"size,omitempty"`
}
Cluster is the specification for the Kubernetes cluster. +kubebuilder:validation:XValidation:rule="(has(self.objectLevelWorkloadIdentity) && self.objectLevelWorkloadIdentity) || !has(self.multitenantWorkloadIdentity) || !self.multitenantWorkloadIdentity", message=".objectLevelWorkloadIdentity must be set to true when .multitenantWorkloadIdentity is set to true"
func (*Cluster) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (*Cluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterInfo ¶ added in v0.21.0
type ClusterInfo struct {
// ServerVersion is the version of the Kubernetes API server.
// +required
ServerVersion string `json:"serverVersion"`
// Platform is the os/arch of the Kubernetes control plane.
// +required
Platform string `json:"platform"`
// Nodes is the number of nodes in the Kubernetes cluster.
// +optional
Nodes int `json:"nodes,omitempty"`
}
ClusterInfo defines the version information of the Kubernetes cluster.
func (*ClusterInfo) DeepCopy ¶ added in v0.21.0
func (in *ClusterInfo) DeepCopy() *ClusterInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInfo.
func (*ClusterInfo) DeepCopyInto ¶ added in v0.21.0
func (in *ClusterInfo) DeepCopyInto(out *ClusterInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CommonMetadata ¶ added in v0.11.0
type CommonMetadata struct {
// Annotations to be added to the object's metadata.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels to be added to the object's metadata.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
CommonMetadata defines the common labels and annotations.
func (*CommonMetadata) DeepCopy ¶ added in v0.11.0
func (in *CommonMetadata) DeepCopy() *CommonMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CommonMetadata.
func (*CommonMetadata) DeepCopyInto ¶ added in v0.11.0
func (in *CommonMetadata) DeepCopyInto(out *CommonMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Component ¶
type Component string
Component is the name of a controller to install. +kubebuilder:validation:Enum:=source-controller;kustomize-controller;helm-controller;notification-controller;image-reflector-controller;image-automation-controller;source-watcher
type ComponentImage ¶ added in v0.1.0
type ComponentImage struct {
// Name of the component.
// +required
Name string `json:"name"`
// Repository address of the container image.
// +required
Repository string `json:"repository"`
// Tag of the container image.
// +required
Tag string `json:"tag"`
// Digest of the container image.
// +optional
Digest string `json:"digest,omitempty"`
}
ComponentImage represents a container image used by a component.
func (*ComponentImage) DeepCopy ¶ added in v0.1.0
func (in *ComponentImage) DeepCopy() *ComponentImage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentImage.
func (*ComponentImage) DeepCopyInto ¶ added in v0.1.0
func (in *ComponentImage) DeepCopyInto(out *ComponentImage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Dependency ¶ added in v0.14.0
type Dependency struct {
// APIVersion of the resource to depend on.
// +required
APIVersion string `json:"apiVersion"`
// Kind of the resource to depend on.
// +required
Kind string `json:"kind"`
// Name of the resource to depend on.
// +required
Name string `json:"name"`
// Namespace of the resource to depend on.
// +optional
Namespace string `json:"namespace,omitempty"`
// Ready checks if the resource Ready status condition is true.
// +optional
Ready bool `json:"ready,omitempty"`
// ReadyExpr checks if the resource satisfies the given CEL expression.
// The expression replaces the default readiness check and
// is only evaluated if Ready is set to 'true'.
// +optional
ReadyExpr string `json:"readyExpr,omitempty"`
}
Dependency defines a ResourceSet dependency on a Kubernetes resource.
func (*Dependency) DeepCopy ¶ added in v0.14.0
func (in *Dependency) DeepCopy() *Dependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dependency.
func (*Dependency) DeepCopyInto ¶ added in v0.14.0
func (in *Dependency) DeepCopyInto(out *Dependency)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Distribution ¶
type Distribution struct {
// Version semver expression e.g. '2.x', '2.3.x'.
// +required
Version string `json:"version"`
// Registry address to pull the distribution images from
// e.g. 'ghcr.io/fluxcd'.
// +required
Registry string `json:"registry"`
// Variant specifies the Flux distribution flavor stored
// in the registry.
// +kubebuilder:validation:Enum=upstream-alpine;enterprise-alpine;enterprise-distroless;enterprise-distroless-fips
// +optional
Variant string `json:"variant,omitempty"`
// ImagePullSecret is the name of the Kubernetes secret
// to use for pulling images.
// +optional
ImagePullSecret string `json:"imagePullSecret,omitempty"`
// Artifact is the URL to the OCI artifact containing
// the latest Kubernetes manifests for the distribution,
// e.g. 'oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests:latest'.
// +kubebuilder:validation:Pattern="^oci://.*$"
// +optional
Artifact string `json:"artifact,omitempty"`
// ArtifactPullSecret is the name of the Kubernetes secret
// to use for pulling the Kubernetes manifests for the distribution specified in the Artifact field.
// +optional
ArtifactPullSecret string `json:"artifactPullSecret,omitempty"`
}
Distribution specifies the version and container registry to pull images from.
func (*Distribution) DeepCopy ¶
func (in *Distribution) DeepCopy() *Distribution
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Distribution.
func (*Distribution) DeepCopyInto ¶
func (in *Distribution) DeepCopyInto(out *Distribution)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxComponentStatus ¶ added in v0.6.0
type FluxComponentStatus struct {
// Name is the name of the Flux component.
// +required
Name string `json:"name"`
// Ready is the readiness status of the Flux component.
// +required
Ready bool `json:"ready"`
// Status is a human-readable message indicating details
// about the Flux component observed state.
// +required
Status string `json:"status"`
// Image is the container image of the Flux component.
// +required
Image string `json:"image"`
}
FluxComponentStatus defines the observed state of a Flux component.
func (*FluxComponentStatus) DeepCopy ¶ added in v0.6.0
func (in *FluxComponentStatus) DeepCopy() *FluxComponentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxComponentStatus.
func (*FluxComponentStatus) DeepCopyInto ¶ added in v0.6.0
func (in *FluxComponentStatus) DeepCopyInto(out *FluxComponentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxDistributionStatus ¶ added in v0.6.0
type FluxDistributionStatus struct {
// Entitlement is the entitlement verification status.
// +required
Entitlement string `json:"entitlement"`
// Status is a human-readable message indicating details
// about the distribution observed state.
// +required
Status string `json:"status"`
// Version is the version of the Flux instance.
// +optional
Version string `json:"version,omitempty"`
// ManagedBy is the name of the operator managing the Flux instance.
// +optional
ManagedBy string `json:"managedBy,omitempty"`
}
FluxDistributionStatus defines the version information of the Flux instance.
func (*FluxDistributionStatus) DeepCopy ¶ added in v0.6.0
func (in *FluxDistributionStatus) DeepCopy() *FluxDistributionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxDistributionStatus.
func (*FluxDistributionStatus) DeepCopyInto ¶ added in v0.6.0
func (in *FluxDistributionStatus) DeepCopyInto(out *FluxDistributionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxInstance ¶
type FluxInstance struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec FluxInstanceSpec `json:"spec,omitempty"`
Status FluxInstanceStatus `json:"status,omitempty"`
}
FluxInstance is the Schema for the fluxinstances API +kubebuilder:validation:XValidation:rule="self.metadata.name == 'flux'", message="the only accepted name for a FluxInstance is 'flux'"
func (*FluxInstance) DeepCopy ¶
func (in *FluxInstance) DeepCopy() *FluxInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxInstance.
func (*FluxInstance) DeepCopyInto ¶
func (in *FluxInstance) DeepCopyInto(out *FluxInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FluxInstance) DeepCopyObject ¶
func (in *FluxInstance) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FluxInstance) GetArtifactInterval ¶ added in v0.12.0
func (in *FluxInstance) GetArtifactInterval() time.Duration
GetArtifactInterval returns the interval at which the distribution artifact should be reconciled. If no interval is set, the default is 10 minutes.
func (*FluxInstance) GetCluster ¶
func (in *FluxInstance) GetCluster() Cluster
GetCluster returns the cluster specification with defaults.
func (*FluxInstance) GetComponents ¶
func (in *FluxInstance) GetComponents() []string
GetComponents returns the components to install with defaults.
func (*FluxInstance) GetConditions ¶
func (in *FluxInstance) GetConditions() []metav1.Condition
GetConditions returns the status conditions of the object.
func (*FluxInstance) GetDistribution ¶
func (in *FluxInstance) GetDistribution() Distribution
GetDistribution returns the distribution specification with defaults.
func (*FluxInstance) GetInterval ¶
func (in *FluxInstance) GetInterval() time.Duration
GetInterval returns the interval at which the object should be reconciled. If no interval is set, the default is 60 minutes.
func (*FluxInstance) GetLastHandledForceRequestStatus ¶ added in v0.31.0
func (in *FluxInstance) GetLastHandledForceRequestStatus() *string
GetLastHandledForceRequestStatus returns the last handled force request status.
func (*FluxInstance) GetLastHandledReconcileRequest ¶ added in v0.31.0
func (in *FluxInstance) GetLastHandledReconcileRequest() string
GetLastHandledReconcileRequest returns the last handled reconcile request.
func (*FluxInstance) GetMigrateResources ¶ added in v0.10.0
func (in *FluxInstance) GetMigrateResources() bool
GetMigrateResources returns the migration configuration with defaults.
func (*FluxInstance) GetTimeout ¶
func (in *FluxInstance) GetTimeout() time.Duration
GetTimeout returns the timeout for the reconciliation process. If no timeout is set, the default is 5 minutes.
func (*FluxInstance) GetWait ¶ added in v0.10.0
func (in *FluxInstance) GetWait() bool
GetWait returns the wait configuration with defaults.
func (*FluxInstance) IsDisabled ¶ added in v0.3.0
func (in *FluxInstance) IsDisabled() bool
IsDisabled returns true if the object has the reconcile annotation set to 'disabled'.
func (*FluxInstance) IsShardingStorageEnabled ¶ added in v0.23.0
func (in *FluxInstance) IsShardingStorageEnabled() bool
IsShardingStorageEnabled returns true if 'spec.sharding.storage' is set to 'persistent'.
func (*FluxInstance) SetConditions ¶
func (in *FluxInstance) SetConditions(conditions []metav1.Condition)
SetConditions sets the status conditions on the object.
func (*FluxInstance) SetLastHandledReconcileAt ¶ added in v0.23.0
func (in *FluxInstance) SetLastHandledReconcileAt(value string)
SetLastHandledReconcileAt sets the last handled reconcile time in the status.
type FluxInstanceList ¶
type FluxInstanceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []FluxInstance `json:"items"`
}
FluxInstanceList contains a list of FluxInstance
func (*FluxInstanceList) DeepCopy ¶
func (in *FluxInstanceList) DeepCopy() *FluxInstanceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxInstanceList.
func (*FluxInstanceList) DeepCopyInto ¶
func (in *FluxInstanceList) DeepCopyInto(out *FluxInstanceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FluxInstanceList) DeepCopyObject ¶
func (in *FluxInstanceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FluxInstanceSpec ¶
type FluxInstanceSpec struct {
// Distribution specifies the version and container registry to pull images from.
// +required
Distribution Distribution `json:"distribution"`
// Components is the list of controllers to install.
// Defaults to the core Flux controllers:
// - source-controller
// - kustomize-controller
// - helm-controller
// - notification-controller
// +optional
Components []Component `json:"components,omitempty"`
// CommonMetadata specifies the common labels and annotations that are
// applied to all resources. Any existing label or annotation will be
// overridden if its key matches a common one.
// +optional
CommonMetadata *CommonMetadata `json:"commonMetadata,omitempty"`
// Cluster holds the specification of the Kubernetes cluster.
// +optional
Cluster *Cluster `json:"cluster,omitempty"`
// Sharding holds the specification of the sharding configuration.
// +optional
Sharding *Sharding `json:"sharding,omitempty"`
// Storage holds the specification of the source-controller
// persistent volume claim.
// +optional
Storage *Storage `json:"storage,omitempty"`
// Kustomize holds a set of patches that can be applied to the
// Flux installation, to customize the way Flux operates.
// +optional
Kustomize *Kustomize `json:"kustomize,omitempty"`
// Wait instructs the controller to check the health of all the reconciled
// resources. Defaults to true.
// +kubebuilder:default:=true
// +optional
Wait *bool `json:"wait,omitempty"`
// MigrateResources instructs the controller to migrate the Flux custom resources
// from the previous version to the latest API version specified in the CRD.
// Defaults to true.
// +kubebuilder:default:=true
// +optional
MigrateResources *bool `json:"migrateResources,omitempty"`
// Sync specifies the source for the cluster sync operation.
// When set, a Flux source (GitRepository, OCIRepository or Bucket)
// and Flux Kustomization are created to sync the cluster state
// with the source repository.
// +optional
Sync *Sync `json:"sync,omitempty"`
}
FluxInstanceSpec defines the desired state of FluxInstance +kubebuilder:validation:XValidation:rule="!has(self.sharding) || !has(self.sharding.storage) || self.sharding.storage != 'persistent' || has(self.storage)",message=".spec.storage must be set when .spec.sharding.storage is 'persistent'"
func (*FluxInstanceSpec) DeepCopy ¶
func (in *FluxInstanceSpec) DeepCopy() *FluxInstanceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxInstanceSpec.
func (*FluxInstanceSpec) DeepCopyInto ¶
func (in *FluxInstanceSpec) DeepCopyInto(out *FluxInstanceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxInstanceStatus ¶
type FluxInstanceStatus struct {
meta.ReconcileRequestStatus `json:",inline"`
meta.ForceRequestStatus `json:",inline"`
// Conditions contains the readiness conditions of the object.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// LastAttemptedRevision is the version and digest of the
// distribution config that was last attempted to reconcile.
// +optional
LastAttemptedRevision string `json:"lastAttemptedRevision,omitempty"`
// LastAppliedRevision is the version and digest of the
// distribution config that was last reconcile.
// +optional
LastAppliedRevision string `json:"lastAppliedRevision,omitempty"`
// LastArtifactRevision is the digest of the last pulled
// distribution artifact.
// +optional
LastArtifactRevision string `json:"lastArtifactRevision,omitempty"`
// Components contains the container images used by the components.
// +optional
Components []ComponentImage `json:"components,omitempty"`
// Inventory contains a list of Kubernetes resource object references
// last applied on the cluster.
// +optional
Inventory *ResourceInventory `json:"inventory,omitempty"`
// History contains the reconciliation history of the FluxInstance
// as a list of snapshots ordered by the last reconciled time.
History History `json:"history,omitempty"`
}
FluxInstanceStatus defines the observed state of FluxInstance
func (*FluxInstanceStatus) DeepCopy ¶
func (in *FluxInstanceStatus) DeepCopy() *FluxInstanceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxInstanceStatus.
func (*FluxInstanceStatus) DeepCopyInto ¶
func (in *FluxInstanceStatus) DeepCopyInto(out *FluxInstanceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxKindInfo ¶ added in v0.30.0
type FluxKindInfo struct {
// Name is the singular name of the resource kind.
Name string
// Plural is the plural name of the resource kind used for RBAC.
Plural string
// ShortName is a short alias for the resource kind.
ShortName string
// Reconcilable indicates if the resource kind supports reconciliation operations.
Reconcilable bool
}
FluxKindInfo holds information about a Flux resource kind.
func FindFluxKindInfo ¶ added in v0.39.0
func FindFluxKindInfo(kind string) (*FluxKindInfo, error)
FindFluxKindInfo searches for a FluxKindInfo in a case-insensitive way. It matches both Name and ShortName and returns the corresponding FluxKindInfo. Returns an error if the kind is not found in the fluxKinds list.
func (*FluxKindInfo) DeepCopy ¶ added in v0.30.0
func (in *FluxKindInfo) DeepCopy() *FluxKindInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxKindInfo.
func (*FluxKindInfo) DeepCopyInto ¶ added in v0.30.0
func (in *FluxKindInfo) DeepCopyInto(out *FluxKindInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxObject ¶ added in v0.23.0
type FluxObject interface {
client.Object
// GetConditions returns a slice of metav1.Condition.
GetConditions() []metav1.Condition
// SetConditions sets the status conditions on the object.
SetConditions([]metav1.Condition)
// SetLastHandledReconcileAt sets the last handled reconcile time in the status.
SetLastHandledReconcileAt(value string)
// IsDisabled returns true if the object has the reconcile annotation set to 'disabled'.
IsDisabled() bool
// GetInterval returns the interval at which the object should be reconciled.
GetInterval() time.Duration
}
FluxObject is the interface that all Flux objects must implement.
+k8s:deepcopy-gen=false
type FluxReconcilerStats ¶ added in v0.6.0
type FluxReconcilerStats struct {
// Running is the number of reconciled
// resources in the Running state.
// +required
Running int `json:"running"`
// Failing is the number of reconciled
// resources in the Failing state and not Suspended.
// +required
Failing int `json:"failing"`
// Suspended is the number of reconciled
// resources in the Suspended state.
// +required
Suspended int `json:"suspended"`
// TotalSize is the total size of the artifacts in storage.
// +optional
TotalSize string `json:"totalSize,omitempty"`
}
FluxReconcilerStats defines the reconcile statistics.
func (*FluxReconcilerStats) DeepCopy ¶ added in v0.6.0
func (in *FluxReconcilerStats) DeepCopy() *FluxReconcilerStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReconcilerStats.
func (*FluxReconcilerStats) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReconcilerStats) DeepCopyInto(out *FluxReconcilerStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxReconcilerStatus ¶ added in v0.6.0
type FluxReconcilerStatus struct {
// APIVersion is the API version of the Flux resource.
// +required
APIVersion string `json:"apiVersion"`
// Kind is the kind of the Flux resource.
// +required
Kind string `json:"kind"`
// Stats is the reconcile statics of the Flux resource kind.
// +optional
Stats FluxReconcilerStats `json:"stats,omitempty"`
}
FluxReconcilerStatus defines the observed state of a Flux reconciler.
func (*FluxReconcilerStatus) DeepCopy ¶ added in v0.6.0
func (in *FluxReconcilerStatus) DeepCopy() *FluxReconcilerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReconcilerStatus.
func (*FluxReconcilerStatus) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReconcilerStatus) DeepCopyInto(out *FluxReconcilerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxReport ¶ added in v0.6.0
type FluxReport struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec FluxReportSpec `json:"spec,omitempty"`
Status FluxReportStatus `json:"status,omitempty"`
}
FluxReport is the Schema for the fluxreports API. +kubebuilder:validation:XValidation:rule="self.metadata.name == 'flux'", message="the only accepted name for a FluxReport is 'flux'"
func (*FluxReport) DeepCopy ¶ added in v0.6.0
func (in *FluxReport) DeepCopy() *FluxReport
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReport.
func (*FluxReport) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReport) DeepCopyInto(out *FluxReport)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FluxReport) DeepCopyObject ¶ added in v0.6.0
func (in *FluxReport) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*FluxReport) GetConditions ¶ added in v0.6.0
func (in *FluxReport) GetConditions() []metav1.Condition
GetConditions returns the status conditions of the object.
func (*FluxReport) GetInterval ¶ added in v0.6.0
func (in *FluxReport) GetInterval() time.Duration
GetInterval returns the interval at which the object should be reconciled. If the annotation is not set, it returns 0.
func (*FluxReport) IsDisabled ¶ added in v0.6.0
func (in *FluxReport) IsDisabled() bool
IsDisabled returns true if the object has the reconcile annotation set to 'disabled'.
func (*FluxReport) SetConditions ¶ added in v0.6.0
func (in *FluxReport) SetConditions(conditions []metav1.Condition)
SetConditions sets the status conditions on the object.
func (*FluxReport) SetLastHandledReconcileAt ¶ added in v0.23.0
func (in *FluxReport) SetLastHandledReconcileAt(value string)
SetLastHandledReconcileAt sets the last handled reconcile time in the status.
type FluxReportList ¶ added in v0.6.0
type FluxReportList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []FluxReport `json:"items"`
}
FluxReportList contains a list of FluxReport.
func (*FluxReportList) DeepCopy ¶ added in v0.6.0
func (in *FluxReportList) DeepCopy() *FluxReportList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReportList.
func (*FluxReportList) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReportList) DeepCopyInto(out *FluxReportList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FluxReportList) DeepCopyObject ¶ added in v0.6.0
func (in *FluxReportList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type FluxReportSpec ¶ added in v0.6.0
type FluxReportSpec struct {
// Distribution is the version information of the Flux installation.
// +required
Distribution FluxDistributionStatus `json:"distribution"`
// Cluster is the version information of the Kubernetes cluster.
// +optional
Cluster *ClusterInfo `json:"cluster,omitempty"`
// Operator is the version information of the Flux Operator.
// +optional
Operator *OperatorInfo `json:"operator,omitempty"`
// ComponentsStatus is the status of the Flux controller deployments.
// +optional
ComponentsStatus []FluxComponentStatus `json:"components,omitempty"`
// ReconcilersStatus is the list of Flux reconcilers and
// their statistics grouped by API kind.
// +optional
ReconcilersStatus []FluxReconcilerStatus `json:"reconcilers,omitempty"`
// SyncStatus is the status of the cluster sync
// Source and Kustomization resources.
// +optional
SyncStatus *FluxSyncStatus `json:"sync,omitempty"`
}
FluxReportSpec defines the observed state of a Flux installation.
func (*FluxReportSpec) DeepCopy ¶ added in v0.6.0
func (in *FluxReportSpec) DeepCopy() *FluxReportSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReportSpec.
func (*FluxReportSpec) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReportSpec) DeepCopyInto(out *FluxReportSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxReportStatus ¶ added in v0.6.0
type FluxReportStatus struct {
meta.ReconcileRequestStatus `json:",inline"`
// Conditions contains the readiness conditions of the object.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
FluxReportStatus defines the readiness of a FluxReport.
func (*FluxReportStatus) DeepCopy ¶ added in v0.6.0
func (in *FluxReportStatus) DeepCopy() *FluxReportStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxReportStatus.
func (*FluxReportStatus) DeepCopyInto ¶ added in v0.6.0
func (in *FluxReportStatus) DeepCopyInto(out *FluxReportStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FluxSyncStatus ¶ added in v0.6.0
type FluxSyncStatus struct {
// ID is the identifier of the sync.
// +required
ID string `json:"id"`
// Path is the kustomize path of the sync.
// +optional
Path string `json:"path,omitempty"`
// Ready is the readiness status of the sync.
// +required
Ready bool `json:"ready"`
// Status is a human-readable message indicating details
// about the sync observed state.
// +required
Status string `json:"status"`
// Source is the URL of the source repository.
// +optional
Source string `json:"source,omitempty"`
}
FluxSyncStatus defines the observed state of the cluster sync.
func (*FluxSyncStatus) DeepCopy ¶ added in v0.6.0
func (in *FluxSyncStatus) DeepCopy() *FluxSyncStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxSyncStatus.
func (*FluxSyncStatus) DeepCopyInto ¶ added in v0.6.0
func (in *FluxSyncStatus) DeepCopyInto(out *FluxSyncStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type History ¶ added in v0.28.0
type History []Snapshot
History represents a collection of snapshots that tracks the reconciliation history of a group of resources, automatically sorted by last reconciled timestamp.
func (History) DeepCopy ¶ added in v0.28.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new History.
func (History) DeepCopyInto ¶ added in v0.28.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (History) Latest ¶ added in v0.28.0
Latest returns the most recent snapshot from the history. Returns nil if the history is empty.
func (History) Less ¶ added in v0.28.0
Less reports whether the element with index i should sort before the element with index j. Sorts by LastReconciled in descending order (most recent first).
func (*History) Upsert ¶ added in v0.28.0
func (h *History) Upsert(digest string, timestamp time.Time, duration time.Duration, status string, metadata map[string]string)
Upsert adds a new snapshot to the history or updates an existing one with the same digest and status. The most recent snapshot is moved to the front of the array. When adding new snapshots, the history is automatically truncated to MaxHistorySize.
type ImpersonationSpec ¶ added in v0.41.0
type ImpersonationSpec struct {
// Username is a CEL expression that extracts the username from the ID token claims
// and extracted variables. This expression must return the type string.
// Defaults to "has(claims.email) ? claims.email : ”".
// +optional
Username string `json:"username"`
// Groups is a CEL expression that extracts the groups from the ID token claims
// and extracted variables. This expression must return the type []string.
// Defaults to "has(claims.groups) ? claims.groups : []".
// +optional
Groups string `json:"groups"`
}
ImpersonationSpec holds CEL expressions for extracting Kubernetes RBAC impersonation information. At least one of the fields must be set.
func (*ImpersonationSpec) DeepCopy ¶ added in v0.41.0
func (in *ImpersonationSpec) DeepCopy() *ImpersonationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpersonationSpec.
func (*ImpersonationSpec) DeepCopyInto ¶ added in v0.41.0
func (in *ImpersonationSpec) DeepCopyInto(out *ImpersonationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InputProvider ¶ added in v0.14.0
type InputProvider interface {
GetInputs() ([]map[string]any, error)
GetNamespace() string
GetName() string
GroupVersionKind() schema.GroupVersionKind
}
InputProvider is the interface that the ResourceSet input providers must implement.
+k8s:deepcopy-gen=false
type InputProviderReference ¶ added in v0.14.0
type InputProviderReference struct {
// APIVersion of the input provider resource.
// When not set, the APIVersion of the ResourceSet is used.
// +kubebuilder:validation:Enum=fluxcd.controlplane.io/v1
// +optional
APIVersion string `json:"apiVersion,omitempty"`
// Kind of the input provider resource.
// +kubebuilder:validation:Enum=ResourceSetInputProvider
// +optional
Kind string `json:"kind,omitempty"`
// Name of the input provider resource. Cannot be set
// when the Selector field is set.
// +optional
Name string `json:"name,omitempty"`
// Selector is a label selector to filter the input provider resources
// as an alternative to the Name field.
// +optional
Selector *metav1.LabelSelector `json:"selector,omitempty"`
}
InputProviderReference defines a reference to an input provider resource in the same namespace as the ResourceSet. +kubebuilder:validation:XValidation:rule="has(self.name) || has(self.selector)", message="at least one of name or selector must be set for input provider references" +kubebuilder:validation:XValidation:rule="!has(self.name) || !has(self.selector)", message="cannot set both name and selector for input provider references"
func (*InputProviderReference) DeepCopy ¶ added in v0.14.0
func (in *InputProviderReference) DeepCopy() *InputProviderReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputProviderReference.
func (*InputProviderReference) DeepCopyInto ¶ added in v0.14.0
func (in *InputProviderReference) DeepCopyInto(out *InputProviderReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InputStrategySpec ¶ added in v0.29.0
type InputStrategySpec struct {
// Name defines how the inputs are combined when multiple
// input provider objects are used. Supported values are:
// - Flatten: all inputs sets from all input provider objects are
// flattened into a single list of input sets.
// - Permute: all inputs sets from all input provider objects are
// combined using a Cartesian product, resulting in a list of input sets
// that contains every possible combination of input values.
// For example, if provider A has inputs [{x: 1}, {x: 2}] and provider B has
// inputs [{y: "a"}, {y: "b"}], the resulting input sets will be:
// [{x: 1, y: "a"}, {x: 1, y: "b"}, {x: 2, y: "a"}, {x: 2, y: "b"}].
// This strategy can lead to a large number of input sets and should be
// used with caution. Users should use filtering features from
// ResourceSetInputProvider to limit the amount of exported inputs.
// +kubebuilder:validation:Enum=Flatten;Permute
// +required
Name string `json:"name,omitempty"`
// IncludeEmptyProviders controls how input providers that export no
// inputs are treated. Only applies when Name is Permute. When true, if
// any provider has zero inputs the resulting permutation set is empty
// (mathematically correct Cartesian product behavior). When false or
// unset (default), providers with zero inputs are silently skipped and
// the remaining providers still permute among themselves.
// +optional
IncludeEmptyProviders bool `json:"includeEmptyProviders,omitempty"`
}
InputStrategySpec defines how the inputs are combined when multiple input provider objects are used. Defaults to flattening all inputs from all providers into a single list of input sets. +kubebuilder:validation:XValidation:rule="!has(self.includeEmptyProviders) || self.name == 'Permute'",message="includeEmptyProviders only applies when name is Permute"
func (*InputStrategySpec) DeepCopy ¶ added in v0.29.0
func (in *InputStrategySpec) DeepCopy() *InputStrategySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputStrategySpec.
func (*InputStrategySpec) DeepCopyInto ¶ added in v0.29.0
func (in *InputStrategySpec) DeepCopyInto(out *InputStrategySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Kustomize ¶
type Kustomize struct {
// Strategic merge and JSON patches, defined as inline YAML objects,
// capable of targeting objects based on kind, label and annotation selectors.
// +optional
Patches []kustomize.Patch `json:"patches,omitempty"`
}
Kustomize holds a set of patches that can be applied to the Flux installation, to customize the way Flux operates.
func (*Kustomize) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kustomize.
func (*Kustomize) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NextSchedule ¶ added in v0.23.0
type NextSchedule struct {
// Schedule has the configuration of the next schedule.
Schedule `json:",inline"`
// When is the next time the schedule will run.
// +required
When metav1.Time `json:"when"`
}
NextSchedule defines the next time a schedule will run.
func (*NextSchedule) DeepCopy ¶ added in v0.23.0
func (in *NextSchedule) DeepCopy() *NextSchedule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NextSchedule.
func (*NextSchedule) DeepCopyInto ¶ added in v0.23.0
func (in *NextSchedule) DeepCopyInto(out *NextSchedule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OAuth2AuthenticationSpec ¶ added in v0.41.0
type OAuth2AuthenticationSpec struct {
// Provider is the OAuth2 provider name.
// +kubebuilder:validation:Enum=OIDC
// +required
Provider string `json:"provider"`
// ClientID is the OAuth2 client identifier.
// +required
ClientID string `json:"clientID"`
// ClientSecret is the OAuth2 client secret.
// +required
ClientSecret string `json:"clientSecret"`
// Scopes is the list of OAuth2 scopes to request.
// Each provider may have different default scopes.
// +optional
Scopes []string `json:"scopes"`
// AuthURLParams is a map of additional query parameters
// to include in the authorization URL when redirecting
// the user to the OAuth2 provider for authentication.
// This can be used to set provider-specific parameters,
// such as "access_type=offline" and "prompt=consent".
// +optional
AuthURLParams map[string]string `json:"authURLParams"`
// AutoLogin redirects unauthenticated users straight to the OAuth2
// provider instead of showing the login page. Default: false.
// +optional
AutoLogin bool `json:"autoLogin,omitempty"`
// IssuerURL is used for OIDC provider discovery.
// Required for the OIDC provider.
// Used only by the OIDC provider.
// +optional
IssuerURL string `json:"issuerURL"`
// ClaimsProcessorSpec holds the configuration for processing claims with CEL expressions.
// Used only by the OIDC provider.
// +optional
ClaimsProcessorSpec `json:",inline"`
}
OAuth2AuthenticationSpec holds the OAuth2 authentication configuration.
func (*OAuth2AuthenticationSpec) Configured ¶ added in v0.41.0
func (o *OAuth2AuthenticationSpec) Configured() bool
Configured checks if the OAuth2AuthenticationSpec is configured.
func (*OAuth2AuthenticationSpec) DeepCopy ¶ added in v0.41.0
func (in *OAuth2AuthenticationSpec) DeepCopy() *OAuth2AuthenticationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuth2AuthenticationSpec.
func (*OAuth2AuthenticationSpec) DeepCopyInto ¶ added in v0.41.0
func (in *OAuth2AuthenticationSpec) DeepCopyInto(out *OAuth2AuthenticationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OIDCIdentity ¶ added in v0.44.0
type OIDCIdentity struct {
// Issuer is the OIDC issuer URL.
// +required
Issuer string `json:"issuer"`
// Subject is the OIDC subject regexp.
// +required
Subject string `json:"subject"`
}
OIDCIdentity holds the OIDC issuer and subject for verification.
func (*OIDCIdentity) DeepCopy ¶ added in v0.44.0
func (in *OIDCIdentity) DeepCopy() *OIDCIdentity
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCIdentity.
func (*OIDCIdentity) DeepCopyInto ¶ added in v0.44.0
func (in *OIDCIdentity) DeepCopyInto(out *OIDCIdentity)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperatorInfo ¶ added in v0.24.0
type OperatorInfo struct {
// APIVersion is the API version of the Flux Operator.
// +required
APIVersion string `json:"apiVersion"`
// Version is the version number of Flux Operator.
// +required
Version string `json:"version"`
// Platform is the os/arch of Flux Operator.
// +required
Platform string `json:"platform"`
}
OperatorInfo defines the version information of the Flux Operator.
func (*OperatorInfo) DeepCopy ¶ added in v0.24.0
func (in *OperatorInfo) DeepCopy() *OperatorInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorInfo.
func (*OperatorInfo) DeepCopyInto ¶ added in v0.24.0
func (in *OperatorInfo) DeepCopyInto(out *OperatorInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProfileSpec ¶ added in v0.41.0
type ProfileSpec struct {
// Name is a CEL expression that extracts the user's full name from the ID token claims
// and extracted variables. This expression must return the type string.
// Defaults to "has(claims.name) ? claims.name : (has(claims.email) ? claims.email : ”)".
// +optional
Name string `json:"name"`
}
ProfileSpec holds CEL expressions for extracting user profile information.
func (*ProfileSpec) DeepCopy ¶ added in v0.41.0
func (in *ProfileSpec) DeepCopy() *ProfileSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProfileSpec.
func (*ProfileSpec) DeepCopyInto ¶ added in v0.41.0
func (in *ProfileSpec) DeepCopyInto(out *ProfileSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceInventory ¶
type ResourceInventory struct {
// Entries of Kubernetes resource object references.
Entries []ResourceRef `json:"entries"`
}
ResourceInventory contains a list of Kubernetes resource object references that have been applied.
func (*ResourceInventory) DeepCopy ¶
func (in *ResourceInventory) DeepCopy() *ResourceInventory
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceInventory.
func (*ResourceInventory) DeepCopyInto ¶
func (in *ResourceInventory) DeepCopyInto(out *ResourceInventory)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRef ¶
type ResourceRef struct {
// ID is the string representation of the Kubernetes resource object's metadata,
// in the format '<namespace>_<name>_<group>_<kind>'.
ID string `json:"id"`
// Version is the API version of the Kubernetes resource object's kind.
Version string `json:"v"`
}
ResourceRef contains the information necessary to locate a resource within a cluster.
func (*ResourceRef) DeepCopy ¶
func (in *ResourceRef) DeepCopy() *ResourceRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRef.
func (*ResourceRef) DeepCopyInto ¶
func (in *ResourceRef) DeepCopyInto(out *ResourceRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSet ¶ added in v0.14.0
type ResourceSet struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ResourceSetSpec `json:"spec,omitempty"`
Status ResourceSetStatus `json:"status,omitempty"`
}
ResourceSet is the Schema for the ResourceSets API.
func (*ResourceSet) DeepCopy ¶ added in v0.14.0
func (in *ResourceSet) DeepCopy() *ResourceSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSet.
func (*ResourceSet) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSet) DeepCopyInto(out *ResourceSet)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSet) DeepCopyObject ¶ added in v0.14.0
func (in *ResourceSet) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ResourceSet) GetConditions ¶ added in v0.14.0
func (in *ResourceSet) GetConditions() []metav1.Condition
GetConditions returns the status conditions of the object.
func (*ResourceSet) GetIncludeEmptyProviders ¶ added in v0.48.0
func (in *ResourceSet) GetIncludeEmptyProviders() bool
GetIncludeEmptyProviders returns whether providers with zero exported inputs should be kept when combining inputs. Defaults to false.
func (*ResourceSet) GetInputStrategy ¶ added in v0.29.0
func (in *ResourceSet) GetInputStrategy() string
GetInputStrategy returns the input strategy name.
func (*ResourceSet) GetInputs ¶ added in v0.14.0
func (in *ResourceSet) GetInputs() ([]map[string]any, error)
GetInputs returns the ResourceSet in-line inputs as a list of maps.
func (*ResourceSet) GetInterval ¶ added in v0.14.0
func (in *ResourceSet) GetInterval() time.Duration
GetInterval returns the interval at which the object should be reconciled. If no interval is set, the default is 60 minutes.
func (*ResourceSet) GetTimeout ¶ added in v0.14.0
func (in *ResourceSet) GetTimeout() time.Duration
GetTimeout returns the timeout for the reconciliation process. If no timeout is set, the default is 5 minutes.
func (*ResourceSet) HasSteps ¶ added in v0.53.0
func (in *ResourceSet) HasSteps() bool
HasSteps returns true if the ResourceSet has steps defined in the spec.
func (*ResourceSet) IsDisabled ¶ added in v0.14.0
func (in *ResourceSet) IsDisabled() bool
IsDisabled returns true if the object has the reconcile annotation set to 'disabled'.
func (*ResourceSet) IsForceEnabled ¶ added in v0.20.0
func (in *ResourceSet) IsForceEnabled() bool
IsForceEnabled returns true if the object has the force annotation set to 'enabled'.
func (*ResourceSet) SetConditions ¶ added in v0.14.0
func (in *ResourceSet) SetConditions(conditions []metav1.Condition)
SetConditions sets the status conditions on the object.
func (*ResourceSet) SetLastHandledReconcileAt ¶ added in v0.23.0
func (in *ResourceSet) SetLastHandledReconcileAt(value string)
SetLastHandledReconcileAt sets the last handled reconcile time in the status.
type ResourceSetInput ¶ added in v0.14.0
type ResourceSetInput map[string]*apiextensionsv1.JSON
ResourceSetInput defines the key-value pairs of the ResourceSet input.
func NewResourceSetInput ¶ added in v0.21.0
func NewResourceSetInput(defaults, m map[string]any) (ResourceSetInput, error)
NewResourceSetInput creates a new ResourceSetInput from a map[string]any.
func (ResourceSetInput) DeepCopy ¶ added in v0.14.0
func (in ResourceSetInput) DeepCopy() ResourceSetInput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInput.
func (ResourceSetInput) DeepCopyInto ¶ added in v0.14.0
func (in ResourceSetInput) DeepCopyInto(out *ResourceSetInput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetInputFilter ¶ added in v0.14.0
type ResourceSetInputFilter struct {
// IncludeBranch specifies the regular expression to filter the branches
// that the input provider should include.
// +optional
IncludeBranch string `json:"includeBranch,omitempty"`
// ExcludeBranch specifies the regular expression to filter the branches
// that the input provider should exclude.
// +optional
ExcludeBranch string `json:"excludeBranch,omitempty"`
// IncludeTag specifies the regular expression to filter the tags
// that the input provider should include.
// +optional
IncludeTag string `json:"includeTag,omitempty"`
// ExcludeTag specifies the regular expression to filter the tags
// that the input provider should exclude.
// +optional
ExcludeTag string `json:"excludeTag,omitempty"`
// IncludeEnvironment specifies the regular expression to filter the environments
// that the input provider should include.
// +optional
IncludeEnvironment string `json:"includeEnvironment,omitempty"`
// ExcludeEnvironment specifies the regular expression to filter the environments
// that the input provider should exclude.
// +optional
ExcludeEnvironment string `json:"excludeEnvironment,omitempty"`
// Labels specifies the list of labels to filter the input provider response.
// +optional
Labels []string `json:"labels,omitempty"`
// Limit specifies the maximum number of input sets to return.
// When not set, the default limit is 100.
// +kubebuilder:default:=100
// +optional
Limit int `json:"limit,omitempty"`
// Semver specifies a semantic version range to filter and sort the tags.
// If this field is not specified, the tags will be sorted in reverse
// alphabetical order.
// Supported only for tags at the moment.
// +optional
Semver string `json:"semver,omitempty"`
}
ResourceSetInputFilter defines the filter to apply to the input provider response.
func (*ResourceSetInputFilter) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetInputFilter) DeepCopy() *ResourceSetInputFilter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputFilter.
func (*ResourceSetInputFilter) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetInputFilter) DeepCopyInto(out *ResourceSetInputFilter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetInputProvider ¶ added in v0.14.0
type ResourceSetInputProvider struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ResourceSetInputProviderSpec `json:"spec,omitempty"`
Status ResourceSetInputProviderStatus `json:"status,omitempty"`
}
ResourceSetInputProvider is the Schema for the ResourceSetInputProviders API.
func (*ResourceSetInputProvider) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetInputProvider) DeepCopy() *ResourceSetInputProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputProvider.
func (*ResourceSetInputProvider) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetInputProvider) DeepCopyInto(out *ResourceSetInputProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSetInputProvider) DeepCopyObject ¶ added in v0.14.0
func (in *ResourceSetInputProvider) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ResourceSetInputProvider) GetConditions ¶ added in v0.14.0
func (in *ResourceSetInputProvider) GetConditions() []metav1.Condition
GetConditions returns the status conditions of the object.
func (*ResourceSetInputProvider) GetDefaultInputs ¶ added in v0.14.0
func (in *ResourceSetInputProvider) GetDefaultInputs() (map[string]any, error)
GetDefaultInputs returns the ResourceSetInputProvider default inputs.
func (*ResourceSetInputProvider) GetFilterLimit ¶ added in v0.24.0
func (in *ResourceSetInputProvider) GetFilterLimit() int
GetFilterLimit returns the filter limit for the input provider.
func (*ResourceSetInputProvider) GetInputs ¶ added in v0.14.0
func (in *ResourceSetInputProvider) GetInputs() ([]map[string]any, error)
GetInputs returns the exported inputs from ResourceSetInputProvider status.
func (*ResourceSetInputProvider) GetInterval ¶ added in v0.14.0
func (in *ResourceSetInputProvider) GetInterval() time.Duration
GetInterval returns the interval at which the object should be reconciled. If no interval is set, the default is 10 minutes.
func (*ResourceSetInputProvider) GetLastHandledForceRequestStatus ¶ added in v0.23.0
func (in *ResourceSetInputProvider) GetLastHandledForceRequestStatus() *string
GetLastHandledForceRequestStatus returns the last handled force request status.
func (ResourceSetInputProvider) GetLastHandledReconcileRequest ¶ added in v0.23.0
func (in ResourceSetInputProvider) GetLastHandledReconcileRequest() string
GetLastHandledReconcileRequest returns the last handled reconcile request.
func (*ResourceSetInputProvider) GetTimeout ¶ added in v0.14.0
func (in *ResourceSetInputProvider) GetTimeout() time.Duration
GetTimeout returns the timeout for the reconciliation process. If no timeout is set, the default is 2 minutes.
func (*ResourceSetInputProvider) IsDisabled ¶ added in v0.14.0
func (in *ResourceSetInputProvider) IsDisabled() bool
IsDisabled returns true if the object has the reconcile annotation set to 'disabled'.
func (*ResourceSetInputProvider) SetConditions ¶ added in v0.14.0
func (in *ResourceSetInputProvider) SetConditions(conditions []metav1.Condition)
SetConditions sets the status conditions on the object.
func (*ResourceSetInputProvider) SetLastHandledReconcileAt ¶ added in v0.23.0
func (in *ResourceSetInputProvider) SetLastHandledReconcileAt(value string)
SetLastHandledReconcileAt sets the last handled reconcile time in the status.
type ResourceSetInputProviderList ¶ added in v0.14.0
type ResourceSetInputProviderList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ResourceSetInputProvider `json:"items"`
}
ResourceSetInputProviderList contains a list of ResourceSetInputProvider.
func (*ResourceSetInputProviderList) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetInputProviderList) DeepCopy() *ResourceSetInputProviderList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputProviderList.
func (*ResourceSetInputProviderList) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetInputProviderList) DeepCopyInto(out *ResourceSetInputProviderList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSetInputProviderList) DeepCopyObject ¶ added in v0.14.0
func (in *ResourceSetInputProviderList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceSetInputProviderSpec ¶ added in v0.14.0
type ResourceSetInputProviderSpec struct {
// Type specifies the type of the input provider.
// +kubebuilder:validation:Enum=Static;GitHubBranch;GitHubTag;GitHubPullRequest;GitLabBranch;GitLabTag;GitLabMergeRequest;GitLabEnvironment;AzureDevOpsBranch;AzureDevOpsTag;AzureDevOpsPullRequest;AWSCodeCommitBranch;AWSCodeCommitTag;AWSCodeCommitPullRequest;GiteaBranch;GiteaTag;GiteaPullRequest;OCIArtifactTag;ACRArtifactTag;ECRArtifactTag;GARArtifactTag;ExternalService
// +required
Type string `json:"type"`
// URL specifies the HTTP/S or OCI address of the input provider API.
// When connecting to a Git provider, the URL should point to the repository address.
// When connecting to an OCI provider, the URL should point to the OCI repository address.
// +kubebuilder:validation:Pattern="^((http|https|oci)://.*){0,1}$"
// +optional
URL string `json:"url,omitempty"`
// ServiceAccountName specifies the name of the Kubernetes ServiceAccount
// used for authentication with AWS, Azure or GCP services through
// workload identity federation features. If not specified, the
// authentication for these cloud providers will use the ServiceAccount
// of the operator (or any other environment authentication configuration).
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// SecretRef specifies the Kubernetes Secret containing the credentials
// to access the input provider.
// When connecting to a Git provider, the secret must contain the keys
// 'username' and 'password', and the password should be a personal access token
// that grants read-only access to the repository.
// When connecting to an OCI provider, the secret must contain a Kubernetes
// Image Pull Secret, as if created by `kubectl create secret docker-registry`.
// When connecting to an ExternalService provider, the secret must contain either
// a 'token' key for bearer token authentication, or 'username' and 'password'
// keys for basic authentication.
// +optional
SecretRef *meta.LocalObjectReference `json:"secretRef,omitempty"`
// CertSecretRef specifies the Kubernetes Secret containing either or both of
//
// - a PEM-encoded CA certificate (`ca.crt`)
// - a PEM-encoded client certificate (`tls.crt`) and private key (`tls.key`)
//
// When connecting to a Git, OCI, or ExternalService provider that uses self-signed certificates,
// the CA certificate must be set in the Secret under the 'ca.crt' key to establish the trust relationship.
// When connecting to a provider that supports client certificates (mTLS), the client certificate
// and private key must be set in the Secret under the 'tls.crt' and 'tls.key' keys, respectively.
// +optional
CertSecretRef *meta.LocalObjectReference `json:"certSecretRef,omitempty"`
// Insecure allows connecting to an ExternalService or OCIArtifactTag provider
// over plain HTTP without TLS. When not set, the URL must use HTTPS.
// +optional
Insecure bool `json:"insecure,omitempty"`
// DefaultValues contains the default values for the inputs.
// These values are used to populate the inputs when the provider
// response does not contain them.
// +optional
DefaultValues ResourceSetInput `json:"defaultValues,omitempty"`
// Filter defines the filter to apply to the input provider response.
// +optional
Filter *ResourceSetInputFilter `json:"filter,omitempty"`
// Skip defines whether we need to skip input provider response updates.
// +optional
Skip *ResourceSetInputSkip `json:"skip,omitempty"`
// Schedule defines the schedules for the input provider to run.
// +optional
Schedule []Schedule `json:"schedule,omitempty"`
}
ResourceSetInputProviderSpec defines the desired state of ResourceSetInputProvider +kubebuilder:validation:XValidation:rule="self.type != 'Static' || !has(self.url)", message="spec.url must be empty when spec.type is 'Static'" +kubebuilder:validation:XValidation:rule="self.type == 'Static' || has(self.url)", message="spec.url must not be empty when spec.type is not 'Static'" +kubebuilder:validation:XValidation:rule="!self.type.startsWith('Git') || self.url.startsWith('http')", message="spec.url must start with 'http://' or 'https://' when spec.type is a Git provider" +kubebuilder:validation:XValidation:rule="!self.type.startsWith('AzureDevOps') || self.url.startsWith('http://') || self.url.startsWith('https://')", message="spec.url must start with 'http://' or 'https://' when spec.type is an AzureDevOps provider" +kubebuilder:validation:XValidation:rule="!self.type.startsWith('AWSCodeCommit') || self.url.startsWith('https://')", message="spec.url must start with 'https://' when spec.type is a AWSCodeCommit provider" +kubebuilder:validation:XValidation:rule="!self.type.endsWith('ArtifactTag') || self.url.startsWith('oci')", message="spec.url must start with 'oci://' when spec.type is an OCI provider" +kubebuilder:validation:XValidation:rule="self.type != 'ExternalService' || self.url.startsWith('http')", message="spec.url must start with 'http://' or 'https://' when spec.type is 'ExternalService'" +kubebuilder:validation:XValidation:rule="!has(self.insecure) || !self.insecure || self.type == 'ExternalService' || self.type == 'OCIArtifactTag'", message="spec.insecure can only be set when spec.type is 'ExternalService' or 'OCIArtifactTag'" +kubebuilder:validation:XValidation:rule="self.type != 'ExternalService' || !self.url.startsWith('http://') || (has(self.insecure) && self.insecure)", message="spec.url must use 'https://' unless spec.insecure is true" +kubebuilder:validation:XValidation:rule="!has(self.serviceAccountName) || self.type.startsWith('AzureDevOps') || self.type.startsWith('AWSCodeCommit') || self.type.endsWith('ArtifactTag')", message="cannot specify spec.serviceAccountName when spec.type is not one of AzureDevOps*, AWSCodeCommit* or *ArtifactTag" +kubebuilder:validation:XValidation:rule="!has(self.certSecretRef) || !(self.type == 'Static' || self.type.startsWith('AzureDevOps') || self.type.startsWith('AWSCodeCommit') || (self.type.endsWith('ArtifactTag') && self.type != 'OCIArtifactTag'))", message="cannot specify spec.certSecretRef when spec.type is one of Static, AzureDevOps*, AWSCodeCommit*, ACRArtifactTag, ECRArtifactTag or GARArtifactTag" +kubebuilder:validation:XValidation:rule="!has(self.secretRef) || !(self.type == 'Static' || self.type.startsWith('AWSCodeCommit') || (self.type.endsWith('ArtifactTag') && self.type != 'OCIArtifactTag'))", message="cannot specify spec.secretRef when spec.type is one of Static, AWSCodeCommit*, ACRArtifactTag, ECRArtifactTag or GARArtifactTag"
func (*ResourceSetInputProviderSpec) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetInputProviderSpec) DeepCopy() *ResourceSetInputProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputProviderSpec.
func (*ResourceSetInputProviderSpec) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetInputProviderSpec) DeepCopyInto(out *ResourceSetInputProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetInputProviderStatus ¶ added in v0.14.0
type ResourceSetInputProviderStatus struct {
meta.ReconcileRequestStatus `json:",inline"`
meta.ForceRequestStatus `json:",inline"`
// Conditions contains the readiness conditions of the object.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// ExportedInputs contains the list of inputs exported by the provider.
// +optional
ExportedInputs []ResourceSetInput `json:"exportedInputs,omitempty"`
// LastExportedRevision is the digest of the
// inputs that were last reconcile.
// +optional
LastExportedRevision string `json:"lastExportedRevision,omitempty"`
// NextSchedule is the next schedule when the input provider will run.
// +optional
NextSchedule *NextSchedule `json:"nextSchedule,omitempty"`
}
ResourceSetInputProviderStatus defines the observed state of ResourceSetInputProvider.
func (*ResourceSetInputProviderStatus) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetInputProviderStatus) DeepCopy() *ResourceSetInputProviderStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputProviderStatus.
func (*ResourceSetInputProviderStatus) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetInputProviderStatus) DeepCopyInto(out *ResourceSetInputProviderStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetInputSkip ¶ added in v0.19.0
type ResourceSetInputSkip struct {
// Labels specifies list of labels to skip input provider response when any of the label conditions matched.
// When prefixed with !, input provider response will be skipped if it does not have this label.
// +optional
Labels []string `json:"labels,omitempty"`
}
ResourceSetInputSkip defines whether we need to skip input updates.
func (*ResourceSetInputSkip) DeepCopy ¶ added in v0.19.0
func (in *ResourceSetInputSkip) DeepCopy() *ResourceSetInputSkip
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetInputSkip.
func (*ResourceSetInputSkip) DeepCopyInto ¶ added in v0.19.0
func (in *ResourceSetInputSkip) DeepCopyInto(out *ResourceSetInputSkip)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetList ¶ added in v0.14.0
type ResourceSetList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ResourceSet `json:"items"`
}
ResourceSetList contains a list of ResourceSet.
func (*ResourceSetList) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetList) DeepCopy() *ResourceSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetList.
func (*ResourceSetList) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetList) DeepCopyInto(out *ResourceSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ResourceSetList) DeepCopyObject ¶ added in v0.14.0
func (in *ResourceSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ResourceSetSpec ¶ added in v0.14.0
type ResourceSetSpec struct {
// CommonMetadata specifies the common labels and annotations that are
// applied to all resources. Any existing label or annotation will be
// overridden if its key matches a common one.
// +optional
CommonMetadata *CommonMetadata `json:"commonMetadata,omitempty"`
// InputStrategy defines how the inputs are combined when multiple
// input provider objects are used. Defaults to flattening all inputs
// from all providers into a single list of input sets.
// +optional
InputStrategy *InputStrategySpec `json:"inputStrategy,omitempty"`
// Inputs contains the list of ResourceSet inputs.
// +optional
Inputs []ResourceSetInput `json:"inputs,omitempty"`
// InputsFrom contains the list of references to input providers.
// When set, the inputs are fetched from the providers and concatenated
// with the in-line inputs defined in the ResourceSet.
// +optional
InputsFrom []InputProviderReference `json:"inputsFrom,omitempty"`
// Resources contains the list of Kubernetes resources to reconcile.
// +kubebuilder:validation:items:Type=object
// +optional
Resources []*apiextensionsv1.JSON `json:"resources,omitempty"`
// ResourcesTemplate is a Go template that generates the list of
// Kubernetes resources to reconcile. The template is rendered
// as multi-document YAML, the resources should be separated by '---'.
// When both Resources and ResourcesTemplate are set, the resulting
// objects are merged and deduplicated, with the ones from Resources taking precedence.
// +optional
ResourcesTemplate string `json:"resourcesTemplate,omitempty"`
// Steps contains an ordered list of named steps to reconcile in sequence.
// Each step's resources are applied and health-checked before the next
// step starts. Mutually exclusive with Resources and ResourcesTemplate.
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=20
// +kubebuilder:validation:XValidation:rule="self.all(s, self.exists_one(t, t.name == s.name))",message="step names must be unique"
// +optional
Steps []ResourceSetStep `json:"steps,omitempty"`
// DependsOn specifies the list of Kubernetes resources that must
// exist on the cluster before the reconciliation process starts.
// +optional
DependsOn []Dependency `json:"dependsOn,omitempty"`
// The name of the Kubernetes service account to impersonate
// when reconciling the generated resources.
// +optional
ServiceAccountName string `json:"serviceAccountName,omitempty"`
// Wait instructs the controller to check the health
// of all the reconciled resources.
// +optional
Wait bool `json:"wait,omitempty"`
}
ResourceSetSpec defines the desired state of ResourceSet +kubebuilder:validation:XValidation:rule="!has(self.steps) || (!has(self.resources) && !has(self.resourcesTemplate))",message="steps is mutually exclusive with resources and resourcesTemplate" +kubebuilder:validation:XValidation:rule="has(self.steps) || has(self.resources) || has(self.resourcesTemplate)",message="at least one of steps, resources or resourcesTemplate must be set"
func (*ResourceSetSpec) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetSpec) DeepCopy() *ResourceSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetSpec.
func (*ResourceSetSpec) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetSpec) DeepCopyInto(out *ResourceSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetStatus ¶ added in v0.14.0
type ResourceSetStatus struct {
meta.ReconcileRequestStatus `json:",inline"`
// Conditions contains the readiness conditions of the object.
// +optional
Conditions []metav1.Condition `json:"conditions,omitempty"`
// Inventory contains a list of Kubernetes resource object references
// last applied on the cluster.
// +optional
Inventory *ResourceInventory `json:"inventory,omitempty"`
// LastAppliedRevision is the digest of the
// generated resources that were last reconcile.
// +optional
LastAppliedRevision string `json:"lastAppliedRevision,omitempty"`
// ExternalChecksumRefs lists the ConfigMap and Secret references
// discovered in checksumFrom annotations on the last reconciliation
// that point to objects not rendered by this ResourceSet. Each entry
// has the form "Kind/namespace/name". It is used to trigger a
// reconciliation when one of the referenced objects changes.
// +optional
ExternalChecksumRefs []string `json:"externalChecksumRefs,omitempty"`
// History contains the reconciliation history of the ResourceSet
// as a list of snapshots ordered by the last reconciled time.
History History `json:"history,omitempty"`
}
ResourceSetStatus defines the observed state of ResourceSet.
func (*ResourceSetStatus) DeepCopy ¶ added in v0.14.0
func (in *ResourceSetStatus) DeepCopy() *ResourceSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetStatus.
func (*ResourceSetStatus) DeepCopyInto ¶ added in v0.14.0
func (in *ResourceSetStatus) DeepCopyInto(out *ResourceSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceSetStep ¶ added in v0.53.0
type ResourceSetStep struct {
// Name of the step, must be unique within the ResourceSet.
// +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`
// +kubebuilder:validation:MaxLength=63
// +required
Name string `json:"name"`
// Resources contains the list of Kubernetes resources to reconcile.
// +kubebuilder:validation:items:Type=object
// +optional
Resources []*apiextensionsv1.JSON `json:"resources,omitempty"`
// ResourcesTemplate is a Go template that generates the list of
// Kubernetes resources to reconcile. The template is rendered
// as multi-document YAML, the resources should be separated by '---'.
// When both Resources and ResourcesTemplate are set, the resulting
// objects are merged and deduplicated, with the ones from Resources taking precedence.
// +optional
ResourcesTemplate string `json:"resourcesTemplate,omitempty"`
// Timeout is the maximum time to wait for the step's resources to
// become ready. When not set, the ResourceSet reconciliation
// timeout is used.
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
// +optional
Timeout *metav1.Duration `json:"timeout,omitempty"`
}
ResourceSetStep defines a named step in the ResourceSet reconciliation sequence. The step's resources are applied and health-checked before the next step starts. +kubebuilder:validation:XValidation:rule="has(self.resources) || has(self.resourcesTemplate)",message="at least one of resources or resourcesTemplate must be set"
func (*ResourceSetStep) DeepCopy ¶ added in v0.53.0
func (in *ResourceSetStep) DeepCopy() *ResourceSetStep
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSetStep.
func (*ResourceSetStep) DeepCopyInto ¶ added in v0.53.0
func (in *ResourceSetStep) DeepCopyInto(out *ResourceSetStep)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Schedule ¶ added in v0.23.0
type Schedule struct {
// Cron specifies the cron expression for the schedule.
// +required
Cron string `json:"cron"`
// TimeZone specifies the time zone for the cron schedule. Defaults to UTC.
// +kubebuilder:default:="UTC"
// +optional
TimeZone string `json:"timeZone,omitempty"`
// Window defines the time window during which the execution is allowed.
// Defaults to 0s, meaning no window is applied.
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
// +kubebuilder:default:="0s"
// +optional
Window metav1.Duration `json:"window"`
}
Schedule defines a schedule for something to run.
func (*Schedule) DeepCopy ¶ added in v0.23.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schedule.
func (*Schedule) DeepCopyInto ¶ added in v0.23.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SearchSpec ¶ added in v0.42.0
type SearchSpec struct {
// Cached enables serving resource listings from the cached search index
// instead of querying the Kubernetes API in realtime. When enabled, the
// /api/v1/resources endpoint returns data from the periodically refreshed
// in-memory index, reducing API server load and improving response latency.
// The cache is updated on the same interval as the report cache.
// +optional
Cached bool `json:"cached"`
}
SearchSpec holds the search configuration.
func (*SearchSpec) DeepCopy ¶ added in v0.42.0
func (in *SearchSpec) DeepCopy() *SearchSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SearchSpec.
func (*SearchSpec) DeepCopyInto ¶ added in v0.42.0
func (in *SearchSpec) DeepCopyInto(out *SearchSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Sharding ¶ added in v0.9.0
type Sharding struct {
// Key is the label key used to shard the resources.
// +kubebuilder:default:=sharding.fluxcd.io/key
// +optional
Key string `json:"key,omitempty"`
// Shards is the list of shard names.
// +kubebuilder:validation:MinItems=1
// +required
Shards []string `json:"shards"`
// Storage defines if the source-controller shards
// should use an emptyDir or a persistent volume claim for storage.
// Accepted values are 'ephemeral' or 'persistent', defaults to 'ephemeral'.
// When set to 'persistent', the '.spec.storage' field must be set.
// +kubebuilder:validation:Enum:=ephemeral;persistent
// +optional
Storage string `json:"storage,omitempty"`
}
func (*Sharding) DeepCopy ¶ added in v0.9.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sharding.
func (*Sharding) DeepCopyInto ¶ added in v0.9.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Snapshot ¶ added in v0.28.0
type Snapshot struct {
// Digest is the checksum in the format `<algo>:<hex>` of the resources in this snapshot.
// +required
Digest string `json:"digest"`
// FirstReconciled is the time when this revision was first reconciled to the cluster.
// +required
FirstReconciled metav1.Time `json:"firstReconciled"`
// LastReconciled is the time when this revision was last reconciled to the cluster.
// +required
LastReconciled metav1.Time `json:"lastReconciled"`
// LastReconciledDuration is time it took to reconcile the resources in this revision.
// +kubebuilder:validation:Type=string
// +required
LastReconciledDuration metav1.Duration `json:"lastReconciledDuration"`
// LastReconciledStatus is the status of the last reconciliation.
// +required
LastReconciledStatus string `json:"lastReconciledStatus"`
// TotalReconciliations is the total number of reconciliations that have occurred for this snapshot.
// + required
TotalReconciliations int64 `json:"totalReconciliations"`
// Metadata contains additional information about the snapshot.
// +optional
Metadata map[string]string `json:"metadata,omitempty"`
}
Snapshot represents a point-in-time record of a group of resources reconciliation, including timing information, status, and a unique digest identifier.
func (*Snapshot) DeepCopy ¶ added in v0.28.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Snapshot.
func (*Snapshot) DeepCopyInto ¶ added in v0.28.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Storage ¶ added in v0.2.0
type Storage struct {
// Class is the storage class to use for the PVC.
// +required
Class string `json:"class"`
// Size is the size of the PVC.
// +required
Size string `json:"size"`
}
Storage is the specification for the persistent volume claim.
func (*Storage) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Sync ¶ added in v0.4.0
type Sync struct {
// Name is the name of the Flux source and kustomization resources.
// When not specified, the name is set to the namespace name of the FluxInstance.
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Sync name is immutable"
// +kubebuilder:validation:MaxLength=63
// +optional
Name string `json:"name,omitempty"`
// Interval is the time between syncs.
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Pattern="^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$"
// +kubebuilder:default:="1m"
// +optional
Interval *metav1.Duration `json:"interval,omitempty"`
// Kind is the kind of the source.
// +kubebuilder:validation:Enum=OCIRepository;GitRepository;Bucket
// +required
Kind string `json:"kind"`
// URL is the source URL, can be a Git repository HTTP/S or SSH address,
// an OCI repository address or a Bucket endpoint.
// +required
URL string `json:"url"`
// Ref is the source reference, can be a Git ref name e.g. 'refs/heads/main',
// an OCI tag e.g. 'latest' or a bucket name e.g. 'flux'.
// +required
Ref string `json:"ref"`
// Path is the path to the source directory containing
// the kustomize overlay or plain Kubernetes manifests.
// +required
Path string `json:"path"`
// PullSecret specifies the Kubernetes Secret containing the
// authentication credentials for the source.
// For Git over HTTP/S sources, the secret must contain username and password fields.
// For Git over SSH sources, the secret must contain known_hosts and identity fields.
// For OCI sources, the secret must be of type kubernetes.io/dockerconfigjson.
// For Bucket sources, the secret must contain accesskey and secretkey fields.
// +optional
PullSecret string `json:"pullSecret,omitempty"`
// Provider specifies OIDC provider for source authentication.
// For OCIRepository and Bucket the provider can be set to 'aws', 'azure' or 'gcp'.
// For GitRepository the provider can be set to 'aws' (requires Flux 2.9 or later),
// 'azure' or 'github'.
// To disable OIDC authentication the provider can be set to 'generic' or left empty.
// +kubebuilder:validation:Enum=generic;aws;azure;gcp;github
// +optional
Provider string `json:"provider,omitempty"`
}
Sync defines the source and path for the Flux instance synchronization. +kubebuilder:validation:XValidation:rule="!has(self.provider) || self.provider != 'gcp' || self.kind == 'OCIRepository' || self.kind == 'Bucket'",message="sync.provider 'gcp' is only supported for OCIRepository and Bucket" +kubebuilder:validation:XValidation:rule="!has(self.provider) || self.provider != 'github' || self.kind == 'GitRepository'",message="sync.provider 'github' is only supported for GitRepository"
func (*Sync) DeepCopy ¶ added in v0.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sync.
func (*Sync) DeepCopyInto ¶ added in v0.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UserActionsSpec ¶ added in v0.41.0
type UserActionsSpec struct {
// Audit is a list of actions to be audited.
// If the field is empty or omitted, no actions are audited.
// The special value ["*"] can be used to audit all actions.
// +optional
Audit []string `json:"audit"`
// Access determines how GitOps actions are authorized and performed.
//
// When set to "Impersonated" (the default), an action requires both the
// custom per-action RBAC verb (e.g. "suspend") and the native Kubernetes
// verbs (e.g. "patch"), because the action is performed by impersonating
// the user.
//
// When set to "FineGrained", an action requires only the custom per-action
// RBAC verb. The action itself is performed using the Flux Operator Web UI's
// own privileges instead of impersonating the user. This enables stricter
// least-privilege setups where a user can be granted access to a single action
// (e.g. only "suspend") without also gaining the broader native verbs.
// +kubebuilder:validation:Enum=Impersonated;FineGrained
// +optional
Access string `json:"access"`
}
UserActionsSpec holds the actions configuration.
func (*UserActionsSpec) DeepCopy ¶ added in v0.41.0
func (in *UserActionsSpec) DeepCopy() *UserActionsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserActionsSpec.
func (*UserActionsSpec) DeepCopyInto ¶ added in v0.41.0
func (in *UserActionsSpec) DeepCopyInto(out *UserActionsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValidationSpec ¶ added in v0.41.0
type ValidationSpec struct {
// Expression is the CEL expression that defines the validation.
// The expression must return the type bool.
// +required
Expression string `json:"expression"`
// Message is the error message returned if the validation fails.
// +required
Message string `json:"message"`
}
ValidationSpec holds the configuration for a validation used in CEL expressions.
func (*ValidationSpec) DeepCopy ¶ added in v0.41.0
func (in *ValidationSpec) DeepCopy() *ValidationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidationSpec.
func (*ValidationSpec) DeepCopyInto ¶ added in v0.41.0
func (in *ValidationSpec) DeepCopyInto(out *ValidationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VariableSpec ¶ added in v0.41.0
type VariableSpec struct {
// Name is the name of the variable.
// +required
Name string `json:"name"`
// Expression is the CEL expression that defines the variable.
// +required
Expression string `json:"expression"`
}
VariableSpec holds the configuration for extracting a variable with a CEL expression.
func (*VariableSpec) DeepCopy ¶ added in v0.41.0
func (in *VariableSpec) DeepCopy() *VariableSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VariableSpec.
func (*VariableSpec) DeepCopyInto ¶ added in v0.41.0
func (in *VariableSpec) DeepCopyInto(out *VariableSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebConfig ¶ added in v0.41.0
type WebConfig struct {
metav1.TypeMeta `json:",inline"`
// Spec holds the Flux Status Page configuration.
// +required
Spec WebConfigSpec `json:"spec"`
}
WebConfig is the Flux Status Page configuration.
func (*WebConfig) DeepCopy ¶ added in v0.41.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebConfig.
func (*WebConfig) DeepCopyInto ¶ added in v0.41.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WebConfigSpec ¶ added in v0.41.0
type WebConfigSpec struct {
// Version is a unique identifier for the configuration.
// This field is set internally when the configuration
// is loaded and is not part of the API.
// +required
Version string `json:"-"`
// BaseURL is the base URL for constructing the Flux Status Page URLs.
// Some features may require this to be set.
// +optional
BaseURL string `json:"baseURL"`
// Insecure indicates whether to use insecure settings across the web application.
// +optional
Insecure bool `json:"insecure"`
// Search holds the search configuration.
// +optional
Search *SearchSpec `json:"search"`
// UserActions holds the user actions configuration. Defaults to enabling all actions if not set.
// Note that, by default, actions are only available when authentication is configured with the
// OAuth2 type.
// +optional
UserActions *UserActionsSpec `json:"userActions"`
// Authentication holds the authentication configuration.
// If Authentication.Type is set to OAuth2, BaseURL must be set.
// +optional
Authentication *AuthenticationSpec `json:"authentication"`
}
WebConfigSpec holds the Flux Status Page configuration.
func (*WebConfigSpec) DeepCopy ¶ added in v0.41.0
func (in *WebConfigSpec) DeepCopy() *WebConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebConfigSpec.
func (*WebConfigSpec) DeepCopyInto ¶ added in v0.41.0
func (in *WebConfigSpec) DeepCopyInto(out *WebConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WebConfigSpec) FineGrainedAccessEnabled ¶ added in v0.51.0
func (c *WebConfigSpec) FineGrainedAccessEnabled() bool
FineGrainedAccessEnabled checks if GitOps actions should be performed using the Flux Operator Web UI's own privileges (fine-grained access control) instead of impersonating the user. When enabled, an action requires only the custom per-action RBAC verb from the user, and a 403 returned while performing the action originates from the Web UI application's own RBAC.
func (*WebConfigSpec) IsAuthEnabled ¶ added in v0.45.0
func (c *WebConfigSpec) IsAuthEnabled() bool
IsAuthEnabled checks if authentication is enabled.
func (*WebConfigSpec) UserActionsEnabled ¶ added in v0.41.0
func (c *WebConfigSpec) UserActionsEnabled() bool
UserActionsEnabled checks if user actions are enabled.