v1alpha1

package
v0.0.0-...-915b39c Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

+groupName=operator.kcp.io +versionName=v1alpha1 +kubebuilder:object:generate=true

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.kcp.io

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultCADuration          = metav1.Duration{Duration: time.Hour * 24 * 365 * 10}
	DefaultCARenewal           = metav1.Duration{Duration: time.Hour * 24 * 30}
	DefaultCertificateDuration = metav1.Duration{Duration: time.Hour * 24 * 365}
	DefaultCertificateRenewal  = metav1.Duration{Duration: time.Hour * 24 * 7}
)
View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "operator.kcp.io", Version: "v1alpha1"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource.

Types

type AuditSpec

type AuditSpec struct {
	Webhook *AuditWebhookSpec `json:"webhook,omitempty"`
}

func (*AuditSpec) DeepCopy

func (in *AuditSpec) DeepCopy() *AuditSpec

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

func (*AuditSpec) DeepCopyInto

func (in *AuditSpec) DeepCopyInto(out *AuditSpec)

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

type AuditWebhookMode

type AuditWebhookMode string
const (
	AuditWebhookBatchMode          AuditWebhookMode = "batch"
	AuditWebhookBlockingMode       AuditWebhookMode = "blocking"
	AuditWebhookBlockingStrictMode AuditWebhookMode = "blocking-strict"
)

type AuditWebhookSpec

type AuditWebhookSpec struct {
	// The size of the buffer to store events before batching and writing. Only used in batch mode.
	BatchBufferSize int `json:"batchBufferSize,omitempty"`
	// The maximum size of a batch. Only used in batch mode.
	BatchMaxSize int `json:"batchMaxSize,omitempty"`
	// The amount of time to wait before force writing the batch that hadn't reached the max size.
	// Only used in batch mode.
	BatchMaxWait *metav1.Duration `json:"batchMaxWait,omitempty"`
	// Maximum number of requests sent at the same moment if ThrottleQPS was not utilized before.
	// Only used in batch mode.
	BatchThrottleBurst int `json:"batchThrottleBurst,omitempty"`
	// Whether batching throttling is enabled. Only used in batch mode.
	BatchThrottleEnable bool `json:"batchThrottleEnable,omitempty"`
	// Maximum average number of batches per second. Only used in batch mode.
	// This value is a floating point number, stored as a string (e.g. "3.1").
	BatchThrottleQPS string `json:"batchThrottleQPS,omitempty"`

	// Name of a Kubernetes Secret that contains a kubeconfig formatted file that defines the
	// audit webhook configuration.
	ConfigSecretName string `json:"configSecretName,omitempty"`
	// The amount of time to wait before retrying the first failed request.
	InitialBackoff *metav1.Duration `json:"initialBackoff,omitempty"`
	// Strategy for sending audit events. Blocking indicates sending events should block server
	// responses. Batch causes the backend to buffer and write events asynchronously.
	Mode AuditWebhookMode `json:"mode,omitempty"`
	// Whether event and batch truncating is enabled.
	TruncateEnabled bool `json:"truncateEnabled,omitempty"`
	// Maximum size of the batch sent to the underlying backend. Actual serialized size can be
	// several hundreds of bytes greater. If a batch exceeds this limit, it is split into several
	// batches of smaller size.
	TruncateMaxBatchSize int `json:"truncateMaxBatchSize,omitempty"`
	// Maximum size of the audit event sent to the underlying backend. If the size of an event
	// is greater than this number, first request and response are removed, and if this doesn't
	// reduce the size enough, event is discarded.
	TruncateMaxEventSize int `json:"truncateMaxEventSize,omitempty"`
	// API group and version used for serializing audit events written to webhook.
	Version string `json:"version,omitempty"`
}

func (*AuditWebhookSpec) DeepCopy

func (in *AuditWebhookSpec) DeepCopy() *AuditWebhookSpec

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

func (*AuditWebhookSpec) DeepCopyInto

func (in *AuditWebhookSpec) DeepCopyInto(out *AuditWebhookSpec)

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

type AuthSpec

type AuthSpec struct {
	// Optional: OIDC configures OpenID Connect Authentication.
	OIDC *OIDCConfiguration `json:"oidc,omitempty"`
}

