v1alpha1

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha1 contains the core resources of the argocd provider. +kubebuilder:object:generate=true +groupName=projects.argocd.crossplane.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group   = "projects.argocd.crossplane.io"
	Version = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	ProjectKind             = reflect.TypeOf(Project{}).Name()
	ProjectGroupKind        = schema.GroupKind{Group: Group, Kind: ProjectKind}.String()
	ProjectKindAPIVersion   = ProjectKind + "." + SchemeGroupVersion.String()
	ProjectGroupVersionKind = SchemeGroupVersion.WithKind(ProjectKind)
)

Project type metadata

Functions

This section is empty.

Types

type ApplicationDestination

type ApplicationDestination struct {
	// Server specifies the URL of the target cluster and must be set to the Kubernetes control plane API
	// +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-argocd/apis/cluster/v1alpha1.Cluster
	// +crossplane:generate:reference:refFieldName=ServerRef
	// +crossplane:generate:reference:selectorFieldName=ServerSelector
	// +optional
	Server *string `json:"server,omitempty"`
	// ServerRef is a reference to an Cluster used to set Server
	// +optional
	ServerRef *xpv1.Reference `json:"serverRef,omitempty"`
	// SourceReposSelector selects references to Repositories used to set SourceRepos
	// +optional
	ServerSelector *xpv1.Selector `json:"serverSelector,omitempty"`
	// Namespace specifies the target namespace for the application's resources.
	// The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
	// +optional
	Namespace *string `json:"namespace,omitempty"`
	// Name is an alternate way of specifying the target cluster by its symbolic name
	// +optional
	Name *string `json:"name,omitempty"`
}

ApplicationDestination holds information about the application's destination

func (*ApplicationDestination) DeepCopy

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

func (*ApplicationDestination) DeepCopyInto

func (in *ApplicationDestination) DeepCopyInto(out *ApplicationDestination)

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

type JWTToken

type JWTToken struct {
	IssuedAt int64 `json:"iat"`
	// +optional
	ExpiresAt *int64 `json:"exp,omitempty"`
	// +optional
	ID *string `json:"id,omitempty"`
}

JWTToken holds the issuedAt and expiresAt values of a token

func (*JWTToken) DeepCopy

func (in *JWTToken) DeepCopy() *JWTToken

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

func (*JWTToken) DeepCopyInto

func (in *JWTToken) DeepCopyInto(out *JWTToken)

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

type JWTTokens

type JWTTokens struct {
	// +optional
	Items []JWTToken `json:"items,omitempty"`
}

JWTTokens represents a list of JWT tokens

func (*JWTTokens) DeepCopy

func (in *JWTTokens) DeepCopy() *JWTTokens

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

func (*JWTTokens) DeepCopyInto

func (in *JWTTokens) DeepCopyInto(out *JWTTokens)

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

type OrphanedResourceKey

type OrphanedResourceKey struct {
	// +optional
	Group *string `json:"group,omitempty"`
	// +optional
	Kind *string `json:"kind,omitempty"`
	// +optional
	Name *string `json:"name,omitempty"`
}

OrphanedResourceKey is a reference to a resource to be ignored from

func (*OrphanedResourceKey) DeepCopy

func (in *OrphanedResourceKey) DeepCopy() *OrphanedResourceKey

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

func (*OrphanedResourceKey) DeepCopyInto

func (in *OrphanedResourceKey) DeepCopyInto(out *OrphanedResourceKey)

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

type OrphanedResourcesMonitorSettings

type OrphanedResourcesMonitorSettings struct {
	// Warn indicates if warning condition should be created for apps which have orphaned resources
	// +optional
	Warn *bool `json:"warn,omitempty"`
	// Ignore contains a list of resources that are to be excluded from orphaned resources monitoring
	// +optional
	Ignore []OrphanedResourceKey `json:"ignore,omitempty"`
}

OrphanedResourcesMonitorSettings holds settings of orphaned resources monitoring

func (*OrphanedResourcesMonitorSettings) DeepCopy

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

func (*OrphanedResourcesMonitorSettings) DeepCopyInto

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

type Project

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

	Spec   ProjectSpec   `json:"spec"`
	Status ProjectStatus `json:"status,omitempty"`
}

A Project is a managed resource that represents an ArgoCD Git Project +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,argocd}

func (*Project) DeepCopy

func (in *Project) DeepCopy() *Project

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

func (*Project) DeepCopyInto

func (in *Project) DeepCopyInto(out *Project)

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

func (*Project) DeepCopyObject

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

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

