v1beta1

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2023 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"
	OssDriverName        = "oss"
)
View Source
const (
	KindDatabaseZlandoPostgreSQL = "Zlando/PostgreSQL"
	KindDatabasePostgreSQL       = "PostgreSQL"
	KindStorageOss               = "Oss"
	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

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

func (in *AccessCredential) DeepCopy() *AccessCredential

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

func (*AccessCredential) DeepCopyInto

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

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

func (*AzureSpec) DeepCopy

func (in *AzureSpec) DeepCopy() *AzureSpec

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

func (*AzureSpec) DeepCopyInto

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

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

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

func (*ChartMuseumChartStorageDriverAzureSpec) DeepCopyInto

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

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

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

func (*ChartMuseumChartStorageDriverGcsSpec) DeepCopyInto

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 ChartMuseumChartStorageDriverOssSpec

type ChartMuseumChartStorageDriverOssSpec struct {
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// +kubebuilder:validation:Required
	AccessKeyID string `json:"accessKeyID"`

	// +kubebuilder:validation:Required
	AccessSecretRef string `json:"accessSecretRef"`

	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

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

func (*ChartMuseumChartStorageDriverOssSpec) DeepCopy

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

func (*ChartMuseumChartStorageDriverOssSpec) 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"`

	// +kubebuilder:validation:Optional
	Oss *ChartMuseumChartStorageDriverOssSpec `json:"oss,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"`

	// +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

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

func (*GcsSpec) DeepCopy

func (in *GcsSpec) DeepCopy() *GcsSpec

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

func (*GcsSpec) DeepCopyInto

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:Optional
	Ingress *HarborExposeIngressSpec `json:"ingress,omitempty"`
}

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

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

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

func (*HarborServerConfiguration) DeepCopyInto

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

func (*HarborServerConfiguration) DeepCopyObject

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

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

type HarborServerConfigurationList

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

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

func (*HarborServerConfigurationList) DeepCopyInto

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

func (*HarborServerConfigurationList) DeepCopyObject

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

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

type HarborServerConfigurationSpec

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

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

func (*HarborServerConfigurationSpec) DeepCopyInto

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

type HarborServerConfigurationStatus

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

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

func (*HarborServerConfigurationStatus) DeepCopyInto

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

type HarborServerConfigurationStatusType

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

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

func (*HarborStorageImageChartStorageAzureSpec) ChartMuseum

func (*HarborStorageImageChartStorageAzureSpec) DeepCopy

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

func (*HarborStorageImageChartStorageAzureSpec) DeepCopyInto

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

func (*HarborStorageImageChartStorageAzureSpec) Registry

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

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

func (*HarborStorageImageChartStorageGcsSpec) ChartMuseum

func (*HarborStorageImageChartStorageGcsSpec) DeepCopy

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

func (*HarborStorageImageChartStorageGcsSpec) DeepCopyInto

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

func (*HarborStorageImageChartStorageGcsSpec) Registry

type HarborStorageImageChartStorageOssSpec

type HarborStorageImageChartStorageOssSpec struct {
	RegistryStorageDriverOssSpec `json:",inline"`
}

func (*HarborStorageImageChartStorageOssSpec) ChartMuseum

func (*HarborStorageImageChartStorageOssSpec) DeepCopy

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

func (*HarborStorageImageChartStorageOssSpec) DeepCopyInto

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

func (*HarborStorageImageChartStorageOssSpec) Registry

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"`

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface which uses Alibaba Cloud for object storage.
	// See https://docs.docker.com/registry/storage-drivers/oss/
	Oss *HarborStorageImageChartStorageOssSpec `json:"oss,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 HarborStorageJobServiceStorageSpec

type HarborStorageJobServiceStorageSpec struct {
	// +kubebuilder:validation:Optional
	// ScanDataExportsPersistentVolume specify the persistent volume used to store data exports.
	// If empty, empty dir will be used.
	ScanDataExportsPersistentVolume *HarborStoragePersistentVolumeSpec `json:"scanDataExportsPersistentVolume,omitempty"`
}

func (*HarborStorageJobServiceStorageSpec) DeepCopy

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

func (*HarborStorageJobServiceStorageSpec) DeepCopyInto

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

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"`

	// +kubebuilder:validation:Optional
	Storage *HarborStorageJobServiceStorageSpec `json:"storage,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"`

	// +kubebuilder:validation:Optional
	Storage *JobServiceStorageSpec `json:"storage,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="RollingUpdate"
	UpdateStrategyType appsv1.DeploymentStrategyType `json:"updateStrategyType,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 JobServiceStorageSpec

type JobServiceStorageSpec struct {
	// +kubebuilder:validation:Required
	ScanDataExports JobServiceStorageVolumeSpec `json:"scanDataExports"`
}

func (*JobServiceStorageSpec) DeepCopy

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

func (*JobServiceStorageSpec) DeepCopyInto

func (in *JobServiceStorageSpec) DeepCopyInto(out *JobServiceStorageSpec)

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

type JobServiceStorageVolumeSpec

type JobServiceStorageVolumeSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"emptyDir":{"sizeLimit":"1Gi"}}
	VolumeSource corev1.VolumeSource `json:"volumeSource,omitempty"`

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

func (*JobServiceStorageVolumeSpec) DeepCopy

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

func (*JobServiceStorageVolumeSpec) DeepCopyInto

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 OssSpec

type OssSpec struct {
	HarborStorageImageChartStorageOssSpec `json:",inline"`
}

func (*OssSpec) DeepCopy

func (in *OssSpec) DeepCopy() *OssSpec

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

func (*OssSpec) DeepCopyInto

func (in *OssSpec) DeepCopyInto(out *OssSpec)

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

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

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

func (*PortalComponentSpec) DeepCopy

func (in *PortalComponentSpec) DeepCopy() *PortalComponentSpec

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

func (*PortalComponentSpec) DeepCopyInto

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

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

