v1alpha1

package
v0.1.0-tcp-proxy Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2026 License: Apache-2.0 Imports: 20 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the steward v1alpha1 API group +kubebuilder:object:generate=true +groupName=steward.butlerlabs.dev

Index

Constants

View Source
const (
	ServiceTypeLoadBalancer       = (ServiceType)(corev1.ServiceTypeLoadBalancer)
	ServiceTypeClusterIP          = (ServiceType)(corev1.ServiceTypeClusterIP)
	ServiceTypeNodePort           = (ServiceType)(corev1.ServiceTypeNodePort)
	KubeconfigSecretKeyAnnotation = "steward.butlerlabs.dev/kubeconfig-secret-key"
)
View Source
const (
	DatastoreUsedSecretNamespacedNameKey = "secretRef"
)
View Source
const (
	GatewayListenerNameKey = "spec.listeners.name"
)
View Source
const (
	// PausedReconciliationAnnotation is an annotation that can be applied to
	// Tenant Control Plane objects to prevent the controller from processing such a resource.
	PausedReconciliationAnnotation = "steward.butlerlabs.dev/paused"
)
View Source
const (
	TenantControlPlaneUsedDataStoreKey = "status.storage.dataStoreName"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "steward.butlerlabs.dev", Version: "v1alpha1"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ManagedByLabel  = "steward.butlerlabs.dev/managed-by"
	ManagedForLabel = "steward.butlerlabs.dev/managed-for"
)

Functions

This section is empty.

Types

type APIServerCertificatesStatus

type APIServerCertificatesStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

APIServerCertificatesStatus defines the observed state of ETCD Certificate for API server.

func (*APIServerCertificatesStatus) DeepCopy

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

func (*APIServerCertificatesStatus) DeepCopyInto

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

type AdditionalMetadata

type AdditionalMetadata struct {
	Labels      map[string]string `json:"labels,omitempty"`
	Annotations map[string]string `json:"annotations,omitempty"`
}

AdditionalMetadata defines which additional metadata, such as labels and annotations, must be attached to the created resource.

func (*AdditionalMetadata) DeepCopy

func (in *AdditionalMetadata) DeepCopy() *AdditionalMetadata

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

func (*AdditionalMetadata) DeepCopyInto

func (in *AdditionalMetadata) DeepCopyInto(out *AdditionalMetadata)

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

type AdditionalPort

type AdditionalPort struct {
	// The name of this port within the Service created by Steward.
	// This must be a DNS_LABEL, must have unique names, and cannot be `kube-apiserver`, or `konnectivity-server`.
	Name string `json:"name"`
	// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
	//+kubebuilder:validation:Enum=TCP;UDP;SCTP
	//+kubebuilder:default=TCP
	Protocol corev1.Protocol `json:"protocol,omitempty"`
	// The application protocol for this port.
	// This is used as a hint for implementations to offer richer behavior for protocols that they understand.
	// This field follows standard Kubernetes label syntax.
	// Valid values are either:
	//
	// * Un-prefixed protocol names - reserved for IANA standard service names (as per
	// RFC-6335 and https://www.iana.org/assignments/service-names).
	AppProtocol *string `json:"appProtocol,omitempty"`
	// The port that will be exposed by this service.
	Port int32 `json:"port"`
	// Number or name of the port to access on the pods of the Tenant Control Plane.
	// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
	// If this is a string, it will be looked up as a named port in the
	// target Pod's container ports. If this is not specified, the value
	// of the 'port' field is used (an identity map).
	TargetPort intstr.IntOrString `json:"targetPort"`
}

func (*AdditionalPort) DeepCopy

func (in *AdditionalPort) DeepCopy() *AdditionalPort

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

func (*AdditionalPort) DeepCopyInto

func (in *AdditionalPort) DeepCopyInto(out *AdditionalPort)

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

type AdditionalVolumeMounts

type AdditionalVolumeMounts struct {
	APIServer         []corev1.VolumeMount `json:"apiServer,omitempty"`
	ControllerManager []corev1.VolumeMount `json:"controllerManager,omitempty"`
	Scheduler         []corev1.VolumeMount `json:"scheduler,omitempty"`
}

AdditionalVolumeMounts allows mounting additional volumes to the Control Plane components.

func (*AdditionalVolumeMounts) DeepCopy

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

func (*AdditionalVolumeMounts) DeepCopyInto

func (in *AdditionalVolumeMounts) DeepCopyInto(out *AdditionalVolumeMounts)

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

type AddonSpec

type AddonSpec struct {
	ImageOverrideTrait `json:",inline"`
}

AddonSpec defines the spec for every addon.

func (*AddonSpec) DeepCopy

func (in *AddonSpec) DeepCopy() *AddonSpec

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

func (*AddonSpec) DeepCopyInto

func (in *AddonSpec) DeepCopyInto(out *AddonSpec)

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

type AddonStatus