func (*Project) GetCondition

func (mg *Project) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this Project.

func (*Project) GetDeletionPolicy

func (mg *Project) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this Project.

func (*Project) GetManagementPolicies added in v0.7.0

func (mg *Project) GetManagementPolicies() xpv1.ManagementPolicies

GetManagementPolicies of this Project.

func (*Project) GetProviderConfigReference

func (mg *Project) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this Project.

func (*Project) GetPublishConnectionDetailsTo added in v0.3.0

func (mg *Project) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this Project.

func (*Project) GetWriteConnectionSecretToReference

func (mg *Project) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this Project.

func (*Project) ResolveReferences

func (mg *Project) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this Project.

func (*Project) SetConditions

func (mg *Project) SetConditions(c ...xpv1.Condition)

SetConditions of this Project.

func (*Project) SetDeletionPolicy

func (mg *Project) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this Project.

func (*Project) SetManagementPolicies added in v0.7.0

func (mg *Project) SetManagementPolicies(r xpv1.ManagementPolicies)

SetManagementPolicies of this Project.

func (*Project) SetProviderConfigReference

func (mg *Project) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this Project.

func (*Project) SetPublishConnectionDetailsTo added in v0.3.0

func (mg *Project) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this Project.

func (*Project) SetWriteConnectionSecretToReference

func (mg *Project) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this Project.

type ProjectList

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

ProjectList contains a list of Project items

func (*ProjectList) DeepCopy

func (in *ProjectList) DeepCopy() *ProjectList

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

func (*ProjectList) DeepCopyInto

func (in *ProjectList) DeepCopyInto(out *ProjectList)

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

func (*ProjectList) DeepCopyObject

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

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

func (*ProjectList) GetItems

func (l *ProjectList) GetItems() []resource.Managed

GetItems of this ProjectList.

type ProjectObservation

type ProjectObservation struct {
	// JWTTokensByRole contains a list of JWT tokens issued for a given role
	// +optional
	JWTTokensByRole map[string]JWTTokens `json:"jwtTokensByRole,omitempty"`
}

ProjectObservation represents an argocd Project.

func (*ProjectObservation) DeepCopy

func (in *ProjectObservation) DeepCopy() *ProjectObservation

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

func (*ProjectObservation) DeepCopyInto

func (in *ProjectObservation) DeepCopyInto(out *ProjectObservation)

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

type ProjectParameters

type ProjectParameters struct {
	// SourceRepos contains list of repository URLs which can be used for deployment
	// +crossplane:generate:reference:type=github.com/crossplane-contrib/provider-argocd/apis/repositories/v1alpha1.Repository
	// +crossplane:generate:reference:refFieldName=SourceReposRefs
	// +crossplane:generate:reference:selectorFieldName=SourceReposSelector
	// +optional
	SourceRepos []string `json:"sourceRepos,omitempty"`
	// SourceReposRefs is a reference to an array of Repository used to set SourceRepos
	// +optional
	SourceReposRefs []xpv1.Reference `json:"sourceReposRefs,omitempty"`
	// SourceReposSelector selects references to Repositories used to set SourceRepos
	// +optional
	SourceReposSelector *xpv1.Selector `json:"sourceReposSelector,omitempty"`
	// Destinations contains list of destinations available for deployment
	// +optional
	Destinations []ApplicationDestination `json:"destinations,omitempty"`
	// Description contains optional project description
	// +optional
	Description *string `json:"description,omitempty"`
	// Roles are user defined RBAC roles associated with this project
	// +optional
	Roles []ProjectRole `json:"roles,omitempty"`
	// ClusterResourceWhitelist contains list of whitelisted cluster level resources
	// +optional
	ClusterResourceWhitelist []metav1.GroupKind `json:"clusterResourceWhitelist,omitempty"`
	// NamespaceResourceBlacklist contains list of blacklisted namespace level resources
	// +optional
	NamespaceResourceBlacklist []metav1.GroupKind `json:"namespaceResourceBlacklist,omitempty"`
	// OrphanedResources specifies if controller should monitor orphaned resources of apps in this project
	// +optional
	OrphanedResources *OrphanedResourcesMonitorSettings `json:"orphanedResources,omitempty"`
	// SyncWindows controls when syncs can be run for apps in this project
	// +optional
	SyncWindows SyncWindows `json:"syncWindows,omitempty"`
	// NamespaceResourceWhitelist contains list of whitelisted namespace level resources
	// +optional
	NamespaceResourceWhitelist []metav1.GroupKind `json:"namespaceResourceWhitelist,omitempty"`
	// SignatureKeys contains a list of PGP key IDs that commits in Git must be signed with in order to be allowed for sync
	// +optional
	SignatureKeys []SignatureKey `json:"signatureKeys,omitempty"`
	// ClusterResourceBlacklist contains list of blacklisted cluster level resources
	// +optional
	ClusterResourceBlacklist []metav1.GroupKind `json:"clusterResourceBlacklist,omitempty"`
	// ProjectLabels labels that will be applied to the AppProject
	// +optional
	ProjectLabels map[string]string `json:"projectLabels,omitempty"`
}

