v1beta1

package
Version: v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2022 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package v1beta1 contains API Schema definitions for the containerregistry v1beta1 API group +kubebuilder:object:generate=true +groupName=goharbor.io

Index

Constants

View Source
const (
	S3DriverName         = "s3"
	SwiftDriverName      = "swift"
	FileSystemDriverName = "filesystem"
	AzureDriverName      = "azure"
	GcsDriverName        = "gcs"
)
View Source
const (
	KindDatabaseZlandoPostgreSQL = "Zlando/PostgreSQL"
	KindDatabasePostgreSQL       = "PostgreSQL"
	KindStorageGcs               = "Gcs"
	KindStorageAzure             = "Azure"
	KindStorageMinIO             = "MinIO"
	KindStorageSwift             = "Swift"
	KindStorageS3                = "S3"
	KindStorageFileSystem        = "FileSystem"
	KindCacheRedisFailover       = "RedisFailover"
	KindCacheRedis               = "Redis"
)
View Source
const (
	// Ready means the HarborCluster is ready.
	Ready HarborClusterConditionType = "Ready"
	// CacheReady means the Cache is ready.
	CacheReady HarborClusterConditionType = "CacheReady"
	// DatabaseReady means the Database is ready.
	DatabaseReady HarborClusterConditionType = "DatabaseReady"
	// StorageReady means the Storage is ready.
	StorageReady HarborClusterConditionType = "StorageReady"
	// ServiceReady means the Service of Harbor is ready.
	ServiceReady HarborClusterConditionType = "ServiceReady"
	// ConfigurationReady means the configuration is applied to harbor.
	ConfigurationReady HarborClusterConditionType = "ConfigurationReady"
	// StatusCreating is the status of provisioning.
	StatusProvisioning ClusterStatus = "provisioning"
	// StatusHealthy is the status of healthy.
	StatusHealthy ClusterStatus = "healthy"
	// StatusUnHealthy is the status of unhealthy.
	StatusUnHealthy ClusterStatus = "unhealthy"
)

These are valid conditions of a HarborCluster.

View Source
const (
	RegistryControllerCorePublicURLKey = "REGISTRY_HTTP_HOST"
	RegistryControllerAuthURLKey       = "REGISTRY_AUTH_TOKEN_REALM" // RegistryControllerCorePublicURLKey + "/service/token"
)
View Source
const (
	CoreDatabaseType = "postgresql"
)
View Source
const (
	HarborClassAnnotation = "goharbor.io/harbor-class"
)
View Source
const NotarySignerAPIPort = 7899
View Source
const (
	// ipaddress:port[,weight,password,database_index]
	RegistryControllerCacheURLKey = "url"
)

Variables

View Source
var (
	ErrNoStorageConfiguration = errors.New("no storage configuration")
	Err2StorageConfiguration  = errors.New("only 1 storage can be configured")
)
View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "goharbor.io", Version: "v1beta1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var HarborClusterGVK = schema.GroupVersionKind{
	Group:   GroupVersion.Group,
	Version: GroupVersion.Version,
	Kind:    "HarborCluster",
}

Functions

This section is empty.

Types

type AccessCredential added in v1.2.0

type AccessCredential struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	Namespace string `json:"namespace"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	AccessSecretRef string `json:"accessSecretRef"`
}

AccessCredential is a namespaced credential to keep the access key and secret for the harbor server configuration.

func (*AccessCredential) DeepCopy added in v1.2.0

func (in *AccessCredential) DeepCopy() *AccessCredential

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

func (*AccessCredential) DeepCopyInto added in v1.2.0

func (in *AccessCredential) DeepCopyInto(out *AccessCredential)

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

type AzureSpec added in v1.2.0

type AzureSpec struct {
	HarborStorageImageChartStorageAzureSpec `json:",inline"`
}

func (*AzureSpec) DeepCopy added in v1.2.0

func (in *AzureSpec) DeepCopy() *AzureSpec

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

func (*AzureSpec) DeepCopyInto added in v1.2.0

func (in *AzureSpec) DeepCopyInto(out *AzureSpec)

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

type Cache

type Cache struct {
	// Set the kind of cache service to be used. Only support Redis now.
	// +kubebuilder:validation:Enum={Redis,RedisFailover}
	Kind string `json:"kind"`

	// RedisSpec is the specification of redis.
	// +kubebuilder:validation:Required
	Spec *CacheSpec `json:"spec"`
}

func (*Cache) DeepCopy

func (in *Cache) DeepCopy() *Cache

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

func (*Cache) DeepCopyInto

func (in *Cache) DeepCopyInto(out *Cache)

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

type CacheSpec

type CacheSpec struct {
	// +kubebuilder:validation:Optional
	Redis *ExternalRedisSpec `json:"redis,omitempty"`

	// +kubebuilder:validation:Optional
	RedisFailover *RedisFailoverSpec `json:"redisFailover,omitempty"`
}

func (*CacheSpec) DeepCopy

func (in *CacheSpec) DeepCopy() *CacheSpec

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

func (*CacheSpec) DeepCopyInto

func (in *CacheSpec) DeepCopyInto(out *CacheSpec)

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

type CertificateInjection

type CertificateInjection struct {
	// +kubebuilder:validation:Optional
	CertificateRefs []string `json:"certificateRefs,omitempty"`
}

CertificateInjection defines the certs injection.

func (*CertificateInjection) DeepCopy

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

func (*CertificateInjection) DeepCopyInto

func (in *CertificateInjection) DeepCopyInto(out *CertificateInjection)

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

func (CertificateInjection) GenerateVolumeMounts

func (ci CertificateInjection) GenerateVolumeMounts() []corev1.VolumeMount

GenerateVolumeMounts generates volumeMounts.

func (CertificateInjection) GenerateVolumes

func (ci CertificateInjection) GenerateVolumes() []corev1.Volume

GenerateVolumes generates volumes.

func (CertificateInjection) ShouldInject

func (ci CertificateInjection) ShouldInject() bool

ShouldInject returns whether should inject certs.

type ChartMuseum

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

	Spec ChartMuseumSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=chartmuseum +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 ChartMuseum is the Schema for the ChartMuseum API.

func (*ChartMuseum) DeepCopy

func (in *ChartMuseum) DeepCopy() *ChartMuseum

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

func (*ChartMuseum) DeepCopyInto

func (in *ChartMuseum) DeepCopyInto(out *ChartMuseum)

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

func (*ChartMuseum) DeepCopyObject

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

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

func (*ChartMuseum) Hub

func (c *ChartMuseum) Hub()

func (*ChartMuseum) SetupWebhookWithManager

func (c *ChartMuseum) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type ChartMuseumAuthBearerSpec

type ChartMuseumAuthBearerSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	// Reference to secret containing authorization server certificate
	CertificateRef string `json:"certificateRef"`

	// +kubebuilder:validation:Required
	// Authorization server url
	Realm string `json:"realm"`

	// +kubebuilder:validation:Required
	// Authorization server service name
	Service string `json:"service"`
}

func (*ChartMuseumAuthBearerSpec) DeepCopy

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

func (*ChartMuseumAuthBearerSpec) DeepCopyInto

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

type ChartMuseumAuthSpec

type ChartMuseumAuthSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Allow anonymous GET operations when auth is used
	AnonymousGet bool `json:"anonymousGet"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	// Reference to secret containing basic http authentication
	// Harbor: Harbor try to connect using chart_controller username
	BasicAuthRef string `json:"basicAuthRef,omitempty"`

	// +kubebuilder:validation:Optional
	// Bearer authentication specs
	Bearer *ChartMuseumAuthBearerSpec `json:"bearer,omitempty"`
}

func (*ChartMuseumAuthSpec) DeepCopy

func (in *ChartMuseumAuthSpec) DeepCopy() *ChartMuseumAuthSpec

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

func (*ChartMuseumAuthSpec) DeepCopyInto

func (in *ChartMuseumAuthSpec) DeepCopyInto(out *ChartMuseumAuthSpec)

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

type ChartMuseumCacheSpec

type ChartMuseumCacheSpec struct {
	// +kubebuilder:validation:Optional
	// Redis cache store
	Redis *harbormetav1.RedisConnection `json:"redis,omitempty"`
}

func (*ChartMuseumCacheSpec) DeepCopy

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

func (*ChartMuseumCacheSpec) DeepCopyInto

func (in *ChartMuseumCacheSpec) DeepCopyInto(out *ChartMuseumCacheSpec)

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

type ChartMuseumChartIndexSpec

type ChartMuseumChartIndexSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// Parallel scan limit for the repo indexer
	ParallelLimit *int32 `json:"parallelLimit,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// Timestamp drift tolerated between cached and generated index before invalidation
	StorageTimestampTolerance *metav1.Duration `json:"storageTimestampTolerance,omitempty"`
}

func (*ChartMuseumChartIndexSpec) DeepCopy

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

func (*ChartMuseumChartIndexSpec) DeepCopyInto

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

type ChartMuseumChartRepoSpec

type ChartMuseumChartRepoSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The length of repo variable
	DepthDynamic bool `json:"depthDynamic"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=1
	// Levels of nested repos for multitenancy
	// Harbor: must be set to 1 to support project namespace
	Depth *int32 `json:"depth,omitempty"`
}

func (*ChartMuseumChartRepoSpec) DeepCopy

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

func (*ChartMuseumChartRepoSpec) DeepCopyInto

func (in *ChartMuseumChartRepoSpec) DeepCopyInto(out *ChartMuseumChartRepoSpec)

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

type ChartMuseumChartSpec

type ChartMuseumChartSpec struct {
	// +kubebuilder:validation:Optional
	// Form fields which will be queried
	PostFormFieldName ChartMuseumPostFormFieldNameSpec `json:"postFormFieldName,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="https?://.*"
	// The absolute url for .tgz files in index.yaml
	URL string `json:"url,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// Allow chart versions to be re-uploaded without ?force querystring
	AllowOverwrite *bool `json:"allowOverwrite,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Enforce the chart museum server only accepts the valid chart version as Helm does
	SemanticVersioning2Only bool `json:"onlySemver2"`

	// +kubebuilder:validation:Required
	Storage ChartMuseumChartStorageSpec `json:"storage"`

	// +kubebuilder:validation:Optional
	Index ChartMuseumChartIndexSpec `json:"index,omitempty"`

	// +kubebuilder:validation:Optional
	Repo ChartMuseumChartRepoSpec `json:"repo,omitempty"`
}

func (*ChartMuseumChartSpec) DeepCopy

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

func (*ChartMuseumChartSpec) DeepCopyInto

func (in *ChartMuseumChartSpec) DeepCopyInto(out *ChartMuseumChartSpec)

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

type ChartMuseumChartStorageDriverAmazonSpec

type ChartMuseumChartStorageDriverAmazonSpec struct {
	// +kubebuilder:validation:Required
	// S3 bucket to store charts for amazon storage
	Bucket string `json:"bucket"`

	// +kubebuilder:validation:Optional
	// Alternative s3 endpoint
	Endpoint string `json:"endpoint,omitempty"`

	// +kubebuilder:validation:Optional
	// Prefix to store charts for the bucket
	Prefix string `json:"prefix,omitempty"`

	// +kubebuilder:validation:Optional
	// Region of the bucket
	Region string `json:"region,omitempty"`

	// +kubebuilder:validation:Optional
	// ServerSideEncryption is the algorithm for server side encryption
	ServerSideEncryption string `json:"serverSideEncryption,omitempty"`

	// +kubebuilder:validation:Optional
	AccessKeyID string `json:"accessKeyID,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	AccessSecretRef string `json:"accessSecretRef,omitempty"`
}

func (*ChartMuseumChartStorageDriverAmazonSpec) DeepCopy

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

func (*ChartMuseumChartStorageDriverAmazonSpec) DeepCopyInto

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

type ChartMuseumChartStorageDriverAzureSpec added in v1.2.0

type ChartMuseumChartStorageDriverAzureSpec struct {
	// +kubebuilder:validation:Optional
	AccountName string `json:"accountname,omitempty"`

	// +kubebuilder:validation:Optional
	AccountKeyRef string `json:"accountkeyRef,omitempty"`

	// +kubebuilder:validation:Optional
	Container string `json:"container,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=core.windows.net
	BaseURL string `json:"baseURL,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=/azure/harbor/charts
	PathPrefix string `json:"pathPrefix,omitempty"`
}

func (*ChartMuseumChartStorageDriverAzureSpec) DeepCopy added in v1.2.0

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

func (*ChartMuseumChartStorageDriverAzureSpec) DeepCopyInto added in v1.2.0

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

type ChartMuseumChartStorageDriverFilesystemSpec

type ChartMuseumChartStorageDriverFilesystemSpec struct {
	// +kubebuilder:validation:Required
	VolumeSource corev1.VolumeSource `json:"volumeSource"`

	// +kubebuilder:validation:Optionel
	Prefix string `json:"prefix,omitempty"`
}

func (*ChartMuseumChartStorageDriverFilesystemSpec) DeepCopy

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

func (*ChartMuseumChartStorageDriverFilesystemSpec) DeepCopyInto

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

type ChartMuseumChartStorageDriverGcsSpec added in v1.2.0

type ChartMuseumChartStorageDriverGcsSpec struct {
	// +kubebuilder:validation:Required
	// bucket to store charts for Gcs storage
	Bucket string `json:"bucket"`

	// +kubebuilder:validation:Required
	// The base64 encoded json file which contains the key
	KeyDataSecretRef string `json:"keyDataSecretRef"`

	// +kubebuilder:validation:Optional
	PathPrefix string `json:"pathPrefix,omitempty"`

	// +kubebuilder:validation:Optional
	ChunkSize string `json:"chunksize,omitempty"`
}

func (*ChartMuseumChartStorageDriverGcsSpec) DeepCopy added in v1.2.0

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

func (*ChartMuseumChartStorageDriverGcsSpec) DeepCopyInto added in v1.2.0

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

type ChartMuseumChartStorageDriverOpenStackSpec