func (in *PullSecretBinding) DeepCopy() *PullSecretBinding

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

func (*PullSecretBinding) DeepCopyInto

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

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

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

type PullSecretBindingList

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

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

func (*PullSecretBindingList) DeepCopyInto

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

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

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

type PullSecretBindingSpec

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

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

func (*PullSecretBindingSpec) DeepCopyInto

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

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

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

func (*PullSecretBindingStatus) DeepCopyInto

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

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 autogenerated deepcopy function, copying the receiver, creating a new RegistryHTTPDebugPrometheusSpec.

func (*RegistryHTTPDebugPrometheusSpec) DeepCopyInto

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

type RegistryHTTPDebugSpec

type RegistryHTTPDebugSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:ExclusiveMinimum=true
	// +kubebuilder:default=5001
	Port int32 `json:"port,omitempty"`

	// +kubebuilder:validation:Optional
	Prometheus RegistryHTTPDebugPrometheusSpec `json:"prometheus,omitempty"`
}

func (*RegistryHTTPDebugSpec) DeepCopy

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

func (*RegistryHTTPDebugSpec) DeepCopyInto

func (in *RegistryHTTPDebugSpec) DeepCopyInto(out *RegistryHTTPDebugSpec)

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

type RegistryHTTPHTTP2Spec

type RegistryHTTPHTTP2Spec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Disabled bool `json:"disabled"`
}

func (*RegistryHTTPHTTP2Spec) DeepCopy

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

func (*RegistryHTTPHTTP2Spec) DeepCopyInto

func (in *RegistryHTTPHTTP2Spec) DeepCopyInto(out *RegistryHTTPHTTP2Spec)

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

type RegistryHTTPSpec

type RegistryHTTPSpec 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])?)*"
	// The secret name containing a random piece of data
	// used to sign state that may be stored with the client
	// to protect against tampering. For production environments
	// you should generate a random piece of data using
	// a cryptographically secure random generator.
	// If you omit the secret, the registry will automatically generate a secret when it starts.
	// If you are building a cluster of registries behind a load balancer,
	// you MUST ensure the secret is the same for all registries.
	SecretRef string `json:"secretRef,omitempty"`

	// +kubebuilder:validation:Optional
	// A fully-qualified URL for an externally-reachable address for the registry.
	// If present, it is used when creating generated URLs.
	// Otherwise, these URLs are derived from client requests.
	Host string `json:"host,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"unix","tcp"}
	// +kubebuilder:default="tcp"
	// The network used to create a listening socket.
	Net string `json:"net,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Pattern="(/(.+/)?)?"
	// If the server does not run at the root path, set this to the value of the prefix.
	// The root path is the section before v2.
	// It requires both preceding and trailing slashes, such as in the example /path/.
	Prefix string `json:"prefix,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)?"
	// Amount of time to wait for HTTP connections to drain
	// before shutting down after registry receives SIGTERM signal
	DrainTimeout *metav1.Duration `json:"drainTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"X-Content-Type-Options":{"nosniff"}}
	// Use this option to specify headers that the HTTP server should include in responses.
	// This can be used for security headers such as Strict-Transport-Security.
	// The headers option should contain an option for each header to include, where the parameter
	// name is the header’s name, and the parameter value a list of the header’s payload values.
	// Including X-Content-Type-Options: [nosniff] is recommended, sothat browsers
	// will not interpret content as HTML if they are directed to load a page from the registry.
	// This header is included in the example configuration file.
	Headers map[string][]string `json:"headers,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// If true, the registry returns relative URLs in Location headers.
	// The client is responsible for resolving the correct URL.
	// This option is not compatible with Docker 1.7 and earlier.
	RelativeURLs *bool `json:"relativeURLs,omitempty"`

	// +kubebuilder:validation:Optional
	// Use the http2 structure to control http2 settings for the registry.
	HTTP2 RegistryHTTPHTTP2Spec `json:"http2,omitempty"`

	// +kubebuilder:validation:Optional
	// Use debug option to configure a debug server that can be helpful in diagnosing problems.
	// The debug endpoint can be used for monitoring registry metrics and health,
	// as well as profiling. Sensitive information may be available via the debug endpoint.
	// Please be certain that access to the debug endpoint is locked down in a production environment.
	Debug *RegistryHTTPDebugSpec `json:"debug,omitempty"`

	// +kubebuilder:validation:Optional
	// Use this to configure TLS for the server.
	// If you already have a web server running on the same host as the registry,
	// you may prefer to configure TLS on that web server and proxy connections to the registry server.
	TLS *harbormetav1.ComponentsTLSSpec `json:"tls,omitempty"`
}

func (*RegistryHTTPSpec) DeepCopy

func (in *RegistryHTTPSpec) DeepCopy() *RegistryHTTPSpec

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

func (*RegistryHTTPSpec) DeepCopyInto

func (in *RegistryHTTPSpec) DeepCopyInto(out *RegistryHTTPSpec)

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

type RegistryHealthFileSpec

type RegistryHealthFileSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	File string `json:"path"`

	// +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"
	Interval *metav1.Duration `json:"interval,omitempty"`
}

func (*RegistryHealthFileSpec) DeepCopy

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

func (*RegistryHealthFileSpec) DeepCopyInto

func (in *RegistryHealthFileSpec) DeepCopyInto(out *RegistryHealthFileSpec)

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

type RegistryHealthHTTPSpec

type RegistryHealthHTTPSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	URI string `json:"uri"`

	// +kubebuilder:validation:Optional
	Headers map[string][]string `json:"headers,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="5s"
	Timeout *metav1.Duration `json:"timeout,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="5s"
	Interval *metav1.Duration `json:"interval,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	Threshold *int32 `json:"threshold,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=200
	StatusCode *int32 `json:"statuscode,omitempty"`
}

func (*RegistryHealthHTTPSpec) DeepCopy

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

