hyperv

package
v0.0.0-...-dbbfab9 Latest Latest
Warning

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

Go to latest
Published: May 8, 2026 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MainContainer      = "main"
	SMBVolumeMountName = "smb"
	SMBVolumeMountPath = SMBMountPath
	QEMUGroup          = 107
	PVSize             = "1Gi"
	SMBCSIDriver       = "smb.csi.k8s.io"
)
View Source
const (
	LabelApp            = "app"
	LabelSubapp         = "subapp"
	LabelProvider       = "provider"
	LabelProviderServer = "hyperv-server"
	SubappHyperVServer  = "hyperv-server"
	AppForklift         = "forklift"
)

Labels

View Source
const (
	SecretFieldUsername    = "username"
	SecretFieldPassword    = "password"
	SecretFieldSMBUrl      = "smbUrl"
	SecretFieldSMBUser     = "smbUser"
	SecretFieldSMBPassword = "smbPassword"
)

Secret field names for HyperV provider. Required fields:

  • username: Hyper-V host username (e.g., "Administrator")
  • password: Hyper-V host password
  • smbUrl: SMB share URL (e.g., "//192.168.1.100/VMShare")

Optional fields:

  • smbUser: SMB username (defaults to Hyper-V username)
  • smbPassword: SMB password (defaults to Hyper-V password)
View Source
const (
	// SMBMountPath is the local mount point where SMB is mounted in the pod.
	SMBMountPath = "/hyperv"
	// StorageIDDefault is the ID of the single storage record.
	StorageIDDefault = "storage-0"
)

Pod-internal constants (not user-configurable)

View Source
const (
	Name = "hyperv-server"
)
View Source
const (
	SettingWinRMPort = "winrmPort"
)

Variables

View Source
var Settings = &settings.Settings

Functions

func Add

func Add(mgr manager.Manager) error

func HyperVCredentials

func HyperVCredentials(secret *core.Secret) (username, password string)

HyperVCredentials returns the HyperV/WinRM credentials from the secret.

func SMBCredentials

func SMBCredentials(secret *core.Secret) (username, password string)

SMBCredentials returns the SMB credentials from the secret. Falls back to HyperV credentials if dedicated SMB credentials are not set.

func SMBUrl

func SMBUrl(secret *core.Secret) string

SMBUrl returns the SMB share URL from the secret.

func WinRMPort

func WinRMPort(settings map[string]string) int

WinRMPort returns the WinRM port from provider settings, falling back to the default (5986).

Types

type Builder

type Builder struct {
	HyperVProviderServer *api.HyperVProviderServer
	Labeler              Labeler
}

func (*Builder) Deployment

func (r *Builder) Deployment(provider *api.Provider, secret *core.Secret, pvc *core.PersistentVolumeClaim) (deployment *appsv1.Deployment)

Deployment builds a deployment for the SMB mount pod. The pod runs a minimal sleep binary that keeps the SMB CSI volume mounted.

func (*Builder) PersistentVolume

func (r *Builder) PersistentVolume(provider *api.Provider, secret *core.Secret) (pv *core.PersistentVolume)

PersistentVolume builds a static PV for SMB CSI driver.

func (*Builder) PersistentVolumeClaim

func (r *Builder) PersistentVolumeClaim(provider *api.Provider, pv *core.PersistentVolume) (pvc *core.PersistentVolumeClaim)

PersistentVolumeClaim builds a PVC that binds to the static PV.

func (*Builder) PodSpec

func (r *Builder) PodSpec(provider *api.Provider, secret *core.Secret, pvc *core.PersistentVolumeClaim) (spec core.PodSpec)

func (*Builder) ProviderServer

func (r *Builder) ProviderServer(provider *api.Provider) (server *api.HyperVProviderServer)

func (*Builder) Service

func (r *Builder) Service(provider *api.Provider) (svc *core.Service)

type Deleter

type Deleter struct {
	HyperVProviderServer *api.HyperVProviderServer
	Labeler              Labeler
	Log                  logging.LevelLogger
	k8sclient.Client
}

Deleter deletes resources.

func (*Deleter) Deployment

func (r *Deleter) Deployment(ctx context.Context, provider *api.Provider) (err error)

Deployment deletes the Deployment.

func (*Deleter) PersistentVolume

func (r *Deleter) PersistentVolume(ctx context.Context, provider *api.Provider) (err error)

PersistentVolume deletes the static PV.

func (*Deleter) PersistentVolumeClaim

func (r *Deleter) PersistentVolumeClaim(ctx context.Context, provider *api.Provider) (err error)

PersistentVolumeClaim deletes the PVC.

func (*Deleter) Service

func (r *Deleter) Service(ctx context.Context, provider *api.Provider) (err error)

Service deletes the Service.

type Ensurer

type Ensurer struct {
	client.Client
	Log                  logging.LevelLogger
	HyperVProviderServer *api.HyperVProviderServer
	Labeler              Labeler
}

Ensurer ensures resources exist.

func (*Ensurer) Deployment

func (r *Ensurer) Deployment(ctx context.Context, deployment *appsv1.Deployment) (err error)

Deployment ensures the Deployment exists.

func (*Ensurer) PersistentVolume

func (r *Ensurer) PersistentVolume(ctx context.Context, pv *core.PersistentVolume) (out *core.PersistentVolume, err error)

PersistentVolume ensures the static PV exists. Uses label selector to find existing PVs (supports GenerateName).

func (*Ensurer) PersistentVolumeClaim

func (r *Ensurer) PersistentVolumeClaim(ctx context.Context, pvc *core.PersistentVolumeClaim) (out *core.PersistentVolumeClaim, err error)

PersistentVolumeClaim ensures the PVC exists. Uses label selector to find existing PVCs (supports GenerateName).

func (*Ensurer) ProviderServer

func (r *Ensurer) ProviderServer(ctx context.Context, server *api.HyperVProviderServer) (out *api.HyperVProviderServer, err error)

ProviderServer ensures the HyperVProviderServer resource exists. Uses label selector to find existing servers (supports GenerateName).

func (*Ensurer) Service

func (r *Ensurer) Service(ctx context.Context, service *core.Service) (out *core.Service, err error)

Service ensures the Service exists.

type Labeler

type Labeler struct {
	labeler.Labeler
}

func (*Labeler) ProviderLabels

func (r *Labeler) ProviderLabels(provider *api.Provider) map[string]string

func (*Labeler) ServerLabels

func (r *Labeler) ServerLabels(provider *api.Provider, server *api.HyperVProviderServer) map[string]string

type Reconciler

type Reconciler struct {
	base.Reconciler
}

func (*Reconciler) AddFinalizer

func (r *Reconciler) AddFinalizer(ctx context.Context, hyperv *api.HyperVProviderServer) (err error)

func (*Reconciler) Deploy

func (r *Reconciler) Deploy(ctx context.Context, hyperv *api.HyperVProviderServer) (err error)

Deploy creates the HyperV provider server deployment (SMB mount pod only).

func (*Reconciler) Reconcile

func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) (result reconcile.Result, err error)

func (*Reconciler) RemoveFinalizer

func (r *Reconciler) RemoveFinalizer(ctx context.Context, hyperv *api.HyperVProviderServer) (err error)

func (*Reconciler) Teardown

func (r *Reconciler) Teardown(ctx context.Context, hyperv *api.HyperVProviderServer) (err error)

Teardown deletes the HyperV provider server resources.

Jump to

Keyboard shortcuts

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