type AddonStatus struct {
	Enabled    bool        `json:"enabled"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
}

AddonStatus defines the observed state of an Addon.

func (*AddonStatus) DeepCopy

func (in *AddonStatus) DeepCopy() *AddonStatus

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

func (*AddonStatus) DeepCopyInto

func (in *AddonStatus) DeepCopyInto(out *AddonStatus)

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

type AddonsSpec

type AddonsSpec struct {
	// Enables the DNS addon in the Tenant Cluster.
	// The registry and the tag are configurable, the image is hard-coded to `coredns`.
	CoreDNS *AddonSpec `json:"coreDNS,omitempty"`
	// Enables the Konnectivity addon in the Tenant Cluster, required if the worker nodes are in a different network.
	Konnectivity *KonnectivitySpec `json:"konnectivity,omitempty"`
	// Enables the kube-proxy addon in the Tenant Cluster.
	// The registry and the tag are configurable, the image is hard-coded to `kube-proxy`.
	KubeProxy *AddonSpec `json:"kubeProxy,omitempty"`
	// TCPProxy enables the tcp-proxy addon in the tenant cluster.
	// When enabled, tcp-proxy rewrites the default kubernetes EndpointSlice
	// to route API server traffic through a local proxy, eliminating SNI
	// rewriting requirements for Ingress and Gateway API network modes.
	// +optional
	TCPProxy *TCPProxySpec `json:"tcpProxy,omitempty"`
}

AddonsSpec defines the enabled addons and their features.

func (*AddonsSpec) DeepCopy

func (in *AddonsSpec) DeepCopy() *AddonsSpec

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

func (*AddonsSpec) DeepCopyInto

func (in *AddonsSpec) DeepCopyInto(out *AddonsSpec)

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

type AddonsStatus

type AddonsStatus struct {
	CoreDNS      AddonStatus        `json:"coreDNS,omitempty"`
	KubeProxy    AddonStatus        `json:"kubeProxy,omitempty"`
	Konnectivity KonnectivityStatus `json:"konnectivity,omitempty"`
	TCPProxy     TCPProxyStatus     `json:"tcpProxy,omitempty"`
}

AddonsStatus defines the observed state of the different Addons.

func (*AddonsStatus) DeepCopy

func (in *AddonsStatus) DeepCopy() *AddonsStatus

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

func (*AddonsStatus) DeepCopyInto

func (in *AddonsStatus) DeepCopyInto(out *AddonsStatus)

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

type AdmissionController

type AdmissionController string

+kubebuilder:validation:Enum=AlwaysAdmit;AlwaysDeny;AlwaysPullImages;CertificateApproval;CertificateSigning;CertificateSubjectRestriction;DefaultIngressClass;DefaultStorageClass;DefaultTolerationSeconds;DenyEscalatingExec;DenyExecOnPrivileged;DenyServiceExternalIPs;EventRateLimit;ExtendedResourceToleration;ImagePolicyWebhook;LimitPodHardAntiAffinityTopology;LimitRanger;MutatingAdmissionWebhook;NamespaceAutoProvision;NamespaceExists;NamespaceLifecycle;NodeRestriction;OwnerReferencesPermissionEnforcement;PersistentVolumeClaimResize;PersistentVolumeLabel;PodNodeSelector;PodSecurity;PodSecurityPolicy;PodTolerationRestriction;Priority;ResourceQuota;RuntimeClass;SecurityContextDeny;ServiceAccount;StorageObjectInUseProtection;TaintNodesByCondition;ValidatingAdmissionWebhook

type AdmissionControllers

type AdmissionControllers []AdmissionController

func (AdmissionControllers) DeepCopy

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

func (AdmissionControllers) DeepCopyInto

func (in AdmissionControllers) DeepCopyInto(out *AdmissionControllers)

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

func (AdmissionControllers) ToSlice

func (a AdmissionControllers) ToSlice() []string

type BasicAuth

type BasicAuth struct {
	Username ContentRef `json:"username"`
	Password ContentRef `json:"password"`
}

BasicAuth contains the required information to perform the connection using user credentials to the data store.

func (*BasicAuth) DeepCopy

func (in *BasicAuth) DeepCopy() *BasicAuth

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

func (*BasicAuth) DeepCopyInto

func (in *BasicAuth) DeepCopyInto(out *BasicAuth)

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

type CGroupDriver

type CGroupDriver string

+kubebuilder:validation:Enum=systemd;cgroupfs

func (CGroupDriver) String

func (c CGroupDriver) String() string

type CertKeyPair

type CertKeyPair struct {
	Certificate ContentRef  `json:"certificate"`
	PrivateKey  *ContentRef `json:"privateKey,omitempty"`
}

func (*CertKeyPair) DeepCopy

func (in *CertKeyPair) DeepCopy() *CertKeyPair

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

func (*CertKeyPair) DeepCopyInto

func (in *CertKeyPair) DeepCopyInto(out *CertKeyPair)

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

type CertificatePrivateKeyPairStatus

type CertificatePrivateKeyPairStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

CertificatePrivateKeyPairStatus defines the status.

func (*CertificatePrivateKeyPairStatus) DeepCopy

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

func (*CertificatePrivateKeyPairStatus) DeepCopyInto

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

type CertificatesStatus

type CertificatesStatus struct {
	CA                     CertificatePrivateKeyPairStatus `json:"ca,omitempty"`
	APIServer              CertificatePrivateKeyPairStatus `json:"apiServer,omitempty"`
	APIServerKubeletClient CertificatePrivateKeyPairStatus `json:"apiServerKubeletClient,omitempty"`
	FrontProxyCA           CertificatePrivateKeyPairStatus `json:"frontProxyCA,omitempty"`
	FrontProxyClient       CertificatePrivateKeyPairStatus `json:"frontProxyClient,omitempty"`
	SA                     PublicKeyPrivateKeyPairStatus   `json:"sa,omitempty"`
	ETCD                   *ETCDCertificatesStatus         `json:"etcd,omitempty"`
}

CertificatesStatus defines the observed state of ETCD TLSConfig.

func (*CertificatesStatus) DeepCopy

func (in *CertificatesStatus) DeepCopy() *CertificatesStatus

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

func (*CertificatesStatus) DeepCopyInto

func (in *CertificatesStatus) DeepCopyInto(out *CertificatesStatus)

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

type ClientCertificate

type ClientCertificate struct {
	Certificate ContentRef `json:"certificate"`
	PrivateKey  ContentRef `json:"privateKey"`
}

func (*ClientCertificate) DeepCopy

func (in *ClientCertificate) DeepCopy() *ClientCertificate

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

func (*ClientCertificate) DeepCopyInto

func (in *ClientCertificate) DeepCopyInto(out *ClientCertificate)

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

type CompoundValue

type CompoundValue struct {
	// StringValue is a static string value.
	StringValue string `json:"stringValue,omitempty"`
	// FromDefinition is used to generate a dynamic value,
	// it uses the dot notation to access fields from the referenced TenantControlPlane object:
	// e.g.: metadata.name
	FromDefinition string `json:"fromDefinition,omitempty"`
}

CompoundValue allows defining a static, or a dynamic value. Options are mutually exclusive, just one should be picked up. +kubebuilder:validation:XValidation:rule="(has(self.stringValue) || has(self.fromDefinition)) && !(has(self.stringValue) && has(self.fromDefinition))",message="Either stringValue or fromDefinition must be set, but not both."

func (*CompoundValue) DeepCopy

func (in *CompoundValue) DeepCopy() *CompoundValue

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

func (*CompoundValue) DeepCopyInto

func (in *CompoundValue) DeepCopyInto(out *CompoundValue)

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

type ContentRef

type ContentRef struct {
	// Bare content of the file, base64 encoded.
	// It has precedence over the SecretReference value.
	Content   []byte           `json:"content,omitempty"`
	SecretRef *SecretReference `json:"secretReference,omitempty"`
}

func (*ContentRef) DeepCopy

func (in *ContentRef) DeepCopy() *ContentRef

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

func (*ContentRef) DeepCopyInto

func (in *ContentRef) DeepCopyInto(out *ContentRef)

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

func (*ContentRef) GetContent

func (in *ContentRef) GetContent(ctx context.Context, client client.Client) ([]byte, error)

GetContent is the resolver for the container of the Secret. The bare content has priority over the external reference.

type ControlPlane

type ControlPlane struct {
	// Defining the options for the deployed Tenant Control Plane as Deployment resource.
	Deployment DeploymentSpec `json:"deployment,omitempty"`
	// Defining the options for the Tenant Control Plane Service resource.
	Service ServiceSpec `json:"service"`
	// Defining the options for an Optional Ingress which will expose API Server of the Tenant Control Plane
	Ingress *IngressSpec `json:"ingress,omitempty"`
	// Defining the options for an Optional Gateway which will expose API Server of the Tenant Control Plane
	Gateway *GatewaySpec `json:"gateway,omitempty"`
}

ControlPlane defines how the Tenant Control Plane Kubernetes resources must be created in the Admin Cluster, such as the number of Pod replicas, the Service resource, or the Ingress. +kubebuilder:validation:XValidation:rule="!(has(self.ingress) && has(self.gateway))",message="using both ingress and gateway is not supported"

func (*ControlPlane) DeepCopy

func (in *ControlPlane) DeepCopy() *ControlPlane

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

func (*ControlPlane) DeepCopyInto

func (in *ControlPlane) DeepCopyInto(out *ControlPlane)

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

type ControlPlaneComponentsResources

type ControlPlaneComponentsResources struct {
	APIServer         *corev1.ResourceRequirements `json:"apiServer,omitempty"`
	ControllerManager *corev1.ResourceRequirements `json:"controllerManager,omitempty"`
	Scheduler         *corev1.ResourceRequirements `json:"scheduler,omitempty"`
	// Define the kine container resources.
	// Available only if Steward is running using Kine as backing storage.
	Kine *corev1.ResourceRequirements `json:"kine,omitempty"`
}

func (*ControlPlaneComponentsResources) DeepCopy

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

func (*ControlPlaneComponentsResources) DeepCopyInto

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

type ControlPlaneExtraArgs

type ControlPlaneExtraArgs struct {
	APIServer         []string `json:"apiServer,omitempty"`
	ControllerManager []string `json:"controllerManager,omitempty"`
	Scheduler         []string `json:"scheduler,omitempty"`
	// Available only if Steward is running using Kine as backing storage.
	Kine []string `json:"kine,omitempty"`
}

ControlPlaneExtraArgs allows specifying additional arguments to the Control Plane components.

func (*ControlPlaneExtraArgs) DeepCopy

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

func (*ControlPlaneExtraArgs) DeepCopyInto

func (in *ControlPlaneExtraArgs) DeepCopyInto(out *ControlPlaneExtraArgs)

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

type DataStore

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

	Spec   DataStoreSpec   `json:"spec,omitempty"`
	Status DataStoreStatus `json:"status,omitempty"`
}

DataStore is the Schema for the datastores API.

func (*DataStore) DeepCopy

func (in *DataStore) DeepCopy() *DataStore

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

func (*DataStore) DeepCopyInto

func (in *DataStore) DeepCopyInto(out *DataStore)

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

func (*DataStore) DeepCopyObject

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

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

type DataStoreCertificateStatus

type DataStoreCertificateStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
}

func (*DataStoreCertificateStatus) DeepCopy

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

func (*DataStoreCertificateStatus) DeepCopyInto

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

type DataStoreConfigStatus

type DataStoreConfigStatus struct {
	SecretName string `json:"secretName,omitempty"`
	Checksum   string `json:"checksum,omitempty"`
}

func (*DataStoreConfigStatus) DeepCopy

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

func (*DataStoreConfigStatus) DeepCopyInto

func (in *DataStoreConfigStatus) DeepCopyInto(out *DataStoreConfigStatus)

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

type DataStoreList

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

DataStoreList contains a list of DataStore.

func (*DataStoreList) DeepCopy

func (in *DataStoreList) DeepCopy() *DataStoreList

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

func (*DataStoreList) DeepCopyInto

func (in *DataStoreList) DeepCopyInto(out *DataStoreList)

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

func (*DataStoreList) DeepCopyObject

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

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

type DataStoreOverride

type DataStoreOverride struct {
	// Resource specifies which kubernetes resource to target.
	Resource string `json:"resource,omitempty"`
	// DataStore specifies the DataStore that should be used to store the Kubernetes data for the given Resource.
	DataStore string `json:"dataStore,omitempty"`
}

DataStoreOverride defines which kubernetes resource will be stored in a dedicated datastore.

func (*DataStoreOverride) DeepCopy

func (in *DataStoreOverride) DeepCopy() *DataStoreOverride

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

func (*DataStoreOverride) DeepCopyInto

func (in *DataStoreOverride) DeepCopyInto(out *DataStoreOverride)

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

type DataStoreSetupStatus

type DataStoreSetupStatus struct {
	Schema     string      `json:"schema,omitempty"`
	User       string      `json:"user,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

func (*DataStoreSetupStatus) DeepCopy

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

func (*DataStoreSetupStatus) DeepCopyInto

func (in *DataStoreSetupStatus) DeepCopyInto(out *DataStoreSetupStatus)

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

type DataStoreSpec

type DataStoreSpec struct {
	// The driver to use to connect to the shared datastore.
	Driver Driver `json:"driver"`
	// List of the endpoints to connect to the shared datastore.
	// No need for protocol, just bare IP/FQDN and port.
	Endpoints Endpoints `json:"endpoints"`
	// In case of authentication enabled for the given data store, specifies the username and password pair.
	// This value is optional.
	BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
	// Defines the TLS/SSL configuration required to connect to the data store in a secure way.
	// This value is optional.
	TLSConfig *TLSConfig `json:"tlsConfig,omitempty"`
}

DataStoreSpec defines the desired state of DataStore. +kubebuilder:validation:XValidation:rule="(self.driver == \"etcd\") ? (self.tlsConfig != null && (has(self.tlsConfig.certificateAuthority.privateKey.secretReference) || has(self.tlsConfig.certificateAuthority.privateKey.content))) : true", message="certificateAuthority privateKey must have secretReference or content when driver is etcd" +kubebuilder:validation:XValidation:rule="(self.driver == \"etcd\") ? (self.tlsConfig != null && (has(self.tlsConfig.clientCertificate.certificate.secretReference) || has(self.tlsConfig.clientCertificate.certificate.content))) : true", message="clientCertificate must have secretReference or content when driver is etcd" +kubebuilder:validation:XValidation:rule="(self.driver == \"etcd\") ? (self.tlsConfig != null && (has(self.tlsConfig.clientCertificate.privateKey.secretReference) || has(self.tlsConfig.clientCertificate.privateKey.content))) : true", message="clientCertificate privateKey must have secretReference or content when driver is etcd" +kubebuilder:validation:XValidation:rule="(self.driver != \"etcd\" && has(self.tlsConfig) && has(self.tlsConfig.clientCertificate)) ? (((has(self.tlsConfig.clientCertificate.certificate.secretReference) || has(self.tlsConfig.clientCertificate.certificate.content)))) : true", message="When driver is not etcd and tlsConfig exists, clientCertificate must be null or contain valid content" +kubebuilder:validation:XValidation:rule="(self.driver != \"etcd\" && has(self.basicAuth)) ? ((has(self.basicAuth.username.secretReference) || has(self.basicAuth.username.content))) : true", message="When driver is not etcd and basicAuth exists, username must have secretReference or content" +kubebuilder:validation:XValidation:rule="(self.driver != \"etcd\" && has(self.basicAuth)) ? ((has(self.basicAuth.password.secretReference) || has(self.basicAuth.password.content))) : true", message="When driver is not etcd and basicAuth exists, password must have secretReference or content" +kubebuilder:validation:XValidation:rule="(self.driver != \"etcd\") ? (has(self.tlsConfig) || has(self.basicAuth)) : true", message="When driver is not etcd, either tlsConfig or basicAuth must be provided"

func (*DataStoreSpec) DeepCopy

func (in *DataStoreSpec) DeepCopy() *DataStoreSpec

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

func (*DataStoreSpec) DeepCopyInto

func (in *DataStoreSpec) DeepCopyInto(out *DataStoreSpec)

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

type DataStoreStatus

type DataStoreStatus struct {
	// List of the Tenant Control Planes, namespaced named, using this data store.
	UsedBy []string `json:"usedBy,omitempty"`
}

DataStoreStatus defines the observed state of DataStore.

func (*DataStoreStatus) DeepCopy

func (in *DataStoreStatus) DeepCopy() *DataStoreStatus

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

func (*DataStoreStatus) DeepCopyInto

func (in *DataStoreStatus) DeepCopyInto(out *DataStoreStatus)

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

type DatastoreUsedSecret

type DatastoreUsedSecret struct{}

func (*DatastoreUsedSecret) DeepCopy

func (in *DatastoreUsedSecret) DeepCopy() *DatastoreUsedSecret

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

func (*DatastoreUsedSecret) DeepCopyInto

func (in *DatastoreUsedSecret) DeepCopyInto(out *DatastoreUsedSecret)

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

func (*DatastoreUsedSecret) ExtractValue

func (d *DatastoreUsedSecret) ExtractValue() client.IndexerFunc

func (*DatastoreUsedSecret) Field

func (d *DatastoreUsedSecret) Field() string

func (*DatastoreUsedSecret) Object

func (d *DatastoreUsedSecret) Object() client.Object

func (*DatastoreUsedSecret) SetupWithManager

func (d *DatastoreUsedSecret) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error

type DeploymentSpec

type DeploymentSpec struct {
	// RegistrySettings allows to override the default images for the given Tenant Control Plane instance.
	// It could be used to point to a different container registry rather than the public one.
	//+kubebuilder:default={registry:"registry.k8s.io",apiServerImage:"kube-apiserver",controllerManagerImage:"kube-controller-manager",schedulerImage:"kube-scheduler"}
	RegistrySettings RegistrySettings `json:"registrySettings,omitempty"`
	//+kubebuilder:default=2
	Replicas *int32 `json:"replicas,omitempty"`
	// 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/
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
	// to run the Tenant Control Plane pod. If no RuntimeClass resource matches the named class, the pod will not be run.
	// If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
	// empty definition that uses the default runtime handler.
	// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
	RuntimeClassName string `json:"runtimeClassName,omitempty"`
	// Strategy describes how to replace existing pods with new ones for the given Tenant Control Plane.
	// Default value is set to Rolling Update, with a blue/green strategy.
	//+kubebuilder:default={type:"RollingUpdate",rollingUpdate:{maxUnavailable:0,maxSurge:"100%"}}
	Strategy appsv1.DeploymentStrategy `json:"strategy,omitempty"`
	// If specified, the Tenant Control Plane pod's tolerations.
	// More info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	// If specified, the Tenant Control Plane pod's scheduling constraints.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// TopologySpreadConstraints describes how the Tenant Control Plane pods ought to spread across topology
	// domains. Scheduler will schedule pods in a way which abides by the constraints.
	// In case of nil underlying LabelSelector, the Steward one for the given Tenant Control Plane will be used.
	// All topologySpreadConstraints are ANDed.
	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
	// Resources defines the amount of memory and CPU to allocate to each component of the Control Plane
	// (kube-apiserver, controller-manager, and scheduler).
	Resources *ControlPlaneComponentsResources `json:"resources,omitempty"`
	// ExtraArgs allows adding additional arguments to the Control Plane components,
	// such as kube-apiserver, controller-manager, and scheduler. WARNING - This option
	// can override existing parameters and cause components to misbehave in unxpected ways.
	// Only modify if you know what you are doing.
	ExtraArgs             *ControlPlaneExtraArgs `json:"extraArgs,omitempty"`
	AdditionalMetadata    AdditionalMetadata     `json:"additionalMetadata,omitempty"`
	PodAdditionalMetadata AdditionalMetadata     `json:"podAdditionalMetadata,omitempty"`
	// AdditionalInitContainers allows adding additional init containers to the Control Plane deployment.
	AdditionalInitContainers []corev1.Container `json:"additionalInitContainers,omitempty"`
	// AdditionalContainers allows adding additional containers to the Control Plane deployment.
	AdditionalContainers []corev1.Container `json:"additionalContainers,omitempty"`
	// AdditionalVolumes allows to add additional volumes to the Control Plane deployment.
	AdditionalVolumes []corev1.Volume `json:"additionalVolumes,omitempty"`
	// AdditionalVolumeMounts allows to mount an additional volume into each component of the Control Plane
	// (kube-apiserver, controller-manager, and scheduler).
	AdditionalVolumeMounts *AdditionalVolumeMounts `json:"additionalVolumeMounts,omitempty"`
	//+kubebuilder:default="default"
	// ServiceAccountName allows to specify the service account to be mounted to the pods of the Control plane deployment
	ServiceAccountName string `json:"serviceAccountName,omitempty"`
}

func (*DeploymentSpec) DeepCopy

func (in *DeploymentSpec) DeepCopy() *DeploymentSpec

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

func (*DeploymentSpec) DeepCopyInto

func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec)

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