func (*RegistryHealthHTTPSpec) DeepCopyInto

func (in *RegistryHealthHTTPSpec) DeepCopyInto(out *RegistryHealthHTTPSpec)

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

type RegistryHealthSpec

type RegistryHealthSpec struct {
	// +kubebuilder:validation:Optional
	StorageDriver RegistryHealthStorageDriverSpec `json:"storageDriver,omitempty"`

	// +kubebuilder:validation:Optional
	File []RegistryHealthFileSpec `json:"file,omitempty"`

	// +kubebuilder:validation:Optional
	HTTP []RegistryHealthHTTPSpec `json:"http,omitempty"`

	// +kubebuilder:validation:Optional
	TCP []RegistryHealthTCPSpec `json:"tcp,omitempty"`
}

func (*RegistryHealthSpec) DeepCopy

func (in *RegistryHealthSpec) DeepCopy() *RegistryHealthSpec

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

func (*RegistryHealthSpec) DeepCopyInto

func (in *RegistryHealthSpec) DeepCopyInto(out *RegistryHealthSpec)

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

type RegistryHealthStorageDriverSpec

type RegistryHealthStorageDriverSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	Enabled *bool `json:"enabled,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:ExclusiveMinimum=true
	// +kubebuilder:default=3
	Threshold int32 `json:"threshold,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="5s"
	Interval *metav1.Duration `json:"interval,omitempty"`
}

func (*RegistryHealthStorageDriverSpec) DeepCopy

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

func (*RegistryHealthStorageDriverSpec) DeepCopyInto

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

type RegistryHealthTCPSpec

type RegistryHealthTCPSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	Address string `json:"address"`

	// +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"
	Timeout *metav1.Duration `json:"timeout,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="5s"
	Interval *metav1.Duration `json:"interval,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	Threshold *int32 `json:"threshold,omitempty"`
}

func (*RegistryHealthTCPSpec) DeepCopy

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

func (*RegistryHealthTCPSpec) DeepCopyInto

func (in *RegistryHealthTCPSpec) DeepCopyInto(out *RegistryHealthTCPSpec)

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

type RegistryList

type RegistryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Registry `json:"items"`
}

+kubebuilder:object:root=true RegistryList contains a list of Registry.

func (*RegistryList) DeepCopy

func (in *RegistryList) DeepCopy() *RegistryList

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

func (*RegistryList) DeepCopyInto

func (in *RegistryList) DeepCopyInto(out *RegistryList)

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

func (*RegistryList) DeepCopyObject

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

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

type RegistryLogHookSpec

type RegistryLogHookSpec struct {
	// +kubebuilder:validation:Required
	Type string `json:"type"`

	// +kubebuilder:validation:Required
	Levels []string `json:"levels"`

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

func (*RegistryLogHookSpec) DeepCopy

func (in *RegistryLogHookSpec) DeepCopy() *RegistryLogHookSpec

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

func (*RegistryLogHookSpec) DeepCopyInto

func (in *RegistryLogHookSpec) DeepCopyInto(out *RegistryLogHookSpec)

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

type RegistryLogSpec

type RegistryLogSpec struct {
	// +kubebuilder:validation:Optional
	AccessLog RegistryAccessLogSpec `json:"accessLog,omitempty"`

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="text"
	Formatter harbormetav1.RegistryLogFormatter `json:"formatter,omitempty"`

	// +kubebuilder:validation:Optional
	Fields map[string]string `json:"fields,omitempty"`

	// +kubebuilder:validation:Optional
	Hooks []RegistryLogHookSpec `json:"hooks,omitempty"`
}

func (*RegistryLogSpec) DeepCopy

func (in *RegistryLogSpec) DeepCopy() *RegistryLogSpec

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

func (*RegistryLogSpec) DeepCopyInto

func (in *RegistryLogSpec) DeepCopyInto(out *RegistryLogSpec)

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

type RegistryMiddlewareSpec

type RegistryMiddlewareSpec struct {
	// +kubebuilder:validation:Required
	Name string `json:"name"`

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

func (*RegistryMiddlewareSpec) DeepCopy

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

func (*RegistryMiddlewareSpec) DeepCopyInto

func (in *RegistryMiddlewareSpec) DeepCopyInto(out *RegistryMiddlewareSpec)

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

type RegistryMiddlewaresSpec

type RegistryMiddlewaresSpec struct {
	// +kubebuilder:validation:Optional
	// +listType:map
	// +listMapKey:name
	Registry []RegistryMiddlewareSpec `json:"registry,omitempty"`

	// +kubebuilder:validation:Optional
	// +listType:map
	// +listMapKey:name
	Repository []RegistryMiddlewareSpec `json:"repository,omitempty"`

	// +kubebuilder:validation:Optional
	// +listType:map
	// +listMapKey:name
	Storage []RegistryMiddlewareSpec `json:"storage,omitempty"`
}

func (*RegistryMiddlewaresSpec) DeepCopy

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

func (*RegistryMiddlewaresSpec) DeepCopyInto

func (in *RegistryMiddlewaresSpec) DeepCopyInto(out *RegistryMiddlewaresSpec)

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

type RegistryNotificationEndpointIgnoreSpec

type RegistryNotificationEndpointIgnoreSpec struct {
	// +kubebuilder:validation:Optional
	MediaTypes []string `json:"mediaTypes,omitempty"`

	// +kubebuilder:validation:Optional
	Actions []string `json:"actions,omitempty"`
}

func (*RegistryNotificationEndpointIgnoreSpec) DeepCopy

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

func (*RegistryNotificationEndpointIgnoreSpec) DeepCopyInto

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

type RegistryNotificationEndpointSpec

type RegistryNotificationEndpointSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:minLength=1
	// A human-readable name for the service.
	Name string `json:"name"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	// The URL to which events should be published.
	URL string `json:"url"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// If true, notifications are disabled for the service.
	Disabled bool `json:"disabled"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	Threshold *int32 `json:"threshold,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="5s"
	// A value for the HTTP timeout. A positive integer and an optional suffix indicating the unit of time, which may be ns, us, ms, s, m, or h. If you omit the unit of time, ns is used.
	Timeout *metav1.Duration `json:"timeout,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="10s"
	Backoff *metav1.Duration `json:"backoff,omitempty"`

	// +kubebuilder:validation:Optional
	Headers map[string][]string `json:"headers,omitempty"`

	// +kubebuilder:validation:Optional
	IgnoredMediaTypes []string `json:"ignoredMediaTypes,omitempty"`

	// +kubebuilder:validation:Optional
	Ignore RegistryNotificationEndpointIgnoreSpec `json:"ignore,omitempty"`
}

func (*RegistryNotificationEndpointSpec) DeepCopy

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

func (*RegistryNotificationEndpointSpec) DeepCopyInto

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

type RegistryNotificationEventsSpec

type RegistryNotificationEventsSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	IncludeReferences *bool `json:"includeReferences,omitempty"`
}

func (*RegistryNotificationEventsSpec) DeepCopy

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

func (*RegistryNotificationEventsSpec) DeepCopyInto

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

type RegistryNotificationsSpec

type RegistryNotificationsSpec struct {
	// +kubebuilder:validation:Optional
	// +listType:map
	// +listMapKey:name
	// The endpoints structure contains a list of named services (URLs) that can accept event notifications.
	Endpoints []RegistryNotificationEndpointSpec `json:"endpoints,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={}
	Events RegistryNotificationEventsSpec `json:"events,omitempty"`
}

func (*RegistryNotificationsSpec) DeepCopy

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

func (*RegistryNotificationsSpec) DeepCopyInto

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

type RegistryRedisPoolSpec

type RegistryRedisPoolSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	MaxIdle *int32 `json:"maxIdle,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=5
	MaxActive *int32 `json:"maxActive,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"
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty"`
}