func (*AuthSpec) DeepCopy

func (in *AuthSpec) DeepCopy() *AuthSpec

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

func (*AuthSpec) DeepCopyInto

func (in *AuthSpec) DeepCopyInto(out *AuthSpec)

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

type AuthorizationSpec

type AuthorizationSpec struct {
	Webhook *AuthorizationWebhookSpec `json:"webhook,omitempty"`
}

func (*AuthorizationSpec) DeepCopy

func (in *AuthorizationSpec) DeepCopy() *AuthorizationSpec

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

func (*AuthorizationSpec) DeepCopyInto

func (in *AuthorizationSpec) DeepCopyInto(out *AuthorizationSpec)

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

type AuthorizationWebhookSpec

type AuthorizationWebhookSpec struct {
	// A list of HTTP paths to skip during authorization, i.e. these are authorized without contacting the 'core' kubernetes server.
	// If specified, completely overwrites the default of [/healthz,/readyz,/livez].
	AllowPaths []string `json:"allowPaths,omitempty"`
	// The duration to cache 'authorized' responses from the webhook authorizer.
	CacheAuthorizedTTL *metav1.Duration `json:"cacheAuthorizedTTL,omitempty"`
	// The duration to cache 'unauthorized' responses from the webhook authorizer.
	CacheUnauthorizedTTL *metav1.Duration `json:"cacheUnauthorizedTTL,omitempty"`
	// Name of a Kubernetes Secret that contains a kubeconfig formatted file that defines the
	// authorization webhook configuration.
	ConfigSecretName string `json:"configSecretName,omitempty"`
	// The API version of the authorization.k8s.io SubjectAccessReview to send to and expect from the webhook.
	Version string `json:"version,omitempty"`
}

func (*AuthorizationWebhookSpec) DeepCopy

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

func (*AuthorizationWebhookSpec) DeepCopyInto

func (in *AuthorizationWebhookSpec) DeepCopyInto(out *AuthorizationWebhookSpec)

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

type CA

type CA string
const (
	RootCA                CA = "root"
	ServerCA              CA = "server"
	ServiceAccountCA      CA = "service-account"
	ClientCA              CA = "client"
	FrontProxyClientCA    CA = "front-proxy-client"
	RequestHeaderClientCA CA = "requestheader-client"
)

type CacheConfig

type CacheConfig struct {
	// Embedded configures settings for starting the cache server embedded in the root shard.
	Embedded *EmbeddedCacheConfiguration `json:"embedded,omitempty"`
}

func (*CacheConfig) DeepCopy

func (in *CacheConfig) DeepCopy() *CacheConfig

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

func (*CacheConfig) DeepCopyInto

func (in *CacheConfig) DeepCopyInto(out *CacheConfig)

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

type CacheServer

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

	Spec   CacheServerSpec   `json:"spec,omitempty"`
	Status CacheServerStatus `json:"status,omitempty"`
}

CacheServer is the Schema for the cacheservers API

func (*CacheServer) DeepCopy

func (in *CacheServer) DeepCopy() *CacheServer

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

func (*CacheServer) DeepCopyInto

func (in *CacheServer) DeepCopyInto(out *CacheServer)

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

func (*CacheServer) DeepCopyObject

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

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

type CacheServerList

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

CacheServerList contains a list of CacheServer

func (*CacheServerList) DeepCopy

func (in *CacheServerList) DeepCopy() *CacheServerList

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

func (*CacheServerList) DeepCopyInto

func (in *CacheServerList) DeepCopyInto(out *CacheServerList)

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

func (*CacheServerList) DeepCopyObject

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

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

type CacheServerSpec

type CacheServerSpec struct {
	// Etcd configures the etcd cluster that this cache server should be using.
	Etcd EtcdConfig `json:"etcd"`

	// Optional: Image overwrites the container image used to deploy the cache server.
	Image *ImageSpec `json:"image,omitempty"`
}

CacheServerSpec defines the desired state of CacheServer.

func (*CacheServerSpec) DeepCopy

func (in *CacheServerSpec) DeepCopy() *CacheServerSpec

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

