Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RegisterContext ¶
type RegisterContext struct {
// Context is the golang context used to create the managers
Context context.Context
// Options holds the vcluster flags that were used to start the vcluster
Options *VirtualClusterOptions
// TargetNamespace is the namespace in the host cluster where
// vcluster should sync namespaced scope objects to
TargetNamespace string
// CurrentNamespace is the namespace vcluster including this plugin
// is currently running in.
CurrentNamespace string
// CurrentNamespaceClient is a cached client that can be used to retrieve
// and modify objects in the current namespace where vcluster is running
// in. Should not be used to sync virtual cluster objects.
CurrentNamespaceClient client.Client
// VirtualManager is the controller runtime manager connected directly to the
// backing virtual cluster, such as k0s, k3s or vanilla k8s.
VirtualManager ctrl.Manager
// PhysicalManager is the controller runtime manager connected directly to the
// host cluster namespace where vcluster will sync to.
PhysicalManager ctrl.Manager
// SyncerConfig can be used to perform requests directly to the vcluster syncer
// as other applications outside or inside vcluster would do. This client differs from
// virtual and physical manager, as these are either connecting to the host or backing
// virtual cluster directly.
SyncerConfig clientcmd.ClientConfig
}
RegisterContext is the context used to register additional indices or modify the syncer controller and provides direct access to the underlying controller runtime managers.
type SyncContext ¶
type SyncContext struct {
// Context is the golang context used to create the managers
Context context.Context
// Log is a prefixed log with the syncer name
Log log.Logger
// TargetNamespace is the namespace in the host cluster where
// vcluster should sync namespaced scope objects to
TargetNamespace string
// PhysicalClient is a cached client that can be used to retrieve
// and modify objects in the target namespace as well as cluster
// scoped objects.
PhysicalClient client.Client
// VirtualClient is a cached client that can be used to retrieve
// and modify objects in the virtual backing cluster.
VirtualClient client.Client
// CurrentNamespace is the namespace vcluster including this plugin
// is currently running in.
CurrentNamespace string
// CurrentNamespaceClient is a cached client that can be used to retrieve
// and modify objects in the current namespace where vcluster is running
// in. Should not be used to sync virtual cluster objects.
CurrentNamespaceClient client.Client
}
SyncContext is the context used in syncer functions that interact with the virtual and physical cluster after the controller has been started.
func ConvertContext ¶
func ConvertContext(registerContext *RegisterContext, logName string) *SyncContext
type VirtualClusterOptions ¶
type VirtualClusterOptions struct {
Controllers []string `json:"controllers,omitempty"`
ServerCaCert string `json:"serverCaCert,omitempty"`
ServerCaKey string `json:"serverCaKey,omitempty"`
TLSSANs []string `json:"tlsSans,omitempty"`
RequestHeaderCaCert string `json:"requestHeaderCaCert,omitempty"`
ClientCaCert string `json:"clientCaCert,omitempty"`
KubeConfig string `json:"kubeConfig,omitempty"`
KubeConfigSecret string `json:"kubeConfigSecret,omitempty"`
KubeConfigSecretNamespace string `json:"kubeConfigSecretNamespace,omitempty"`
KubeConfigServer string `json:"kubeConfigServer,omitempty"`
Tolerations []string `json:"tolerations,omitempty"`
BindAddress string `json:"bindAddress,omitempty"`
Port int `json:"port,omitempty"`
Name string `json:"name,omitempty"`
TargetNamespace string `json:"targetNamespace,omitempty"`
ServiceName string `json:"serviceName,omitempty"`
SetOwner bool `json:"setOwner,omitempty"`
SyncAllNodes bool `json:"syncAllNodes,omitempty"`
EnableScheduler bool `json:"enableScheduler,omitempty"`
DisableFakeKubelets bool `json:"disableFakeKubelets,omitempty"`
TranslateImages []string `json:"translateImages,omitempty"`
NodeSelector string `json:"nodeSelector,omitempty"`
EnforceNodeSelector bool `json:"enforceNodeSelector,omitempty"`
ServiceAccount string `json:"serviceAccount,omitempty"`
OverrideHosts bool `json:"overrideHosts,omitempty"`
OverrideHostsContainerImage string `json:"overrideHostsContainerImage,omitempty"`
ClusterDomain string `json:"clusterDomain,omitempty"`
LeaderElect bool `json:"leaderElect,omitempty"`
LeaseDuration int64 `json:"leaseDuration,omitempty"`
RenewDeadline int64 `json:"renewDeadline,omitempty"`
RetryPeriod int64 `json:"retryPeriod,omitempty"`
DisablePlugins bool `json:"disablePlugins,omitempty"`
PluginListenAddress string `json:"pluginListenAddress,omitempty"`
Plugins []string `json:"plugins,omitempty"`
DefaultImageRegistry string `json:"defaultImageRegistry,omitempty"`
EnforcePodSecurityStandard string `json:"enforcePodSecurityStandard,omitempty"`
MapHostServices []string `json:"mapHostServices,omitempty"`
MapVirtualServices []string `json:"mapVirtualServices,omitempty"`
SyncLabels []string `json:"syncLabels,omitempty"`
// DEPRECATED FLAGS
DeprecatedSyncNodeChanges bool `json:"syncNodeChanges"`
DeprecatedDisableSyncResources string
DeprecatedOwningStatefulSet string
DeprecatedUseFakeNodes bool
DeprecatedUseFakePersistentVolumes bool
DeprecatedEnableStorageClasses bool
DeprecatedEnablePriorityClasses bool
DeprecatedSuffix string
DeprecatedUseFakeKubelets bool
}
VirtualClusterOptions holds the vcluster flags that were used to start the vcluster VirtualClusterOptions holds the cmd flags
Click to show internal directories.
Click to hide internal directories.