type ChartMuseumChartStorageDriverOpenStackSpec struct {
	// +kubebuilder:validation:Required
	// Container to store charts for openstack storage backend
	Container string `json:"container"`

	// +kubebuilder:validation:Optional
	// Prefix to store charts for the container
	Prefix string `json:"prefix,omitempty"`

	// +kubebuilder:validation:Optional
	// Region of the container
	Region string `json:"region,omitempty"`

	// +kubebuilder:validation:Required
	// URL for obtaining an auth token.
	// https://storage.myprovider.com/v2.0 or https://storage.myprovider.com/v3/auth
	AuthenticationURL string `json:"authenticationURL"`

	// +kubebuilder:validation:Optional
	// Your Openstack tenant name.
	// You can either use tenant or tenantid.
	Tenant string `json:"tenant,omitempty"`

	// +kubebuilder:validation:Optional
	// Your Openstack tenant ID.
	// You can either use tenant or tenantid.
	TenantID string `json:"tenantID,omitempty"`

	// +kubebuilder:validation:Optional
	// Your Openstack domain name for Identity v3 API. You can either use domain or domainid.
	Domain string `json:"domain,omitempty"`

	// +kubebuilder:validation:Optional
	// Your Openstack domain ID for Identity v3 API. You can either use domain or domainid.
	DomainID string `json:"domainID,omitempty"`

	// +kubebuilder:validation:Optional
	// The Openstack user name. You can either use username or userid.
	Username string `json:"username,omitempty"`

	// +kubebuilder:validation:Optional
	// The Openstack user id. You can either use username or userid.
	UserID string `json:"userid,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	// Secret name containing the Openstack password.
	PasswordRef string `json:"passwordRef,omitempty"`
}

func (*ChartMuseumChartStorageDriverOpenStackSpec) DeepCopy

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

func (*ChartMuseumChartStorageDriverOpenStackSpec) DeepCopyInto

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

type ChartMuseumChartStorageDriverSpec

type ChartMuseumChartStorageDriverSpec struct {
	// +kubebuilder:validation:Optional
	Amazon *ChartMuseumChartStorageDriverAmazonSpec `json:"amazon,omitempty"`

	// +kubebuilder:validation:Optional
	OpenStack *ChartMuseumChartStorageDriverOpenStackSpec `json:"openstack,omitempty"`

	// +kubebuilder:validation:Optional
	FileSystem *ChartMuseumChartStorageDriverFilesystemSpec `json:"filesystem,omitempty"`

	// +kubebuilder:validation:Optional
	Azure *ChartMuseumChartStorageDriverAzureSpec `json:"azure,omitempty"`

	// +kubebuilder:validation:Optional
	Gcs *ChartMuseumChartStorageDriverGcsSpec `json:"gcs,omitempty"`
}

func (*ChartMuseumChartStorageDriverSpec) DeepCopy

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

func (*ChartMuseumChartStorageDriverSpec) DeepCopyInto

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

type ChartMuseumChartStorageSpec

type ChartMuseumChartStorageSpec struct {
	ChartMuseumChartStorageDriverSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// Maximum number of objects allowed in storage (per tenant)
	MaxStorageObjects *int64 `json:"maxStorageObject,omitempty"`
}

func (*ChartMuseumChartStorageSpec) DeepCopy

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

func (*ChartMuseumChartStorageSpec) DeepCopyInto

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

type ChartMuseumComponentSpec

type ChartMuseumComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Harbor defaults ChartMuseum to returning relative urls,
	// if you want using absolute url you should enable it
	AbsoluteURL bool `json:"absoluteUrl"`
}

func (*ChartMuseumComponentSpec) DeepCopy

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

func (*ChartMuseumComponentSpec) DeepCopyInto

func (in *ChartMuseumComponentSpec) DeepCopyInto(out *ChartMuseumComponentSpec)

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

type ChartMuseumDisableSpec

type ChartMuseumDisableSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Disable all routes prefixed with
	API bool `json:"api"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Disable use of index-cache.yaml
	StateFiles bool `json:"statefiles"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Do not allow chart versions to be re-uploaded, even with ?force querystrin
	ForceOverwrite bool `json:"forceOverwrite"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Disable Prometheus metrics
	Metrics bool `json:"metrics"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Disable DELETE route
	Delete bool `json:"delete"`
}

func (*ChartMuseumDisableSpec) DeepCopy

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

func (*ChartMuseumDisableSpec) DeepCopyInto

func (in *ChartMuseumDisableSpec) DeepCopyInto(out *ChartMuseumDisableSpec)

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

type ChartMuseumList

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

+kubebuilder:object:root=true ChartMuseumList contains a list of ChartMuseum.

func (*ChartMuseumList) DeepCopy

func (in *ChartMuseumList) DeepCopy() *ChartMuseumList

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

func (*ChartMuseumList) DeepCopyInto

func (in *ChartMuseumList) DeepCopyInto(out *ChartMuseumList)

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

func (*ChartMuseumList) DeepCopyObject

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

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

type ChartMuseumLogSpec

type ChartMuseumLogSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Output structured logs as json
	JSON bool `json:"json"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Show debug messages
	Debug bool `json:"debug"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Log inbound /health requests
	Health bool `json:"health"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// log latency as an integer instead of a string
	LatencyInteger *bool `json:"latencyInteger,omitempty"`
}

func (*ChartMuseumLogSpec) DeepCopy

func (in *ChartMuseumLogSpec) DeepCopy() *ChartMuseumLogSpec

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

func (*ChartMuseumLogSpec) DeepCopyInto

func (in *ChartMuseumLogSpec) DeepCopyInto(out *ChartMuseumLogSpec)

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

type ChartMuseumPostFormFieldNameSpec

type ChartMuseumPostFormFieldNameSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:default="chart"
	// Form field which will be queried for the chart file content
	// Harbor: Expecting chart to use with Harbor
	Chart string `json:"chart,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:default="prov"
	// Form field which will be queried for the provenance file content
	// Harbor: Expecting prov to use with Harbor
	Provenance string `json:"provenance,omitempty"`
}

func (*ChartMuseumPostFormFieldNameSpec) DeepCopy

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

func (*ChartMuseumPostFormFieldNameSpec) DeepCopyInto

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

type ChartMuseumServerSpec

type ChartMuseumServerSpec struct {
	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// Socket timeout
	ReadTimeout *metav1.Duration `json:"readTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// Socket timeout
	WriteTimeout *metav1.Duration `json:"writeTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=20971520
	// Max size of post body (in bytes)
	MaxUploadSize *int64 `json:"maxUploadSize,omitempty"`

	// +kubebuilder:validation:Optional
	// Value to set in the Access-Control-Allow-Origin HTTP header
	CORSAllowOrigin string `json:"corsAllowOrigin,omitempty"`
}

func (*ChartMuseumServerSpec) DeepCopy

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

func (*ChartMuseumServerSpec) DeepCopyInto

func (in *ChartMuseumServerSpec) DeepCopyInto(out *ChartMuseumServerSpec)

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

type ChartMuseumSpec

type ChartMuseumSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	Log ChartMuseumLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Optional
	Authentication ChartMuseumAuthSpec `json:"authentication,omitempty"`

	// +kubebuilder:validation:Optional
	Server ChartMuseumServerSpec `json:"server,omitempty"`

	// +kubebuilder:validation:Optional
	// Disable some features
	Disable ChartMuseumDisableSpec `json:"disable,omitempty"`

	// +kubebuilder:validation:Optional
	// Cache stores
	Cache ChartMuseumCacheSpec `json:"cache,omitempty"`

	// +kubebuilder:validation:Required
	Chart ChartMuseumChartSpec `json:"chart"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`
}

ChartMuseumSpec defines the desired state of ChartMuseum.

func (*ChartMuseumSpec) DeepCopy

func (in *ChartMuseumSpec) DeepCopy() *ChartMuseumSpec

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

func (*ChartMuseumSpec) DeepCopyInto

func (in *ChartMuseumSpec) DeepCopyInto(out *ChartMuseumSpec)

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

type ClusterStatus

type ClusterStatus string

ClusterStatus is a type for cluster status.

type Component

type Component string

the name of component used harbor cluster.

const (
	ComponentHarbor   Component = "harbor"
	ComponentCache    Component = "cache"
	ComponentStorage  Component = "storage"
	ComponentDatabase Component = "database"
)

all Component used in harbor cluster full stack.

type Core

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

	Spec CoreSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=core +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 Core is the Schema for the Core API.

func (*Core) DeepCopy

func (in *Core) DeepCopy() *Core

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

func (*Core) DeepCopyInto

func (in *Core) DeepCopyInto(out *Core)

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

func (*Core) DeepCopyObject

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

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

func (*Core) Hub

func (*Core) Hub()

func (*Core) SetupWebhookWithManager

func (c *Core) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type CoreComponentPortalSpec

type CoreComponentPortalSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`
}

func (*CoreComponentPortalSpec) DeepCopy

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

func (*CoreComponentPortalSpec) DeepCopyInto

func (in *CoreComponentPortalSpec) DeepCopyInto(out *CoreComponentPortalSpec)

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

type CoreComponentSpec

type CoreComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Required
	TokenIssuer cmmeta.ObjectReference `json:"tokenIssuer,omitempty"`

	// +kubebuilder:validation:Optional
	Metrics *harbormetav1.MetricsSpec `json:"metrics,omitempty"`
}

func (*CoreComponentSpec) DeepCopy

func (in *CoreComponentSpec) DeepCopy() *CoreComponentSpec

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

func (*CoreComponentSpec) DeepCopyInto

func (in *CoreComponentSpec) DeepCopyInto(out *CoreComponentSpec)

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

type CoreComponentsChartRepositorySpec

type CoreComponentsChartRepositorySpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	AbsoluteURL bool `json:"absoluteURL"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"redis"}
	// +kubebuilder:default="redis"
	CacheDriver string `json:"cacheDriver,omitempty"`
}

func (*CoreComponentsChartRepositorySpec) DeepCopy

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

func (*CoreComponentsChartRepositorySpec) DeepCopyInto

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

type CoreComponentsJobServiceSpec

type CoreComponentsJobServiceSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SecretRef string `json:"secretRef"`
}

func (*CoreComponentsJobServiceSpec) DeepCopy

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

func (*CoreComponentsJobServiceSpec) DeepCopyInto

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

type CoreComponentsNotaryServerSpec

type CoreComponentsNotaryServerSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`
}

func (*CoreComponentsNotaryServerSpec) DeepCopy

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

func (*CoreComponentsNotaryServerSpec) DeepCopyInto

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

type CoreComponentsRegistryCredentialsSpec

type CoreComponentsRegistryCredentialsSpec struct {
	// +kubebuilder:validation:Required
	Username string `json:"username"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	PasswordRef string `json:"passwordRef"`
}

func (*CoreComponentsRegistryCredentialsSpec) DeepCopy

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

func (*CoreComponentsRegistryCredentialsSpec) DeepCopyInto

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

type CoreComponentsRegistrySpec

type CoreComponentsRegistrySpec struct {
	RegistryControllerConnectionSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	Redis *harbormetav1.RedisConnection `json:"redis,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Sync bool `json:"sync"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	StorageProviderName string `json:"storageProviderName,omitempty"`
}

func (*CoreComponentsRegistrySpec) DeepCopy

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

func (*CoreComponentsRegistrySpec) DeepCopyInto

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

type CoreComponentsSpec

type CoreComponentsSpec struct {
	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Required
	JobService CoreComponentsJobServiceSpec `json:"jobService"`

	// +kubebuilder:validation:Required
	Portal CoreComponentPortalSpec `json:"portal"`

	// +kubebuilder:validation:Required
	Registry CoreComponentsRegistrySpec `json:"registry"`

	// +kubebuilder:validation:Required
	TokenService CoreComponentsTokenServiceSpec `json:"tokenService"`

	// +kubebuilder:validation:Optional
	Trivy *CoreComponentsTrivySpec `json:"trivy,omitempty"`

	// +kubebuilder:validation:Optional
	ChartRepository *CoreComponentsChartRepositorySpec `json:"chartRepository,omitempty"`

	// +kubebuilder:validation:Optional
	NotaryServer *CoreComponentsNotaryServerSpec `json:"notaryServer,omitempty"`
}

func (*CoreComponentsSpec) DeepCopy

func (in *CoreComponentsSpec) DeepCopy() *CoreComponentsSpec

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

func (*CoreComponentsSpec) DeepCopyInto

func (in *CoreComponentsSpec) DeepCopyInto(out *CoreComponentsSpec)

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

type CoreComponentsTokenServiceSpec

type CoreComponentsTokenServiceSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef"`
}

func (*CoreComponentsTokenServiceSpec) DeepCopy

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

func (*CoreComponentsTokenServiceSpec) DeepCopyInto

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

type CoreComponentsTrivySpec

type CoreComponentsTrivySpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	AdapterURL string `json:"adapterURL"`
}

func (*CoreComponentsTrivySpec) DeepCopy

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

func (*CoreComponentsTrivySpec) DeepCopyInto

func (in *CoreComponentsTrivySpec) DeepCopyInto(out *CoreComponentsTrivySpec)

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

type CoreConfig

type CoreConfig struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	AdminInitialPasswordRef string `json:"adminInitialPasswordRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"db_auth"}
	// +kubebuilder:default="db_auth"
	AuthenticationMode string `json:"authMode,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SecretRef string `json:"secretRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	PublicCertificateRef string `json:"publicCertificateRef,omitempty"`
}

func (*CoreConfig) DeepCopy

func (in *CoreConfig) DeepCopy() *CoreConfig

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

func (*CoreConfig) DeepCopyInto

func (in *CoreConfig) DeepCopyInto(out *CoreConfig)

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

type CoreDatabaseSpec

type CoreDatabaseSpec struct {
	harbormetav1.PostgresConnectionWithParameters `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=50
	MaxIdleConnections *int32 `json:"maxIdleConnections,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=1000
	MaxOpenConnections *int32 `json:"maxOpenConnections,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	EncryptionKeyRef string `json:"encryptionKeyRef"`
}

func (*CoreDatabaseSpec) DeepCopy

func (in *CoreDatabaseSpec) DeepCopy() *CoreDatabaseSpec

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

func (*CoreDatabaseSpec) DeepCopyInto

func (in *CoreDatabaseSpec) DeepCopyInto(out *CoreDatabaseSpec)

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

type CoreHTTPSpec

type CoreHTTPSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	GZip *bool `json:"enableGzip,omitempty"`
}

func (*CoreHTTPSpec) DeepCopy

func (in *CoreHTTPSpec) DeepCopy() *CoreHTTPSpec

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

func (*CoreHTTPSpec) DeepCopyInto

func (in *CoreHTTPSpec) DeepCopyInto(out *CoreHTTPSpec)

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

type CoreList

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

+kubebuilder:object:root=true CoreList contains a list of Core.

func (*CoreList) DeepCopy

func (in *CoreList) DeepCopy() *CoreList

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

func (*CoreList) DeepCopyInto

func (in *CoreList) DeepCopyInto(out *CoreList)

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

func (*CoreList) DeepCopyObject

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

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

type CoreLogSpec

type CoreLogSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	Level harbormetav1.CoreLogLevel `json:"level,omitempty"`
}

func (*CoreLogSpec) DeepCopy

func (in *CoreLogSpec) DeepCopy() *CoreLogSpec

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

func (*CoreLogSpec) DeepCopyInto

func (in *CoreLogSpec) DeepCopyInto(out *CoreLogSpec)

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

type CoreRedisSpec

type CoreRedisSpec struct {
	harbormetav1.RedisConnection `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// +kubebuilder:default="30s"
	// IdleTimeoutSecond closes connections after remaining idle for this duration. If the value
	// is zero, then idle connections are not closed. Applications should set
	// the timeout to a value less than the server's timeout.
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty"`
}

func (*CoreRedisSpec) DeepCopy

