Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the steward v1alpha1 API group +kubebuilder:object:generate=true +groupName=steward.butlerlabs.dev
Index ¶
- Constants
- Variables
- type APIServerCertificatesStatus
- type AdditionalMetadata
- type AdditionalPort
- type AdditionalVolumeMounts
- type AddonSpec
- type AddonStatus
- type AddonsSpec
- type AddonsStatus
- type AdmissionController
- type AdmissionControllers
- type BasicAuth
- type CGroupDriver
- type CSRApprovalSpec
- type CertKeyPair
- type CertificatePrivateKeyPairStatus
- type CertificatesStatus
- type ClientCertificate
- type CompoundValue
- type ContentRef
- type ControlPlane
- type ControlPlaneComponentsResources
- type ControlPlaneExtraArgs
- type DataStore
- type DataStoreCertificateStatus
- type DataStoreConfigStatus
- type DataStoreList
- type DataStoreOverride
- type DataStoreSetupStatus
- type DataStoreSpec
- type DataStoreStatus
- type DatastoreUsedSecret
- func (in *DatastoreUsedSecret) DeepCopy() *DatastoreUsedSecret
- func (in *DatastoreUsedSecret) DeepCopyInto(out *DatastoreUsedSecret)
- func (d *DatastoreUsedSecret) ExtractValue() client.IndexerFunc
- func (d *DatastoreUsedSecret) Field() string
- func (d *DatastoreUsedSecret) Object() client.Object
- func (d *DatastoreUsedSecret) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error
- type DeploymentSpec
- type Driver
- type ETCDCertificateStatus
- type ETCDCertificatesStatus
- type Endpoints
- type ExternalKubernetesObjectStatus
- type ExtraArgs
- type GatewayAccessPoint
- type GatewayListener
- func (in *GatewayListener) DeepCopy() *GatewayListener
- func (in *GatewayListener) DeepCopyInto(out *GatewayListener)
- func (g *GatewayListener) ExtractValue() client.IndexerFunc
- func (g *GatewayListener) Field() string
- func (g *GatewayListener) Object() client.Object
- func (g *GatewayListener) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error
- type GatewaySpec
- type ImageOverrideTrait
- type IngressSpec
- type JSONPatch
- type JSONPatches
- type KonnectivityAgentMode
- type KonnectivityAgentSpec
- type KonnectivityAgentStatus
- type KonnectivityConfigMap
- type KonnectivityServerSpec
- type KonnectivitySpec
- type KonnectivityStatus
- type KubeadmConfigChecksumDependant
- type KubeadmConfigStatus
- type KubeadmPhaseStatus
- type KubeadmPhasesStatus
- type KubeconfigGenerator
- type KubeconfigGeneratorList
- type KubeconfigGeneratorSpec
- type KubeconfigGeneratorStatus
- type KubeconfigGeneratorStatusError
- type KubeconfigStatus
- type KubeconfigsStatus
- type KubeletPreferredAddressType
- type KubeletSpec
- type KubernetesDeploymentStatus
- type KubernetesGatewayStatus
- type KubernetesIngressStatus
- type KubernetesServiceStatus
- type KubernetesSpec
- type KubernetesStatus
- type KubernetesVersion
- type KubernetesVersionStatus
- type NetworkProfileSpec
- type Permissions
- type PublicKeyPrivateKeyPairStatus
- type RegistrySettings
- func (in *RegistrySettings) DeepCopy() *RegistrySettings
- func (in *RegistrySettings) DeepCopyInto(out *RegistrySettings)
- func (r *RegistrySettings) KubeAPIServerImage(version string) string
- func (r *RegistrySettings) KubeControllerManagerImage(version string) string
- func (r *RegistrySettings) KubeSchedulerImage(version string) string
- type RouteStatus
- type SecretReference
- type ServiceSpec
- type ServiceType
- type StorageStatus
- type TCPProxyHostAlias
- type TCPProxySpec
- type TCPProxyStatus
- type TLSConfig
- type TalosBootstrapSpec
- type TenantControlPlane
- func (in *TenantControlPlane) AssignedControlPlaneAddress() (string, int32, error)
- func (in *TenantControlPlane) DeclaredControlPlaneAddress(ctx context.Context, client client.Client) (string, error)
- func (in *TenantControlPlane) DeepCopy() *TenantControlPlane
- func (in *TenantControlPlane) DeepCopyInto(out *TenantControlPlane)
- func (in *TenantControlPlane) DeepCopyObject() runtime.Object
- func (in *TenantControlPlane) ExternalControlPlaneAddress(ctx context.Context, client client.Client) (address string, port int32, err error)
- func (in *TenantControlPlane) GetDefaultDatastoreSchema() string
- func (in *TenantControlPlane) GetDefaultDatastoreUsername() string
- type TenantControlPlaneList
- type TenantControlPlaneSpec
- type TenantControlPlaneStatus
- type TenantControlPlaneStatusDataStore
- func (in *TenantControlPlaneStatusDataStore) DeepCopy() *TenantControlPlaneStatusDataStore
- func (in *TenantControlPlaneStatusDataStore) DeepCopyInto(out *TenantControlPlaneStatusDataStore)
- func (t *TenantControlPlaneStatusDataStore) ExtractValue() client.IndexerFunc
- func (t *TenantControlPlaneStatusDataStore) Field() string
- func (t *TenantControlPlaneStatusDataStore) Object() client.Object
- func (t *TenantControlPlaneStatusDataStore) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error
- type WorkerBootstrapProvider
- type WorkerBootstrapSpec
- type WorkerBootstrapStatus
Constants ¶
const ( ServiceTypeLoadBalancer = (ServiceType)(corev1.ServiceTypeLoadBalancer) ServiceTypeClusterIP = (ServiceType)(corev1.ServiceTypeClusterIP) ServiceTypeNodePort = (ServiceType)(corev1.ServiceTypeNodePort) KubeconfigSecretKeyAnnotation = "steward.butlerlabs.dev/kubeconfig-secret-key" )
const (
DatastoreUsedSecretNamespacedNameKey = "secretRef"
)
const (
GatewayListenerNameKey = "spec.listeners.name"
)
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" )
const (
TenantControlPlaneUsedDataStoreKey = "status.storage.dataStoreName"
)
Variables ¶
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 )
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 ¶
func (in *APIServerCertificatesStatus) DeepCopy() *APIServerCertificatesStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerCertificatesStatus.
func (*APIServerCertificatesStatus) DeepCopyInto ¶
func (in *APIServerCertificatesStatus) DeepCopyInto(out *APIServerCertificatesStatus)
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 ¶
func (in *AdditionalVolumeMounts) DeepCopy() *AdditionalVolumeMounts
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonSpec.
func (*AddonSpec) DeepCopyInto ¶
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"`
// WorkerBootstrap configures immutable OS worker node bootstrap.
// +optional
WorkerBootstrap *WorkerBootstrapSpec `json:"workerBootstrap,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"`
WorkerBootstrap WorkerBootstrapStatus `json:"workerBootstrap,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 ¶
func (in AdmissionControllers) DeepCopy() AdmissionControllers
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuth.
func (*BasicAuth) DeepCopyInto ¶
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 CSRApprovalSpec ¶ added in v0.3.0
type CSRApprovalSpec struct {
// AutoApprove enables automatic approval of kubelet-serving CSRs from workers.
// +kubebuilder:default=true
AutoApprove bool `json:"autoApprove"`
}
CSRApprovalSpec configures automatic CSR approval for worker kubelet-serving certs.
func (*CSRApprovalSpec) DeepCopy ¶ added in v0.3.0
func (in *CSRApprovalSpec) DeepCopy() *CSRApprovalSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRApprovalSpec.
func (*CSRApprovalSpec) DeepCopyInto ¶ added in v0.3.0
func (in *CSRApprovalSpec) DeepCopyInto(out *CSRApprovalSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
func (in *CertificatePrivateKeyPairStatus) DeepCopy() *CertificatePrivateKeyPairStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificatePrivateKeyPairStatus.
func (*CertificatePrivateKeyPairStatus) DeepCopyInto ¶
func (in *CertificatePrivateKeyPairStatus) DeepCopyInto(out *CertificatePrivateKeyPairStatus)
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 ¶
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 ¶
func (in *ControlPlaneComponentsResources) DeepCopy() *ControlPlaneComponentsResources
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneComponentsResources.
func (*ControlPlaneComponentsResources) DeepCopyInto ¶
func (in *ControlPlaneComponentsResources) DeepCopyInto(out *ControlPlaneComponentsResources)
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 ¶
func (in *ControlPlaneExtraArgs) DeepCopy() *ControlPlaneExtraArgs
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataStore.
func (*DataStore) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataStore) DeepCopyObject ¶
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 ¶
func (in *DataStoreCertificateStatus) DeepCopy() *DataStoreCertificateStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataStoreCertificateStatus.
func (*DataStoreCertificateStatus) DeepCopyInto ¶
func (in *DataStoreCertificateStatus) DeepCopyInto(out *DataStoreCertificateStatus)
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 ¶
func (in *DataStoreConfigStatus) DeepCopy() *DataStoreConfigStatus
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 ¶
func (in *DataStoreSetupStatus) DeepCopy() *DataStoreSetupStatus
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 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 ¶
func (in *ETCDCertificateStatus) DeepCopy() *ETCDCertificateStatus
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 ¶
func (in *ETCDCertificatesStatus) DeepCopy() *ETCDCertificatesStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.
func (Endpoints) DeepCopyInto ¶
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 ¶
func (in *ExternalKubernetesObjectStatus) DeepCopy() *ExternalKubernetesObjectStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalKubernetesObjectStatus.
func (*ExternalKubernetesObjectStatus) DeepCopyInto ¶
func (in *ExternalKubernetesObjectStatus) DeepCopyInto(out *ExternalKubernetesObjectStatus)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraArgs.
func (ExtraArgs) DeepCopyInto ¶
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"`
// ControllerType specifies the ingress controller type for automatic TLS passthrough configuration.
// Supported values: "haproxy", "nginx", "traefik", "generic"
// - haproxy: Uses haproxy.org/ssl-passthrough annotation
// - nginx: Uses nginx.ingress.kubernetes.io/ssl-passthrough annotation
// - traefik: Creates IngressRouteTCP instead of standard Ingress (standard Ingress doesn't support TLS passthrough)
// - generic: No automatic annotations, use additionalMetadata.annotations for custom configuration
// If not specified, defaults to "generic".
// +kubebuilder:validation:Enum=haproxy;nginx;traefik;generic
// +optional
ControllerType string `json:"controllerType,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONPatch.
func (*JSONPatch) DeepCopyInto ¶
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 ¶
func (in *KonnectivityAgentSpec) DeepCopy() *KonnectivityAgentSpec
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 ¶
func (in *KonnectivityAgentStatus) DeepCopy() *KonnectivityAgentStatus
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 ¶
func (in *KonnectivityConfigMap) DeepCopy() *KonnectivityConfigMap
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 ¶
func (in *KonnectivityServerSpec) DeepCopy() *KonnectivityServerSpec
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 ¶
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 ¶
func (in *KubeconfigGeneratorList) DeepCopy() *KubeconfigGeneratorList
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 ¶
func (in *KubeconfigGeneratorSpec) DeepCopy() *KubeconfigGeneratorSpec
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 ¶
func (in *KubeconfigGeneratorStatus) DeepCopy() *KubeconfigGeneratorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeconfigGeneratorStatus.
func (*KubeconfigGeneratorStatus) DeepCopyInto ¶
func (in *KubeconfigGeneratorStatus) DeepCopyInto(out *KubeconfigGeneratorStatus)
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 ¶
func (in *KubeconfigGeneratorStatusError) DeepCopy() *KubeconfigGeneratorStatusError
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeconfigGeneratorStatusError.
func (*KubeconfigGeneratorStatusError) DeepCopyInto ¶
func (in *KubeconfigGeneratorStatusError) DeepCopyInto(out *KubeconfigGeneratorStatusError)
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 ¶
func (in *KubernetesDeploymentStatus) DeepCopy() *KubernetesDeploymentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDeploymentStatus.
func (*KubernetesDeploymentStatus) DeepCopyInto ¶
func (in *KubernetesDeploymentStatus) DeepCopyInto(out *KubernetesDeploymentStatus)
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 ¶
func (in *KubernetesGatewayStatus) DeepCopy() *KubernetesGatewayStatus
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 ¶
func (in *KubernetesIngressStatus) DeepCopy() *KubernetesIngressStatus
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 ¶
func (in *KubernetesServiceStatus) DeepCopy() *KubernetesServiceStatus
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 ¶
func (in *PublicKeyPrivateKeyPairStatus) DeepCopy() *PublicKeyPrivateKeyPairStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicKeyPrivateKeyPairStatus.
func (*PublicKeyPrivateKeyPairStatus) DeepCopyInto ¶
func (in *PublicKeyPrivateKeyPairStatus) DeepCopyInto(out *PublicKeyPrivateKeyPairStatus)
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 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 TCPProxyHostAlias ¶
type TCPProxyHostAlias struct {
// IP address of the host entry.
IP string `json:"ip"`
// Hostnames for the IP address.
Hostnames []string `json:"hostnames"`
}
TCPProxyHostAlias defines a hostname-to-IP mapping for /etc/hosts injection. Used to resolve hostnames before DNS is available (bootstrap phase).
func (*TCPProxyHostAlias) DeepCopy ¶
func (in *TCPProxyHostAlias) DeepCopy() *TCPProxyHostAlias
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPProxyHostAlias.
func (*TCPProxyHostAlias) DeepCopyInto ¶
func (in *TCPProxyHostAlias) DeepCopyInto(out *TCPProxyHostAlias)
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"`
// HostAliases provides hostname-to-IP mappings for /etc/hosts injection.
// Required for Ingress/Gateway modes where the API server hostname must be
// resolved before CoreDNS is available. The tcp-proxy uses hostNetwork,
// so it needs these entries to connect to the upstream API server.
// +optional
HostAliases []TCPProxyHostAlias `json:"hostAliases,omitempty"`
// InternalEndpoint is the direct endpoint for tcp-proxy to reach the API server.
// For Ingress/Gateway modes, this should be a management cluster node IP that
// is reachable from tenant worker nodes (e.g., "10.40.0.201"). The NodePort
// is automatically appended by Steward based on the service configuration.
// If not specified, Steward attempts to use the service's LoadBalancer IP.
// +optional
InternalEndpoint string `json:"internalEndpoint,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TalosBootstrapSpec ¶ added in v0.3.0
type TalosBootstrapSpec struct {
// Image is the container image for steward-trustd.
// +kubebuilder:default="ghcr.io/butlerdotdev/steward-trustd"
Image string `json:"image,omitempty"`
// ImageTag is the image tag for steward-trustd.
// +optional
ImageTag string `json:"imageTag,omitempty"`
// Port for the trustd gRPC service.
// +kubebuilder:default=50001
Port int32 `json:"port,omitempty"`
// Resources for the trustd container.
// +optional
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// CertSANs adds extra Subject Alternative Names to the trustd server certificate.
// +optional
CertSANs []string `json:"certSANs,omitempty"`
}
TalosBootstrapSpec configures steward-trustd for Talos worker nodes.
func (*TalosBootstrapSpec) DeepCopy ¶ added in v0.3.0
func (in *TalosBootstrapSpec) DeepCopy() *TalosBootstrapSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TalosBootstrapSpec.
func (*TalosBootstrapSpec) DeepCopyInto ¶ added in v0.3.0
func (in *TalosBootstrapSpec) DeepCopyInto(out *TalosBootstrapSpec)
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. Note: For internal kubeadm configuration, this always returns an IP address. For the external endpoint (Ingress/Gateway), use ExternalControlPlaneAddress instead.
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) ExternalControlPlaneAddress ¶
func (in *TenantControlPlane) ExternalControlPlaneAddress(ctx context.Context, client client.Client) (address string, port int32, err error)
ExternalControlPlaneAddress returns the external address for the control plane. For Ingress/Gateway modes, this returns the configured hostname. For LoadBalancer mode, this returns the LoadBalancer IP. This is used for Status.ControlPlaneEndpoint and konnectivity-agent configuration.
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 ¶
func (in *TenantControlPlaneList) DeepCopy() *TenantControlPlaneList
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 ¶
func (in *TenantControlPlaneSpec) DeepCopy() *TenantControlPlaneSpec
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 ¶
func (in *TenantControlPlaneStatus) DeepCopy() *TenantControlPlaneStatus
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 ¶
func (in *TenantControlPlaneStatusDataStore) DeepCopy() *TenantControlPlaneStatusDataStore
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TenantControlPlaneStatusDataStore.
func (*TenantControlPlaneStatusDataStore) DeepCopyInto ¶
func (in *TenantControlPlaneStatusDataStore) DeepCopyInto(out *TenantControlPlaneStatusDataStore)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TenantControlPlaneStatusDataStore) ExtractValue ¶
func (t *TenantControlPlaneStatusDataStore) ExtractValue() client.IndexerFunc
func (*TenantControlPlaneStatusDataStore) Field ¶
func (t *TenantControlPlaneStatusDataStore) Field() string
func (*TenantControlPlaneStatusDataStore) Object ¶
func (t *TenantControlPlaneStatusDataStore) Object() client.Object
func (*TenantControlPlaneStatusDataStore) SetupWithManager ¶
func (t *TenantControlPlaneStatusDataStore) SetupWithManager(ctx context.Context, mgr controllerruntime.Manager) error
type WorkerBootstrapProvider ¶ added in v0.3.0
type WorkerBootstrapProvider string
WorkerBootstrapProvider is the OS-specific bootstrap provider type. +kubebuilder:validation:Enum=talos
const (
TalosProvider WorkerBootstrapProvider = "talos"
)
type WorkerBootstrapSpec ¶ added in v0.3.0
type WorkerBootstrapSpec struct {
// Provider specifies the immutable OS bootstrap provider.
// +kubebuilder:validation:Enum=talos
Provider WorkerBootstrapProvider `json:"provider"`
// Talos-specific configuration. Required when provider is "talos".
// +optional
Talos *TalosBootstrapSpec `json:"talos,omitempty"`
// CSRApproval configures automatic CSR approval for worker kubelet-serving certs.
// +kubebuilder:default={autoApprove: true}
CSRApproval CSRApprovalSpec `json:"csrApproval,omitempty"`
// AllowedSubnets restricts which worker IP ranges are valid for CSR approval.
// CIDR format (e.g., "10.40.0.0/22"). If empty, all IPs are allowed.
// +optional
AllowedSubnets []string `json:"allowedSubnets,omitempty"`
}
WorkerBootstrapSpec configures immutable OS worker node bootstrap. The provider field selects the OS-specific implementation.
func (*WorkerBootstrapSpec) DeepCopy ¶ added in v0.3.0
func (in *WorkerBootstrapSpec) DeepCopy() *WorkerBootstrapSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerBootstrapSpec.
func (*WorkerBootstrapSpec) DeepCopyInto ¶ added in v0.3.0
func (in *WorkerBootstrapSpec) DeepCopyInto(out *WorkerBootstrapSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerBootstrapStatus ¶ added in v0.3.0
type WorkerBootstrapStatus struct {
// Enabled indicates whether worker bootstrap is currently active.
Enabled bool `json:"enabled"`
// Provider is the active bootstrap provider.
Provider WorkerBootstrapProvider `json:"provider,omitempty"`
// Credentials tracks the OS credential Secret.
Credentials CertificatePrivateKeyPairStatus `json:"credentials,omitempty"`
// Endpoint is the trustd endpoint for worker nodes (ip:port or hostname:port).
Endpoint string `json:"endpoint,omitempty"`
// Service tracks the trustd port on the TCP Service.
Service KubernetesServiceStatus `json:"service,omitempty"`
}
WorkerBootstrapStatus defines the observed state of worker bootstrap.
func (*WorkerBootstrapStatus) DeepCopy ¶ added in v0.3.0
func (in *WorkerBootstrapStatus) DeepCopy() *WorkerBootstrapStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerBootstrapStatus.
func (*WorkerBootstrapStatus) DeepCopyInto ¶ added in v0.3.0
func (in *WorkerBootstrapStatus) DeepCopyInto(out *WorkerBootstrapStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files
¶
- datastore_funcs.go
- datastore_types.go
- groupversion_info.go
- indexer_datastore_usedsecret.go
- indexer_gateway_listener.go
- indexer_tenantcontrolplane_useddatastore.go
- kubeconfiggenerator_types.go
- tcpproxy_types.go
- tenantcontrolplane_const.go
- tenantcontrolplane_funcs.go
- tenantcontrolplane_interfaces.go
- tenantcontrolplane_jsonpatch.go
- tenantcontrolplane_kubeadmphase_funcs.go
- tenantcontrolplane_registrysettings.go
- tenantcontrolplane_registrysettings_funcs.go
- tenantcontrolplane_status.go
- tenantcontrolplane_types.go
- types.go
- workerbootstrap_types.go
- zz_generated.deepcopy.go