type Driver

type Driver string
var (
	EtcdDriver           Driver = "etcd"
	KineMySQLDriver      Driver = "MySQL"
	KinePostgreSQLDriver Driver = "PostgreSQL"
	KineNatsDriver       Driver = "NATS"
)

type ETCDCertificateStatus

type ETCDCertificateStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

ETCDCertificateStatus defines the observed state of ETCD Certificate for API server.

func (*ETCDCertificateStatus) DeepCopy

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

func (*ETCDCertificateStatus) DeepCopyInto

func (in *ETCDCertificateStatus) DeepCopyInto(out *ETCDCertificateStatus)

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

type ETCDCertificatesStatus

type ETCDCertificatesStatus struct {
	APIServer APIServerCertificatesStatus `json:"apiServer,omitempty"`
	CA        ETCDCertificateStatus       `json:"ca,omitempty"`
}

ETCDCertificatesStatus defines the observed state of ETCD Certificate for API server.

func (*ETCDCertificatesStatus) DeepCopy

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

func (*ETCDCertificatesStatus) DeepCopyInto

func (in *ETCDCertificatesStatus) DeepCopyInto(out *ETCDCertificatesStatus)

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

type Endpoints

type Endpoints []string

func (Endpoints) DeepCopy

func (in Endpoints) DeepCopy() Endpoints

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