func (in *CoreRedisSpec) DeepCopy() *CoreRedisSpec

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

func (*CoreRedisSpec) DeepCopyInto

func (in *CoreRedisSpec) DeepCopyInto(out *CoreRedisSpec)

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

type CoreSpec

type CoreSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// https://github.com/goharbor/harbor/blob/master/src/lib/config/metadata/metadatalist.go#L62
	CoreConfig `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	HTTP CoreHTTPSpec `json:"http,omitempty"`

	// +kubebuilder:validation:Required
	Components CoreComponentsSpec `json:"components"`

	// +kubebuilder:validation:Optional
	Proxy *harbormetav1.ProxySpec `json:"proxy,omitempty"`

	// +kubebuilder:validation:Optional
	Log CoreLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Required
	Database CoreDatabaseSpec `json:"database"`

	// +kubebuilder:validation:Required
	Redis CoreRedisSpec `json:"redis"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	ExternalEndpoint string `json:"externalEndpoint"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// +kubebuilder:default="5s"
	ConfigExpiration *metav1.Duration `json:"configExpiration,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CSRFKeyRef string `json:"csrfKeyRef"`

	// +kubebuilder:validation:Optional
	Metrics *harbormetav1.MetricsSpec `json:"metrics,omitempty"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`

	// +kubebuilder:validation:Optional
	Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`
}

CoreSpec defines the desired state of Core.

func (*CoreSpec) DeepCopy

func (in *CoreSpec) DeepCopy() *CoreSpec

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

func (*CoreSpec) DeepCopyInto

func (in *CoreSpec) DeepCopyInto(out *CoreSpec)

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

type Database

type Database struct {
	// Set the kind of which database service to be used, Only support PostgreSQL now.
	// +kubebuilder:validation:Enum={PostgreSQL,Zlando/PostgreSQL}
	Kind string `json:"kind"`

	// +kubebuilder:validation:Required
	Spec DatabaseSpec `json:"spec"`
}

func (*Database) DeepCopy

func (in *Database) DeepCopy() *Database

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

func (*Database) DeepCopyInto

func (in *Database) DeepCopyInto(out *Database)

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

type DatabaseSpec

type DatabaseSpec struct {
	// +kubebuilder:validation:Optional
	PostgreSQL *PostgreSQLSpec `json:"postgresql,omitempty"`

	// ZlandoPostgreSQL
	ZlandoPostgreSQL *ZlandoPostgreSQLSpec `json:"zlandoPostgreSql,omitempty"`
}

func (*DatabaseSpec) DeepCopy

func (in *DatabaseSpec) DeepCopy() *DatabaseSpec

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

func (*DatabaseSpec) DeepCopyInto

func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec)

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

type EmbeddedHarborComponentsSpec

type EmbeddedHarborComponentsSpec struct {
	// +kubebuilder:validation:Optional
	Portal *PortalComponentSpec `json:"portal,omitempty"`

	// +kubebuilder:validation:Required
	Core CoreComponentSpec `json:"core,omitempty"`

	// +kubebuilder:validation:Required
	JobService JobServiceComponentSpec `json:"jobservice,omitempty"`

	// +kubebuilder:validation:Required
	Registry RegistryComponentSpec `json:"registry,omitempty"`

	// +kubebuilder:validation:Optional
	RegistryController *harbormetav1.ComponentSpec `json:"registryctl,omitempty"`

	// +kubebuilder:validation:Optional
	ChartMuseum *ChartMuseumComponentSpec `json:"chartmuseum,omitempty"`

	// +kubebuilder:validation:Optional
	Exporter *ExporterComponentSpec `json:"exporter,omitempty"`

	// +kubebuilder:validation:Optional
	Trivy *TrivyComponentSpec `json:"trivy,omitempty"`

	// +kubebuilder:validation:Optional
	Notary *NotaryComponentSpec `json:"notary,omitempty"`
}

func (*EmbeddedHarborComponentsSpec) DeepCopy

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

func (*EmbeddedHarborComponentsSpec) DeepCopyInto

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

type EmbeddedHarborSpec

type EmbeddedHarborSpec struct {
	EmbeddedHarborComponentsSpec `json:",inline"`

	ImageSource *harbormetav1.ImageSourceSpec `json:"imageSource,omitempty"`

	// +kubebuilder:validation:Required
	Expose HarborExposeSpec `json:"expose"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.*"
	ExternalURL string `json:"externalURL"`

	// +kubebuilder:validation:Optional
	InternalTLS HarborInternalTLSSpec `json:"internalTLS"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	LogLevel harbormetav1.HarborLogLevel `json:"logLevel,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	HarborAdminPasswordRef string `json:"harborAdminPasswordRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="RollingUpdate"
	UpdateStrategyType appsv1.DeploymentStrategyType `json:"updateStrategyType,omitempty"`

	// +kubebuilder:validation:Optional
	Proxy *HarborProxySpec `json:"proxy,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[0-9]+\\.[0-9]+\\.[0-9]+"
	// The version of the harbor, eg 2.1.2
	Version string `json:"version"`
}

func (*EmbeddedHarborSpec) DeepCopy

func (in *EmbeddedHarborSpec) DeepCopy() *EmbeddedHarborSpec

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

func (*EmbeddedHarborSpec) DeepCopyInto

func (in *EmbeddedHarborSpec) DeepCopyInto(out *EmbeddedHarborSpec)

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

type ErrUnsupportedComponent

type ErrUnsupportedComponent harbormetav1.ComponentWithTLS

func (ErrUnsupportedComponent) Error

func (err ErrUnsupportedComponent) Error() string

type Exporter

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

	Spec ExporterSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=exporter +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 Exporter is the Schema for the Exporter API.

func (*Exporter) DeepCopy

func (in *Exporter) DeepCopy() *Exporter

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

func (*Exporter) DeepCopyInto

func (in *Exporter) DeepCopyInto(out *Exporter)

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

func (*Exporter) DeepCopyObject

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

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

func (*Exporter) Hub

func (*Exporter) Hub()

func (*Exporter) SetupWebhookWithManager

func (e *Exporter) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type ExporterCacheSpec

type ExporterCacheSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?"
	// +kubebuilder:default="30s"
	// The duration to cache info from the database and core.
	Duration *metav1.Duration `json:"duration,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?"
	// +kubebuilder:default="4h"
	// The interval to clean the cache info from the database and core.
	CleanInterval *metav1.Duration `json:"cleanInterval,omitempty"`
}

func (*ExporterCacheSpec) DeepCopy

func (in *ExporterCacheSpec) DeepCopy() *ExporterCacheSpec

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

func (*ExporterCacheSpec) DeepCopyInto

func (in *ExporterCacheSpec) DeepCopyInto(out *ExporterCacheSpec)

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

func (*ExporterCacheSpec) GetCleanIntervalEnvVar

func (spec *ExporterCacheSpec) GetCleanIntervalEnvVar() string

func (*ExporterCacheSpec) GetDurationEnvVar

func (spec *ExporterCacheSpec) GetDurationEnvVar() string

type ExporterComponentSpec

type ExporterComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	Cache HarborExporterCacheSpec `json:"cache,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=8001
	// +kubebuilder:validation:Minimum=1
	// The port of the exporter.
	Port int32 `json:"port"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="/metrics"
	// +kubebuilder:validation:Pattern="/.+"
	// The metrics path of the exporter.
	Path string `json:"path"`
}

func (*ExporterComponentSpec) DeepCopy

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

func (*ExporterComponentSpec) DeepCopyInto

func (in *ExporterComponentSpec) DeepCopyInto(out *ExporterComponentSpec)

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

type ExporterCoreSpec

type ExporterCoreSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	// The absolute Harbor Core URL.
	URL string `json:"url"`
}

func (*ExporterCoreSpec) DeepCopy

func (in *ExporterCoreSpec) DeepCopy() *ExporterCoreSpec

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

func (*ExporterCoreSpec) DeepCopyInto

func (in *ExporterCoreSpec) DeepCopyInto(out *ExporterCoreSpec)

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

type ExporterDatabaseSpec

type ExporterDatabaseSpec struct {
	harbormetav1.PostgresConnectionWithParameters `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=50
	MaxIdleConnections *int32 `json:"maxIdleConnections,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=1000
	MaxOpenConnections *int32 `json:"maxOpenConnections,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	EncryptionKeyRef string `json:"encryptionKeyRef"`
}

func (*ExporterDatabaseSpec) DeepCopy

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

func (*ExporterDatabaseSpec) DeepCopyInto

func (in *ExporterDatabaseSpec) DeepCopyInto(out *ExporterDatabaseSpec)

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

type ExporterJobServiceSpec

type ExporterJobServiceSpec struct {
	// +kubebuilder:validation:Optional
	Redis *JobServicePoolRedisSpec `json:"redisPool,omitempty"`
}

func (*ExporterJobServiceSpec) DeepCopy

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

func (*ExporterJobServiceSpec) DeepCopyInto

func (in *ExporterJobServiceSpec) DeepCopyInto(out *ExporterJobServiceSpec)

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

type ExporterList

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

+kubebuilder:object:root=true ExporterList contains a list of Exporter.

func (*ExporterList) DeepCopy

func (in *ExporterList) DeepCopy() *ExporterList

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

func (*ExporterList) DeepCopyInto

func (in *ExporterList) DeepCopyInto(out *ExporterList)

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

func (*ExporterList) DeepCopyObject

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

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

type ExporterLogSpec

type ExporterLogSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	Level harbormetav1.ExporterLogLevel `json:"level,omitempty"`
}

func (*ExporterLogSpec) DeepCopy

func (in *ExporterLogSpec) DeepCopy() *ExporterLogSpec

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

func (*ExporterLogSpec) DeepCopyInto

func (in *ExporterLogSpec) DeepCopyInto(out *ExporterLogSpec)

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

type ExporterSpec

type ExporterSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Optional
	Log ExporterLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Optional
	Cache ExporterCacheSpec `json:"cache,omitempty"`

	// +kubebuilder:validation:Required
	Core ExporterCoreSpec `json:"core"`

	// +kubebuilder:validation:Required
	Database ExporterDatabaseSpec `json:"database"`

	// +kubebuilder:validation:Optional
	JobService *ExporterJobServiceSpec `json:"jobservice,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=8001
	// +kubebuilder:validation:Minimum=1
	Port int32 `json:"port,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="/metrics"
	// +kubebuilder:validation:Pattern="/.+"
	Path string `json:"path,omitempty"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`
}

ExporterSpec defines the desired state of Exporter.

func (*ExporterSpec) DeepCopy

func (in *ExporterSpec) DeepCopy() *ExporterSpec

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

func (*ExporterSpec) DeepCopyInto

func (in *ExporterSpec) DeepCopyInto(out *ExporterSpec)

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

type ExternalRedisSpec

type ExternalRedisSpec struct {
	harbormetav1.RedisHostSpec    `json:",inline"`
	harbormetav1.RedisCredentials `json:",inline"`
}

func (*ExternalRedisSpec) DeepCopy

func (in *ExternalRedisSpec) DeepCopy() *ExternalRedisSpec

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

func (*ExternalRedisSpec) DeepCopyInto

func (in *ExternalRedisSpec) DeepCopyInto(out *ExternalRedisSpec)

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

type FileSystemSpec

type FileSystemSpec struct {
	HarborStorageImageChartStorageFileSystemSpec `json:",inline"`
}

func (*FileSystemSpec) DeepCopy

func (in *FileSystemSpec) DeepCopy() *FileSystemSpec

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

func (*FileSystemSpec) DeepCopyInto

func (in *FileSystemSpec) DeepCopyInto(out *FileSystemSpec)

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

type GcsSpec added in v1.2.0

type GcsSpec struct {
	HarborStorageImageChartStorageGcsSpec `json:",inline"`
}

func (*GcsSpec) DeepCopy added in v1.2.0

func (in *GcsSpec) DeepCopy() *GcsSpec

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

func (*GcsSpec) DeepCopyInto added in v1.2.0

func (in *GcsSpec) DeepCopyInto(out *GcsSpec)

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

type Harbor

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

	Spec HarborSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=harbor +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor",shortName="h" +kubebuilder:printcolumn:name="Public URL",type=string,JSONPath=`.spec.externalURL`,description="The public URL to the Harbor application",priority=5 +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.version`,description="The version to the Harbor application",priority=5 +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 Harbor is the Schema for the harbors API.

func (*Harbor) DeepCopy

func (in *Harbor) DeepCopy() *Harbor

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

func (*Harbor) DeepCopyInto

func (in *Harbor) DeepCopyInto(out *Harbor)

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

func (*Harbor) DeepCopyObject

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

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

func (*Harbor) GetComponentProxySpec

func (h *Harbor) GetComponentProxySpec(component harbormetav1.Component) *harbormetav1.ProxySpec

func (*Harbor) GetComponentSpec

func (h *Harbor) GetComponentSpec(ctx context.Context, component harbormetav1.Component) harbormetav1.ComponentSpec

func (*Harbor) Hub

func (*Harbor) Hub()

func (*Harbor) SetupWebhookWithManager

func (h *Harbor) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

func (*Harbor) Validate

func (h *Harbor) Validate(old *Harbor) error

func (*Harbor) ValidateCreate

func (h *Harbor) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Harbor) ValidateDelete

func (h *Harbor) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Harbor) ValidateUpdate

func (h *Harbor) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type HarborCluster

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

	Spec   HarborClusterSpec   `json:"spec,omitempty"`
	Status HarborClusterStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=harborcluster +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Public URL",type=string,JSONPath=`.spec.externalURL`,description="The public URL to the Harbor application",priority=0 +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.status`,description="The overall status of the Harbor cluster",priority=0 +kubebuilder:printcolumn:name="Operator Version",type=string,JSONPath=`.status.operator.controllerVersion`,description="The operator version ",priority=30 +kubebuilder:printcolumn:name="Operator Git Commit",type=string,JSONPath=`.status.operator.controllerGitCommit`,description="The operator git commit",priority=30 HarborCluster is the Schema for the harborclusters API.

func (*HarborCluster) DeepCopy

func (in *HarborCluster) DeepCopy() *HarborCluster

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

func (*HarborCluster) DeepCopyInto

func (in *HarborCluster) DeepCopyInto(out *HarborCluster)

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

func (*HarborCluster) DeepCopyObject

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

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

func (*HarborCluster) Default

func (harborcluster *HarborCluster) Default()

func (*HarborCluster) Hub

func (harborcluster *HarborCluster) Hub()

func (*HarborCluster) SetupWebhookWithManager

func (harborcluster *HarborCluster) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

func (*HarborCluster) ValidateCreate

func (harborcluster *HarborCluster) ValidateCreate() error

func (*HarborCluster) ValidateDelete

func (harborcluster *HarborCluster) ValidateDelete() error

func (*HarborCluster) ValidateUpdate

func (harborcluster *HarborCluster) ValidateUpdate(old runtime.Object) error

type HarborClusterCondition