func (*CacheServerSpec) DeepCopyInto

func (in *CacheServerSpec) DeepCopyInto(out *CacheServerSpec)

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

type CacheServerStatus

type CacheServerStatus struct {
}

CacheServerStatus defines the observed state of CacheServer

func (*CacheServerStatus) DeepCopy

func (in *CacheServerStatus) DeepCopy() *CacheServerStatus

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

func (*CacheServerStatus) DeepCopyInto

func (in *CacheServerStatus) DeepCopyInto(out *CacheServerStatus)

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

type Certificate

type Certificate string
const (
	// ServerCertificate is a generic server certificate for serving HTTPS.
	ServerCertificate Certificate = "server"
	// ClientCertificate is a generic client certificate.
	ClientCertificate Certificate = "client"

	ServiceAccountCertificate              Certificate = "service-account"
	VirtualWorkspacesCertificate           Certificate = "virtual-workspaces"
	RequestHeaderClientCertificate         Certificate = "requestheader"
	KubeconfigCertificate                  Certificate = "kubeconfig"
	AdminKubeconfigClientCertificate       Certificate = "admin-kubeconfig"
	LogicalClusterAdminCertificate         Certificate = "logical-cluster-admin"
	ExternalLogicalClusterAdminCertificate Certificate = "external-logical-cluster-admin"
)

type Certificates

type Certificates struct {
	// IssuerRef points to a pre-existing cert-manager Issuer or ClusterIssuer that shall be used
	// to acquire new certificates. This field is mutually exclusive with caSecretRef.
	IssuerRef *ObjectReference `json:"issuerRef,omitempty"`

	// CASecretRef can be used as an alternative to the IssuerRef: This field allows to configure
	// a pre-existing CA certificate that should be used as sign kcp certificates.
	// This Secret must contain both the certificate and the private key so that new sub certificates
	// can be signed and created from this CA. This field is mutually exclusive with issuerRef.
	CASecretRef *corev1.LocalObjectReference `json:"caSecretRef,omitempty"`
}

Certificates configures how certificates for kcp should be created.

func (*Certificates) DeepCopy

func (in *Certificates) DeepCopy() *Certificates

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

func (*Certificates) DeepCopyInto

func (in *Certificates) DeepCopyInto(out *Certificates)

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

type CommonShardSpec

type CommonShardSpec struct {
	ClusterDomain string `json:"clusterDomain,omitempty"`

	// Etcd configures the etcd cluster that this shard should be using.
	Etcd EtcdConfig `json:"etcd"`

	Image *ImageSpec `json:"image,omitempty"`

	// Replicas configures how many instances of this shard run in parallel. Defaults to 2 if not set.
	Replicas *int32 `json:"replicas,omitempty"`

	Audit         *AuditSpec         `json:"audit,omitempty"`
	Authorization *AuthorizationSpec `json:"authorization,omitempty"`
}

func (*CommonShardSpec) DeepCopy

func (in *CommonShardSpec) DeepCopy() *CommonShardSpec

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

func (*CommonShardSpec) DeepCopyInto

func (in *CommonShardSpec) DeepCopyInto(out *CommonShardSpec)

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

type ConditionReason

type ConditionReason string
const (
	ConditionReasonDeploymentUnavailable ConditionReason = "DeploymentUnavailable"
	ConditionReasonReplicasUp            ConditionReason = "ReplicasUp"
	ConditionReasonReplicasUnavailable   ConditionReason = "ReplicasUnavailable"

	ConditionReasonRootShardRefInvalid  ConditionReason = "InvalidReference"
	ConditionReasonRootShardRefNotFound ConditionReason = "RootShardNotFound"
	ConditionReasonRootShardRefValid    ConditionReason = "Valid"
)

type ConditionType

type ConditionType string
const (
	ConditionTypeAvailable ConditionType = "Available"
	ConditionTypeRootShard ConditionType = "RootShard"
)

type EmbeddedCacheConfiguration

type EmbeddedCacheConfiguration struct {
	// Enabled enables or disables running the cache server as embedded.
	Enabled bool `json:"enabled"`
}

func (*EmbeddedCacheConfiguration) DeepCopy

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

