Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions api/v1beta1/azurestackhcimachine_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ type AzureStackHCIMachineSpec struct {

// +optional
AvailabilitySetName string `json:"availabilitySetName,omitempty"`

// +optional
PlacementGroupName string `json:"placementGroupName,omitempty"`
}

// AzureStackHCIMachineStatus defines the observed state of AzureStackHCIMachine
Expand Down
3 changes: 3 additions & 0 deletions api/v1beta1/azurestackhcivirtualmachine_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ type AzureStackHCIVirtualMachineSpec struct {

// +optional
AvailabilitySetName string `json:"availabilitySetName,omitempty"`

// +optional
PlacementGroupName string `json:"placementGroupName,omitempty"`
}

// AzureStackHCIVirtualMachineStatus defines the observed state of AzureStackHCIVirtualMachine
Expand Down
9 changes: 9 additions & 0 deletions cloud/services/virtualmachines/virtualmachines.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ type Spec struct {
VMType compute.VMType
StorageContainer string
AvailabilitySetName string
PlacementGroupName string
}

// Get provides information about a virtual machine.
Expand Down Expand Up @@ -110,6 +111,7 @@ func (s *Service) Reconcile(ctx context.Context, spec interface{}) error {
"OSDisk", vmSpec.OSDisk,
"VMType", vmSpec.VMType,
"AvailabilitySetName", vmSpec.AvailabilitySetName,
"PlacementGroupName", vmSpec.PlacementGroupName,
)

sshKeyData := vmSpec.SSHKeyData
Expand Down Expand Up @@ -193,6 +195,13 @@ func (s *Service) Reconcile(ctx context.Context, spec interface{}) error {
}
}

if vmSpec.PlacementGroupName != "" {
virtualMachine.VirtualMachineProperties.PlacementGroupProfile = &compute.PlacementGroupReference{
Name: to.StringPtr(vmSpec.PlacementGroupName),
GroupName: to.StringPtr(s.Scope.GetResourceGroup()),
}
}

_, err = s.Client.CreateOrUpdate(
ctx,
s.Scope.GetResourceGroup(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,8 @@ spec:
- osType
- source
type: object
placementGroupName:
type: string
providerID:
description: ProviderID is the unique identifier as specified by the
cloud provider.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,8 @@ spec:
- osType
- source
type: object
placementGroupName:
type: string
providerID:
description: ProviderID is the unique identifier as specified
by the cloud provider.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,8 @@ spec:
- osType
- source
type: object
placementGroupName:
type: string
resourceGroup:
description: come from the cluster scope for machine and lb controller
creation path
Expand Down
1 change: 1 addition & 0 deletions controllers/azurestackhcimachine_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ func (r *AzureStackHCIMachineReconciler) reconcileVirtualMachineNormal(machineSc
vm.Spec.AdditionalSSHKeys = machineScope.AzureStackHCIMachine.Spec.AdditionalSSHKeys
vm.Spec.StorageContainer = machineScope.AzureStackHCIMachine.Spec.StorageContainer
vm.Spec.AvailabilitySetName = machineScope.AzureStackHCIMachine.Spec.AvailabilitySetName
vm.Spec.PlacementGroupName = machineScope.AzureStackHCIMachine.Spec.PlacementGroupName

machineScope.AzureStackHCIMachine.Spec.NetworkInterfaces.DeepCopyInto(&vm.Spec.NetworkInterfaces)

Expand Down
1 change: 1 addition & 0 deletions controllers/azurestackhcivirtualmachine_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,7 @@ func (s *azureStackHCIVirtualMachineService) createVirtualMachine(nicName string
VMType: vmType,
StorageContainer: s.vmScope.StorageContainer(),
AvailabilitySetName: s.vmScope.AzureStackHCIVirtualMachine.Spec.AvailabilitySetName,
PlacementGroupName: s.vmScope.AzureStackHCIVirtualMachine.Spec.PlacementGroupName,
}

err = s.virtualMachinesSvc.Reconcile(s.vmScope.Context, vmSpec)
Expand Down
35 changes: 17 additions & 18 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ require (
github.com/blang/semver v3.5.1+incompatible
github.com/go-logr/logr v1.4.1
github.com/golang/mock v1.6.0
github.com/microsoft/moc v0.19.3
github.com/microsoft/moc-sdk-for-go v0.19.4
github.com/microsoft/moc v0.25.0
github.com/microsoft/moc-sdk-for-go v0.24.2
github.com/onsi/ginkgo/v2 v2.17.1
github.com/onsi/gomega v1.32.0
github.com/pkg/errors v0.9.1
github.com/spf13/pflag v1.0.5
golang.org/x/crypto v0.21.0
google.golang.org/grpc v1.59.0
golang.org/x/crypto v0.28.0
google.golang.org/grpc v1.62.1
k8s.io/api v0.29.3
k8s.io/apimachinery v0.29.3
k8s.io/client-go v0.29.3
Expand Down Expand Up @@ -53,7 +53,7 @@ require (
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect
github.com/google/uuid v1.4.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb // indirect
github.com/imdario/mergo v0.3.13 // indirect
Expand All @@ -67,32 +67,31 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/prometheus/client_golang v1.18.0 // indirect
github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.45.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/locafero v0.6.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.6.0 // indirect
github.com/spf13/viper v1.18.2 // indirect
github.com/spf13/cast v1.7.0 // indirect
github.com/spf13/viper v1.19.0 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/net v0.26.0 // indirect
golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa // indirect
golang.org/x/net v0.31.0 // indirect
golang.org/x/oauth2 v0.18.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/sys v0.27.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/text v0.20.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.17.0 // indirect
golang.org/x/tools v0.24.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231127180814-3a041ad873d4 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240624140628-dc46fd24d27d // indirect
google.golang.org/protobuf v1.34.2 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect
google.golang.org/protobuf v1.35.2 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Expand Down
Loading