type HarborClusterCondition struct {
	// Type is the type of the condition.
	Type HarborClusterConditionType `json:"type"`
	// Status is the status of the condition.
	// Can be True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
	// Unique, one-word, CamelCase reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// Human-readable message indicating details about last transition.
	// +optional
	Message string `json:"message,omitempty"`
}

HarborClusterCondition contains details for the current condition of this pod.

func (*HarborClusterCondition) DeepCopy

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

func (*HarborClusterCondition) DeepCopyInto

func (in *HarborClusterCondition) DeepCopyInto(out *HarborClusterCondition)

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

type HarborClusterConditionType

type HarborClusterConditionType string

HarborClusterConditionType is a valid value for HarborClusterConditionType.Type.

type HarborClusterList

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

+kubebuilder:object:root=true HarborClusterList contains a list of HarborCluster.

func (*HarborClusterList) DeepCopy

func (in *HarborClusterList) DeepCopy() *HarborClusterList

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

func (*HarborClusterList) DeepCopyInto

func (in *HarborClusterList) DeepCopyInto(out *HarborClusterList)

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

func (*HarborClusterList) DeepCopyObject

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

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

type HarborClusterSpec

type HarborClusterSpec struct {
	EmbeddedHarborSpec `json:",inline"`

	// Cache configuration for in-cluster cache services
	// +kubebuilder:validation:Required
	Cache Cache `json:"cache"`

	// Database configuration for in-cluster database service
	// +kubebuilder:validation:Required
	Database Database `json:"database"`

	// Storage configuration for in-cluster storage service
	// +kubebuilder:validation:Required
	Storage Storage `json:"storage"`

	// +kubebuilder:validation:Optional
	// Network settings for the harbor
	Network *harbormetav1.Network `json:"network,omitempty"`

	// +kubebuilder:validation:Optional
	// Trace settings for the harbor
	Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`
}

HarborClusterSpec defines the desired state of HarborCluster.

func (*HarborClusterSpec) DeepCopy

func (in *HarborClusterSpec) DeepCopy() *HarborClusterSpec

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

func (*HarborClusterSpec) DeepCopyInto

func (in *HarborClusterSpec) DeepCopyInto(out *HarborClusterSpec)

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

type HarborClusterStatus

type HarborClusterStatus struct {
	// +kubebuilder:validation:Optional
	Operator harbormetav1.OperatorStatus `json:"operator,omitempty"`

	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// Status indicates the overall status of the Harbor cluster
	// Status can be "unknown", "creating", "healthy" and "unhealthy"
	Status ClusterStatus `json:"status"`

	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Revision of the status
	// Use unix nano
	Revision int64 `json:"revision"`

	// Conditions of each components
	Conditions []HarborClusterCondition `json:"conditions,omitempty"`
}

HarborClusterStatus defines the observed state of HarborCluster.

func (*HarborClusterStatus) DeepCopy

func (in *HarborClusterStatus) DeepCopy() *HarborClusterStatus

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

func (*HarborClusterStatus) DeepCopyInto

func (in *HarborClusterStatus) DeepCopyInto(out *HarborClusterStatus)

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

type HarborComponentsSpec

type HarborComponentsSpec struct {
	// +kubebuilder:validation:Optional
	Portal *PortalComponentSpec `json:"portal,omitempty"`

	// +kubebuilder:validation:Required
	Core CoreComponentSpec `json:"core,omitempty"`

	// +kubebuilder:validation:Required
	JobService JobServiceComponentSpec `json:"jobservice,omitempty"`

	// +kubebuilder:validation:Required
	Registry RegistryComponentSpec `json:"registry,omitempty"`

	// +kubebuilder:validation:Optional
	RegistryController *harbormetav1.ComponentSpec `json:"registryctl,omitempty"`

	// +kubebuilder:validation:Optional
	ChartMuseum *ChartMuseumComponentSpec `json:"chartmuseum,omitempty"`

	// +kubebuilder:validation:Optional
	Exporter *ExporterComponentSpec `json:"exporter,omitempty"`

	// +kubebuilder:validation:Optional
	Trivy *TrivyComponentSpec `json:"trivy,omitempty"`

	// +kubebuilder:validation:Optional
	Notary *NotaryComponentSpec `json:"notary,omitempty"`

	// +kubebuilder:validation:Required
	Redis *ExternalRedisSpec `json:"redis"`

	Database *HarborDatabaseSpec `json:"database"`
}

func (*HarborComponentsSpec) DeepCopy

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

func (*HarborComponentsSpec) DeepCopyInto

func (in *HarborComponentsSpec) DeepCopyInto(out *HarborComponentsSpec)

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

func (*HarborComponentsSpec) RedisConnection

type HarborConfiguration

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

	Spec HarborConfigurationSpec `json:"spec,omitempty"`

	Status HarborConfigurationStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=harborconfiguration +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor",shortName="hc" +kubebuilder:printcolumn:name="HarborCluster",type=string,JSONPath=`.spec.harborClusterRef`,description="HarborCluster name" +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.status`,description="HarborConfiguration status" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC." HarborConfiguration is the Schema for the harbors configuration.

func (*HarborConfiguration) DeepCopy

func (in *HarborConfiguration) DeepCopy() *HarborConfiguration

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

func (*HarborConfiguration) DeepCopyInto

func (in *HarborConfiguration) DeepCopyInto(out *HarborConfiguration)

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

func (*HarborConfiguration) DeepCopyObject

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

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

type HarborConfigurationEmail

type HarborConfigurationEmail struct {
	// The sender name for Email notification.
	// +kubebuilder:validation:Optional
	EmailFrom string `json:"emailFrom,omitempty" yaml:"email_from,omitempty"`
	// The hostname of SMTP server that sends Email notification.
	// +kubebuilder:validation:Optional
	EmailHost string `json:"emailHost,omitempty" yaml:"email_host,omitempty"`
	// By default it's empty so the email_username is picked
	// +kubebuilder:validation:Optional
	EmailIdentity string `json:"emailIdentity,omitempty" yaml:"email_identity,omitempty"`
	// Whether or not the certificate will be verified when Harbor tries to access the email server.
	// +kubebuilder:validation:Optional
	EmailInsecure *bool `json:"emailInsecure,omitempty" yaml:"email_insecure,omitempty"`
	// The username for authenticate against SMTP server.
	// +kubebuilder:validation:Optional
	EmailUsername string `json:"emailUsername,omitempty" yaml:"email_username,omitempty"`
	// Email password.
	// +kubebuilder:validation:Optional
	EmailPassword string `json:"emailPassword,omitempty" yaml:"email_password,omitempty"`
	// The port of SMTP server.
	// +kubebuilder:validation:Optional
	EmailPort int `json:"emailPort,omitempty" yaml:"emailPort,omitempty"`
	// When it”s set to true the system will access Email server via TLS by default.  If it”s set to false, it still will handle "STARTTLS" from server side.
	// +kubebuilder:validation:Optional
	EmailSSL *bool `json:"emailSsl,omitempty" yaml:"email_ssl,omitempty"`
}

HarborConfigurationEmail defines the email related spec.

func (*HarborConfigurationEmail) DeepCopy

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

func (*HarborConfigurationEmail) DeepCopyInto

func (in *HarborConfigurationEmail) DeepCopyInto(out *HarborConfigurationEmail)

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

type HarborConfigurationHTTPAuthProxy

type HarborConfigurationHTTPAuthProxy struct {
	// The endpoint of the HTTP auth.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyEndpoint string `json:"httpAuthproxyEndpoint,omitempty" yaml:"http_authproxy_endpoint,omitempty"`
	// The token review endpoint.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyTokenreviewEndpoint string `json:"httpAuthproxyTokenreviewEndpoint,omitempty" yaml:"http_authproxy_tokenreview_endpoint,omitempty"`
	// The group which has the harbor admin privileges.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyAdminGroups string `json:"httpAuthproxyAdminGroups,omitempty" yaml:"http_authproxy_admin_groups,omitempty"`
	// The username which has the harbor admin privileges.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyAdminUsernames string `json:"httpAuthproxyAdminUsernames,omitempty" yaml:"http_authproxy_admin_usernames,omitempty"`
	// Verify the HTTP auth provider's certificate.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyVerifyCert *bool `json:"httpAuthproxyVerifyCert,omitempty" yaml:"http_authproxy_verify_cert,omitempty"`
	// Search user before onboard.
	// +kubebuilder:validation:Optional
	HTTPAuthproxySkipSearch *bool `json:"httpAuthproxySkipSearch,omitempty" yaml:"http_authproxy_skip_search,omitempty"`
	// The certificate of the HTTP auth provider.
	// +kubebuilder:validation:Optional
	HTTPAuthproxyServerCertificate *bool `json:"httpAuthproxyServerCertificate,omitempty" yaml:"http_authproxy_server_certificate,omitempty"`
}

HarborConfigurationHTTPAuthProxy defines the http_authproxy spec.

func (*HarborConfigurationHTTPAuthProxy) DeepCopy

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

func (*HarborConfigurationHTTPAuthProxy) DeepCopyInto

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

type HarborConfigurationLdap

type HarborConfigurationLdap struct {
	// The Base DN for LDAP binding.
	// +kubebuilder:validation:Optional
	LdapBaseDn string `json:"ldapBaseDn,omitempty" yaml:"ldap_base_dn,omitempty"`
	// The filter for LDAP search.
	// +kubebuilder:validation:Optional
	LdapFilter string `json:"ldapFilter,omitempty" yaml:"ldap_filter,omitempty"`
	// The base DN to search LDAP group.
	// +kubebuilder:validation:Optional
	LdapGroupBaseDn string `json:"ldapGroupBaseDn,omitempty" yaml:"ldap_group_base_dn,omitempty"`
	// Specify the ldap group which have the same privilege with Harbor admin.
	// +kubebuilder:validation:Optional
	LdapGroupAdminDn string `json:"ldapGroupAdminDn,omitempty" yaml:"ldap_group_admin_dn,omitempty"`
	// The attribute which is used as identity of the LDAP group, default is cn.
	// +kubebuilder:validation:Optional
	LdapGroupAttributeName string `json:"ldapGroupAttributeName,omitempty" yaml:"ldap_group_attribute_name,omitempty"`
	// The filter to search the ldap group.
	// +kubebuilder:validation:Optional
	LdapGroupSearchFilter string `json:"ldapGroupSearchFilter,omitempty" yaml:"ldap_group_search_filter,omitempty"`
	// The scope to search ldap group. ”0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE”.
	// +kubebuilder:validation:Optional
	LdapGroupSearchScope int `json:"ldapGroupSearchScope,omitempty" yaml:"ldap_group_search_scope,omitempty"`
	// The scope to search ldap users,'0-LDAP_SCOPE_BASE, 1-LDAP_SCOPE_ONELEVEL, 2-LDAP_SCOPE_SUBTREE'.
	// +kubebuilder:validation:Optional
	LdapScope int `json:"ldapScope,omitempty" yaml:"ldap_scope,omitempty"`
	// The DN of the user to do the search.
	// +kubebuilder:validation:Optional
	LdapSearchDn string `json:"ldapSearchDn,omitempty" yaml:"ldap_search_dn,omitempty"`
	// The password ref of the ldap search dn.
	// +kubebuilder:validation:Optional
	LdapSearchPassword string `json:"ldapSearchPassword,omitempty" yaml:"ldap_search_password,omitempty"`
	// Timeout in seconds for connection to LDAP server.
	// +kubebuilder:validation:Optional
	LdapTimeout int `json:"ldapTimeout,omitempty" yaml:"ldap_timeout,omitempty"`
	// The attribute which is used as identity for the LDAP binding, such as "CN" or "SAMAccountname".
	// +kubebuilder:validation:Optional
	LdapUID string `json:"ldapUid,omitempty" yaml:"ldap_uid,omitempty"`
	// The URL of LDAP server.
	// +kubebuilder:validation:Optional
	LdapURL string `json:"ldapUrl,omitempty" yaml:"ldap_url,omitempty"`
	// Whether verify your OIDC server certificate, disable it if your OIDC server is hosted via self-hosted certificate.
	// +kubebuilder:validation:Optional
	LdapVerifyCert *bool `json:"ldapVerifyCert,omitempty" yaml:"ldap_verify_cert,omitempty"`
	// The user attribute to identify the group membership.
	// +kubebuilder:validation:Optional
	LdapGroupMembershipAttribute string `json:"ldapGroupMembershipAttribute,omitempty" yaml:"ldap_group_membership_attribute,omitempty"`
}

HarborConfigurationLDAP defines the ldap related spec.

func (*HarborConfigurationLdap) DeepCopy

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

func (*HarborConfigurationLdap) DeepCopyInto

func (in *HarborConfigurationLdap) DeepCopyInto(out *HarborConfigurationLdap)

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

type HarborConfigurationList

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

+kubebuilder:object:root=true HarborConfigurationList contains a list of HarborConfiguration.

func (*HarborConfigurationList) DeepCopy

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

func (*HarborConfigurationList) DeepCopyInto

func (in *HarborConfigurationList) DeepCopyInto(out *HarborConfigurationList)

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

func (*HarborConfigurationList) DeepCopyObject

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

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

type HarborConfigurationModel

type HarborConfigurationModel struct {
	// The auth mode of current system, such as "db_auth", "ldap_auth", "oidc_auth".
	// +kubebuilder:validation:Optional
	AuthMode string `json:"authMode,omitempty" yaml:"auth_mode,omitempty"`
	// Email related configurations.
	// +kubebuilder:validation:Optional
	HarborConfigurationEmail `json:",inline" yaml:",inline"`
	// LDAP related configurations.
	// +kubebuilder:validation:Optional
	HarborConfigurationLdap `json:",inline" yaml:",inline"`
	// Indicate who can create projects, it could be ”adminonly” or ”everyone”.
	// +kubebuilder:validation:Optional
	ProjectCreationRestriction string `json:"projectCreationRestriction,omitempty" yaml:"project_creation_restriction,omitempty"`
	// The flag to indicate whether Harbor is in readonly mode.
	// +kubebuilder:validation:Optional
	ReadOnly *bool `json:"readOnly,omitempty" yaml:"read_only,omitempty"`
	// Whether the Harbor instance supports self-registration.  If it”s set to false, admin need to add user to the instance.
	// +kubebuilder:validation:Optional
	SelfRegistration *bool `json:"selfRegistration,omitempty" yaml:"self_registration,omitempty"`
	// The expiration time of the token for internal Registry, in minutes.
	// +kubebuilder:validation:Optional
	TokenExpiration int `json:"tokenExpiration,omitempty" yaml:"token_expiration,omitempty"`
	// HttpAuthproxy related configurations.
	// +kubebuilder:validation:Optional
	HarborConfigurationHTTPAuthProxy `json:",inline" yaml:",inline"`
	// Uaa related configurations.
	// +kubebuilder:validation:Optional
	HarborConfigurationUaa `json:",inline" yaml:",inline"`
	// Oidc related configurations.
	// +kubebuilder:validation:Optional
	HarborConfigurationOidc `json:",inline" yaml:",inline"`
	// The robot account token duration in days.
	// +kubebuilder:validation:Optional
	RobotTokenDuration int `json:"robotTokenDuration,omitempty" yaml:"robot_token_duration,omitempty"`
	// The rebot account name prefix.
	// +kubebuilder:validation:Optional
	RobotNamePrefix string `json:"robotNamePrefix,omitempty" yaml:"robot_name_prefix,omitempty"`
	// Enable notification.
	// +kubebuilder:validation:Optional
	NotificationEnable *bool `json:"notificationEnable,omitempty" yaml:"notification_enable,omitempty"`
	// Enable quota per project.
	// +kubebuilder:validation:Optional
	QuotaPerProjectEnable *bool `json:"quotaPerProjectEnable,omitempty" yaml:"quota_per_project_enable,omitempty"`
	// The storage quota per project.
	// +kubebuilder:validation:Optional
	StoragePerProject int `json:"storagePerProject,omitempty" yaml:"storage_per_project,omitempty"`
}

HarborConfigurationModel defines the spec of HarborConfiguration.

func (*HarborConfigurationModel) DeepCopy

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

func (*HarborConfigurationModel) DeepCopyInto

func (in *HarborConfigurationModel) DeepCopyInto(out *HarborConfigurationModel)

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

func (HarborConfigurationModel) ToJSON

func (h HarborConfigurationModel) ToJSON() ([]byte, error)

ToJSON converts configuration spec to json payload.

type HarborConfigurationOidc

type HarborConfigurationOidc struct {
	// The OIDC provider name.
	// +kubebuilder:validation:Optional
	OidcName string `json:"oidcName,omitempty" yaml:"oidc_name,omitempty"`
	// The endpoint of the OIDC provider.
	// +kubebuilder:validation:Optional
	OidcEndpoint string `json:"oidcEndpoint,omitempty" yaml:"oidc_endpoint,omitempty"`
	// The client ID of the OIDC provider.
	// +kubebuilder:validation:Optional
	OidcClientID string `json:"oidcClientId,omitempty" yaml:"oidc_client_id,omitempty"`
	// The OIDC provider secret.
	// +kubebuilder:validation:Optional
	OidcClientSecret string `json:"oidcClientSecret,omitempty" yaml:"oidc_client_secret,omitempty"`
	// The attribute claims the group name.
	// +kubebuilder:validation:Optional
	OidcGroupsClaim string `json:"oidcGroupsClaim,omitempty" yaml:"oidc_groups_claim,omitempty"`
	// The OIDC group which has the harbor admin privileges.
	// +kubebuilder:validation:Optional
	OidcAdminGroup string `json:"oidcAdminGroup,omitempty" yaml:"oidc_admin_group,omitempty"`
	// The scope of the OIDC provider.
	// +kubebuilder:validation:Optional
	OidcScope string `json:"oidcScope,omitempty" yaml:"oidc_scope,omitempty"`
	// The attribute claims the username.
	// +kubebuilder:validation:Optional
	OidcUserClaim string `json:"oidcUserClaim,omitempty" yaml:"oidc_user_claim,omitempty"`
	// Verify the OIDC provider's certificate'.
	// +kubebuilder:validation:Optional
	OidcVerifyCert *bool `json:"oidcVerifyCert,omitempty" yaml:"oidc_verify_cert,omitempty"`
	// Auto onboard the OIDC user.
	// +kubebuilder:validation:Optional
	OidcAutoOnboard *bool `json:"oidcAutoOnboard,omitempty" yaml:"oidc_auto_onboard,omitempty"`
	// Extra parameters to add when redirect request to OIDC provider.
	// +kubebuilder:validation:Optional
	OidcExtraRedirectParms string `json:"oidcExtraRedirectParms,omitempty" yaml:"oidc_extra_redirect_parms,omitempty"`
}

HarborConfigurationOidc defines the oidc spec.

func (*HarborConfigurationOidc) DeepCopy

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

func (*HarborConfigurationOidc) DeepCopyInto

func (in *HarborConfigurationOidc) DeepCopyInto(out *HarborConfigurationOidc)

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

type HarborConfigurationSpec

type HarborConfigurationSpec struct {
	// Configuration defines the harbor configuration types.
	Configuration HarborConfigurationModel `json:"configuration,omitempty"`
	// HarborClusterRef defines the reference of the harbor cluster name.
	HarborClusterRef string `json:"harborClusterRef,omitempty"`
}

HarborConfigurationSpec defines the spec of HarborConfiguration.

func (*HarborConfigurationSpec) DeepCopy

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

func (*HarborConfigurationSpec) DeepCopyInto

func (in *HarborConfigurationSpec) DeepCopyInto(out *HarborConfigurationSpec)

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

type HarborConfigurationStatus

type HarborConfigurationStatus struct {
	// Status represents harbor configuration status.
	// +kubebuilder:validation:Optional
	Status HarborConfigurationStatusType `json:"status,omitempty"`
	// Reason represents status reason.
	// +kubebuilder:validation:Optional
	Reason string `json:"reason,omitempty"`
	// Message provides human-readable message.
	// +kubebuilder:validation:Optional
	Message string `json:"message,omitempty"`
	// LastApplyTime represents the last apply configuration time.
	// +kubebuilder:validation:Optional
	LastApplyTime *metav1.Time `json:"lastApplyTime,omitempty"`
	// LastConfiguration represents the configuration of last time.
	// +kubebuilder:validation:Optional
	LastConfiguration *HarborConfigurationSpec `json:"lastConfiguration,omitempty"`
}

HarborConfigurationStatus defines the status of HarborConfiguration.

func (*HarborConfigurationStatus) DeepCopy

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

func (*HarborConfigurationStatus) DeepCopyInto

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

type HarborConfigurationStatusType

type HarborConfigurationStatusType string

HarborConfigurationStatusType defines the status type of configuration.

const (
	// HarborConfigurationPhaseReady represents ready status.
	HarborConfigurationStatusReady HarborConfigurationStatusType = "Success"
	// HarborConfigurationPhaseFail represents fail status.
	HarborConfigurationStatusFail HarborConfigurationStatusType = "Fail"
	// HarborConfigurationPhaseError represents unknown status.
	HarborConfigurationStatusUnknown HarborConfigurationStatusType = "Unknown"
)

type HarborConfigurationUaa

type HarborConfigurationUaa struct {
	// The client id of UAA.
	// +kubebuilder:validation:Optional
	UaaClientID string `json:"uaaClientId,omitempty" yaml:"uaa_client_id,omitempty"`
	// The client secret of the UAA.
	// +kubebuilder:validation:Optional
	UaaClientSecret string `json:"uaaClientSecret,omitempty" yaml:"uaa_client_secret,omitempty"`
	// The endpoint of the UAA.
	// +kubebuilder:validation:Optional
	UaaEndpoint string `json:"uaaEndpoint,omitempty" yaml:"uaa_endpoint,omitempty"`
	// Verify the certificate in UAA server.
	// +kubebuilder:validation:Optional
	UaaVerifyCert *bool `json:"uaaVerifyCert,omitempty" yaml:"uaa_verify_cert,omitempty"`
}

HarborConfigurationUaa defines the uaa related spec.

func (*HarborConfigurationUaa) DeepCopy

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

func (*HarborConfigurationUaa) DeepCopyInto

func (in *HarborConfigurationUaa) DeepCopyInto(out *HarborConfigurationUaa)

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

type HarborDatabaseSpec

type HarborDatabaseSpec struct {
	harbormetav1.PostgresCredentials `json:",inline"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Hosts []harbormetav1.PostgresHostSpec `json:"hosts"`

	// +kubebuilder:validation:Optional
	SSLMode harbormetav1.PostgresSSLMode `json:"sslMode,omitempty"`

	// +kubebuilder:validation:Optional
	Prefix string `json:"prefix,omitempty"`
}

func (*HarborDatabaseSpec) DeepCopy

func (in *HarborDatabaseSpec) DeepCopy() *HarborDatabaseSpec

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

func (*HarborDatabaseSpec) DeepCopyInto

func (in *HarborDatabaseSpec) DeepCopyInto(out *HarborDatabaseSpec)

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

func (*HarborDatabaseSpec) GetPostgresqlConnection

type HarborExporterCacheSpec

type HarborExporterCacheSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?"
	// +kubebuilder:default="30s"
	// The duration to cache info from the database and core.
	Duration *metav1.Duration `json:"duration,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?"
	// +kubebuilder:default="4h"
	// The interval to clean the cache info from the database and core.
	CleanInterval *metav1.Duration `json:"cleanInterval,omitempty"`
}

func (*HarborExporterCacheSpec) DeepCopy

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

func (*HarborExporterCacheSpec) DeepCopyInto

func (in *HarborExporterCacheSpec) DeepCopyInto(out *HarborExporterCacheSpec)

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

type HarborExposeComponentSpec

type HarborExposeComponentSpec struct {
	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Required
	Ingress HarborExposeIngressSpec `json:"ingress"`
}

func (*HarborExposeComponentSpec) DeepCopy

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

func (*HarborExposeComponentSpec) DeepCopyInto

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

type HarborExposeIngressSpec

type HarborExposeIngressSpec struct {
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="default"
	// Set to the type of ingress controller.
	Controller harbormetav1.IngressController `json:"controller,omitempty"`

	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// +kubebuilder:validation:Optional
	IngressClassName *string `json:"ingressClassName,omitempty"`
}

func (*HarborExposeIngressSpec) DeepCopy

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

func (*HarborExposeIngressSpec) DeepCopyInto

func (in *HarborExposeIngressSpec) DeepCopyInto(out *HarborExposeIngressSpec)

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

type HarborExposeSpec

type HarborExposeSpec struct {
	// +kubebuilder:validation:Required
	Core HarborExposeComponentSpec `json:"core"`

	// +kubebuilder:validation:Optional
	// The ingress of the notary, required when notary component enabled.
	Notary *HarborExposeComponentSpec `json:"notary,omitempty"`
}

func (*HarborExposeSpec) DeepCopy

func (in *HarborExposeSpec) DeepCopy() *HarborExposeSpec

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

func (*HarborExposeSpec) DeepCopyInto

func (in *HarborExposeSpec) DeepCopyInto(out *HarborExposeSpec)

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

type HarborInternalTLSSpec

type HarborInternalTLSSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Enabled bool `json:"enabled"`
}

