From af102a526598f0da18cb6a5e620076f2d654d57f Mon Sep 17 00:00:00 2001 From: Ludwig Date: Mon, 19 Aug 2024 14:30:17 +0200 Subject: [PATCH] add VNET to machine CR --- api/v1alpha1/ionoscloudmachine_types.go | 4 ++++ api/v1alpha1/zz_generated.deepcopy.go | 5 +++++ .../infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml | 4 ++++ ...tructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml | 4 ++++ internal/service/cloud/server.go | 1 + 5 files changed, 18 insertions(+) diff --git a/api/v1alpha1/ionoscloudmachine_types.go b/api/v1alpha1/ionoscloudmachine_types.go index 730d1b1a..b7e591f0 100644 --- a/api/v1alpha1/ionoscloudmachine_types.go +++ b/api/v1alpha1/ionoscloudmachine_types.go @@ -183,6 +183,10 @@ type Network struct { //+kubebuilder:validation:Minimum=1 NetworkID int32 `json:"networkID"` + // VNET is solely used for internal purposes and requires elevated permissions. + //+optional + VNET *string `json:"vnet,omitempty"` + // DHCP indicates whether DHCP is enabled for the LAN. // The primary NIC will always have DHCP enabled. //+kubebuilder:default=true diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index e40d4c9a..a01890bb 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -563,6 +563,11 @@ func (in *NICInfo) DeepCopy() *NICInfo { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Network) DeepCopyInto(out *Network) { *out = *in + if in.VNET != nil { + in, out := &in.VNET, &out.VNET + *out = new(string) + **out = **in + } if in.DHCP != nil { in, out := &in.DHCP, &out.DHCP *out = new(bool) diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml index b8c60299..0f136411 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachines.yaml @@ -82,6 +82,10 @@ spec: format: int32 minimum: 1 type: integer + vnet: + description: VNET is solely used for internal purposes and requires + elevated permissions. + type: string required: - networkID type: object diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml index 70a6047b..dcf3cda6 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ionoscloudmachinetemplates.yaml @@ -92,6 +92,10 @@ spec: format: int32 minimum: 1 type: integer + vnet: + description: VNET is solely used for internal purposes + and requires elevated permissions. + type: string required: - networkID type: object diff --git a/internal/service/cloud/server.go b/internal/service/cloud/server.go index 075dd070..3fff5ea8 100644 --- a/internal/service/cloud/server.go +++ b/internal/service/cloud/server.go @@ -432,6 +432,7 @@ func (s *Service) buildServerEntities(ms *scope.Machine, params serverEntityPara for _, nic := range ms.IonosMachine.Spec.AdditionalNetworks { items = append(items, sdk.Nic{Properties: &sdk.NicProperties{ Lan: &nic.NetworkID, + Vnet: nic.VNET, Dhcp: nic.DHCP, }}) }