func (*EmbeddedCacheConfiguration) DeepCopyInto

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

type EtcdConfig

type EtcdConfig struct {
	// Endpoints is a list of http urls at which etcd nodes are available. The expected format is "https://etcd-hostname:2379".
	Endpoints []string `json:"endpoints"`
	// ClientCert configures the client certificate used to access etcd.
	// +optional
	TLSConfig *EtcdTLSConfig `json:"tlsConfig,omitempty"`
}

func (*EtcdConfig) DeepCopy

func (in *EtcdConfig) DeepCopy() *EtcdConfig

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

func (*EtcdConfig) DeepCopyInto

func (in *EtcdConfig) DeepCopyInto(out *EtcdConfig)

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

type EtcdTLSConfig

type EtcdTLSConfig struct {
	// SecretRef is the reference to a v1.Secret object that contains the TLS certificate.
	SecretRef corev1.LocalObjectReference `json:"secretRef"`
}

func (*EtcdTLSConfig) DeepCopy

func (in *EtcdTLSConfig) DeepCopy() *EtcdTLSConfig

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

func (*EtcdTLSConfig) DeepCopyInto

func (in *EtcdTLSConfig) DeepCopyInto(out *EtcdTLSConfig)

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

type ExternalConfig

type ExternalConfig struct {
	// Hostname is the external name of the kcp instance. This should be matched by a DNS
	// record pointing to the kcp-front-proxy Service's external IP address.
	Hostname string `json:"hostname"`
	Port     uint32 `json:"port"`
}

func (*ExternalConfig) DeepCopy

func (in *ExternalConfig) DeepCopy() *ExternalConfig

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

func (*ExternalConfig) DeepCopyInto

func (in *ExternalConfig) DeepCopyInto(out *ExternalConfig)

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

type FrontProxy

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

	Spec   FrontProxySpec   `json:"spec,omitempty"`
	Status FrontProxyStatus `json:"status,omitempty"`
}

FrontProxy is the Schema for the frontproxies API

func (*FrontProxy) DeepCopy

func (in *FrontProxy) DeepCopy() *FrontProxy

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

func (*FrontProxy) DeepCopyInto

func (in *FrontProxy) DeepCopyInto(out *FrontProxy)

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

func (*FrontProxy) DeepCopyObject

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

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

type FrontProxyList

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

FrontProxyList contains a list of FrontProxy

func (*FrontProxyList) DeepCopy

func (in *FrontProxyList) DeepCopy() *FrontProxyList

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

func (*FrontProxyList) DeepCopyInto

func (in *FrontProxyList) DeepCopyInto(out *FrontProxyList)

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

func (*FrontProxyList) DeepCopyObject

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

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

type FrontProxyPhase

type FrontProxyPhase string
const (
	FrontProxyPhaseProvisioning FrontProxyPhase = "Provisioning"
	FrontProxyPhaseRunning      FrontProxyPhase = "Running"
	FrontProxyPhaseDeleting     FrontProxyPhase = "Deleting"
)

type FrontProxySpec

type FrontProxySpec struct {
	// RootShard configures the kcp root shard that this front-proxy instance should connect to.
	RootShard RootShardConfig `json:"rootShard"`
	// Optional: Replicas configures the replica count for the front-proxy Deployment.
	Replicas *int32 `json:"replicas,omitempty"`
	// Optional: Auth configures various aspects of Authentication and Authorization for this front-proxy instance.
	Auth *AuthSpec `json:"auth,omitempty"`
	// Optional: AdditionalPathMappings configures // TODO ?
	AdditionalPathMappings []PathMappingEntry `json:"additionalPathMappings,omitempty"`
	// Optional: Image defines the image to use. Defaults to the latest versioned image during the release of kcp-operator.
	Image *ImageSpec `json:"image,omitempty"`
	// Optional: ExternalHostname under which the FrontProxy can be reached. If empty, the RootShard's external hostname will be used only.
	ExternalHostname string `json:"externalHostname,omitempty"`

	// Optional: Service configures the Kubernetes Service created for this front-proxy instance.
	Service *ServiceSpec `json:"service,omitempty"`
}

FrontProxySpec defines the desired state of FrontProxy.