func (*HarborInternalTLSSpec) DeepCopy

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

func (*HarborInternalTLSSpec) DeepCopyInto

func (in *HarborInternalTLSSpec) DeepCopyInto(out *HarborInternalTLSSpec)

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

func (*HarborInternalTLSSpec) GetComponentTLSSpec

func (r *HarborInternalTLSSpec) GetComponentTLSSpec(certificateRef string) *harbormetav1.ComponentsTLSSpec

func (*HarborInternalTLSSpec) GetInternalPort

func (r *HarborInternalTLSSpec) GetInternalPort(component harbormetav1.ComponentWithTLS) int32

func (*HarborInternalTLSSpec) GetScheme

func (r *HarborInternalTLSSpec) GetScheme() string

func (*HarborInternalTLSSpec) IsEnabled

func (r *HarborInternalTLSSpec) IsEnabled() bool

type HarborList

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

+kubebuilder:object:root=true +resource:path=harbors HarborList contains a list of Harbor.

func (*HarborList) DeepCopy

func (in *HarborList) DeepCopy() *HarborList

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

func (*HarborList) DeepCopyInto

func (in *HarborList) DeepCopyInto(out *HarborList)

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

func (*HarborList) DeepCopyObject

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

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

type HarborProxySpec

type HarborProxySpec struct {
	harbormetav1.ProxySpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={core,jobservice,trivy}
	Components []string `json:"components,omitempty"`
}

func (*HarborProxySpec) DeepCopy

func (in *HarborProxySpec) DeepCopy() *HarborProxySpec

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

func (*HarborProxySpec) DeepCopyInto

func (in *HarborProxySpec) DeepCopyInto(out *HarborProxySpec)

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

type HarborServerConfiguration added in v1.2.0

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

	Spec   HarborServerConfigurationSpec   `json:"spec,omitempty"`
	Status HarborServerConfigurationStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor",shortName="hsc",scope="Cluster" +kubebuilder:printcolumn:name="Harbor Server",type=string,JSONPath=`.spec.serverURL`,description="The public URL to the Harbor server",priority=0 +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.status`,description="The status of the Harbor server",priority=0 +kubebuilder:printcolumn:name="Version",type=string,JSONPath=`.spec.version`,description="The version of the Harbor server",priority=5 HarborServerConfiguration is the Schema for the harborserverconfigurations API.

func (*HarborServerConfiguration) DeepCopy added in v1.2.0

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

func (*HarborServerConfiguration) DeepCopyInto added in v1.2.0

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

func (*HarborServerConfiguration) DeepCopyObject added in v1.2.0

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

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

type HarborServerConfigurationList added in v1.2.0

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

HarborServerConfigurationList contains a list of HarborServerConfiguration.

func (*HarborServerConfigurationList) DeepCopy added in v1.2.0

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

func (*HarborServerConfigurationList) DeepCopyInto added in v1.2.0

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

func (*HarborServerConfigurationList) DeepCopyObject added in v1.2.0

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

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

type HarborServerConfigurationSpec added in v1.2.0

type HarborServerConfigurationSpec struct {

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^https?://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\\-]*[A-Za-z0-9])"
	ServerURL string `json:"serverURL"`

	// Indicate if the Harbor server is an insecure registry
	// +kubebuilder:validation:Optional
	Insecure bool `json:"insecure,omitempty"`

	// Default indicates the harbor configuration manages namespaces.
	// Value in goharbor.io/harbor annotation will be considered with high priority.
	// At most, one HarborServerConfiguration can be the default, multiple defaults will be rejected.
	// +kubebuilder:validation:Required
	Default bool `json:"default,omitempty"`

	// +kubebuilder:validation:Required
	AccessCredential *AccessCredential `json:"accessCredential"`

	// The version of the Harbor server
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?"
	Version string `json:"version"`

	// Rules configures the container image rewrite rules for transparent proxy caching with Harbor.
	// +kubebuilder:validation:Optional
	Rules []string `json:"rules,omitempty"`

	// NamespaceSelector decides whether to apply the HSC on a namespace based
	// on whether the namespace matches the selector.
	// See
	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
	// for more examples of label selectors.
	//
	// Default to the empty LabelSelector, which matches everything.
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
}

HarborServerConfigurationSpec defines the desired state of HarborServerConfiguration.

func (*HarborServerConfigurationSpec) DeepCopy added in v1.2.0

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

func (*HarborServerConfigurationSpec) DeepCopyInto added in v1.2.0

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

type HarborServerConfigurationStatus added in v1.2.0