func (Endpoints) DeepCopyInto

func (in Endpoints) DeepCopyInto(out *Endpoints)

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

type ExternalKubernetesObjectStatus

type ExternalKubernetesObjectStatus struct {
	Name      string `json:"name,omitempty"`
	Namespace string `json:"namespace,omitempty"`
	// Last time when k8s object was updated
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
}

func (*ExternalKubernetesObjectStatus) DeepCopy

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

func (*ExternalKubernetesObjectStatus) DeepCopyInto

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

type ExtraArgs

type ExtraArgs []string

ExtraArgs allows adding additional arguments to said component. WARNING - This option can override existing konnectivity parameters and cause konnectivity components to misbehave in unxpected ways. Only modify if you know what you are doing.

func (ExtraArgs) DeepCopy

func (in ExtraArgs) DeepCopy() ExtraArgs

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

func (ExtraArgs) DeepCopyInto

func (in ExtraArgs) DeepCopyInto(out *ExtraArgs)

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

type GatewayAccessPoint

type GatewayAccessPoint struct {
	Type  *gatewayv1.AddressType `json:"type"`
	Value string                 `json:"value"`
	Port  int32                  `json:"port"`
	URLs  []string               `json:"urls,omitempty"`
}

func (*GatewayAccessPoint) DeepCopy

func (in *GatewayAccessPoint) DeepCopy() *GatewayAccessPoint

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

func (*GatewayAccessPoint) DeepCopyInto

func (in *GatewayAccessPoint) DeepCopyInto(out *GatewayAccessPoint)

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

type GatewayListener

type GatewayListener struct{}

func (*GatewayListener) DeepCopy

func (in *GatewayListener) DeepCopy() *GatewayListener

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

func (*GatewayListener) DeepCopyInto

func (in *GatewayListener) DeepCopyInto(out *GatewayListener)

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

func (*GatewayListener) ExtractValue

func (g *GatewayListener) ExtractValue() client.IndexerFunc

func (*GatewayListener) Field

func (g *GatewayListener) Field() string

func (*GatewayListener) Object

func (g *GatewayListener) Object() client.Object

func (*GatewayListener) SetupWithManager

func (g *GatewayListener) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error

type GatewaySpec

type GatewaySpec struct {
	// AdditionalMetadata to add Labels and Annotations support.
	AdditionalMetadata AdditionalMetadata `json:"additionalMetadata,omitempty"`
	// GatewayParentRefs is the class of the Gateway resource to use.
	GatewayParentRefs []gatewayv1.ParentReference `json:"parentRefs,omitempty"`
	// Hostname is an optional field which will be used as a route hostname.
	Hostname gatewayv1.Hostname `json:"hostname,omitempty"`
}

GatewaySpec defines the options for the Gateway which will expose API Server of the Tenant Control Plane. +kubebuilder:validation:XValidation:rule="!has(self.parentRefs) || size(self.parentRefs) == 0 || self.parentRefs.all(ref, !has(ref.port) && !has(ref.sectionName))",message="parentRefs must not specify port or sectionName, these are set automatically by Steward"

func (*GatewaySpec) DeepCopy

func (in *GatewaySpec) DeepCopy() *GatewaySpec

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

func (*GatewaySpec) DeepCopyInto

func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec)

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

type ImageOverrideTrait

type ImageOverrideTrait struct {
	// ImageRepository sets the container registry to pull images from.
	// if not set, the default ImageRepository will be used instead.
	ImageRepository string `json:"imageRepository,omitempty"`
	// ImageTag allows to specify a tag for the image.
	// In case this value is set, kubeadm does not change automatically the version of the above components during upgrades.
	ImageTag string `json:"imageTag,omitempty"`
}

func (*ImageOverrideTrait) DeepCopy

func (in *ImageOverrideTrait) DeepCopy() *ImageOverrideTrait

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

func (*ImageOverrideTrait) DeepCopyInto

func (in *ImageOverrideTrait) DeepCopyInto(out *ImageOverrideTrait)

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

type IngressSpec

type IngressSpec struct {
	AdditionalMetadata AdditionalMetadata `json:"additionalMetadata,omitempty"`
	IngressClassName   string             `json:"ingressClassName,omitempty"`
	// Hostname is an optional field which will be used as Ingress's Host. If it is not defined,
	// Ingress's host will be "<tenant>.<namespace>.<domain>", where domain is specified under NetworkProfileSpec
	Hostname string `json:"hostname,omitempty"`
}

IngressSpec defines the options for the ingress which will expose API Server of the Tenant Control Plane.

func (*IngressSpec) DeepCopy

func (in *IngressSpec) DeepCopy() *IngressSpec

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

func (*IngressSpec) DeepCopyInto

func (in *IngressSpec) DeepCopyInto(out *IngressSpec)

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

type JSONPatch

type JSONPatch struct {
	// Op is the RFC 6902 JSON Patch operation.
	//+kubebuilder:validation:Enum=add;remove;replace;move;copy;test
	Op string `json:"op"`
	// Path specifies the target location in the JSON document. Use "/" to separate keys; "-" for appending to arrays.
	Path string `json:"path"`
	// From specifies the source location for move or copy operations.
	From string `json:"from,omitempty"`
	// Value is the operation value to be used when Op is add, replace, test.
	Value *apiextensionsv1.JSON `json:"value,omitempty"`
}

func (*JSONPatch) DeepCopy

func (in *JSONPatch) DeepCopy() *JSONPatch

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

func (*JSONPatch) DeepCopyInto

func (in *JSONPatch) DeepCopyInto(out *JSONPatch)

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

type JSONPatches

type JSONPatches []JSONPatch

func (JSONPatches) DeepCopy

func (in JSONPatches) DeepCopy() JSONPatches

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

func (JSONPatches) DeepCopyInto

func (in JSONPatches) DeepCopyInto(out *JSONPatches)

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

func (JSONPatches) ToJSON

func (p JSONPatches) ToJSON() ([]byte, error)

type KonnectivityAgentMode

type KonnectivityAgentMode string
var (
	KonnectivityAgentModeDaemonSet  KonnectivityAgentMode = "DaemonSet"
	KonnectivityAgentModeDeployment KonnectivityAgentMode = "Deployment"
)

type KonnectivityAgentSpec

type KonnectivityAgentSpec struct {
	// AgentImage defines the container image for Konnectivity's agent.
	//+kubebuilder:default=registry.k8s.io/kas-network-proxy/proxy-agent
	Image string `json:"image,omitempty"`
	// Version for Konnectivity agent.
	// If left empty, Steward will automatically inflect the version from the deployed Tenant Control Plane.
	//
	// WARNING: for last cut-off releases, the container image could be not available.
	Version string `json:"version,omitempty"`
	// Tolerations for the deployed agent.
	// Can be customized to start the konnectivity-agent even if the nodes are not ready or tainted.
	//+kubebuilder:default={{key: "CriticalAddonsOnly", operator: "Exists"}}
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
	ExtraArgs   ExtraArgs           `json:"extraArgs,omitempty"`
	// HostNetwork enables the konnectivity agent to use the Host network namespace.
	// By enabling this mode, the Agent doesn't need to wait for the CNI initialisation,
	// enabling a sort of out-of-band access to nodes for troubleshooting scenarios,
	// or when the agent needs direct access to the host network.
	//+kubebuilder:default=false
	HostNetwork bool `json:"hostNetwork,omitempty"`
	// Mode allows specifying the Agent deployment mode: Deployment, or DaemonSet (default).
	//+kubebuilder:default="DaemonSet"
	//+kubebuilder:validation:Enum=DaemonSet;Deployment
	Mode KonnectivityAgentMode `json:"mode,omitempty"`
	// Replicas defines the number of replicas when Mode is Deployment.
	// Must be 0 if Mode is DaemonSet.
	//+kubebuilder:validation:Optional
	Replicas *int32 `json:"replicas,omitempty"`
}

func (*KonnectivityAgentSpec) DeepCopy

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

func (*KonnectivityAgentSpec) DeepCopyInto

func (in *KonnectivityAgentSpec) DeepCopyInto(out *KonnectivityAgentSpec)

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

type KonnectivityAgentStatus

type KonnectivityAgentStatus struct {
	ExternalKubernetesObjectStatus `json:",inline"`

	Mode KonnectivityAgentMode `json:"mode,omitempty"`
}

func (*KonnectivityAgentStatus) DeepCopy

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