func (*RegistryRedisPoolSpec) DeepCopy

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

func (*RegistryRedisPoolSpec) DeepCopyInto

func (in *RegistryRedisPoolSpec) DeepCopyInto(out *RegistryRedisPoolSpec)

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

type RegistryRedisSpec

type RegistryRedisSpec 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)?"
	DialTimeout *metav1.Duration `json:"dialTimeout,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)?"
	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)?"
	WriteTimeout *metav1.Duration `json:"writeTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	Pool RegistryRedisPoolSpec `json:"pool,omitempty"`
}

func (*RegistryRedisSpec) DeepCopy

func (in *RegistryRedisSpec) DeepCopy() *RegistryRedisSpec

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

func (*RegistryRedisSpec) DeepCopyInto

func (in *RegistryRedisSpec) DeepCopyInto(out *RegistryRedisSpec)

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

type RegistrySpec

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

	CertificateInjection `json:",inline"`

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

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

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

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

RegistrySpec defines the desired state of Registry. See https://docs.docker.com/registry/configuration/

func (*RegistrySpec) DeepCopy

func (in *RegistrySpec) DeepCopy() *RegistrySpec

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

func (*RegistrySpec) DeepCopyInto

func (in *RegistrySpec) DeepCopyInto(out *RegistrySpec)

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

func (*RegistrySpec) Default

func (r *RegistrySpec) Default()

type RegistryStorageCacheSpec

type RegistryStorageCacheSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum={"inmemory","redis"}
	Blobdescriptor string `json:"blobdescriptor,omitempty"`
}

func (*RegistryStorageCacheSpec) DeepCopy

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

func (*RegistryStorageCacheSpec) DeepCopyInto

func (in *RegistryStorageCacheSpec) DeepCopyInto(out *RegistryStorageCacheSpec)

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

type RegistryStorageDeleteSpec

type RegistryStorageDeleteSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	Enabled *bool `json:"enabled,omitempty"`
}

func (*RegistryStorageDeleteSpec) DeepCopy

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

func (*RegistryStorageDeleteSpec) DeepCopyInto

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

type RegistryStorageDriverAzureSpec

type RegistryStorageDriverAzureSpec 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 (*RegistryStorageDriverAzureSpec) DeepCopy

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

func (*RegistryStorageDriverAzureSpec) DeepCopyInto

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

type RegistryStorageDriverFilesystemSpec

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

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

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

func (*RegistryStorageDriverFilesystemSpec) DeepCopy

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

func (*RegistryStorageDriverFilesystemSpec) DeepCopyInto

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

type RegistryStorageDriverGcsSpec