type HarborServerConfigurationStatus struct {
	// Status represents harbor configuration status.
	// +kubebuilder:validation:Optional
	Status HarborServerConfigurationStatusType `json:"status,omitempty"`
	// Reason represents status reason.
	// +kubebuilder:validation:Optional
	Reason string `json:"reason,omitempty"`
	// Message provides human-readable message.
	// +kubebuilder:validation:Optional
	Message string `json:"message,omitempty"`
}

HarborConfigurationStatus defines the status of HarborServerConfiguration.

func (*HarborServerConfigurationStatus) DeepCopy added in v1.2.0

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

func (*HarborServerConfigurationStatus) DeepCopyInto added in v1.2.0

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

type HarborServerConfigurationStatusType added in v1.2.0

type HarborServerConfigurationStatusType string

HarborServerConfigurationStatusType defines the status type of configuration.

const (
	// HarborServerConfigurationStatusReady represents ready status.
	HarborServerConfigurationStatusReady HarborServerConfigurationStatusType = "Success"
	// HarborServerConfigurationStatusFail represents fail status.
	HarborServerConfigurationStatusFail HarborServerConfigurationStatusType = "Fail"
	// HarborServerConfigurationStatusUnknown represents unknown status.
	HarborServerConfigurationStatusUnknown HarborServerConfigurationStatusType = "Unknown"
)

type HarborSpec

type HarborSpec struct {
	HarborComponentsSpec `json:",inline"`

	ImageSource *harbormetav1.ImageSourceSpec `json:"imageSource,omitempty"`

	// +kubebuilder:validation:Required
	Expose HarborExposeSpec `json:"expose"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.*"
	ExternalURL string `json:"externalURL"`

	// +kubebuilder:validation:Optional
	InternalTLS HarborInternalTLSSpec `json:"internalTLS"`

	// +kubebuilder:validation:Required
	ImageChartStorage *HarborStorageImageChartStorageSpec `json:"imageChartStorage"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	LogLevel harbormetav1.HarborLogLevel `json:"logLevel,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	HarborAdminPasswordRef string `json:"harborAdminPasswordRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="RollingUpdate"
	UpdateStrategyType appsv1.DeploymentStrategyType `json:"updateStrategyType,omitempty"`

	// +kubebuilder:validation:Optional
	Proxy *HarborProxySpec `json:"proxy,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[0-9]+\\.[0-9]+\\.[0-9]+"
	// The version of the harbor, eg 2.1.2
	Version string `json:"version"`

	// +kubebuilder:validation:Optional
	// Network settings for the harbor
	Network *harbormetav1.Network `json:"network,omitempty"`

	// +kubebuilder:validation:Optional
	// Trace settings for the harbor
	Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`
}

HarborSpec defines the desired state of Harbor.

func (*HarborSpec) DeepCopy

func (in *HarborSpec) DeepCopy() *HarborSpec

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

func (*HarborSpec) DeepCopyInto

func (in *HarborSpec) DeepCopyInto(out *HarborSpec)

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

func (*HarborSpec) ValidateNotary

func (spec *HarborSpec) ValidateNotary() *field.Error

func (*HarborSpec) ValidateRegistryController

func (spec *HarborSpec) ValidateRegistryController() *field.Error

type HarborStorageImageChartStorageAzureSpec added in v1.2.0

type HarborStorageImageChartStorageAzureSpec struct {
	RegistryStorageDriverAzureSpec `json:",inline"`
}

func (*HarborStorageImageChartStorageAzureSpec) ChartMuseum added in v1.2.0

func (*HarborStorageImageChartStorageAzureSpec) DeepCopy added in v1.2.0

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

func (*HarborStorageImageChartStorageAzureSpec) DeepCopyInto added in v1.2.0

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

func (*HarborStorageImageChartStorageAzureSpec) Registry added in v1.2.0

type HarborStorageImageChartStorageFileSystemSpec

type HarborStorageImageChartStorageFileSystemSpec struct {
	// +kubebuilder:validation:Optional
	ChartPersistentVolume *HarborStoragePersistentVolumeSpec `json:"chartPersistentVolume,omitempty"`

	// +kubebuilder:validation:Required
	RegistryPersistentVolume HarborStorageRegistryPersistentVolumeSpec `json:"registryPersistentVolume"`
}

func (*HarborStorageImageChartStorageFileSystemSpec) DeepCopy

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

func (*HarborStorageImageChartStorageFileSystemSpec) DeepCopyInto

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

type HarborStorageImageChartStorageGcsSpec added in v1.2.0

type HarborStorageImageChartStorageGcsSpec struct {
	RegistryStorageDriverGcsSpec `json:",inline"`
}

func (*HarborStorageImageChartStorageGcsSpec) ChartMuseum added in v1.2.0

func (*HarborStorageImageChartStorageGcsSpec) DeepCopy added in v1.2.0

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

func (*HarborStorageImageChartStorageGcsSpec) DeepCopyInto added in v1.2.0

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

func (*HarborStorageImageChartStorageGcsSpec) Registry added in v1.2.0

type HarborStorageImageChartStorageS3Spec

type HarborStorageImageChartStorageS3Spec struct {
	RegistryStorageDriverS3Spec `json:",inline"`
}

func (*HarborStorageImageChartStorageS3Spec) ChartMuseum

func (*HarborStorageImageChartStorageS3Spec) DeepCopy

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

func (*HarborStorageImageChartStorageS3Spec) DeepCopyInto

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

func (*HarborStorageImageChartStorageS3Spec) Registry

type HarborStorageImageChartStorageSpec

type HarborStorageImageChartStorageSpec struct {
	// +kubebuilder:validation:Optional
	Redirect RegistryStorageRedirectSpec `json:"redirect,omitempty"`

	// +kubebuilder:validation:Optional
	// FileSystem is an implementation of the storagedriver.StorageDriver interface which uses the local filesystem.
	// The local filesystem can be a remote volume.
	// See: https://docs.docker.com/registry/storage-drivers/filesystem/
	FileSystem *HarborStorageImageChartStorageFileSystemSpec `json:"filesystem,omitempty"`

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface which uses Amazon S3 or S3 compatible services for object storage.
	// See: https://docs.docker.com/registry/storage-drivers/s3/
	S3 *HarborStorageImageChartStorageS3Spec `json:"s3,omitempty"`

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface that uses OpenStack Swift for object storage.
	// See: https://docs.docker.com/registry/storage-drivers/swift/
	Swift *HarborStorageImageChartStorageSwiftSpec `json:"swift,omitempty"`

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface which uses Microsoft Azure Blob Storage for object storage.
	// See https://docs.docker.com/registry/storage-drivers/azure/
	Azure *HarborStorageImageChartStorageAzureSpec `json:"azure,omitempty"`

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface which uses Google Cloud for object storage.
	// See https://docs.docker.com/registry/storage-drivers/gcs/
	Gcs *HarborStorageImageChartStorageGcsSpec `json:"gcs,omitempty"`
}

func (*HarborStorageImageChartStorageSpec) DeepCopy

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

func (*HarborStorageImageChartStorageSpec) DeepCopyInto

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

func (*HarborStorageImageChartStorageSpec) ProviderName

func (r *HarborStorageImageChartStorageSpec) ProviderName() string

func (*HarborStorageImageChartStorageSpec) Validate

type HarborStorageImageChartStorageSwiftSpec

type HarborStorageImageChartStorageSwiftSpec struct {
	RegistryStorageDriverSwiftSpec `json:",inline"`
}

func (*HarborStorageImageChartStorageSwiftSpec) ChartMuseum

func (*HarborStorageImageChartStorageSwiftSpec) DeepCopy

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

func (*HarborStorageImageChartStorageSwiftSpec) DeepCopyInto

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

func (*HarborStorageImageChartStorageSwiftSpec) Registry

type HarborStoragePersistentVolumeSpec

type HarborStoragePersistentVolumeSpec struct {
	corev1.PersistentVolumeClaimVolumeSource `json:",inline"`

	// +kubebuilder:validation:Optional
	Prefix string `json:"prefix,omitempty"`
}

func (*HarborStoragePersistentVolumeSpec) DeepCopy

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

func (*HarborStoragePersistentVolumeSpec) DeepCopyInto

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

type HarborStorageRegistryPersistentVolumeSpec

type HarborStorageRegistryPersistentVolumeSpec struct {
	HarborStoragePersistentVolumeSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=25
	// +kubebuilder:default=100
	MaxThreads int32 `json:"maxthreads,omitempty"`
}

func (*HarborStorageRegistryPersistentVolumeSpec) DeepCopy

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

func (*HarborStorageRegistryPersistentVolumeSpec) DeepCopyInto

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

type HarborStorageTrivyStorageSpec

type HarborStorageTrivyStorageSpec struct {
	// +kubebuilder:validation:Optional
	// ReportsPersistentVolume specify the persistent volume used to store Trivy reports.
	// If empty, empty dir will be used.
	ReportsPersistentVolume *HarborStoragePersistentVolumeSpec `json:"reportsPersistentVolume,omitempty"`

	// +kubebuilder:validation:Optional
	// CachePersistentVolume specify the persistent volume used to store Trivy cache.
	// If empty, empty dir will be used.
	CachePersistentVolume *HarborStoragePersistentVolumeSpec `json:"cachePersistentVolume,omitempty"`
}

func (*HarborStorageTrivyStorageSpec) DeepCopy

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

func (*HarborStorageTrivyStorageSpec) DeepCopyInto

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

type JobService

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

	Spec JobServiceSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=jobservice +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 JobService is the Schema for the JobService API.

func (*JobService) DeepCopy

func (in *JobService) DeepCopy() *JobService

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

func (*JobService) DeepCopyInto

func (in *JobService) DeepCopyInto(out *JobService)

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

func (*JobService) DeepCopyObject

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

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

func (*JobService) Hub

func (*JobService) Hub()

func (*JobService) SetupWebhookWithManager

func (jobservice *JobService) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

func (*JobService) Validate

func (jobservice *JobService) Validate() error

func (*JobService) ValidateCreate

func (jobservice *JobService) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*JobService) ValidateDelete

func (jobservice *JobService) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*JobService) ValidateUpdate

func (jobservice *JobService) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type JobServiceComponentSpec

type JobServiceComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=10
	WorkerCount int32 `json:"workerCount,omitempty"`

	// +kubebuilder:validation:Optional
	Metrics *harbormetav1.MetricsSpec `json:"metrics,omitempty"`
}

func (*JobServiceComponentSpec) DeepCopy

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

func (*JobServiceComponentSpec) DeepCopyInto

func (in *JobServiceComponentSpec) DeepCopyInto(out *JobServiceComponentSpec)

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

type JobServiceCoreSpec

type JobServiceCoreSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SecretRef string `json:"secretRef"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`
}

func (*JobServiceCoreSpec) DeepCopy

func (in *JobServiceCoreSpec) DeepCopy() *JobServiceCoreSpec

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

func (*JobServiceCoreSpec) DeepCopyInto

func (in *JobServiceCoreSpec) DeepCopyInto(out *JobServiceCoreSpec)

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

type JobServiceList

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

+kubebuilder:object:root=true JobServiceList contains a list of JobService.

func (*JobServiceList) DeepCopy

func (in *JobServiceList) DeepCopy() *JobServiceList

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

func (*JobServiceList) DeepCopyInto

func (in *JobServiceList) DeepCopyInto(out *JobServiceList)

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

func (*JobServiceList) DeepCopyObject

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

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

type JobServiceLoggerConfigDatabaseSpec

type JobServiceLoggerConfigDatabaseSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="INFO"
	Level harbormetav1.JobServiceLogLevel `json:"level,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	Sweeper *metav1.Duration `json:"sweeper,omitempty"`
}

func (*JobServiceLoggerConfigDatabaseSpec) DeepCopy

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

func (*JobServiceLoggerConfigDatabaseSpec) DeepCopyInto

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

type JobServiceLoggerConfigFileSpec

type JobServiceLoggerConfigFileSpec struct {
	// +kubebuilder:validation:Optional
	Volume *corev1.VolumeSource `json:"volume,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="INFO"
	Level harbormetav1.JobServiceLogLevel `json:"level,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	Sweeper *metav1.Duration `json:"sweeper,omitempty"`
}

func (*JobServiceLoggerConfigFileSpec) DeepCopy

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

func (*JobServiceLoggerConfigFileSpec) DeepCopyInto

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

type JobServiceLoggerConfigSTDOUTSpec

type JobServiceLoggerConfigSTDOUTSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="INFO"
	Level harbormetav1.JobServiceLogLevel `json:"level,omitempty"`
}

func (*JobServiceLoggerConfigSTDOUTSpec) DeepCopy

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

func (*JobServiceLoggerConfigSTDOUTSpec) DeepCopyInto

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

type JobServiceLoggerConfigSpec

type JobServiceLoggerConfigSpec struct {
	// +kubebuilder:validation:Optional
	// +nullable
	Files []JobServiceLoggerConfigFileSpec `json:"files,omitempty"`

	// +kubebuilder:validation:Optional
	Database *JobServiceLoggerConfigDatabaseSpec `json:"database,omitempty"`

	// +kubebuilder:validation:Optional
	STDOUT *JobServiceLoggerConfigSTDOUTSpec `json:"stdout,omitempty"`
}

LoggerConfig keeps logger basic configurations. One of files, database or stdout must be defined.

func (*JobServiceLoggerConfigSpec) DeepCopy

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

func (*JobServiceLoggerConfigSpec) DeepCopyInto

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

func (*JobServiceLoggerConfigSpec) Validate

func (r *JobServiceLoggerConfigSpec) Validate() error

type JobServiceLoggerConfigSweeperSpec

type JobServiceLoggerConfigSweeperSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SettingsRef string `json:"settingsRef,omitempty"`
}

JobServiceLoggerConfigSweeperSpec keeps settings of log sweeper.

func (*JobServiceLoggerConfigSweeperSpec) DeepCopy

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

func (*JobServiceLoggerConfigSweeperSpec) DeepCopyInto

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

type JobServiceLoggerName

type JobServiceLoggerName string

+kubebuilder:validation:Type=string +kubebuilder:validation:Enum={"DB","FILE","STD_OUTPUT"} JobServiceLoggerName is the type of logger to configure.

const (
	JobServiceLoggerDatabase JobServiceLoggerName = "DB"
	JobServiceLoggerFile     JobServiceLoggerName = "FILE"
	JobServiceLoggerSTDOUT   JobServiceLoggerName = "STD_OUTPUT"
)

type JobServicePoolRedisSpec

type JobServicePoolRedisSpec struct {
	harbormetav1.RedisConnection `json:",inline"`

	// +kubebuilder:validation:Optional
	Namespace string `json:"namespace,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// +kubebuilder:default="30s"
	// IdleTimeoutSecond closes connections after remaining idle for this duration. If the value
	// is zero, then idle connections are not closed. Applications should set
	// the timeout to a value less than the server's timeout.
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty"`
}

RedisPoolConfig keeps redis worker info.

func (*JobServicePoolRedisSpec) DeepCopy

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