func (*FrontProxySpec) DeepCopy

func (in *FrontProxySpec) DeepCopy() *FrontProxySpec

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

func (*FrontProxySpec) DeepCopyInto

func (in *FrontProxySpec) DeepCopyInto(out *FrontProxySpec)

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

type FrontProxyStatus

type FrontProxyStatus struct {
	Phase FrontProxyPhase `json:"phase,omitempty"`

	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

FrontProxyStatus defines the observed state of FrontProxy

func (*FrontProxyStatus) DeepCopy

func (in *FrontProxyStatus) DeepCopy() *FrontProxyStatus

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

func (*FrontProxyStatus) DeepCopyInto

func (in *FrontProxyStatus) DeepCopyInto(out *FrontProxyStatus)

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

type ImageSpec

type ImageSpec struct {
	// Repository is the container image repository to use for KCP containers. Defaults to `ghcr.io/kcp-dev/kcp`.
	Repository string `json:"repository,omitempty"`
	// Tag is the container image tag to use for KCP containers. Defaults to the latest kcp release that the operator supports.
	Tag string `json:"tag,omitempty"`
	// Optional: ImagePullSecrets is a list of secret references that should be used as image pull secrets (e.g. when a private registry is used).
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
}

ImageSpec defines settings for using a specific image and overwriting the default images used.

func (*ImageSpec) DeepCopy

func (in *ImageSpec) DeepCopy() *ImageSpec

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

func (*ImageSpec) DeepCopyInto

func (in *ImageSpec) DeepCopyInto(out *ImageSpec)

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

type Kubeconfig

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

	Spec   KubeconfigSpec   `json:"spec,omitempty"`
	Status KubeconfigStatus `json:"status,omitempty"`
}

Kubeconfig is the Schema for the kubeconfigs API

func (*Kubeconfig) DeepCopy

func (in *Kubeconfig) DeepCopy() *Kubeconfig

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

func (*Kubeconfig) DeepCopyInto

func (in *Kubeconfig) DeepCopyInto(out *Kubeconfig)

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

func (*Kubeconfig) DeepCopyObject

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

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

func (*Kubeconfig) GetCertificateName

func (k *Kubeconfig) GetCertificateName() string

type KubeconfigList

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

KubeconfigList contains a list of Kubeconfig

func (*KubeconfigList) DeepCopy

func (in *KubeconfigList) DeepCopy() *KubeconfigList

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

func (*KubeconfigList) DeepCopyInto

func (in *KubeconfigList) DeepCopyInto(out *KubeconfigList)

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

func (*KubeconfigList) DeepCopyObject

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

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

type KubeconfigSpec

type KubeconfigSpec struct {
	// Target configures which kcp-operator object this kubeconfig should be generated for (shard or front-proxy).
	Target KubeconfigTarget `json:"target"`

	// Username defines the username embedded in the TLS certificate generated for this kubeconfig.
	Username string `json:"username"`
	// Username defines the groups embedded in the TLS certificate generated for this kubeconfig.
	Groups []string `json:"groups,omitempty"`

	// Validity configures the lifetime of the embedded TLS certificate. The kubeconfig secret will be automatically regenerated when the certificate expires.
	Validity metav1.Duration `json:"validity"`

	// SecretRef defines the v1.Secret object that the resulting kubeconfig should be written to.
	SecretRef corev1.LocalObjectReference `json:"secretRef"`
}

KubeconfigSpec defines the desired state of Kubeconfig.

func (*KubeconfigSpec) DeepCopy

func (in *KubeconfigSpec) DeepCopy() *KubeconfigSpec

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

func (*KubeconfigSpec) DeepCopyInto

func (in *KubeconfigSpec) DeepCopyInto(out *KubeconfigSpec)

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

type KubeconfigStatus

type KubeconfigStatus struct {
}

KubeconfigStatus defines the observed state of Kubeconfig

func (*KubeconfigStatus) DeepCopy

func (in *KubeconfigStatus) DeepCopy() *KubeconfigStatus

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

func (*KubeconfigStatus) DeepCopyInto

func (in *KubeconfigStatus) DeepCopyInto(out *KubeconfigStatus)

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