func (*KonnectivityAgentStatus) DeepCopyInto

func (in *KonnectivityAgentStatus) DeepCopyInto(out *KonnectivityAgentStatus)

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

type KonnectivityConfigMap

type KonnectivityConfigMap struct {
	Name     string `json:"name,omitempty"`
	Checksum string `json:"checksum,omitempty"`
}

func (*KonnectivityConfigMap) DeepCopy

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

func (*KonnectivityConfigMap) DeepCopyInto

func (in *KonnectivityConfigMap) DeepCopyInto(out *KonnectivityConfigMap)

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

type KonnectivityServerSpec

type KonnectivityServerSpec struct {
	// The port which Konnectivity server is listening to.
	Port int32 `json:"port"`
	// Container image version of the Konnectivity server.
	// If left empty, Steward will automatically inflect the version from the deployed Tenant Control Plane.
	//
	// WARNING: for last cut-off releases, the container image could be not available.
	Version string `json:"version,omitempty"`
	// Container image used by the Konnectivity server.
	//+kubebuilder:default=registry.k8s.io/kas-network-proxy/proxy-server
	Image string `json:"image,omitempty"`
	// Resources define the amount of CPU and memory to allocate to the Konnectivity server.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	ExtraArgs ExtraArgs                    `json:"extraArgs,omitempty"`
}

func (*KonnectivityServerSpec) DeepCopy

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

func (*KonnectivityServerSpec) DeepCopyInto

func (in *KonnectivityServerSpec) DeepCopyInto(out *KonnectivityServerSpec)

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

type KonnectivitySpec

type KonnectivitySpec struct {
	//+kubebuilder:default={image:"registry.k8s.io/kas-network-proxy/proxy-server",port:8132}
	KonnectivityServerSpec KonnectivityServerSpec `json:"server,omitempty"`
	//+kubebuilder:default={image:"registry.k8s.io/kas-network-proxy/proxy-agent",mode:"DaemonSet"}
	KonnectivityAgentSpec KonnectivityAgentSpec `json:"agent,omitempty"`
}

KonnectivitySpec defines the spec for Konnectivity.

func (*KonnectivitySpec) DeepCopy

func (in *KonnectivitySpec) DeepCopy() *KonnectivitySpec

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

func (*KonnectivitySpec) DeepCopyInto

func (in *KonnectivitySpec) DeepCopyInto(out *KonnectivitySpec)

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

type KonnectivityStatus

type KonnectivityStatus struct {
	Enabled            bool                            `json:"enabled"`
	ConfigMap          KonnectivityConfigMap           `json:"configMap,omitempty"`
	Certificate        CertificatePrivateKeyPairStatus `json:"certificate,omitempty"`
	Kubeconfig         KubeconfigStatus                `json:"kubeconfig,omitempty"`
	ServiceAccount     ExternalKubernetesObjectStatus  `json:"sa,omitempty"`
	ClusterRoleBinding ExternalKubernetesObjectStatus  `json:"clusterrolebinding,omitempty"`
	Agent              KonnectivityAgentStatus         `json:"agent,omitempty"`
	Service            KubernetesServiceStatus         `json:"service,omitempty"`
	Gateway            *KubernetesGatewayStatus        `json:"gateway,omitempty"`
}

KonnectivityStatus defines the status of Konnectivity as Addon.

func (*KonnectivityStatus) DeepCopy

func (in *KonnectivityStatus) DeepCopy() *KonnectivityStatus

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

func (*KonnectivityStatus) DeepCopyInto

func (in *KonnectivityStatus) DeepCopyInto(out *KonnectivityStatus)

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

type KubeadmConfigChecksumDependant

type KubeadmConfigChecksumDependant interface {
	GetChecksum() string
	SetChecksum(checksum string)
}

KubeadmConfigChecksumDependant is the interface used to retrieve the checksum of the kubeadm phases and addons configuration, required to validate the changes and, upon from that, perform the required reconciliation. +kubebuilder:object:generate=false

type KubeadmConfigStatus

type KubeadmConfigStatus struct {
	ConfigmapName string      `json:"configmapName,omitempty"`
	LastUpdate    metav1.Time `json:"lastUpdate,omitempty"`
	// Checksum of the kubeadm configuration to detect changes
	Checksum string `json:"checksum,omitempty"`
}

KubeadmConfigStatus contains the status of the configuration required by kubeadm.

func (*KubeadmConfigStatus) DeepCopy

func (in *KubeadmConfigStatus) DeepCopy() *KubeadmConfigStatus

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

func (*KubeadmConfigStatus) DeepCopyInto

func (in *KubeadmConfigStatus) DeepCopyInto(out *KubeadmConfigStatus)

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

type KubeadmPhaseStatus

type KubeadmPhaseStatus struct {
	Checksum   string      `json:"checksum,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
}

KubeadmPhaseStatus contains the status of a kubeadm phase action.

func (*KubeadmPhaseStatus) DeepCopy

func (in *KubeadmPhaseStatus) DeepCopy() *KubeadmPhaseStatus

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

func (*KubeadmPhaseStatus) DeepCopyInto

func (in *KubeadmPhaseStatus) DeepCopyInto(out *KubeadmPhaseStatus)

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

func (*KubeadmPhaseStatus) GetChecksum

func (in *KubeadmPhaseStatus) GetChecksum() string

func (*KubeadmPhaseStatus) SetChecksum

func (in *KubeadmPhaseStatus) SetChecksum(checksum string)

type KubeadmPhasesStatus

type KubeadmPhasesStatus struct {
	BootstrapToken KubeadmPhaseStatus `json:"bootstrapToken"`
}

KubeadmPhasesStatus contains the status of the different kubeadm phases action.

func (*KubeadmPhasesStatus) DeepCopy

func (in *KubeadmPhasesStatus) DeepCopy() *KubeadmPhasesStatus

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

func (*KubeadmPhasesStatus) DeepCopyInto

func (in *KubeadmPhasesStatus) DeepCopyInto(out *KubeadmPhasesStatus)

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

type KubeconfigGenerator

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

	Spec   KubeconfigGeneratorSpec   `json:"spec,omitempty"`
	Status KubeconfigGeneratorStatus `json:"status,omitempty"`
}

KubeconfigGenerator is the Schema for the kubeconfiggenerators API.

func (*KubeconfigGenerator) DeepCopy

func (in *KubeconfigGenerator) DeepCopy() *KubeconfigGenerator

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

func (*KubeconfigGenerator) DeepCopyInto

func (in *KubeconfigGenerator) DeepCopyInto(out *KubeconfigGenerator)

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

func (*KubeconfigGenerator) DeepCopyObject

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

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

type KubeconfigGeneratorList

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

KubeconfigGeneratorList contains a list of TenantControlPlane.

func (*KubeconfigGeneratorList) DeepCopy

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

func (*KubeconfigGeneratorList) DeepCopyInto

func (in *KubeconfigGeneratorList) DeepCopyInto(out *KubeconfigGeneratorList)

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

func (*KubeconfigGeneratorList) DeepCopyObject

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

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

type KubeconfigGeneratorSpec

type KubeconfigGeneratorSpec struct {
	// NamespaceSelector is used to filter Namespaces from which the generator should extract TenantControlPlane objects.
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`
	// TenantControlPlaneSelector is used to filter the TenantControlPlane objects that should be address by the generator.
	TenantControlPlaneSelector metav1.LabelSelector `json:"tenantControlPlaneSelector,omitempty"`
	// Groups is resolved a set of strings used to assign the x509 organisations field.
	// It will be recognised by Kubernetes as user groups.
	Groups []CompoundValue `json:"groups,omitempty"`
	// User resolves to a string to identify the client, assigned to the x509 Common Name field.
	User CompoundValue `json:"user"`
	// ControlPlaneEndpointFrom is the key used to extract the Tenant Control Plane endpoint that must be used by the generator.
	// The targeted Secret is the `${TCP}-admin-kubeconfig` one, default to `admin.svc`.
	//+kubebuilder:default="admin.svc"
	ControlPlaneEndpointFrom string `json:"controlPlaneEndpointFrom,omitempty"`
}

func (*KubeconfigGeneratorSpec) DeepCopy

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

func (*KubeconfigGeneratorSpec) DeepCopyInto

func (in *KubeconfigGeneratorSpec) DeepCopyInto(out *KubeconfigGeneratorSpec)

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

type KubeconfigGeneratorStatus

type KubeconfigGeneratorStatus struct {
	// Resources is the sum of targeted TenantControlPlane objects.
	//+kubebuilder:default=0
	Resources int `json:"resources"`
	// AvailableResources is the sum of successfully generated resources.
	// In case of a different value compared to Resources, check the field errors.
	//+kubebuilder:default=0
	AvailableResources int `json:"availableResources"`
	// Errors is the list of failed kubeconfig generations.
	Errors []KubeconfigGeneratorStatusError `json:"errors,omitempty"`
}

KubeconfigGeneratorStatus defines the observed state of KubeconfigGenerator.