func (*JobServicePoolRedisSpec) DeepCopyInto

func (in *JobServicePoolRedisSpec) DeepCopyInto(out *JobServicePoolRedisSpec)

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

type JobServicePoolSpec

type JobServicePoolSpec struct {
	// Worker concurrency
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:default=10
	WorkerCount int32 `json:"workers,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:Enum={"redis"}
	// +kubebuilder:default="redis"
	Backend string `json:"backend,omitempty"`

	// +kubebuilder:validation:Required
	Redis JobServicePoolRedisSpec `json:"redisPool,omitempty"`
}

PoolConfig keeps worker worker configurations.

func (*JobServicePoolSpec) DeepCopy

func (in *JobServicePoolSpec) DeepCopy() *JobServicePoolSpec

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

func (*JobServicePoolSpec) DeepCopyInto

func (in *JobServicePoolSpec) DeepCopyInto(out *JobServicePoolSpec)

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

type JobServiceSpec

type JobServiceSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SecretRef string `json:"secretRef"`

	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Required
	Core JobServiceCoreSpec `json:"core"`

	// +kubebuilder:validation:Required
	TokenService JobServiceTokenSpec `json:"tokenService"`

	// +kubebuilder:validation:Required
	// Configurations of worker pool
	WorkerPool JobServicePoolSpec `json:"workerPool"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"stdout":{"level":"INFO"},"files":{{"volume":{"emptyDir":{"sizeLimit":"100Mi"}},"level":"INFO","sweeper":"720h"}}}
	// Job logger configurations
	JobLoggers JobServiceLoggerConfigSpec `json:"jobLoggers,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"stdout":{"level":"INFO"}}
	// Logger configurations
	Loggers JobServiceLoggerConfigSpec `json:"loggers,omitempty"`

	// +kubebuilder:validation:Required
	Registry RegistryControllerConnectionSpec `json:"registry"`

	// +kubebuilder:validation:Optional
	Proxy *harbormetav1.ProxySpec `json:"proxy,omitempty"`

	// +kubebuilder:validation:Optional
	Metrics *harbormetav1.MetricsSpec `json:"metrics,omitempty"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`

	// +kubebuilder:validation:Optional
	Trace *harbormetav1.TraceSpec `json:"trace,omitempty"`
}

JobServiceSpec defines the desired state of JobService.

func (*JobServiceSpec) DeepCopy

func (in *JobServiceSpec) DeepCopy() *JobServiceSpec

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

func (*JobServiceSpec) DeepCopyInto

func (in *JobServiceSpec) DeepCopyInto(out *JobServiceSpec)

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

type JobServiceTokenSpec

type JobServiceTokenSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URL string `json:"url"`
}

func (*JobServiceTokenSpec) DeepCopy

func (in *JobServiceTokenSpec) DeepCopy() *JobServiceTokenSpec

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

func (*JobServiceTokenSpec) DeepCopyInto

func (in *JobServiceTokenSpec) DeepCopyInto(out *JobServiceTokenSpec)

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

type MinIOClientSpec

type MinIOClientSpec struct {
	harbormetav1.ImageSpec `json:",inline"`
}

func (*MinIOClientSpec) DeepCopy

func (in *MinIOClientSpec) DeepCopy() *MinIOClientSpec

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

func (*MinIOClientSpec) DeepCopyInto

func (in *MinIOClientSpec) DeepCopyInto(out *MinIOClientSpec)

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

type MinIOSpec

type MinIOSpec struct {
	harbormetav1.ImageSpec `json:",inline"`

	// the version of minIO operator
	// +kubebuilder:default:="4.0.6"
	OperatorVersion string `json:"operatorVersion"`

	// deprecated Determine if the redirection of minio storage is disabled.
	// +kubebuilder:validation:Optional
	Redirect *StorageRedirectSpec `json:"redirect,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	// Reference to the secret containing the MinIO access key and secret key.
	SecretRef string `json:"secretRef,omitempty"`
	// Supply number of replicas.
	// For standalone mode, supply 1. For distributed mode, supply 4 to 16 drives (should be even).
	// Note that the operator does not support upgrading from standalone to distributed mode.
	// +kubebuilder:validation:Minimum:=1
	Replicas int32 `json:"replicas"`
	// Number of persistent volumes that will be attached per server
	// +kubebuilder:validation:Minimum:=1
	VolumesPerServer int32 `json:"volumesPerServer"`
	// VolumeClaimTemplate allows a user to specify how volumes inside a MinIOInstance
	// +kubebuilder:validation:Optional
	VolumeClaimTemplate corev1.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"`
	// If provided, use these requests and limit for cpu/memory resource allocation
	// +kubebuilder:validation:Optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// MinIOClientSpec the spec for the mc
	// +kubebuilder:validation:Optional
	MinIOClientSpec *MinIOClientSpec `json:"mc,omitempty"`
}

func (*MinIOSpec) DeepCopy

func (in *MinIOSpec) DeepCopy() *MinIOSpec

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

func (*MinIOSpec) DeepCopyInto

func (in *MinIOSpec) DeepCopyInto(out *MinIOSpec)

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

func (*MinIOSpec) GetMinIOClientImage

func (spec *MinIOSpec) GetMinIOClientImage() string

type NotaryComponentSpec

type NotaryComponentSpec struct {
	// +kubebuilder:validation:Optional
	Server harbormetav1.ComponentSpec `json:"server"`

	// +kubebuilder:validation:Optional
	Signer harbormetav1.ComponentSpec `json:"signer"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// Inject migration configuration to notary resources
	MigrationEnabled *bool `json:"migrationEnabled,omitempty"`
}

func (*NotaryComponentSpec) DeepCopy

func (in *NotaryComponentSpec) DeepCopy() *NotaryComponentSpec

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

func (*NotaryComponentSpec) DeepCopyInto

func (in *NotaryComponentSpec) DeepCopyInto(out *NotaryComponentSpec)

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

func (*NotaryComponentSpec) IsMigrationEnabled

func (r *NotaryComponentSpec) IsMigrationEnabled() bool

type NotaryLoggingSpec

type NotaryLoggingSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	Level harbormetav1.NotaryLogLevel `json:"level,omitempty"`
}

func (*NotaryLoggingSpec) DeepCopy

func (in *NotaryLoggingSpec) DeepCopy() *NotaryLoggingSpec

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

func (*NotaryLoggingSpec) DeepCopyInto

func (in *NotaryLoggingSpec) DeepCopyInto(out *NotaryLoggingSpec)

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

type NotaryServer

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

	Spec NotaryServerSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=notaryserver +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 NotaryServer is the Schema for the NotaryServer API.

func (*NotaryServer) DeepCopy

func (in *NotaryServer) DeepCopy() *NotaryServer

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

func (*NotaryServer) DeepCopyInto

func (in *NotaryServer) DeepCopyInto(out *NotaryServer)

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

func (*NotaryServer) DeepCopyObject

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

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

func (*NotaryServer) Hub

func (*NotaryServer) Hub()

func (*NotaryServer) SetupWebhookWithManager

func (n *NotaryServer) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type NotaryServerAuthSpec

type NotaryServerAuthSpec struct {
	// +kubebuilder:validation:Required
	Token NotaryServerAuthTokenSpec `json:"token"`
}

func (*NotaryServerAuthSpec) DeepCopy

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

func (*NotaryServerAuthSpec) DeepCopyInto

func (in *NotaryServerAuthSpec) DeepCopyInto(out *NotaryServerAuthSpec)

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

type NotaryServerAuthTokenSpec

type NotaryServerAuthTokenSpec struct {
	// +kubebuilder:validation:Required
	Realm string `json:"realm"`

	// +kubebuilder:validation:Required
	Service string `json:"service"`

	// +kubebuilder:validation:Required
	Issuer string `json:"issuer"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	AutoRedirect *bool `json:"autoredirect,omitempty"`
}

func (*NotaryServerAuthTokenSpec) DeepCopy

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

func (*NotaryServerAuthTokenSpec) DeepCopyInto

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

type NotaryServerList

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

+kubebuilder:object:root=true NotaryServerList contains a list of NotaryServer.

func (*NotaryServerList) DeepCopy

func (in *NotaryServerList) DeepCopy() *NotaryServerList

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

func (*NotaryServerList) DeepCopyInto

func (in *NotaryServerList) DeepCopyInto(out *NotaryServerList)

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

func (*NotaryServerList) DeepCopyObject

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

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

type NotaryServerSpec

type NotaryServerSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Required
	TrustService NotaryServerTrustServiceSpec `json:"trustService"`

	// +kubebuilder:validation:Optional
	Logging NotaryLoggingSpec `json:"logging,omitempty"`

	// +kubebuilder:validation:Required
	Storage NotaryStorageSpec `json:"storage,omitempty"`

	// +kubebuilder:validation:Optional
	Authentication *NotaryServerAuthSpec `json:"authentication,omitempty"`

	// +kubebuilder:validation:Optional
	MigrationEnabled *bool `json:"migrationEnabled,omitempty"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`
}

NotaryServerSpec defines the desired state of NotaryServer.

func (*NotaryServerSpec) DeepCopy

func (in *NotaryServerSpec) DeepCopy() *NotaryServerSpec

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

func (*NotaryServerSpec) DeepCopyInto

func (in *NotaryServerSpec) DeepCopyInto(out *NotaryServerSpec)

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

type NotaryServerTrustServiceRemoteSpec

type NotaryServerTrustServiceRemoteSpec struct {
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:ExclusiveMinimum=true
	// +kubebuilder:default=443
	Port int64 `json:"port,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=ecdsa
	// +kubebuilder:validation:Enum=ecdsa;rsa;ed25519
	KeyAlgorithm string `json:"keyAlgorithm,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef,omitempty"`
}

func (*NotaryServerTrustServiceRemoteSpec) DeepCopy

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

func (*NotaryServerTrustServiceRemoteSpec) DeepCopyInto

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

type NotaryServerTrustServiceSpec

type NotaryServerTrustServiceSpec struct {
	// +kubebuilder:validation:Optional
	Remote *NotaryServerTrustServiceRemoteSpec `json:"remote,omitempty"`
}

func (*NotaryServerTrustServiceSpec) DeepCopy

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

func (*NotaryServerTrustServiceSpec) DeepCopyInto

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

type NotarySigner

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

	Spec NotarySignerSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=notarysigner +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 NotarySigner is the Schema for the NotarySigner API.

func (*NotarySigner) DeepCopy

func (in *NotarySigner) DeepCopy() *NotarySigner

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

func (*NotarySigner) DeepCopyInto

func (in *NotarySigner) DeepCopyInto(out *NotarySigner)

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

func (*NotarySigner) DeepCopyObject

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

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

func (*NotarySigner) Hub

func (*NotarySigner) Hub()

func (*NotarySigner) SetupWebhookWithManager

func (n *NotarySigner) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type NotarySignerAuthenticationSpec

type NotarySignerAuthenticationSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef"`
}

func (*NotarySignerAuthenticationSpec) DeepCopy

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

func (*NotarySignerAuthenticationSpec) DeepCopyInto

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

type NotarySignerList

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

+kubebuilder:object:root=true NotarySignerList contains a list of NotarySigner.

func (*NotarySignerList) DeepCopy

func (in *NotarySignerList) DeepCopy() *NotarySignerList

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

func (*NotarySignerList) DeepCopyInto

func (in *NotarySignerList) DeepCopyInto(out *NotarySignerList)

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

func (*NotarySignerList) DeepCopyObject

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

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

type NotarySignerSpec

type NotarySignerSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Required
	Authentication NotarySignerAuthenticationSpec `json:"authentatication"`

	// +kubebuilder:validation:Optional
	Logging NotaryLoggingSpec `json:"logging,omitempty"`

	// +kubebuilder:validation:Required
	Storage NotarySignerStorageSpec `json:"storage"`

	// +kubebuilder:validation:Optional
	MigrationEnabled *bool `json:"migrationEnabled,omitempty"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`
}

NotarySignerSpec defines the desired state of NotarySigner.

func (*NotarySignerSpec) DeepCopy

func (in *NotarySignerSpec) DeepCopy() *NotarySignerSpec

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

func (*NotarySignerSpec) DeepCopyInto

func (in *NotarySignerSpec) DeepCopyInto(out *NotarySignerSpec)

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

type NotarySignerStorageSpec

type NotarySignerStorageSpec struct {
	NotaryStorageSpec `json:",inline"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	AliasesRef string `json:"aliasesRef"`
}

func (*NotarySignerStorageSpec) DeepCopy

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

func (*NotarySignerStorageSpec) DeepCopyInto

func (in *NotarySignerStorageSpec) DeepCopyInto(out *NotarySignerStorageSpec)

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

type NotaryStorageSpec

type NotaryStorageSpec struct {
	// +kubebuilder:validation:Required
	Postgres harbormetav1.PostgresConnectionWithParameters `json:"postgres"`
}

func (*NotaryStorageSpec) DeepCopy

func (in *NotaryStorageSpec) DeepCopy() *NotaryStorageSpec

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

func (*NotaryStorageSpec) DeepCopyInto

func (in *NotaryStorageSpec) DeepCopyInto(out *NotaryStorageSpec)

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

func (*NotaryStorageSpec) GetPasswordFieldKey

func (n *NotaryStorageSpec) GetPasswordFieldKey() string

type Portal

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

	Spec PortalSpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=portal +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 Portal is the Schema for the portals API.

func (*Portal) DeepCopy

func (in *Portal) DeepCopy() *Portal

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

func (*Portal) DeepCopyInto

func (in *Portal) DeepCopyInto(out *Portal)

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

func (*Portal) DeepCopyObject

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

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

func (*Portal) Hub

func (*Portal) Hub()

func (*Portal) SetupWebhookWithManager

func (p *Portal) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type PortalComponentSpec added in v1.2.0

type PortalComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`
}

func (*PortalComponentSpec) DeepCopy added in v1.2.0

func (in *PortalComponentSpec) DeepCopy() *PortalComponentSpec

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

func (*PortalComponentSpec) DeepCopyInto added in v1.2.0

func (in *PortalComponentSpec) DeepCopyInto(out *PortalComponentSpec)

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

type PortalList

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

+kubebuilder:object:root=true PortalList contains a list of Portal.

func (*PortalList) DeepCopy

func (in *PortalList) DeepCopy() *PortalList

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

func (*PortalList) DeepCopyInto

func (in *PortalList) DeepCopyInto(out *PortalList)

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

func (*PortalList) DeepCopyObject

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

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

type PortalSpec

type PortalSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=1024
	// Sets the maximum number of simultaneous connections that can be opened.
	MaxConnections *int32 `json:"maxConnections,omitempty"`

	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Optional
	// Network settings for the portal
	Network *harbormetav1.Network `json:"network,omitempty"`
}

PortalSpec defines the desired state of Portal.

func (*PortalSpec) DeepCopy

func (in *PortalSpec) DeepCopy() *PortalSpec

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

func (*PortalSpec) DeepCopyInto

