Documentation
¶
Overview ¶
+groupName=operator.kcp.io +versionName=v1alpha1 +kubebuilder:object:generate=true
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AuditSpec
- type AuditWebhookMode
- type AuditWebhookSpec
- type AuthSpec
- type AuthorizationSpec
- type AuthorizationWebhookSpec
- type CA
- type CacheConfig
- type CacheServer
- type CacheServerList
- type CacheServerSpec
- type CacheServerStatus
- type Certificate
- type CertificateMetadataTemplate
- type CertificatePrivateKeyTemplate
- type CertificateSecretTemplate
- type CertificateSpecTemplate
- type CertificateTemplate
- type CertificateTemplateMap
- func (m CertificateTemplateMap) CATemplate(ca CA) CertificateTemplate
- func (m CertificateTemplateMap) CertificateTemplate(cert Certificate) CertificateTemplate
- func (in CertificateTemplateMap) DeepCopy() CertificateTemplateMap
- func (in CertificateTemplateMap) DeepCopyInto(out *CertificateTemplateMap)
- type Certificates
- type CommonShardSpec
- type ConditionReason
- type ConditionType
- type DeploymentMetadataTemplate
- type DeploymentSpecTemplate
- type DeploymentTemplate
- type EmbeddedCacheConfiguration
- type EtcdConfig
- type EtcdTLSConfig
- type ExternalConfig
- type FrontProxy
- type FrontProxyList
- type FrontProxyPhase
- type FrontProxySpec
- type FrontProxyStatus
- type ImageSpec
- type Kubeconfig
- type KubeconfigList
- type KubeconfigSpec
- type KubeconfigStatus
- type KubeconfigTarget
- type OIDCCAFileRef
- type OIDCConfiguration
- type ObjectReference
- type PathMappingEntry
- type PodMetadataTemplate
- type PodSpecTemplate
- type PodTemplateSpec
- type PrivateKeyAlgorithm
- type PrivateKeyEncoding
- type PrivateKeyRotationPolicy
- type RootShard
- type RootShardConfig
- type RootShardList
- type RootShardPhase
- type RootShardProxySpec
- type RootShardSpec
- type RootShardStatus
- type ServiceAccountAuthentication
- type ServiceMetadataTemplate
- type ServiceSpecTemplate
- type ServiceTemplate
- type Shard
- type ShardList
- type ShardPhase
- type ShardReference
- type ShardSpec
- type ShardStatus
- type X509Subject
Constants ¶
const GroupName = "operator.kcp.io"
GroupName is the group name use in this package.
const GroupVersion = "v1alpha1"
Variables ¶
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} )
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme // SchemeGroupVersion is group version used to register these objects. SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: GroupVersion} )
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSpec.
func (*AuditSpec) DeepCopyInto ¶
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"`
// Optional: serviceAccountAuthentication configures ServiceAccount Authentication.
ServiceAccount *ServiceAccountAuthentication `json:"serviceAccount,omitempty"`
// Optional: DropGroups configures groups to be dropped before forwarding requests to Shards.
DropGroups []string `json:"dropGroups,omitempty"`
// Optional: PassOnGroups configures groups to be passed on before forwarding requests to Shards
PassOnGroups []string `json:"passOnGroups,omitempty"`
}
func (*AuthSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthSpec.
func (*AuthSpec) DeepCopyInto ¶
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"`
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 ¶
func (in *AuthorizationWebhookSpec) DeepCopy() *AuthorizationWebhookSpec
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 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" // OperatorCertificate is created for a RootShard and used by the operator to // connect OperatorCertificate Certificate = "kcp-operator" )
type CertificateMetadataTemplate ¶
type CertificateMetadataTemplate struct {
// Annotations is a key value map to be copied to the target Certificate.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels is a key value map to be copied to the target Certificate.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
func (*CertificateMetadataTemplate) DeepCopy ¶
func (in *CertificateMetadataTemplate) DeepCopy() *CertificateMetadataTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateMetadataTemplate.
func (*CertificateMetadataTemplate) DeepCopyInto ¶
func (in *CertificateMetadataTemplate) DeepCopyInto(out *CertificateMetadataTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CertificatePrivateKeyTemplate ¶
type CertificatePrivateKeyTemplate struct {
// RotationPolicy controls how private keys should be regenerated when a
// re-issuance is being processed.
//
// If set to `Never`, a private key will only be generated if one does not
// already exist in the target `spec.secretName`. If one does exist but it
// does not have the correct algorithm or size, a warning will be raised
// to await user intervention.
// If set to `Always`, a private key matching the specified requirements
// will be generated whenever a re-issuance occurs.
// Default is `Never` for backward compatibility.
// +optional
RotationPolicy PrivateKeyRotationPolicy `json:"rotationPolicy,omitempty"`
// The private key cryptography standards (PKCS) encoding for this
// certificate's private key to be encoded in.
//
// If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1
// and PKCS#8, respectively.
// Defaults to `PKCS1` if not specified.
// +optional
Encoding PrivateKeyEncoding `json:"encoding,omitempty"`
// Algorithm is the private key algorithm of the corresponding private key
// for this certificate.
//
// If provided, allowed values are either `RSA`, `ECDSA` or `Ed25519`.
// If `algorithm` is specified and `size` is not provided,
// key size of 2048 will be used for `RSA` key algorithm and
// key size of 256 will be used for `ECDSA` key algorithm.
// key size is ignored when using the `Ed25519` key algorithm.
// +optional
Algorithm PrivateKeyAlgorithm `json:"algorithm,omitempty"`
// Size is the key bit size of the corresponding private key for this certificate.
//
// If `algorithm` is set to `RSA`, valid values are `2048`, `4096` or `8192`,
// and will default to `2048` if not specified.
// If `algorithm` is set to `ECDSA`, valid values are `256`, `384` or `521`,
// and will default to `256` if not specified.
// If `algorithm` is set to `Ed25519`, Size is ignored.
// No other values are allowed.
// +optional
Size int `json:"size,omitempty"`
}
func (*CertificatePrivateKeyTemplate) DeepCopy ¶
func (in *CertificatePrivateKeyTemplate) DeepCopy() *CertificatePrivateKeyTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificatePrivateKeyTemplate.
func (*CertificatePrivateKeyTemplate) DeepCopyInto ¶
func (in *CertificatePrivateKeyTemplate) DeepCopyInto(out *CertificatePrivateKeyTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CertificateSecretTemplate ¶
type CertificateSecretTemplate struct {
// Annotations is a key value map to be copied to the target Kubernetes Secret.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels is a key value map to be copied to the target Kubernetes Secret.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
CertificateSecretTemplate defines the default labels and annotations to be copied to the Kubernetes Secret resource named in `CertificateSpec.secretName`.
func (*CertificateSecretTemplate) DeepCopy ¶
func (in *CertificateSecretTemplate) DeepCopy() *CertificateSecretTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSecretTemplate.
func (*CertificateSecretTemplate) DeepCopyInto ¶
func (in *CertificateSecretTemplate) DeepCopyInto(out *CertificateSecretTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CertificateSpecTemplate ¶
type CertificateSpecTemplate struct {
// Requested set of X509 certificate subject attributes.
// More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6
//
// +optional
Subject *X509Subject `json:"subject,omitempty"`
// Requested DNS subject alternative names. The values given here will be merged into the
// DNS names determined automatically by the kcp-operator.
//
// +optional
DNSNames []string `json:"dnsNames,omitempty"`
// Requested IP address subject alternative names. The values given here will be merged into the
// DNS names determined automatically by the kcp-operator.
//
// +optional
IPAddresses []string `json:"ipAddresses,omitempty"`
// Defines annotations and labels to be copied to the Certificate's Secret.
// Labels and annotations on the Secret will be changed as they appear on the
// SecretTemplate when added or removed. SecretTemplate annotations are added
// in conjunction with, and cannot overwrite, the base set of annotations
// cert-manager sets on the Certificate's Secret.
// +optional
SecretTemplate *CertificateSecretTemplate `json:"secretTemplate,omitempty"`
// Requested 'duration' (i.e. lifetime) of the Certificate. Note that the
// issuer may choose to ignore the requested duration, just like any other
// requested attribute.
//
// If unset, this defaults to 90 days.
// Minimum accepted duration is 1 hour.
// Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
// +optional
Duration *metav1.Duration `json:"duration,omitempty"`
// How long before the currently issued certificate's expiry cert-manager should
// renew the certificate. For example, if a certificate is valid for 60 minutes,
// and `renewBefore=10m`, cert-manager will begin to attempt to renew the certificate
// 50 minutes after it was issued (i.e. when there are 10 minutes remaining until
// the certificate is no longer valid).
//
// NOTE: The actual lifetime of the issued certificate is used to determine the
// renewal time. If an issuer returns a certificate with a different lifetime than
// the one requested, cert-manager will use the lifetime of the issued certificate.
//
// If unset, this defaults to 1/3 of the issued certificate's lifetime.
// Minimum accepted value is 5 minutes.
// Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
// Cannot be set if the `renewBeforePercentage` field is set.
// +optional
RenewBefore *metav1.Duration `json:"renewBefore,omitempty"`
// Private key options. These include the key algorithm and size, the used
// encoding and the rotation policy.
// +optional
PrivateKey *CertificatePrivateKeyTemplate `json:"privateKey,omitempty"`
}
func (*CertificateSpecTemplate) DeepCopy ¶
func (in *CertificateSpecTemplate) DeepCopy() *CertificateSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSpecTemplate.
func (*CertificateSpecTemplate) DeepCopyInto ¶
func (in *CertificateSpecTemplate) DeepCopyInto(out *CertificateSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CertificateTemplate ¶
type CertificateTemplate struct {
Metadata *CertificateMetadataTemplate `json:"metadata,omitempty"`
Spec *CertificateSpecTemplate `json:"spec,omitempty"`
}
func (*CertificateTemplate) DeepCopy ¶
func (in *CertificateTemplate) DeepCopy() *CertificateTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateTemplate.
func (*CertificateTemplate) DeepCopyInto ¶
func (in *CertificateTemplate) DeepCopyInto(out *CertificateTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CertificateTemplateMap ¶
type CertificateTemplateMap map[string]CertificateTemplate
func (CertificateTemplateMap) CATemplate ¶
func (m CertificateTemplateMap) CATemplate(ca CA) CertificateTemplate
func (CertificateTemplateMap) CertificateTemplate ¶
func (m CertificateTemplateMap) CertificateTemplate(cert Certificate) CertificateTemplate
func (CertificateTemplateMap) DeepCopy ¶
func (in CertificateTemplateMap) DeepCopy() CertificateTemplateMap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateTemplateMap.
func (CertificateTemplateMap) DeepCopyInto ¶
func (in CertificateTemplateMap) DeepCopyInto(out *CertificateTemplateMap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"`
// Resources overrides the default resource requests and limits.
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
Audit *AuditSpec `json:"audit,omitempty"`
Authorization *AuthorizationSpec `json:"authorization,omitempty"`
// Optional: Auth configures various aspects of Authentication and Authorization for this shard.
Auth *AuthSpec `json:"auth,omitempty"`
// CertificateTemplates allows to customize the properties on the generated
// certificates for this shard.
CertificateTemplates CertificateTemplateMap `json:"certificateTemplates,omitempty"`
// Optional: ServiceTemplate configures the Kubernetes Service created for this shard.
ServiceTemplate *ServiceTemplate `json:"serviceTemplate,omitempty"`
// Optional: DeploymentTemplate configures the Kubernetes Deployment created for this shard.
DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,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 ( ConditionReasonReplicasUp ConditionReason = "ReplicasUp" ConditionReasonRootShardRefInvalid ConditionReason = "InvalidReference" ConditionReasonRootShardRefNotFound ConditionReason = "RootShardNotFound" ConditionReasonRootShardRefValid ConditionReason = "Valid" )
type ConditionType ¶
type ConditionType string
const ( ConditionTypeAvailable ConditionType = "Available" ConditionTypeRootShard ConditionType = "RootShard" )
type DeploymentMetadataTemplate ¶
type DeploymentMetadataTemplate struct {
// Annotations is a key value map to be copied to the target Deployment.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels is a key value map to be copied to the target Deployment.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
func (*DeploymentMetadataTemplate) DeepCopy ¶
func (in *DeploymentMetadataTemplate) DeepCopy() *DeploymentMetadataTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentMetadataTemplate.
func (*DeploymentMetadataTemplate) DeepCopyInto ¶
func (in *DeploymentMetadataTemplate) DeepCopyInto(out *DeploymentMetadataTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentSpecTemplate ¶
type DeploymentSpecTemplate struct {
// Template describes the pods that will be created.
Template *PodTemplateSpec `json:"template,omitempty"`
}
func (*DeploymentSpecTemplate) DeepCopy ¶
func (in *DeploymentSpecTemplate) DeepCopy() *DeploymentSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpecTemplate.
func (*DeploymentSpecTemplate) DeepCopyInto ¶
func (in *DeploymentSpecTemplate) DeepCopyInto(out *DeploymentSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentTemplate ¶
type DeploymentTemplate struct {
Metadata *DeploymentMetadataTemplate `json:"metadata,omitempty"`
Spec *DeploymentSpecTemplate `json:"spec,omitempty"`
}
func (*DeploymentTemplate) DeepCopy ¶
func (in *DeploymentTemplate) DeepCopy() *DeploymentTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentTemplate.
func (*DeploymentTemplate) DeepCopyInto ¶
func (in *DeploymentTemplate) DeepCopyInto(out *DeploymentTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EmbeddedCacheConfiguration ¶
type EmbeddedCacheConfiguration struct {
// Enabled enables or disables running the cache server as embedded.
Enabled bool `json:"enabled"`
}
func (*EmbeddedCacheConfiguration) DeepCopy ¶
func (in *EmbeddedCacheConfiguration) DeepCopy() *EmbeddedCacheConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmbeddedCacheConfiguration.
func (*EmbeddedCacheConfiguration) DeepCopyInto ¶
func (in *EmbeddedCacheConfiguration) DeepCopyInto(out *EmbeddedCacheConfiguration)
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"`
// Resources overrides the default resource requests and limits.
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// Optional: Auth configures various aspects of Authentication and Authorization for this front-proxy instance.
// If OIDC is enabled, it also requires enabling ServiceAccount authentication (as front-proxy will start validating JWT tokens, which includes ServiceAccount tokens).
// +kubebuilder:validation:XValidation:rule="!has(self.oidc) || (has(self.serviceAccount) && self.serviceAccount.enabled)",message="OIDC requires ServiceAccount auth to be enabled."
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: ServiceTemplate configures the Kubernetes Service created for this front-proxy instance.
ServiceTemplate *ServiceTemplate `json:"serviceTemplate,omitempty"`
// Optional: DeploymentTemplate configures the Kubernetes Deployment created for this shard.
DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`
// CertificateTemplates allows to customize the properties on the generated
// certificates for this front-proxy.
CertificateTemplates CertificateTemplateMap `json:"certificateTemplates,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageSpec.
func (*ImageSpec) DeepCopyInto ¶
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"`
// CertificateTemplate allows to customize the properties on the generated
// certificate for this kubeconfig.
CertificateTemplate *CertificateTemplate `json:"certificateTemplate,omitempty"`
}
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 OIDCCAFileRef ¶ added in v0.2.0
type OIDCCAFileRef struct {
// Name is the name of the secret that contains the CA file.
Name string `json:"name"`
// Key is the key in the secret that contains the CA file. Defaults to "ca.crt".
// +optional
Key string `json:"key,omitempty"`
}
func (*OIDCCAFileRef) DeepCopy ¶ added in v0.2.0
func (in *OIDCCAFileRef) DeepCopy() *OIDCCAFileRef
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCCAFileRef.
func (*OIDCCAFileRef) DeepCopyInto ¶ added in v0.2.0
func (in *OIDCCAFileRef) DeepCopyInto(out *OIDCCAFileRef)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OIDCConfiguration ¶
type OIDCConfiguration struct {
// 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"`
// Optionally provides a reference to a secret that contains a CA bundle for the OIDC issuer. This is useful when
// the OIDC issuer is not publicly trusted.
CAFileRef *OIDCCAFileRef `json:"caFileRef,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 PodMetadataTemplate ¶
type PodMetadataTemplate struct {
// Annotations is a key value map to be copied to the Pod.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels is a key value map to be copied to the Pod.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
func (*PodMetadataTemplate) DeepCopy ¶
func (in *PodMetadataTemplate) DeepCopy() *PodMetadataTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodMetadataTemplate.
func (*PodMetadataTemplate) DeepCopyInto ¶
func (in *PodMetadataTemplate) DeepCopyInto(out *PodMetadataTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodSpecTemplate ¶
type PodSpecTemplate struct {
// NodeSelector is a selector which must be true for the pod to fit on a node.
// Selector which must match a node's labels for the pod to be scheduled on that node.
// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
// +optional
// +mapType=atomic
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// If specified, the pod's scheduling constraints
// +optional
Affinity *corev1.Affinity `json:"affinity,omitempty"`
// If specified, the pod's tolerations.
// +optional
// +listType=atomic
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
// file if specified.
// +optional
// +patchMergeKey=ip
// +patchStrategy=merge
// +listType=map
// +listMapKey=ip
HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"`
// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
// If specified, these secrets will be passed to individual puller implementations for them to use.
// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
// +optional
// +patchMergeKey=name
// +patchStrategy=merge
// +listType=map
// +listMapKey=name
ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
}
func (*PodSpecTemplate) DeepCopy ¶
func (in *PodSpecTemplate) DeepCopy() *PodSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpecTemplate.
func (*PodSpecTemplate) DeepCopyInto ¶
func (in *PodSpecTemplate) DeepCopyInto(out *PodSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodTemplateSpec ¶
type PodTemplateSpec struct {
Metadata *PodMetadataTemplate `json:"metadata,omitempty"`
Spec *PodSpecTemplate `json:"spec,omitempty"`
}
func (*PodTemplateSpec) DeepCopy ¶
func (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.
func (*PodTemplateSpec) DeepCopyInto ¶
func (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PrivateKeyAlgorithm ¶
type PrivateKeyAlgorithm string
+kubebuilder:validation:Enum=RSA;ECDSA;Ed25519
const ( // RSA private key algorithm. RSAKeyAlgorithm PrivateKeyAlgorithm = "RSA" // ECDSA private key algorithm. ECDSAKeyAlgorithm PrivateKeyAlgorithm = "ECDSA" // Ed25519 private key algorithm. Ed25519KeyAlgorithm PrivateKeyAlgorithm = "Ed25519" )
type PrivateKeyEncoding ¶
type PrivateKeyEncoding string
+kubebuilder:validation:Enum=PKCS1;PKCS8
const ( // PKCS1 private key encoding. // PKCS1 produces a PEM block that contains the private key algorithm // in the header and the private key in the body. A key that uses this // can be recognised by its `BEGIN RSA PRIVATE KEY` or `BEGIN EC PRIVATE KEY` header. // NOTE: This encoding is not supported for Ed25519 keys. Attempting to use // this encoding with an Ed25519 key will be ignored and default to PKCS8. PKCS1 PrivateKeyEncoding = "PKCS1" // PKCS8 private key encoding. // PKCS8 produces a PEM block with a static header and both the private // key algorithm and the private key in the body. A key that uses this // encoding can be recognised by its `BEGIN PRIVATE KEY` header. PKCS8 PrivateKeyEncoding = "PKCS8" )
type PrivateKeyRotationPolicy ¶
type PrivateKeyRotationPolicy string
Denotes how private keys should be generated or sourced when a Certificate is being issued. +kubebuilder:validation:Enum=Never;Always
var ( // RotationPolicyNever means a private key will only be generated if one // does not already exist in the target `spec.secretName`. // If one does exist but it does not have the correct algorithm or size, // a warning will be raised to await user intervention. RotationPolicyNever PrivateKeyRotationPolicy = "Never" // RotationPolicyAlways means a private key matching the specified // requirements will be generated whenever a re-issuance occurs. RotationPolicyAlways PrivateKeyRotationPolicy = "Always" )
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootShard.
func (*RootShard) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RootShard) DeepCopyObject ¶
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 RootShardProxySpec ¶ added in v0.2.0
type RootShardProxySpec struct {
// Optional: Image allows to override the container image used for this proxy.
Image *ImageSpec `json:"image,omitempty"`
// Optional: Replicas configures how many instances of this proxy run in parallel. Defaults to 2 if not set.
Replicas *int32 `json:"replicas,omitempty"`
// Optional: Resources overrides the default resource requests and limits.
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// Optional: ServiceTemplate configures the Kubernetes Service created for this proxy.
ServiceTemplate *ServiceTemplate `json:"serviceTemplate,omitempty"`
// Optional: DeploymentTemplate configures the Kubernetes Deployment created for this proxy.
DeploymentTemplate *DeploymentTemplate `json:"deploymentTemplate,omitempty"`
// CertificateTemplates allows to customize the properties on the generated
// certificates for this front-proxy.
CertificateTemplates CertificateTemplateMap `json:"certificateTemplates,omitempty"`
}
func (*RootShardProxySpec) DeepCopy ¶ added in v0.2.0
func (in *RootShardProxySpec) DeepCopy() *RootShardProxySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootShardProxySpec.
func (*RootShardProxySpec) DeepCopyInto ¶ added in v0.2.0
func (in *RootShardProxySpec) DeepCopyInto(out *RootShardProxySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"`
// Proxy configures the internal front-proxy that is only (supposed to be) used by the kcp-operator
// to manage all shards belonging to a root shard instance. No external traffic should ever be
// routed through this proxy, use a dedicated FrontProxy for that purpose.
Proxy *RootShardProxySpec `json:"proxy,omitempty"`
// 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"`
// Shards is a list of shards that are currently registered with this root shard.
// +listType=map
// +listMapKey=name
// +optional
Shards []ShardReference `json:"shards,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 ServiceAccountAuthentication ¶ added in v0.2.0
type ServiceAccountAuthentication struct {
// Optional: Enabled enables or disables ServiceAccount Authentication.
// If set, it will mount every shard's service account certificate to the front-proxy.
Enabled bool `json:"enabled"`
}
ServiceAccountAuthentication configures ServiceAccount Authentication.
func (*ServiceAccountAuthentication) DeepCopy ¶ added in v0.2.0
func (in *ServiceAccountAuthentication) DeepCopy() *ServiceAccountAuthentication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountAuthentication.
func (*ServiceAccountAuthentication) DeepCopyInto ¶ added in v0.2.0
func (in *ServiceAccountAuthentication) DeepCopyInto(out *ServiceAccountAuthentication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceMetadataTemplate ¶
type ServiceMetadataTemplate struct {
// Annotations is a key value map to be copied to the target Kubernetes Service.
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// Labels is a key value map to be copied to the target Kubernetes Service.
// +optional
Labels map[string]string `json:"labels,omitempty"`
}
ServiceMetadataTemplate defines the default labels and annotations to be copied to the Kubernetes Service resource.
func (*ServiceMetadataTemplate) DeepCopy ¶
func (in *ServiceMetadataTemplate) DeepCopy() *ServiceMetadataTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMetadataTemplate.
func (*ServiceMetadataTemplate) DeepCopyInto ¶
func (in *ServiceMetadataTemplate) DeepCopyInto(out *ServiceMetadataTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceSpecTemplate ¶
type ServiceSpecTemplate struct {
Type corev1.ServiceType `json:"type,omitempty"`
ClusterIP string `json:"clusterIP,omitempty"`
}
func (*ServiceSpecTemplate) DeepCopy ¶
func (in *ServiceSpecTemplate) DeepCopy() *ServiceSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpecTemplate.
func (*ServiceSpecTemplate) DeepCopyInto ¶
func (in *ServiceSpecTemplate) DeepCopyInto(out *ServiceSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceTemplate ¶
type ServiceTemplate struct {
Metadata *ServiceMetadataTemplate `json:"metadata,omitempty"`
Spec *ServiceSpecTemplate `json:"spec,omitempty"`
}
func (*ServiceTemplate) DeepCopy ¶
func (in *ServiceTemplate) DeepCopy() *ServiceTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceTemplate.
func (*ServiceTemplate) DeepCopyInto ¶
func (in *ServiceTemplate) DeepCopyInto(out *ServiceTemplate)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Shard.
func (*Shard) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Shard) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardList.
func (*ShardList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ShardList) DeepCopyObject ¶
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 ShardReference ¶ added in v0.2.0
type ShardReference struct {
// Name is the name of the shard.
Name string `json:"name"`
}
func (*ShardReference) DeepCopy ¶ added in v0.2.0
func (in *ShardReference) DeepCopy() *ShardReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardReference.
func (*ShardReference) DeepCopyInto ¶ added in v0.2.0
func (in *ShardReference) DeepCopyInto(out *ShardReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ShardSpec ¶
type ShardSpec struct {
CommonShardSpec `json:",inline"`
RootShard RootShardConfig `json:"rootShard"`
}
ShardSpec defines the desired state of Shard
func (*ShardSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShardSpec.
func (*ShardSpec) DeepCopyInto ¶
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.
type X509Subject ¶
type X509Subject struct {
// Organizations to be used on the Certificate.
// +optional
Organizations []string `json:"organizations,omitempty"`
// Countries to be used on the Certificate.
// +optional
Countries []string `json:"countries,omitempty"`
// Organizational Units to be used on the Certificate.
// +optional
OrganizationalUnits []string `json:"organizationalUnits,omitempty"`
// Cities to be used on the Certificate.
// +optional
Localities []string `json:"localities,omitempty"`
// State/Provinces to be used on the Certificate.
// +optional
Provinces []string `json:"provinces,omitempty"`
// Street addresses to be used on the Certificate.
// +optional
StreetAddresses []string `json:"streetAddresses,omitempty"`
// Postal codes to be used on the Certificate.
// +optional
PostalCodes []string `json:"postalCodes,omitempty"`
// Serial number to be used on the Certificate.
// +optional
SerialNumber string `json:"serialNumber,omitempty"`
}
X509Subject Full X509 name specification
func (*X509Subject) DeepCopy ¶
func (in *X509Subject) DeepCopy() *X509Subject
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new X509Subject.
func (*X509Subject) DeepCopyInto ¶
func (in *X509Subject) DeepCopyInto(out *X509Subject)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.