type KubeconfigTarget

type KubeconfigTarget struct {
	RootShardRef  *corev1.LocalObjectReference `json:"rootShardRef,omitempty"`
	ShardRef      *corev1.LocalObjectReference `json:"shardRef,omitempty"`
	FrontProxyRef *corev1.LocalObjectReference `json:"frontProxyRef,omitempty"`
}

func (*KubeconfigTarget) DeepCopy

func (in *KubeconfigTarget) DeepCopy() *KubeconfigTarget

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

func (*KubeconfigTarget) DeepCopyInto

func (in *KubeconfigTarget) DeepCopyInto(out *KubeconfigTarget)

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

type OIDCConfiguration

type OIDCConfiguration struct {
	Enabled bool `json:"enabled"`

	// IssuerURL is used for the OIDC issuer URL. Only https URLs will be accepted.
	IssuerURL string `json:"issuerURL"`
	// ClientID is the OIDC client ID configured on the issuer side for this KCP instance.
	ClientID string `json:"clientID"`

	// Optionally provide the client secret for the OIDC client. This is not used by KCP itself, but is used to generate
	// a OIDC kubeconfig that can be shared with users to log in via the OIDC provider.
	ClientSecret string `json:"clientSecret,omitempty"`

	// Experimental: Optionally provides a custom claim for fetching groups. The claim must be a string or an array of strings.
	GroupsClaim string `json:"groupsClaim,omitempty"`
	// Optionally uses a custom claim for fetching the username. This defaults to "sub" if unset.
	UsernameClaim string `json:"usernameClaim,omitempty"`

	// Optionally sets a custom groups prefix. This defaults to "oidc:" if unset, which means a group called "group1"
	// on the OIDC side will be recognised as "oidc:group1" in KCP.
	GroupsPrefix string `json:"groupsPrefix,omitempty"`
	// Optionally sets a custom username prefix. This defaults to "oidc:" if unset, which means a user called "user@example.com"
	// on the OIDC side will be recognised as "oidc:user@example.com" in KCP.
	UsernamePrefix string `json:"usernamePrefix,omitempty"`
}

func (*OIDCConfiguration) DeepCopy

func (in *OIDCConfiguration) DeepCopy() *OIDCConfiguration

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

func (*OIDCConfiguration) DeepCopyInto

func (in *OIDCConfiguration) DeepCopyInto(out *OIDCConfiguration)

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

type ObjectReference

type ObjectReference struct {
	// Name of the object being referred to.
	Name string `json:"name"`
	// Kind of the object being referred to.
	// +optional
	Kind string `json:"kind,omitempty"`
	// Group of the object being referred to.
	// +optional
	Group string `json:"group,omitempty"`
}

ObjectReference is a reference to an object with a given name, kind and group.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

type PathMappingEntry

type PathMappingEntry struct {
	Path            string `json:"path"`
	Backend         string `json:"backend"`
	BackendServerCA string `json:"backend_server_ca"`
	ProxyClientCert string `json:"proxy_client_cert"`
	ProxyClientKey  string `json:"proxy_client_key"`
}

TODO for now the PathMappingEntry is defined inline at kcp upstream (https://github.com/kcp-dev/kcp/blob/f81a97d0fba951e6ac6f94e8e0f5339f49a9dd92/cmd/sharded-test-server/frontproxy.go#L69), so we have to copy the struct type

func (*PathMappingEntry) DeepCopy

func (in *PathMappingEntry) DeepCopy() *PathMappingEntry

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

func (*PathMappingEntry) DeepCopyInto

func (in *PathMappingEntry) DeepCopyInto(out *PathMappingEntry)

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

type RootShard

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

	Spec   RootShardSpec   `json:"spec,omitempty"`
	Status RootShardStatus `json:"status,omitempty"`
}

RootShard is the Schema for the kcpinstances API

func (*RootShard) DeepCopy

func (in *RootShard) DeepCopy() *RootShard

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

func (*RootShard) DeepCopyInto

func (in *RootShard) DeepCopyInto(out *RootShard)

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

func (*RootShard) DeepCopyObject

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

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

type RootShardConfig