func (in *PortalSpec) DeepCopyInto(out *PortalSpec)

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

type PostgreSQLSpec

type PostgreSQLSpec struct {
	HarborDatabaseSpec `json:",inline"`
}

func (*PostgreSQLSpec) DeepCopy

func (in *PostgreSQLSpec) DeepCopy() *PostgreSQLSpec

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

func (*PostgreSQLSpec) DeepCopyInto

func (in *PostgreSQLSpec) DeepCopyInto(out *PostgreSQLSpec)

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

type PullSecretBinding added in v1.2.0

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

	Spec   PullSecretBindingSpec   `json:"spec,omitempty"`
	Status PullSecretBindingStatus `json:"status,omitempty"`
}

PullSecretBinding is the Schema for the pullsecretbindings API.

func (*PullSecretBinding) DeepCopy added in v1.2.0

func (in *PullSecretBinding) DeepCopy() *PullSecretBinding

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

func (*PullSecretBinding) DeepCopyInto added in v1.2.0

func (in *PullSecretBinding) DeepCopyInto(out *PullSecretBinding)

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

func (*PullSecretBinding) DeepCopyObject added in v1.2.0

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

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

type PullSecretBindingList added in v1.2.0

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

PullSecretBindingList contains a list of PullSecretBinding.

func (*PullSecretBindingList) DeepCopy added in v1.2.0

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

func (*PullSecretBindingList) DeepCopyInto added in v1.2.0

func (in *PullSecretBindingList) DeepCopyInto(out *PullSecretBindingList)

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

func (*PullSecretBindingList) DeepCopyObject added in v1.2.0

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

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

type PullSecretBindingSpec added in v1.2.0

type PullSecretBindingSpec struct {

	// RobotID points to the robot account id used for secret binding
	// +kubebuilder:validation:Required
	RobotID string `json:"robotId"`

	// ProjectID points to the project associated with the secret binding
	// +kubebuilder:validation:Required
	ProjectID string `json:"projectId"`

	// Indicate which harbor server configuration is referred
	HarborServerConfig string `json:"harborServerConfig"`

	// Indicate which service account binds the pull secret
	ServiceAccount string `json:"serviceAccount"`
}

PullSecretBindingSpec defines the desired state of PullSecretBinding.

func (*PullSecretBindingSpec) DeepCopy added in v1.2.0

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

func (*PullSecretBindingSpec) DeepCopyInto added in v1.2.0

func (in *PullSecretBindingSpec) DeepCopyInto(out *PullSecretBindingSpec)

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

type PullSecretBindingStatus added in v1.2.0

type PullSecretBindingStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// Indicate the status of binding: `binding`, `bound` and `unknown`
	Status PullSecretBindingStatusType `json:"status"`
	// Reason represents status reason.
	// +kubebuilder:validation:Optional
	Reason string `json:"reason,omitempty"`
	// Message provides human-readable message.
	// +kubebuilder:validation:Optional
	Message string `json:"message,omitempty"`
}

PullSecretBindingStatus defines the observed state of PullSecretBinding.

func (*PullSecretBindingStatus) DeepCopy added in v1.2.0

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

func (*PullSecretBindingStatus) DeepCopyInto added in v1.2.0

func (in *PullSecretBindingStatus) DeepCopyInto(out *PullSecretBindingStatus)

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

type PullSecretBindingStatusType added in v1.2.0

type PullSecretBindingStatusType string

PullSecretBindingStatusType defines the status type of configuration.

const (
	// PullSecretBindingStatusBinding represents ready status.
	PullSecretBindingStatusBinding PullSecretBindingStatusType = "Binding"
	// PullSecretBindingStatusBound represents fail status.
	PullSecretBindingStatusBound PullSecretBindingStatusType = "Bound"
	// PullSecretBindingStatusUnknown represents unknown status.
	PullSecretBindingStatusUnknown PullSecretBindingStatusType = "Unknown"
)

type RedisFailoverSpec

type RedisFailoverSpec struct {
	harbormetav1.ImageSpec `json:",inline"`

	OperatorVersion string `json:"operatorVersion"`

	// +kubebuilder:validation:Optional
	// Server is the configuration of the redis server.
	Server *RedisServer `json:"server,omitempty"`
	// +kubebuilder:validation:Optional
	// Sentinel is the configuration of the redis sentinel.
	Sentinel *RedisSentinel `json:"sentinel,omitempty"`
}

func (*RedisFailoverSpec) DeepCopy

func (in *RedisFailoverSpec) DeepCopy() *RedisFailoverSpec

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

func (*RedisFailoverSpec) DeepCopyInto

func (in *RedisFailoverSpec) DeepCopyInto(out *RedisFailoverSpec)

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

type RedisSentinel

type RedisSentinel struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// Replicas is the instance number of redis sentinel.
	Replicas int `json:"replicas,omitempty"`
}

func (*RedisSentinel) DeepCopy

func (in *RedisSentinel) DeepCopy() *RedisSentinel

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

func (*RedisSentinel) DeepCopyInto

func (in *RedisSentinel) DeepCopyInto(out *RedisSentinel)

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

type RedisServer

type RedisServer struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=1
	// Replicas is the instance number of redis server.
	Replicas int `json:"replicas,omitempty"`

	// +kubebuilder:validation:Optional
	// Resources is the resources requests and limits for redis.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// +kubebuilder:validation:Optional
	// StorageClassName is the storage class name of the redis storage.
	StorageClassName string `json:"storageClassName,omitempty"`

	// +kubebuilder:validation:Optional
	// Storage is the size of the redis storage.
	Storage string `json:"storage,omitempty"`
}

func (*RedisServer) DeepCopy

func (in *RedisServer) DeepCopy() *RedisServer

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

func (*RedisServer) DeepCopyInto

func (in *RedisServer) DeepCopyInto(out *RedisServer)

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

type Registry

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

	Spec RegistrySpec `json:"spec,omitempty"`

	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=registry +kubebuilder:subresource:status +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 Registry is the Schema for the registries API.

func (*Registry) DeepCopy

func (in *Registry) DeepCopy() *Registry

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

func (*Registry) DeepCopyInto

func (in *Registry) DeepCopyInto(out *Registry)

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

func (*Registry) DeepCopyObject

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

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

func (*Registry) Hub

func (*Registry) Hub()

func (*Registry) SetupWebhookWithManager

func (r *Registry) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

func (*Registry) Validate

func (r *Registry) Validate() error

func (*Registry) ValidateCreate

func (r *Registry) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type.

func (*Registry) ValidateDelete

func (r *Registry) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type.

func (*Registry) ValidateUpdate

func (r *Registry) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.

type RegistryAccessLogSpec

type RegistryAccessLogSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Disabled bool `json:"disabled"`
}

func (*RegistryAccessLogSpec) DeepCopy

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

func (*RegistryAccessLogSpec) DeepCopyInto

func (in *RegistryAccessLogSpec) DeepCopyInto(out *RegistryAccessLogSpec)

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

type RegistryAuthenticationHTPasswdSpec

type RegistryAuthenticationHTPasswdSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Realm string `json:"realm"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	SecretRef string `json:"secretRef"`
}

func (*RegistryAuthenticationHTPasswdSpec) DeepCopy

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

func (*RegistryAuthenticationHTPasswdSpec) DeepCopyInto

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

type RegistryAuthenticationSillySpec

type RegistryAuthenticationSillySpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Realm string `json:"realm"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Service string `json:"service"`
}

func (*RegistryAuthenticationSillySpec) DeepCopy

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

func (*RegistryAuthenticationSillySpec) DeepCopyInto

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

type RegistryAuthenticationSpec

type RegistryAuthenticationSpec struct {
	// +kubebuilder:validation:Optional
	Silly *RegistryAuthenticationSillySpec `json:"silly,omitempty"`

	// +kubebuilder:validation:Optional
	Token *RegistryAuthenticationTokenSpec `json:"token,omitempty"`

	// +kubebuilder:validation:Optional
	HTPasswd *RegistryAuthenticationHTPasswdSpec `json:"htPasswd,omitempty"`
}

func (*RegistryAuthenticationSpec) DeepCopy

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

func (*RegistryAuthenticationSpec) DeepCopyInto

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

type RegistryAuthenticationTokenSpec

type RegistryAuthenticationTokenSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Realm string `json:"realm"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Service string `json:"service"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Issuer string `json:"issuer"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default:true
	AutoRedirect *bool `json:"autoredirect,omitempty"`
}

func (*RegistryAuthenticationTokenSpec) DeepCopy

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

func (*RegistryAuthenticationTokenSpec) DeepCopyInto

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

type RegistryCompatibilitySchemaSpec

type RegistryCompatibilitySchemaSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Enabled bool `json:"enabled"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef,omitempty"`
}

func (*RegistryCompatibilitySchemaSpec) DeepCopy

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

func (*RegistryCompatibilitySchemaSpec) DeepCopyInto

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

type RegistryCompatibilitySpec

type RegistryCompatibilitySpec struct {
	// +kubebuilder:validation:Optional
	Schema1 RegistryCompatibilitySchemaSpec `json:"schema1,omitempty"`
}

func (*RegistryCompatibilitySpec) DeepCopy

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

func (*RegistryCompatibilitySpec) DeepCopyInto

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

type RegistryComponentSpec

type RegistryComponentSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	CertificateInjection `json:",inline"`

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

	// +kubebuilder:validation:Optional
	StorageMiddlewares []RegistryMiddlewareSpec `json:"storageMiddlewares,omitempty"`

	// +kubebuilder:validation:Optional
	Metrics *harbormetav1.MetricsSpec `json:"metrics,omitempty"`
}

func (*RegistryComponentSpec) DeepCopy

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

func (*RegistryComponentSpec) DeepCopyInto

func (in *RegistryComponentSpec) DeepCopyInto(out *RegistryComponentSpec)

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

type RegistryConfig01

type RegistryConfig01 struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"level":"info","formatter":"text"}
	Log RegistryLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Optional
	HTTP RegistryHTTPSpec `json:"http,omitempty"`

	// +kubebuilder:validation:Optional
	Health RegistryHealthSpec `json:"health,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={}
	Notifications RegistryNotificationsSpec `json:"notifications,omitempty"`

	// +kubebuilder:validation:Optional
	Authentication RegistryAuthenticationSpec `json:"authentication,omitempty"`

	// +kubebuilder:validation:Optional
	Validation RegistryValidationSpec `json:"validation,omitempty"`

	// +kubebuilder:validation:Optional
	Compatibility RegistryCompatibilitySpec `json:"compatibility,omitempty"`

	// +kubebuilder:validation:Required
	Storage RegistryStorageSpec `json:"storage"`

	// +kubebuilder:validation:Optional
	Middlewares RegistryMiddlewaresSpec `json:"middlewares,omitempty"`

	// +kubebuilder:validation:Optional
	Reporting map[string]string `json:"reporting,omitempty"`

	// +kubebuilder:validation:Optional
	Redis *RegistryRedisSpec `json:"redis,omitempty"`
}

func (*RegistryConfig01) DeepCopy

func (in *RegistryConfig01) DeepCopy() *RegistryConfig01

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

func (*RegistryConfig01) DeepCopyInto

func (in *RegistryConfig01) DeepCopyInto(out *RegistryConfig01)

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

type RegistryController

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

	Spec RegistryControllerSpec `json:"spec,omitempty"`

	// Most recently observed status.
	Status harbormetav1.ComponentStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=registrycontroller +kubebuilder:subresource:status +kubebuilder:resource:categories="goharbor" +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`,description="Timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.",priority=1 +kubebuilder:printcolumn:name="Failure",type=string,JSONPath=`.status.conditions[?(@.type=="Failed")].message`,description="Human readable message describing the failure",priority=5 RegistryController is the Schema for the RegistryController API.

func (*RegistryController) DeepCopy

func (in *RegistryController) DeepCopy() *RegistryController

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

func (*RegistryController) DeepCopyInto

func (in *RegistryController) DeepCopyInto(out *RegistryController)

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

func (*RegistryController) DeepCopyObject

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

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

func (*RegistryController) Hub

func (*RegistryController) Hub()

func (*RegistryController) SetupWebhookWithManager

func (r *RegistryController) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type RegistryControllerAuthenticationSpec

type RegistryControllerAuthenticationSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CoreSecretRef string `json:"coreSecretRef,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	JobServiceSecretRef string `json:"jobServiceSecretRef,omitempty"`
}

func (*RegistryControllerAuthenticationSpec) DeepCopy

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

func (*RegistryControllerAuthenticationSpec) DeepCopyInto

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

type RegistryControllerConnectionSpec

type RegistryControllerConnectionSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	RegistryURL string `json:"url"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	ControllerURL string `json:"controllerURL"`

	// +kubebuilder:validation:Required
	Credentials CoreComponentsRegistryCredentialsSpec `json:"credentials"`
}

func (*RegistryControllerConnectionSpec) DeepCopy

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

func (*RegistryControllerConnectionSpec) DeepCopyInto

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

type RegistryControllerHTTPSSpec

type RegistryControllerHTTPSSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	CertificateRef string `json:"certificateRef"`
}

func (*RegistryControllerHTTPSSpec) DeepCopy

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

func (*RegistryControllerHTTPSSpec) DeepCopyInto

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

type RegistryControllerList

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

+kubebuilder:object:root=true RegistryControllerList contains a list of RegistryController.

func (*RegistryControllerList) DeepCopy

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

func (*RegistryControllerList) DeepCopyInto

func (in *RegistryControllerList) DeepCopyInto(out *RegistryControllerList)

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

func (*RegistryControllerList) DeepCopyObject

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

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

type RegistryControllerLogSpec

type RegistryControllerLogSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default="info"
	Level harbormetav1.RegistryCtlLogLevel `json:"level,omitempty"`
}

func (*RegistryControllerLogSpec) DeepCopy

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

func (*RegistryControllerLogSpec) DeepCopyInto

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

type RegistryControllerSpec

type RegistryControllerSpec struct {
	harbormetav1.ComponentSpec `json:",inline"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	RegistryRef string `json:"registryRef"`

	// +kubebuilder:validation:Optional
	Log RegistryControllerLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Optional
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`

	// +kubebuilder:validation:Required
	Authentication RegistryControllerAuthenticationSpec `json:"authentication"`

	// +kubebuilder:validation:Optional
	Network *harbormetav1.Network `json:"network,omitempty"`
}

RegistryControllerSpec defines the desired state of RegistryController.

func (*RegistryControllerSpec) DeepCopy

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

func (*RegistryControllerSpec) DeepCopyInto

func (in *RegistryControllerSpec) DeepCopyInto(out *RegistryControllerSpec)

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

type RegistryHTTPDebugPrometheusSpec

type RegistryHTTPDebugPrometheusSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Enabled bool `json:"enabled"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="/metrics"
	Path string `json:"path,omitempty"`
}

func (*RegistryHTTPDebugPrometheusSpec) DeepCopy

DeepCopy is an a