func (*KubeconfigGeneratorStatus) DeepCopy

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

func (*KubeconfigGeneratorStatus) DeepCopyInto

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

type KubeconfigGeneratorStatusError

type KubeconfigGeneratorStatusError struct {
	// Resource is the Namespaced name of the errored resource.
	//+kubebuilder:validation:Required
	Resource string `json:"resource"`
	// Message is the error message recorded upon the last generator run.
	//+kubebuilder:validation:Required
	Message string `json:"message"`
}

func (*KubeconfigGeneratorStatusError) DeepCopy

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

func (*KubeconfigGeneratorStatusError) DeepCopyInto

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

type KubeconfigStatus

type KubeconfigStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

KubeconfigStatus contains information about the generated 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 KubeconfigsStatus

type KubeconfigsStatus struct {
	Admin             KubeconfigStatus `json:"admin,omitempty"`
	ControllerManager KubeconfigStatus `json:"controllerManager,omitempty"`
	Scheduler         KubeconfigStatus `json:"scheduler,omitempty"`
}

KubeconfigsStatus stores information about all the generated kubeconfig resources.

func (*KubeconfigsStatus) DeepCopy

func (in *KubeconfigsStatus) DeepCopy() *KubeconfigsStatus

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

func (*KubeconfigsStatus) DeepCopyInto

func (in *KubeconfigsStatus) DeepCopyInto(out *KubeconfigsStatus)

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

type KubeletPreferredAddressType

type KubeletPreferredAddressType string

+kubebuilder:validation:Enum=Hostname;InternalIP;ExternalIP;InternalDNS;ExternalDNS

const (
	NodeHostName    KubeletPreferredAddressType = "Hostname"
	NodeInternalIP  KubeletPreferredAddressType = "InternalIP"
	NodeExternalIP  KubeletPreferredAddressType = "ExternalIP"
	NodeInternalDNS KubeletPreferredAddressType = "InternalDNS"
	NodeExternalDNS KubeletPreferredAddressType = "ExternalDNS"
)

type KubeletSpec

type KubeletSpec struct {
	// ConfigurationJSONPatches contains the RFC 6902 JSON patches to customise the kubeadm generate configuration,
	// useful to customise and mangling the configuration according to your needs;
	// e.g.: configuring the cgroup driver used by Kubelet is possible via the following patch:
	//
	// [{"op": "replace", "path": "/cgroupDriver", "value": "systemd"}]
	ConfigurationJSONPatches JSONPatches `json:"configurationJSONPatches,omitempty"`
	// Ordered list of the preferred NodeAddressTypes to use for kubelet connections.
	// Default to InternalIP, ExternalIP, Hostname.
	//+kubebuilder:default={"InternalIP","ExternalIP","Hostname"}
	//+kubebuilder:validation:MinItems=1
	//+listType=set
	PreferredAddressTypes []KubeletPreferredAddressType `json:"preferredAddressTypes,omitempty"`
	// CGroupFS defines the cgroup driver for Kubelet
	// https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/
	//
	// Deprecated: use ConfigurationJSONPatches.
	CGroupFS CGroupDriver `json:"cgroupfs,omitempty"`
}

func (*KubeletSpec) DeepCopy

func (in *KubeletSpec) DeepCopy() *KubeletSpec

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

func (*KubeletSpec) DeepCopyInto

func (in *KubeletSpec) DeepCopyInto(out *KubeletSpec)

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

type KubernetesDeploymentStatus

type KubernetesDeploymentStatus struct {
	appsv1.DeploymentStatus `json:",inline"`
	// Selector is the label selector used to group the Tenant Control Plane Pods used by the scale subresource.
	Selector string `json:"selector"`
	// The name of the Deployment for the given cluster.
	Name string `json:"name"`
	// The namespace which the Deployment for the given cluster is deployed.
	Namespace string `json:"namespace"`
	// Last time when deployment was updated
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
}

KubernetesDeploymentStatus defines the status for the Tenant Control Plane Deployment in the management cluster.

func (*KubernetesDeploymentStatus) DeepCopy

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

func (*KubernetesDeploymentStatus) DeepCopyInto

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

type KubernetesGatewayStatus

type KubernetesGatewayStatus struct {
	// The TLSRoute status as resported by the gateway controllers.
	RouteStatus `json:",inline"`

	// Reference to the route created for this tenant.
	RouteRef corev1.LocalObjectReference `json:"routeRef,omitempty"`

	// A list of valid access points that the route exposes.
	AccessPoints []GatewayAccessPoint `json:"accessPoints,omitempty"`
}

KubernetesGatewayStatus defines the status for the Tenant Control Plane Gateway in the management cluster.

func (*KubernetesGatewayStatus) DeepCopy

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

func (*KubernetesGatewayStatus) DeepCopyInto

func (in *KubernetesGatewayStatus) DeepCopyInto(out *KubernetesGatewayStatus)

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

type KubernetesIngressStatus

type KubernetesIngressStatus struct {
	networkingv1.IngressStatus `json:",inline"`
	// The name of the Ingress for the given cluster.
	Name string `json:"name"`
	// The namespace which the Ingress for the given cluster is deployed.
	Namespace string `json:"namespace"`
}

KubernetesIngressStatus defines the status for the Tenant Control Plane Ingress in the management cluster.

func (*KubernetesIngressStatus) DeepCopy

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

func (*KubernetesIngressStatus) DeepCopyInto

func (in *KubernetesIngressStatus) DeepCopyInto(out *KubernetesIngressStatus)

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

type KubernetesServiceStatus

type KubernetesServiceStatus struct {
	corev1.ServiceStatus `json:",inline"`
	// The name of the Service for the given cluster.
	Name string `json:"name"`
	// The namespace which the Service for the given cluster is deployed.
	Namespace string `json:"namespace"`
	// The port where the service is running
	Port int32 `json:"port"`
}

KubernetesServiceStatus defines the status for the Tenant Control Plane Service in the management cluster.

func (*KubernetesServiceStatus) DeepCopy

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

func (*KubernetesServiceStatus) DeepCopyInto

func (in *KubernetesServiceStatus) DeepCopyInto(out *KubernetesServiceStatus)

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

type KubernetesSpec

type KubernetesSpec struct {
	// Kubernetes Version for the tenant control plane
	Version string      `json:"version"`
	Kubelet KubeletSpec `json:"kubelet"`

	// List of enabled Admission Controllers for the Tenant cluster.
	// Full reference available here: https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers
	//+kubebuilder:default=CertificateApproval;CertificateSigning;CertificateSubjectRestriction;DefaultIngressClass;DefaultStorageClass;DefaultTolerationSeconds;LimitRanger;MutatingAdmissionWebhook;NamespaceLifecycle;PersistentVolumeClaimResize;Priority;ResourceQuota;RuntimeClass;ServiceAccount;StorageObjectInUseProtection;TaintNodesByCondition;ValidatingAdmissionWebhook
	AdmissionControllers AdmissionControllers `json:"admissionControllers,omitempty"`
}

KubernetesSpec defines the desired state of Kubernetes.

func (*KubernetesSpec) DeepCopy

func (in *KubernetesSpec) DeepCopy() *KubernetesSpec

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

func (*KubernetesSpec) DeepCopyInto

func (in *KubernetesSpec) DeepCopyInto(out *KubernetesSpec)

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

type KubernetesStatus

type KubernetesStatus struct {
	// KubernetesVersion contains the information regarding the running Kubernetes version, and its upgrade status.
	Version    KubernetesVersion          `json:"version,omitempty"`
	Deployment KubernetesDeploymentStatus `json:"deployment,omitempty"`
	Service    KubernetesServiceStatus    `json:"service,omitempty"`
	Ingress    *KubernetesIngressStatus   `json:"ingress,omitempty"`
	Gateway    *KubernetesGatewayStatus   `json:"gateway,omitempty"`
}

KubernetesStatus defines the status of the resources deployed in the management cluster, such as Deployment and Service.

func (*KubernetesStatus) DeepCopy

func (in *KubernetesStatus) DeepCopy() *KubernetesStatus

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

func (*KubernetesStatus) DeepCopyInto

func (in *KubernetesStatus) DeepCopyInto(out *KubernetesStatus)

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

type KubernetesVersion

type KubernetesVersion struct {
	// Version is the running Kubernetes version of the Tenant Control Plane.
	Version string `json:"version,omitempty"`
	//+kubebuilder:default=Provisioning
	// Status returns the current status of the Kubernetes version, such as its provisioning state, or completed upgrade.
	Status *KubernetesVersionStatus `json:"status,omitempty"`
}

func (*KubernetesVersion) DeepCopy

func (in *KubernetesVersion) DeepCopy() *KubernetesVersion

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

func (*KubernetesVersion) DeepCopyInto

func (in *KubernetesVersion) DeepCopyInto(out *KubernetesVersion)

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

type KubernetesVersionStatus

type KubernetesVersionStatus string