type RegistryStorageDriverGcsSpec struct {
	// +kubebuilder:validation:Required
	// The base64 encoded json file which contains the key
	KeyDataRef string `json:"keyDataRef,omitempty"`

	// +kubebuilder:validation:Required
	// bucket to store charts for Gcs storage
	Bucket string `json:"bucket,omitempty"`

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

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

func (*RegistryStorageDriverGcsSpec) DeepCopy

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

func (*RegistryStorageDriverGcsSpec) DeepCopyInto

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

type RegistryStorageDriverInmemorySpec

type RegistryStorageDriverInmemorySpec struct{}

func (*RegistryStorageDriverInmemorySpec) DeepCopy

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

func (*RegistryStorageDriverInmemorySpec) DeepCopyInto

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

type RegistryStorageDriverOssSpec

type RegistryStorageDriverOssSpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="oss-.*"
	Region string `json:"region"`

	// +kubebuilder:validation:Required
	AccessKeyID string `json:"accessKeyID"`

	// +kubebuilder:validation:Required
	AccessSecretRef string `json:"accessSecretRef"`

	// +kubebuilder:validation:Required
	Bucket string `json:"bucket"`

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

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Internal bool `json:"internal,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Specifies whether the registry stores the image in encrypted format or not. A boolean value.
	Encrypt bool `json:"encrypt,omitempty"`

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=5242880
	// The Oss API requires multipart upload chunks to be at least 5MB.
	ChunkSize int64 `json:"chunksize,omitempty"`
}

func (*RegistryStorageDriverOssSpec) DeepCopy

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

func (*RegistryStorageDriverOssSpec) DeepCopyInto

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

type RegistryStorageDriverS3Spec

type RegistryStorageDriverS3Spec struct {
	// +kubebuilder:validation:Optional
	// The AWS Access Key.
	// If you use IAM roles, omit to fetch temporary credentials from IAM.
	AccessKey string `json:"accesskey,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 AWS Secret Key.
	// If you use IAM roles, omit to fetch temporary credentials from IAM.
	SecretKeyRef string `json:"secretkeyRef,omitempty"`

	// +kubebuilder:validation:Required
	// The AWS region in which your bucket exists.
	// For the moment, the Go AWS library in use does not use the newer DNS based bucket routing.
	// For a list of regions, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
	Region string `json:"region"`

	// +kubebuilder:validation:Optional
	// Endpoint for S3 compatible storage services (Minio, etc).
	RegionEndpoint string `json:"regionendpoint,omitempty"`

	// +kubebuilder:validation:Required
	// The bucket name in which you want to store the registry’s data.
	Bucket string `json:"bucket"`

	// +kubebuilder:validation:Optional
	// This is a prefix that is applied to all S3 keys to allow you to segment data in your bucket if necessary.
	RootDirectory string `json:"rootdirectory,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="STANDARD"
	// The S3 storage class applied to each registry file.
	StorageClass string `json:"storageclass,omitempty"`

	// +kubebuilder:validation:Optional
	// KMS key ID to use for encryption (encrypt must be true, or this parameter is ignored).
	KeyID string `json:"keyid,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Specifies whether the registry stores the image in encrypted format or not. A boolean value.
	Encrypt bool `json:"encrypt"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Skips TLS verification when the value is set to true.
	SkipVerify bool `json:"skipverify"`

	// +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"`

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// Indicates whether the registry uses Version 4 of AWS’s authentication.
	V4Auth *bool `json:"v4auth,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=5242880
	// The S3 API requires multipart upload chunks to be at least 5MB.
	ChunkSize int64 `json:"chunksize,omitempty"`

	// +kubebuilder:validation:Optional
	MultipartCopyChunkSize int64 `json:"multipartcopychunksize,omitempty"`

	// +kubebuilder:validation:Optional
	MultipartCopyMaxConcurrency int64 `json:"multipartcopymaxconcurrency,omitempty"`

	// +kubebuilder:validation:Optional
	MultipartCopyThresholdSize int64 `json:"multipartcopythresholdsize,omitempty"`
}

func (*RegistryStorageDriverS3Spec) DeepCopy

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

func (*RegistryStorageDriverS3Spec) DeepCopyInto

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

type RegistryStorageDriverSpec

type RegistryStorageDriverSpec struct {
	// +kubebuilder:validation:Optional
	// InMemory storage driver is for purely tests purposes.
	// This driver is an implementation of the storagedriver.StorageDriver interface which
	// uses local memory for object storage.
	// If you would like to run a registry from volatile memory, use the filesystem driver on a ramdisk.
	// IMPORTANT: This storage driver does not persist data across runs. This is why it is only suitable for testing. Never use this driver in production.
	// See: https://docs.docker.com/registry/storage-drivers/inmemory/
	InMemory *RegistryStorageDriverInmemorySpec `json:"inmemory,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 *RegistryStorageDriverFilesystemSpec `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 *RegistryStorageDriverS3Spec `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 *RegistryStorageDriverSwiftSpec `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 *RegistryStorageDriverAzureSpec `json:"azure,omitempty"`

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

	// +kubebuilder:validation:Optional
	// An implementation of the storagedriver.StorageDriver interface which uses Alibaba Cloud for object storage.
	// https://docs.docker.com/registry/storage-drivers/oss/
	Oss *RegistryStorageDriverOssSpec `json:"oss,omitempty"`
}

func (*RegistryStorageDriverSpec) DeepCopy

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

func (*RegistryStorageDriverSpec) DeepCopyInto

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

func (*RegistryStorageDriverSpec) Validate

func (r *RegistryStorageDriverSpec) Validate() error

type RegistryStorageDriverSwiftSpec

type RegistryStorageDriverSwiftSpec struct {
	// +kubebuilder:validation:Required
	// URL for obtaining an auth token.
	// https://storage.myprovider.com/v2.0 or https://storage.myprovider.com/v3/auth
	AuthURL string `json:"authurl"`

	// +kubebuilder:validation:Required
	// The Openstack user name.
	Username string `json:"username,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"`

	// +kubebuilder:validation:Optional
	// The Openstack region in which your container exists.
	Region string `json:"region,omitempty"`

	// +kubebuilder:validation:Required
	// The name of your Swift container where you wish to store the registry’s data.
	// The driver creates the named container during its initialization.
	Container string `json:"container"`

	// +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
	// Your Openstack trust ID for Identity v3 API.
	TrustID string `json:"trustid,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Skips TLS verification if the value is set to true.
	InsecureSkipVerify bool `json:"insecureskipverify,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=5242880
	// Size of the data segments for the Swift Dynamic Large Objects.
	// This value should be a number.
	ChunkSize int64 `json:"chunksize,omitempty"`

	// +kubebuilder:validation:Optional
	// This is a prefix that is applied to all Swift keys to allow you to segment data in your container if necessary. Defaults to the container’s root.
	Prefix string `json:"prefix,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])?)*"
	// The secret key used to generate temporary URLs.
	SecretKeyRef string `json:"secretkeyRef,omitempty"`

	// +kubebuilder:validation:Optional
	// The access key to generate temporary URLs. It is used by HP Cloud Object Storage in addition to the secretkey parameter.
	AccessKey string `json:"accesskey,omitempty"`

	// +kubebuilder:validation:Optional
	// Specify the OpenStack Auth’s version, for example 3. By default the driver autodetects the auth’s version from the authurl.
	AuthVersion string `json:"authversion,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="public"
	// +kubebuilder:validation:Enum={"public","internal","admin"}
	// The endpoint type used when connecting to swift.
	EndpointType string `json:"endpointtype,omitempty"`
}