ProjectParameters define the desired state of an ArgoCD Git Project

func (*ProjectParameters) DeepCopy

func (in *ProjectParameters) DeepCopy() *ProjectParameters

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

func (*ProjectParameters) DeepCopyInto

func (in *ProjectParameters) DeepCopyInto(out *ProjectParameters)

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

type ProjectRole

type ProjectRole struct {
	// Name is a name for this role
	Name string `json:"name"`
	// Description is a description of the role
	// +optional
	Description *string `json:"description,omitempty"`
	// Policies Stores a list of casbin formated strings that define access policies for the role in the project
	// +optional
	Policies []string `json:"policies,omitempty"`
	// JWTTokens are a list of generated JWT tokens bound to this role
	// +optional
	JWTTokens []JWTToken `json:"jwtTokens,omitempty"`
	// Groups are a list of OIDC group claims bound to this role
	// +optional
	Groups []string `json:"groups,omitempty"`
}

ProjectRole represents a role that has access to a project

func (*ProjectRole) DeepCopy

func (in *ProjectRole) DeepCopy() *ProjectRole

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

func (*ProjectRole) DeepCopyInto

func (in *ProjectRole) DeepCopyInto(out *ProjectRole)

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

type ProjectSpec

type ProjectSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       ProjectParameters `json:"forProvider"`
}

A ProjectSpec defines the desired state of an ArgoCD Project.

func (*ProjectSpec) DeepCopy

func (in *ProjectSpec) DeepCopy() *ProjectSpec

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

func (*ProjectSpec) DeepCopyInto

func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)

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

type ProjectStatus

type ProjectStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          ProjectObservation `json:"atProvider,omitempty"`
}

A ProjectStatus represents the observed state of an ArgoCD Project.

func (*ProjectStatus) DeepCopy

func (in *ProjectStatus) DeepCopy() *ProjectStatus

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

func (*ProjectStatus) DeepCopyInto

func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)

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

type SignatureKey

type SignatureKey struct {
	// The ID of the key in hexadecimal notation
	KeyID string `json:"keyID"`
}

SignatureKey is the specification of a key required to verify commit signatures with

func (*SignatureKey) DeepCopy

func (in *SignatureKey) DeepCopy() *SignatureKey

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

func (*SignatureKey) DeepCopyInto

func (in *SignatureKey) DeepCopyInto(out *SignatureKey)

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

type SyncWindow

type SyncWindow struct {
	// Kind defines if the window allows or blocks syncs
	// +optional
	Kind *string `json:"kind,omitempty"`
	// Schedule is the time the window will begin, specified in cron format
	// +optional
	Schedule *string `json:"schedule,omitempty"`
	// Duration is the amount of time the sync window will be open
	// +optional
	Duration *string `json:"duration,omitempty"`
	// Applications contains a list of applications that the window will apply to
	// +optional
	Applications []string `json:"applications,omitempty"`
	// Namespaces contains a list of namespaces that the window will apply to
	// +optional
	Namespaces []string `json:"namespaces,omitempty"`
	// Clusters contains a list of clusters that the window will apply to
	// +optional
	Clusters []string `json:"clusters,omitempty"`
	// ManualSync enables manual syncs when they would otherwise be blocked
	// +optional
	ManualSync *bool `json:"manualSync,omitempty"`
}

SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps

func (*SyncWindow) DeepCopy

func (in *SyncWindow) DeepCopy() *SyncWindow

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

func (*SyncWindow) DeepCopyInto

func (in *SyncWindow) DeepCopyInto(out *SyncWindow)

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

type SyncWindows

type SyncWindows []SyncWindow

SyncWindows is a collection of sync windows in this project

func (SyncWindows) DeepCopy

func (in SyncWindows) DeepCopy() SyncWindows

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

func (SyncWindows) DeepCopyInto

func (in SyncWindows) DeepCopyInto(out *SyncWindows)

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

Jump to

Keyboard shortcuts

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