+kubebuilder:validation:Enum=Unknown;Provisioning;CertificateAuthorityRotating;Upgrading;Migrating;Ready;NotReady;Sleeping;WriteLimited

var (
	VersionUnknown      KubernetesVersionStatus = "Unknown"
	VersionProvisioning KubernetesVersionStatus = "Provisioning"
	VersionSleeping     KubernetesVersionStatus = "Sleeping"
	VersionWriteLimited KubernetesVersionStatus = "WriteLimited"
	VersionCARotating   KubernetesVersionStatus = "CertificateAuthorityRotating"
	VersionUpgrading    KubernetesVersionStatus = "Upgrading"
	VersionMigrating    KubernetesVersionStatus = "Migrating"
	VersionReady        KubernetesVersionStatus = "Ready"
	VersionNotReady     KubernetesVersionStatus = "NotReady"
)

type NetworkProfileSpec

type NetworkProfileSpec struct {
	// LoadBalancerSourceRanges restricts the IP ranges that can access
	// the LoadBalancer type Service. This field defines a list of IP
	// address ranges (in CIDR format) that are allowed to access the service.
	// If left empty, the service will allow traffic from all IP ranges (0.0.0.0/0).
	// This feature is useful for restricting access to API servers or services
	// to specific networks for security purposes.
	// Example: {"192.168.1.0/24", "10.0.0.0/8"}
	LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
	// Specify the LoadBalancer class in case of multiple load balancer implementations.
	// Field supported only for Tenant Control Plane instances exposed using a LoadBalancer Service.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="LoadBalancerClass is immutable"
	LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`
	// Address where API server of will be exposed.
	// In case of LoadBalancer Service, this can be empty in order to use the exposed IP provided by the cloud controller manager.
	Address string `json:"address,omitempty"`
	// The default domain name used for DNS resolution within the cluster.
	//+kubebuilder:default="cluster.local"
	//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="changing the cluster domain is not supported"
	//+kubebuilder:validation:Pattern=.*\..*
	ClusterDomain string `json:"clusterDomain,omitempty"`
	// AllowAddressAsExternalIP will include tenantControlPlane.Spec.NetworkProfile.Address in the section of
	// ExternalIPs of the Kubernetes Service (only ClusterIP or NodePort)
	AllowAddressAsExternalIP bool `json:"allowAddressAsExternalIP,omitempty"`
	// Port where API server of will be exposed
	//+kubebuilder:default=6443
	Port int32 `json:"port,omitempty"`
	// CertSANs sets extra Subject Alternative Names (SANs) for the API Server signing certificate.
	// Use this field to add additional hostnames when exposing the Tenant Control Plane with third solutions.
	CertSANs []string `json:"certSANs,omitempty"`
	// CIDR for Kubernetes Services: if empty, defaulted to 10.96.0.0/16.
	//+kubebuilder:default="10.96.0.0/16"
	ServiceCIDR string `json:"serviceCidr,omitempty"`
	// CIDR for Kubernetes Pods: if empty, defaulted to 10.244.0.0/16.
	//+kubebuilder:default="10.244.0.0/16"
	PodCIDR string `json:"podCidr,omitempty"`
	// The DNS Service for internal resolution, it must match the Service CIDR.
	// In case of an empty value, it is automatically computed according to the Service CIDR, e.g.:
	// Service CIDR 10.96.0.0/16, the resulting DNS Service IP will be 10.96.0.10 for IPv4,
	// for IPv6 from the CIDR 2001:db8:abcd::/64 the resulting DNS Service IP will be 2001:db8:abcd::10.
	DNSServiceIPs []string `json:"dnsServiceIPs,omitempty"`
}

NetworkProfileSpec defines the desired state of NetworkProfile.

func (*NetworkProfileSpec) DeepCopy

func (in *NetworkProfileSpec) DeepCopy() *NetworkProfileSpec

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

func (*NetworkProfileSpec) DeepCopyInto

func (in *NetworkProfileSpec) DeepCopyInto(out *NetworkProfileSpec)

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

type Permissions

type Permissions struct {
	BlockCreate bool `json:"blockCreation,omitempty"`
	BlockUpdate bool `json:"blockUpdate,omitempty"`
	BlockDelete bool `json:"blockDeletion,omitempty"`
}

func (*Permissions) DeepCopy

func (in *Permissions) DeepCopy() *Permissions

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

func (*Permissions) DeepCopyInto

func (in *Permissions) DeepCopyInto(out *Permissions)

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

func (*Permissions) HasAnyLimitation

func (p *Permissions) HasAnyLimitation() bool

type PublicKeyPrivateKeyPairStatus

type PublicKeyPrivateKeyPairStatus struct {
	SecretName string      `json:"secretName,omitempty"`
	LastUpdate metav1.Time `json:"lastUpdate,omitempty"`
	Checksum   string      `json:"checksum,omitempty"`
}

PublicKeyPrivateKeyPairStatus defines the status.

func (*PublicKeyPrivateKeyPairStatus) DeepCopy

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

func (*PublicKeyPrivateKeyPairStatus) DeepCopyInto

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

type RegistrySettings

type RegistrySettings struct {
	//+kubebuilder:default="registry.k8s.io"
	Registry string `json:"registry,omitempty"`
	// The tag to append to all the Control Plane container images.
	// Optional.
	TagSuffix string `json:"tagSuffix,omitempty"`
	//+kubebuilder:default="kube-apiserver"
	APIServerImage string `json:"apiServerImage,omitempty"`
	//+kubebuilder:default="kube-controller-manager"
	ControllerManagerImage string `json:"controllerManagerImage,omitempty"`
	//+kubebuilder:default="kube-scheduler"
	SchedulerImage string `json:"schedulerImage,omitempty"`
}

func (*RegistrySettings) DeepCopy

func (in *RegistrySettings) DeepCopy() *RegistrySettings

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

func (*RegistrySettings) DeepCopyInto

func (in *RegistrySettings) DeepCopyInto(out *RegistrySettings)

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

func (*RegistrySettings) KubeAPIServerImage

func (r *RegistrySettings) KubeAPIServerImage(version string) string

func (*RegistrySettings) KubeControllerManagerImage

func (r *RegistrySettings) KubeControllerManagerImage(version string) string

func (*RegistrySettings) KubeSchedulerImage

func (r *RegistrySettings) KubeSchedulerImage(version string) string

type RouteStatus

type RouteStatus = gatewayv1.RouteStatus

+k8s:deepcopy-gen=false

type SecretReference

type SecretReference struct {
	corev1.SecretReference `json:",inline"`
	// Name of the key for the given Secret reference where the content is stored.
	// This value is mandatory.
	KeyPath secretReferKeyPath `json:"keyPath"`
}

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

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

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

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

type ServiceSpec

type ServiceSpec struct {
	AdditionalMetadata AdditionalMetadata `json:"additionalMetadata,omitempty"`
	// AdditionalPorts allows adding additional ports to the Service generated Steward
	// which targets the Tenant Control Plane pods.
	AdditionalPorts []AdditionalPort `json:"additionalPorts,omitempty"`
	// ServiceType allows specifying how to expose the Tenant Control Plane.
	ServiceType ServiceType `json:"serviceType"`
}

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 ServiceType

type ServiceType corev1.ServiceType

+kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer

type StorageStatus

type StorageStatus struct {
	Driver        string                     `json:"driver,omitempty"`
	DataStoreName string                     `json:"dataStoreName,omitempty"`
	Config        DataStoreConfigStatus      `json:"config,omitempty"`
	Setup         DataStoreSetupStatus       `json:"setup,omitempty"`
	Certificate   DataStoreCertificateStatus `json:"certificate,omitempty"`
}

StorageStatus defines the observed state of StorageStatus.

func (*StorageStatus) DeepCopy

func (in *StorageStatus) DeepCopy() *StorageStatus

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

func (*StorageStatus) DeepCopyInto

func (in *StorageStatus) DeepCopyInto(out *StorageStatus)

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

type TCPProxySpec

type TCPProxySpec struct {
	// Image is the container image for the tcp-proxy.
	// Defaults to ghcr.io/butlerdotdev/steward-tcp-proxy:<steward-version>
	// +optional
	Image string `json:"image,omitempty"`

	// Resources defines the compute resources for the tcp-proxy container.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

TCPProxySpec defines the configuration for the TCP proxy addon. When enabled, Steward deploys a tcp-proxy into the tenant cluster that handles kubernetes.default.svc routing and manages the kubernetes EndpointSlice. Required when using Ingress or Gateway API to expose the tenant API server.

func (*TCPProxySpec) DeepCopy

func (in *TCPProxySpec) DeepCopy() *TCPProxySpec

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

func (*TCPProxySpec) DeepCopyInto

func (in *TCPProxySpec) DeepCopyInto(out *TCPProxySpec)

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

type TCPProxyStatus

type TCPProxyStatus struct {
	// Enabled indicates whether the tcp-proxy addon is currently active.
	Enabled bool `json:"enabled"`

	// Deployment contains the status of the tcp-proxy Deployment in the tenant cluster.
	Deployment ExternalKubernetesObjectStatus `json:"deployment,omitempty"`

	// Service contains the status of the tcp-proxy Service in the tenant cluster.
	Service ExternalKubernetesObjectStatus `json:"service,omitempty"`

	// ServiceAccount contains the status of the tcp-proxy ServiceAccount.
	ServiceAccount ExternalKubernetesObjectStatus `json:"serviceAccount,omitempty"`

	// ClusterRole contains the status of the tcp-proxy ClusterRole.
	ClusterRole ExternalKubernetesObjectStatus `json:"clusterRole,omitempty"`

	// ClusterRoleBinding contains the status of the tcp-proxy ClusterRoleBinding.
	ClusterRoleBinding ExternalKubernetesObjectStatus `json:"clusterRoleBinding,omitempty"`
}

TCPProxyStatus defines the observed state of the TCP proxy addon.

func (*TCPProxyStatus) DeepCopy

func (in *TCPProxyStatus) DeepCopy() *TCPProxyStatus

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

func (*TCPProxyStatus) DeepCopyInto

func (in *TCPProxyStatus) DeepCopyInto(out *TCPProxyStatus)

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

type TLSConfig

type TLSConfig struct {
	// Retrieve the Certificate Authority certificate and private key, such as bare content of the file, or a SecretReference.
	// The key reference is required since etcd authentication is based on certificates, and Steward is responsible in creating this.
	CertificateAuthority CertKeyPair `json:"certificateAuthority"`
	// Specifies the SSL/TLS key and private key pair used to connect to the data store.
	ClientCertificate *ClientCertificate `json:"clientCertificate,omitempty"`
}

TLSConfig contains the information used to connect to the data store using a secured connection.

func (*TLSConfig) DeepCopy

func (in *TLSConfig) DeepCopy() *TLSConfig

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

func (*TLSConfig) DeepCopyInto

func (in *TLSConfig) DeepCopyInto(out *TLSConfig)

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

type TenantControlPlane

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

	Spec   TenantControlPlaneSpec   `json:"spec,omitempty"`
	Status TenantControlPlaneStatus `json:"status,omitempty"`
}

TenantControlPlane is the Schema for the tenantcontrolplanes API.

func (*TenantControlPlane) AssignedControlPlaneAddress

func (in *TenantControlPlane) AssignedControlPlaneAddress() (string, int32, error)

AssignedControlPlaneAddress returns the announced address and port of a Tenant Control Plane. In case of non-well formed values, or missing announcement, an error is returned.

func (*TenantControlPlane) DeclaredControlPlaneAddress

func (in *TenantControlPlane) DeclaredControlPlaneAddress(ctx context.Context, client client.Client) (string, error)

DeclaredControlPlaneAddress returns the desired Tenant Control Plane address. In case of dynamic allocation, e.g. using a Load Balancer, it queries the API Server looking for the allocated IP. When an IP has not been yet assigned, or it is expected, an error is returned.

func (*TenantControlPlane) DeepCopy

func (in *TenantControlPlane) DeepCopy() *TenantControlPlane

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

func (*TenantControlPlane) DeepCopyInto

func (in *TenantControlPlane) DeepCopyInto(out *TenantControlPlane)

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

func (*TenantControlPlane) DeepCopyObject

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

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

func (*TenantControlPlane) GetDefaultDatastoreSchema

func (in *TenantControlPlane) GetDefaultDatastoreSchema() string

func (*TenantControlPlane) GetDefaultDatastoreUsername

func (in *TenantControlPlane) GetDefaultDatastoreUsername() string

type TenantControlPlaneList

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

TenantControlPlaneList contains a list of TenantControlPlane.

func (*TenantControlPlaneList) DeepCopy

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

func (*TenantControlPlaneList) DeepCopyInto

func (in *TenantControlPlaneList) DeepCopyInto(out *TenantControlPlaneList)

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

func (*TenantControlPlaneList) DeepCopyObject

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

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

type TenantControlPlaneSpec

type TenantControlPlaneSpec struct {
	// WritePermissions allows to select which operations (create, delete, update) must be blocked:
	// by default, all actions are allowed, and API Server can write to its Datastore.
	//
	// By blocking all actions, the Tenant Control Plane can enter in a Read Only mode:
	// this phase can be used to prevent Datastore quota exhaustion or for your own business logic
	// (e.g.: blocking creation and update, but allowing deletion to "clean up" space).
	WritePermissions Permissions `json:"writePermissions,omitempty"`
	// DataStore specifies the DataStore that should be used to store the Kubernetes data for the given Tenant Control Plane.
	// When Steward runs with the default DataStore flag, all empty values will inherit the default value.
	// By leaving it empty and running Steward with no default DataStore flag, it is possible to achieve automatic assignment to a specific DataStore object.
	//
	// Migration from one DataStore to another backed by the same Driver is possible. See: https://steward.butlerlabs.dev/guides/datastore-migration/
	// Migration from one DataStore to another backed by a different Driver is not supported.
	DataStore string `json:"dataStore,omitempty"`
	// DataStoreSchema allows to specify the name of the database (for relational DataStores) or the key prefix (for etcd). This
	// value is optional and immutable. Note that Steward currently doesn't ensure that DataStoreSchema values are unique. It's up
	// to the user to avoid clashes between different TenantControlPlanes. If not set upon creation, Steward will default the
	// DataStoreSchema by concatenating the namespace and name of the TenantControlPlane.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="changing the dataStoreSchema is not supported"
	DataStoreSchema string `json:"dataStoreSchema,omitempty"`
	// DataStoreUsername allows to specify the username of the database (for relational DataStores). This
	// value is optional and immutable. Note that Steward currently doesn't ensure that DataStoreUsername values are unique. It's up
	// to the user to avoid clashes between different TenantControlPlanes. If not set upon creation, Steward will default the
	// DataStoreUsername by concatenating the namespace and name of the TenantControlPlane.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="changing the dataStoreUsername is not supported"
	DataStoreUsername string `json:"dataStoreUsername,omitempty"`
	// DataStoreOverride defines which kubernetes resources will be stored in dedicated datastores.
	DataStoreOverrides []DataStoreOverride `json:"dataStoreOverrides,omitempty"`
	ControlPlane       ControlPlane        `json:"controlPlane"`
	// Kubernetes specification for tenant control plane
	Kubernetes KubernetesSpec `json:"kubernetes"`
	// NetworkProfile specifies how the network is
	NetworkProfile NetworkProfileSpec `json:"networkProfile,omitempty"`
	// Addons contain which addons are enabled
	Addons AddonsSpec `json:"addons,omitempty"`
}

func (*TenantControlPlaneSpec) DeepCopy

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

func (*TenantControlPlaneSpec) DeepCopyInto

func (in *TenantControlPlaneSpec) DeepCopyInto(out *TenantControlPlaneSpec)

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

type TenantControlPlaneStatus

type TenantControlPlaneStatus struct {
	// Storage Status contains information about Kubernetes storage system
	Storage StorageStatus `json:"storage,omitempty"`
	// Certificates contains information about the different certificates
	// that are necessary to run a kubernetes control plane
	Certificates CertificatesStatus `json:"certificates,omitempty"`
	// KubeConfig contains information about the kubenconfigs that control plane pieces need
	KubeConfig KubeconfigsStatus `json:"kubeconfig,omitempty"`
	// Kubernetes contains information about the reconciliation of the required Kubernetes resources deployed in the admin cluster
	Kubernetes KubernetesStatus `json:"kubernetesResources,omitempty"`
	// KubeadmConfig contains the status of the configuration required by kubeadm
	KubeadmConfig KubeadmConfigStatus `json:"kubeadmconfig,omitempty"`
	// KubeadmPhase contains the status of the kubeadm phases action
	KubeadmPhase KubeadmPhasesStatus `json:"kubeadmPhase,omitempty"`
	// ControlPlaneEndpoint contains the status of the kubernetes control plane
	ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"`
	// Addons contains the status of the different Addons
	Addons AddonsStatus `json:"addons,omitempty"`
}

TenantControlPlaneStatus defines the observed state of TenantControlPlane.

func (*TenantControlPlaneStatus) DeepCopy

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

func (*TenantControlPlaneStatus) DeepCopyInto

func (in *TenantControlPlaneStatus) DeepCopyInto(out *TenantControlPlaneStatus)

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

type TenantControlPlaneStatusDataStore

type TenantControlPlaneStatusDataStore struct{}

func (*TenantControlPlaneStatusDataStore) DeepCopy

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

func (*TenantControlPlaneStatusDataStore) DeepCopyInto

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

func (*TenantControlPlaneStatusDataStore) ExtractValue

func (*TenantControlPlaneStatusDataStore) Field

func (*TenantControlPlaneStatusDataStore) Object

func (*TenantControlPlaneStatusDataStore) SetupWithManager

Jump to

Keyboard shortcuts

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