func (*RegistryStorageDriverSwiftSpec) DeepCopy

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

func (*RegistryStorageDriverSwiftSpec) DeepCopyInto

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

type RegistryStorageMaintenanceReadOnlySpec

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

func (*RegistryStorageMaintenanceReadOnlySpec) DeepCopy

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

func (*RegistryStorageMaintenanceReadOnlySpec) DeepCopyInto

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

type RegistryStorageMaintenanceSpec

type RegistryStorageMaintenanceSpec struct {
	// +kubebuilder:validation:Optional
	UploadPurging RegistryStorageMaintenanceUploadPurgingSpec `json:"uploadPurging,omitempty"`

	// +kubebuilder:validation:Optional
	ReadOnly RegistryStorageMaintenanceReadOnlySpec `json:"readOnly,omitempty"`
}

func (*RegistryStorageMaintenanceSpec) DeepCopy

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

func (*RegistryStorageMaintenanceSpec) DeepCopyInto

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

type RegistryStorageMaintenanceUploadPurgingSpec

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	DryRun bool `json:"dryRun"`

	// +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="168h"
	Age *metav1.Duration `json:"age,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="24h"
	Interval *metav1.Duration `json:"interval,omitempty"`
}

func (*RegistryStorageMaintenanceUploadPurgingSpec) DeepCopy

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

func (*RegistryStorageMaintenanceUploadPurgingSpec) DeepCopyInto

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

type RegistryStorageRedirectSpec

type RegistryStorageRedirectSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	Disable bool `json:"disable"`
}

func (*RegistryStorageRedirectSpec) DeepCopy

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

func (*RegistryStorageRedirectSpec) DeepCopyInto

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

type RegistryStorageSpec

type RegistryStorageSpec struct {
	// +kubebuilder:validation:Required
	Driver RegistryStorageDriverSpec `json:"driver"`

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

	// +kubebuilder:validation:Optional
	Maintenance RegistryStorageMaintenanceSpec `json:"maintenance,omitempty"`

	// +kubebuilder:validation:Optional
	Delete RegistryStorageDeleteSpec `json:"delete,omitempty"`

	// +kubebuilder:validation:Optional
	Redirect RegistryStorageRedirectSpec `json:"redirect,omitempty"`
}

func (*RegistryStorageSpec) DeepCopy

func (in *RegistryStorageSpec) DeepCopy() *RegistryStorageSpec

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

func (*RegistryStorageSpec) DeepCopyInto

func (in *RegistryStorageSpec) DeepCopyInto(out *RegistryStorageSpec)

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

type RegistryValidationManifestSpec

type RegistryValidationManifestSpec struct {
	// +kubebuilder:validation:Optional
	URLs RegistryValidationManifestURLsSpec `json:"urls,omitempty"`
}

func (*RegistryValidationManifestSpec) DeepCopy

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

func (*RegistryValidationManifestSpec) DeepCopyInto

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

type RegistryValidationManifestURLsSpec

type RegistryValidationManifestURLsSpec struct {
	// +kubebuilder:validation:Optional
	Allow []string `json:"allow,omitempty"`

	// +kubebuilder:validation:Optional
	Deny []string `json:"deny,omitempty"`
}

func (*RegistryValidationManifestURLsSpec) DeepCopy

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

func (*RegistryValidationManifestURLsSpec) DeepCopyInto

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

type RegistryValidationSpec

type RegistryValidationSpec struct {
	// +kubebuilder:validation:Optional
	Disabled bool `json:"disabled"`

	// +kubebuilder:validation:Optional
	Manifests RegistryValidationManifestSpec `json:"manifests,omitempty"`
}

func (*RegistryValidationSpec) DeepCopy

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

func (*RegistryValidationSpec) DeepCopyInto

func (in *RegistryValidationSpec) DeepCopyInto(out *RegistryValidationSpec)

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

type S3Spec

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

func (*S3Spec) DeepCopy

func (in *S3Spec) DeepCopy() *S3Spec

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

func (*S3Spec) DeepCopyInto

func (in *S3Spec) DeepCopyInto(out *S3Spec)

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

type Storage

type Storage struct {
	// Kind of which storage service to be used. Only support MinIO now.
	// +kubebuilder:validation:Enum={MinIO,S3,Swift,FileSystem,Azure,Gcs,Oss}
	Kind string `json:"kind"`

	Spec StorageSpec `json:"spec"`
}

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

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

type StorageRedirectSpec

type StorageRedirectSpec struct {
	// Default is true
	// +kubebuilder:default:=true
	Enable bool `json:"enable"`
	// +kubebuilder:validation:Optional
	Expose *HarborExposeComponentSpec `json:"expose,omitempty"`
}

StorageRedirectSpec defines if the redirection is disabled.

func (*StorageRedirectSpec) DeepCopy

func (in *StorageRedirectSpec) DeepCopy() *StorageRedirectSpec

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

func (*StorageRedirectSpec) DeepCopyInto

func (in *StorageRedirectSpec) DeepCopyInto(out *StorageRedirectSpec)

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

type StorageSpec

type StorageSpec struct {
	// inCluster options.
	// +kubebuilder:validation:Optional
	MinIO *MinIOSpec `json:"minIO,omitempty"`
	// +kubebuilder:validation:Optional
	FileSystem *FileSystemSpec `json:"fileSystem,omitempty"`
	// +kubebuilder:validation:Optional
	S3 *S3Spec `json:"s3,omitempty"`
	// +kubebuilder:validation:Optional
	Swift *SwiftSpec `json:"swift,omitempty"`
	// +kubebuilder:validation:Optional
	Azure *AzureSpec `json:"azure,omitempty"`
	// +kubebuilder:validation:Optional
	Gcs *GcsSpec `json:"gcs,omitempty"`
	// +kubebuilder:validation:Optional
	Oss *OssSpec `json:"oss,omitempty"`
	// Determine if the redirection of minio storage is disabled.
	// +kubebuilder:validation:Optional
	Redirect *StorageRedirectSpec `json:"redirect,omitempty"`
}

the spec of Storage.

func (*StorageSpec) DeepCopy

func (in *StorageSpec) DeepCopy() *StorageSpec

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

func (*StorageSpec) DeepCopyInto

func (in *StorageSpec) DeepCopyInto(out *StorageSpec)

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

type SwiftSpec

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

func (*SwiftSpec) DeepCopy

func (in *SwiftSpec) DeepCopy() *SwiftSpec

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

func (*SwiftSpec) DeepCopyInto

func (in *SwiftSpec) DeepCopyInto(out *SwiftSpec)

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

type Trivy

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

	Spec TrivySpec `json:"spec,omitempty"`

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

+kubebuilder:object:root=true +kubebuilder:storageversion +k8s:openapi-gen=true +resource:path=trivy +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 Trivy is the Schema for the Trivy API.

func (*Trivy) DeepCopy

func (in *Trivy) DeepCopy() *Trivy

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

func (*Trivy) DeepCopyInto

func (in *Trivy) DeepCopyInto(out *Trivy)

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

func (*Trivy) DeepCopyObject

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

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

func (*Trivy) Hub

func (t *Trivy) Hub()

func (*Trivy) SetupWebhookWithManager

func (t *Trivy) SetupWebhookWithManager(_ context.Context, mgr ctrl.Manager) error

type TrivyComponentSpec

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

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	// The name of the secret containing the token to connect to GitHub API.
	GithubTokenRef string `json:"githubTokenRef,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The flag to enable or disable Trivy DB downloads from GitHub
	SkipUpdate bool `json:"skipUpdate"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// Option prevents Trivy from sending API requests to identify dependencies.
	// This option doesn’t affect DB download. You need to specify "skip-update" as well as "offline-scan" in an air-gapped environment.
	OfflineScan bool `json:"offlineScan"`

	// +kubebuilder:validation:Required
	Storage HarborStorageTrivyStorageSpec `json:"storage"`
}

func (*TrivyComponentSpec) DeepCopy

func (in *TrivyComponentSpec) DeepCopy() *TrivyComponentSpec

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

func (*TrivyComponentSpec) DeepCopyInto

func (in *TrivyComponentSpec) DeepCopyInto(out *TrivyComponentSpec)

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

type TrivyList

type TrivyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Trivy `json:"items"`
}

+kubebuilder:object:root=true TrivyList contains a list of Trivy.

func (*TrivyList) DeepCopy

func (in *TrivyList) DeepCopy() *TrivyList

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

func (*TrivyList) DeepCopyInto

func (in *TrivyList) DeepCopyInto(out *TrivyList)

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

func (*TrivyList) DeepCopyObject

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

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

type TrivyLogSpec

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

func (*TrivyLogSpec) DeepCopy

func (in *TrivyLogSpec) DeepCopy() *TrivyLogSpec

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

func (*TrivyLogSpec) DeepCopyInto

func (in *TrivyLogSpec) DeepCopyInto(out *TrivyLogSpec)

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

type TrivyRedisJobsSpec

type TrivyRedisJobsSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="1h"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// The time to live for persisting scan jobs and associated scan reports
	ScanTTL *metav1.Duration `json:"scanTTL,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="harbor.scanner.trivy:job-queue"
	// The namespace for keys in the scan jobs queue backed by Redis
	Namespace string `json:"Namespace,omitempty"`
}

