vdo

package
v0.0.64 Latest Latest
Warning

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

Go to latest
Published: Jun 30, 2025 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var PooledPoolLock sync.Mutex

‼ single global lock for this orchestrator’s Pooled Host Pool operations

Functions

func GenerateInstallAvdScript

func GenerateInstallAvdScript(ctx context.Context, creds *cloudyazure.AzureCredentials, storageAccountName, containerName string, avdConfig *AVDInstallConfig, hostPoolToken string) (string, error)

func GenerateInstallSaltMinionAndADJoinOnline

func GenerateInstallSaltMinionAndADJoinOnline(ctx context.Context, cfg *VirtualDesktopOrchestratorConfig) (string, error)

GenerateLinuxBootstrapScript builds a single bash script: 1) AD join block (if cfg.AD != nil) 2) Salt-minion install block

func GenerateInstallSaltMinionScript

func GenerateInstallSaltMinionScript(ctx context.Context, creds *cloudyazure.AzureCredentials, storageAccountName, containerName string, saltConfig *SaltMinionInstallConfig) (string, error)

func GenerateInstallSaltMinionScriptLinuxOffline

func GenerateInstallSaltMinionScriptLinuxOffline(
	ctx context.Context,
	creds *cloudyazure.AzureCredentials,
	storageAccountName, containerName string,
	saltConfig *SaltMinionInstallConfig,
) (string, error)

func GenerateJoinDomainScript

func GenerateJoinDomainScript(adConfig *ADJoinConfig) string

func GenerateRestartScript

func GenerateRestartScript() string

func GenerateScriptEnd

func GenerateScriptEnd() string

func GenerateScriptStart

func GenerateScriptStart() string

Types

type ADJoinConfig

type ADJoinConfig struct {
	DomainName             string
	DomainUsername         string
	DomainPassword         string
	OrganizationalUnitPath *string // optional, nil is not specified
}

ADJoinConfig defines the settings required for Active Directory Join

type AVDConfig

type AVDConfig struct {
	InstallerConfig  AVDInstallConfig
	AVDManagerConfig avd.AzureVirtualDesktopManagerConfig
}

type AVDInstallConfig

type AVDInstallConfig struct {
	AVDAgentInstallerFilename      string
	AVDBootloaderInstallerFilename string
}

AVDInstallConfig defines the settings required for AVD installation

type InstallerBinaryStorageConfig

type InstallerBinaryStorageConfig struct {
	BlobStorageAccount string
	BlobContainer      string
}

InstallerBinaryStorageConfig defines the settings required for storing installer binaries

type SaltMinionInstallConfig

type SaltMinionInstallConfig struct {
	SaltMaster string // ip or hostname of Salt Master, to be used for registering the Salt Minion

	SaltMinionMsiFilename string // For windows installs

	SaltMinionRpmFilename string // For RHEL
	SaltBaseRpmFilename   string

	SaltMinionDebFilename string // For debian based, e.g. Ubuntu
	SaltCommonDebFilename string
	BsdmainDebFilename    string
	BsdextraDebFilename   string
	DctrlToolsDebFilename string
	NcalDebFilename       string
}

SaltMinionInstallConfig defines the settings required for Salt Minion installation

type VirtualDesktopOrchestrator

type VirtualDesktopOrchestrator struct {
	// contains filtered or unexported fields
}

The VirtualDesktopOrchestrator manages both Azure Virtual Machines and Azure Virtual Desktop (AVD) resources. It presents a unified interface for creating and managing virtual machines. The management of AVD resources is hidden behind the scenes, and is only used when completing VM operations. AVD can be disabled by setting the AVDManagerConfig to nil in the config.

func (*VirtualDesktopOrchestrator) CreateSessionHost

func (vdo *VirtualDesktopOrchestrator) CreateSessionHost(ctx context.Context, hostPoolName string, idInPool int) (*armdesktopvirtualization.SessionHost, error)

func (*VirtualDesktopOrchestrator) CreateVirtualMachine

func (*VirtualDesktopOrchestrator) DeleteVirtualMachine

func (vdo *VirtualDesktopOrchestrator) DeleteVirtualMachine(ctx context.Context, vm *models.VirtualMachine) error

func (*VirtualDesktopOrchestrator) GetAllVirtualMachineSizes

func (vdo *VirtualDesktopOrchestrator) GetAllVirtualMachineSizes(ctx context.Context) (map[string]*models.VirtualMachineSize, error)

func (*VirtualDesktopOrchestrator) GetAllVirtualMachines

func (vdo *VirtualDesktopOrchestrator) GetAllVirtualMachines(ctx context.Context, attrs []string, includeState bool) (*[]models.VirtualMachine, error)

func (*VirtualDesktopOrchestrator) GetVirtualMachine

func (vdo *VirtualDesktopOrchestrator) GetVirtualMachine(ctx context.Context, id string, includeState bool) (*models.VirtualMachine, error)

func (*VirtualDesktopOrchestrator) GetVirtualMachineSizesForTemplate

func (vdo *VirtualDesktopOrchestrator) GetVirtualMachineSizesForTemplate(ctx context.Context, template models.VirtualMachineTemplate) (
	matches map[string]*models.VirtualMachineSize,
	worse map[string]*models.VirtualMachineSize,
	better map[string]*models.VirtualMachineSize,
	err error)

func (*VirtualDesktopOrchestrator) GetVirtualMachineSizesWithUsage

func (vdo *VirtualDesktopOrchestrator) GetVirtualMachineSizesWithUsage(ctx context.Context) (map[string]*models.VirtualMachineSize, error)

func (*VirtualDesktopOrchestrator) GetVirtualMachineUsage

func (vdo *VirtualDesktopOrchestrator) GetVirtualMachineUsage(ctx context.Context) (map[string]models.VirtualMachineFamily, error)

func (*VirtualDesktopOrchestrator) RebuildReservationsFromAppGroups

func (vdo *VirtualDesktopOrchestrator) RebuildReservationsFromAppGroups(ctx context.Context) error

RebuildReservationsFromAppGroups repopulates the reservation set from AVD app groups

func (*VirtualDesktopOrchestrator) StartVirtualMachine

func (vdo *VirtualDesktopOrchestrator) StartVirtualMachine(ctx context.Context, vm *models.VirtualMachine) error

func (*VirtualDesktopOrchestrator) StopVirtualMachine

func (vdo *VirtualDesktopOrchestrator) StopVirtualMachine(ctx context.Context, vm *models.VirtualMachine) error

func (*VirtualDesktopOrchestrator) UpdateVirtualMachine

type VirtualDesktopOrchestratorConfig

type VirtualDesktopOrchestratorConfig struct {
	VM                              vm.VirtualMachineManagerConfig
	AVD                             *AVDConfig                    // optional, nil disables AVD install / configuration
	AD                              *ADJoinConfig                 // optional, nil disables AD join
	SaltMinionInstall               *SaltMinionInstallConfig      // optional, nil disables Salt Minion install
	BinaryStorage                   *InstallerBinaryStorageConfig // optional, nil disables all software installation (AVD / Salt Minion)
	RestartVirtualMachineAfterSetup bool                          // Whether to restart the VM after setup
}

Jump to

Keyboard shortcuts

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