type RootShardConfig struct {
	// Reference references a local RootShard object.
	Reference *corev1.LocalObjectReference `json:"ref,omitempty"`
}

func (*RootShardConfig) DeepCopy

func (in *RootShardConfig) DeepCopy() *RootShardConfig

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

func (*RootShardConfig) DeepCopyInto

func (in *RootShardConfig) DeepCopyInto(out *RootShardConfig)

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

type RootShardList

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

RootShardList contains a list of RootShard

func (*RootShardList) DeepCopy

func (in *RootShardList) DeepCopy() *RootShardList

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

func (*RootShardList) DeepCopyInto

func (in *RootShardList) DeepCopyInto(out *RootShardList)

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

func (*RootShardList) DeepCopyObject

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

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

type RootShardPhase

type RootShardPhase string
const (
	RootShardPhaseProvisioning RootShardPhase = "Provisioning"
	RootShardPhaseRunning      RootShardPhase = "Running"
	RootShardPhaseDeleting     RootShardPhase = "Deleting"
)

type RootShardSpec

type RootShardSpec struct {
	CommonShardSpec `json:",inline"`

	External ExternalConfig `json:"external"`

	// Cache configures the cache server (with a Kubernetes-like API) used by a sharded kcp instance.
	Cache CacheConfig `json:"cache"`

	// Certificates configures how the operator should create the kcp root CA, from which it will
	// then create all other sub CAs and leaf certificates.
	Certificates Certificates `json:"certificates"`
}

RootShardSpec defines the desired state of RootShard.

func (*RootShardSpec) DeepCopy

func (in *RootShardSpec) DeepCopy() *RootShardSpec

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

func (*RootShardSpec) DeepCopyInto

func (in *RootShardSpec) DeepCopyInto(out *RootShardSpec)

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

type RootShardStatus

type RootShardStatus struct {
	Phase RootShardPhase `json:"phase,omitempty"`

	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RootShardStatus defines the observed state of RootShard

func (*RootShardStatus) DeepCopy

func (in *RootShardStatus) DeepCopy() *RootShardStatus

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

func (*RootShardStatus) DeepCopyInto

func (in *RootShardStatus) DeepCopyInto(out *RootShardStatus)

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

type ServiceSpec

type ServiceSpec struct {
	Type corev1.ServiceType `json:"type,omitempty"`
}

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

type Shard

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

	Spec   ShardSpec   `json:"spec,omitempty"`
	Status ShardStatus `json:"status,omitempty"`
}

Shard is the Schema for the shards API

func (*Shard) DeepCopy

func (in *Shard) DeepCopy() *Shard

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

func (*Shard) DeepCopyInto

func (in *Shard) DeepCopyInto(out *Shard)

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

func (*Shard) DeepCopyObject

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

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

type ShardList

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

ShardList contains a list of Shard

func (*ShardList) DeepCopy

func (in *ShardList) DeepCopy() *ShardList

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

func (*ShardList) DeepCopyInto

func (in *ShardList) DeepCopyInto(out *ShardList)

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

func (*ShardList) DeepCopyObject

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

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

type ShardPhase

type ShardPhase string
const (
	ShardPhaseProvisioning ShardPhase = "Provisioning"
	ShardPhaseRunning      ShardPhase = "Running"
	ShardPhaseDeleting     ShardPhase = "Deleting"
)

type ShardSpec

type ShardSpec struct {
	CommonShardSpec `json:",inline"`

	RootShard RootShardConfig `json:"rootShard"`
}

ShardSpec defines the desired state of Shard

func (*ShardSpec) DeepCopy

func (in *ShardSpec) DeepCopy() *ShardSpec

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

func (*ShardSpec) DeepCopyInto

func (in *ShardSpec) DeepCopyInto(out *ShardSpec)

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

type ShardStatus

type ShardStatus struct {
	Phase ShardPhase `json:"phase,omitempty"`

	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ShardStatus defines the observed state of Shard

func (*ShardStatus) DeepCopy

func (in *ShardStatus) DeepCopy() *ShardStatus

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

func (*ShardStatus) DeepCopyInto

func (in *ShardStatus) DeepCopyInto(out *ShardStatus)

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