func (*TrivyRedisJobsSpec) DeepCopy

func (in *TrivyRedisJobsSpec) DeepCopy() *TrivyRedisJobsSpec

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

func (*TrivyRedisJobsSpec) DeepCopyInto

func (in *TrivyRedisJobsSpec) DeepCopyInto(out *TrivyRedisJobsSpec)

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

type TrivyRedisPoolSpec

type TrivyRedisPoolSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=5
	// +kubebuilder:validation:Minimum=0
	// The max number of connections allocated by the Redis connection pool
	MaxActive int `json:"maxActive,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=5
	// +kubebuilder:validation:Minimum=0
	// The max number of idle connections in the Redis connection pool
	MaxIdle int `json:"maxIdle,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="5m"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// The duration after which idle connections to the Redis server are closed.
	// If the value is zero, then idle connections are not closed.
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="1s"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// The timeout for connecting to the Redis server
	ConnectionTimeout *metav1.Duration `json:"connectionTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="1s"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// The timeout for reading a single Redis command reply
	ReadTimeout *metav1.Duration `json:"readTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="1s"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// The timeout for writing a single Redis command
	WriteTimeout *metav1.Duration `json:"writeTimeout,omitempty"`
}

func (*TrivyRedisPoolSpec) DeepCopy

func (in *TrivyRedisPoolSpec) DeepCopy() *TrivyRedisPoolSpec

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

func (*TrivyRedisPoolSpec) DeepCopyInto

func (in *TrivyRedisPoolSpec) DeepCopyInto(out *TrivyRedisPoolSpec)

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

type TrivyRedisSpec

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

	// +kubebuilder:validation:Required
	Pool TrivyRedisPoolSpec `json:"pool,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="harbor.scanner.trivy:store"
	// The namespace for keys in the Redis store
	Namespace string `json:"namespace,omitempty"`

	// +kubebuilder:validation:Optional
	Jobs TrivyRedisJobsSpec `json:"jobs,omitempty"`
}

func (*TrivyRedisSpec) DeepCopy

func (in *TrivyRedisSpec) DeepCopy() *TrivyRedisSpec

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

func (*TrivyRedisSpec) DeepCopyInto

func (in *TrivyRedisSpec) DeepCopyInto(out *TrivyRedisSpec)

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

type TrivyServerProxySpec

type TrivyServerProxySpec struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern="https?://.+"
	// The URL of the proxy server
	URL string `json:"URL"`

	// +kubebuilder:validation:Optional
	// The URLs that the proxy settings do not apply to
	NoProxy []string `json:"noProxy,omitempty"`
}

func (*TrivyServerProxySpec) DeepCopy

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

func (*TrivyServerProxySpec) DeepCopyInto

func (in *TrivyServerProxySpec) DeepCopyInto(out *TrivyServerProxySpec)

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

type TrivyServerSpec

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

	// +kubebuilder:validation:Optional
	ClientCertificateAuthorityRefs []string `json:"clientCertificateAuthorityRefs,omitempty"`

	// +kubebuilder:validation:Optional
	TokenServiceCertificateAuthorityRefs []string `json:"tokenServiceCertificateAuthorityRefs,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type="string"
	// +kubebuilder:default="15s"
	// +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:default="15s"
	// +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:Type="string"
	// +kubebuilder:default="60s"
	// +kubebuilder:validation:Pattern="([0-9]+h)?([0-9]+m)?([0-9]+s)?([0-9]+ms)?([0-9]+us)?([0-9]+µs)?([0-9]+ns)?"
	// Idle timeout
	IdleTimeout *metav1.Duration `json:"idleTimeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The flag to display only fixed vulnerabilities
	IgnoreUnfixed bool `json:"ignoreUnfixed,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The flag to enable or disable Trivy debug mode
	DebugMode bool `json:"debugMode,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The flag to skip verifying registry certificate
	Insecure bool `json:"insecure,omitempty"`

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

func (*TrivyServerSpec) DeepCopy

func (in *TrivyServerSpec) DeepCopy() *TrivyServerSpec

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

func (*TrivyServerSpec) DeepCopyInto

func (in *TrivyServerSpec) DeepCopyInto(out *TrivyServerSpec)

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

type TrivySpec

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

	harbormetav1.TrivyVulnerabilityTypes `json:",inline"`

	harbormetav1.TrivySeverityTypes `json:",inline"`

	CertificateInjection `json:",inline"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"level":"info"}
	Log TrivyLogSpec `json:"log,omitempty"`

	// +kubebuilder:validation:Required
	Server TrivyServerSpec `json:"server"`

	// +kubebuilder:validation:Optional
	Update TrivyUpdateSpec `json:"update,omitempty"`

	// +kubebuilder:validation:Required
	// Redis cache store
	Redis TrivyRedisSpec `json:"redis,omitempty"`

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

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

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

	// +kubebuilder:validation:Optional
	// +kubebuilder:default="5m0s"
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	OfflineScan bool `json:"offlineScan"`
}

TrivySpec defines the desired state of Trivy.

func (*TrivySpec) DeepCopy

func (in *TrivySpec) DeepCopy() *TrivySpec

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

func (*TrivySpec) DeepCopyInto

func (in *TrivySpec) DeepCopyInto(out *TrivySpec)

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

type TrivyStorageSpec

type TrivyStorageSpec struct {
	// +kubebuilder:validation:Required
	Reports TrivyStorageVolumeSpec `json:"reports"`

	// +kubebuilder:validation:Required
	Cache TrivyStorageVolumeSpec `json:"cache"`
}

func (*TrivyStorageSpec) DeepCopy

func (in *TrivyStorageSpec) DeepCopy() *TrivyStorageSpec

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

func (*TrivyStorageSpec) DeepCopyInto

func (in *TrivyStorageSpec) DeepCopyInto(out *TrivyStorageSpec)

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

type TrivyStorageVolumeSpec

type TrivyStorageVolumeSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default={"emptyDir":{"sizeLimit":"1Gi"}}
	VolumeSource corev1.VolumeSource `json:"volumeSource,omitempty"`

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

func (*TrivyStorageVolumeSpec) DeepCopy

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

func (*TrivyStorageVolumeSpec) DeepCopyInto

func (in *TrivyStorageVolumeSpec) DeepCopyInto(out *TrivyStorageVolumeSpec)

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

type TrivyUpdateSpec

type TrivyUpdateSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	// The flag to enable or disable Trivy DB downloads from GitHub
	Skip bool `json:"skip"`

	// +kubebuilder:validation:Optional
	// The GitHub access token to download Trivy DB (see GitHub rate limiting)
	GithubTokenRef string `json:"githubTokenRef,omitempty"`
}

func (*TrivyUpdateSpec) DeepCopy

func (in *TrivyUpdateSpec) DeepCopy() *TrivyUpdateSpec

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

func (*TrivyUpdateSpec) DeepCopyInto

func (in *TrivyUpdateSpec) DeepCopyInto(out *TrivyUpdateSpec)

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

type ZlandoPostgreSQLSpec

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

	OperatorVersion string `json:"operatorVersion"`

	Storage          string                      `json:"storage,omitempty"`
	Replicas         int                         `json:"replicas,omitempty"`
	StorageClassName string                      `json:"storageClassName,omitempty"`
	Resources        corev1.ResourceRequirements `json:"resources,omitempty"`
	SslConfig        string                      `json:"sslConfig,omitempty"`
	ConnectTimeout   int                         `json:"connectTimeout,omitempty"`
}

func (*ZlandoPostgreSQLSpec) DeepCopy

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

func (*ZlandoPostgreSQLSpec) DeepCopyInto

func (in *ZlandoPostgreSQLSpec) DeepCopyInto(out *ZlandoPostgreSQLSpec)

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

Jump to

Keyboard shortcuts

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