diff --git a/go.mod b/go.mod index 30d4162b4..612bfcfb5 100644 --- a/go.mod +++ b/go.mod @@ -89,7 +89,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/nxadm/tail v1.4.8 // indirect - github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 + github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a github.com/openshift/library-go v0.0.0-20240821135116-ade3966091b1 github.com/openshift/machine-config-operator v0.0.1-0.20230815171034-c2bb862bc08a github.com/pborman/uuid v1.2.1 @@ -187,6 +187,6 @@ require ( ) replace ( - github.com/openshift/api => github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 + github.com/openshift/api => github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20250106104058-89709a455e2a ) diff --git a/go.sum b/go.sum index 4cdf48e5e..685d2237b 100644 --- a/go.sum +++ b/go.sum @@ -445,6 +445,8 @@ github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7X github.com/opencontainers/image-spec v1.1.0-rc2/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 h1:sCuu1GPr/NFMrQt95plJ455BnssYfxycOSEl1oYOexs= github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5/go.mod h1:Shkl4HanLwDiiBzakv+con/aMGnVE2MAGvoKp5oyYUo= +github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a h1:bshSoh1/FLj7Xa1uXXfkVKN+AmPWOpbroGiojlxzecA= +github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a/go.mod h1:Shkl4HanLwDiiBzakv+con/aMGnVE2MAGvoKp5oyYUo= github.com/openshift/client-go v0.0.0-20250106104058-89709a455e2a h1:8lwO4lGTwHuVXsIeFoW3t7AEBROW5quMj5YjH9jF+98= github.com/openshift/client-go v0.0.0-20250106104058-89709a455e2a/go.mod h1:34qRf2MsrJKXKAL8qxIkxZ3O5G+YhOB7foCR04H26JE= github.com/openshift/library-go v0.0.0-20240821135116-ade3966091b1 h1:Kp33k9pOeJTW7c2zPjwbhnsNijuSKW6c+gfX2LJhD8U= diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md index b48c03a50..11357b244 100644 --- a/vendor/github.com/openshift/api/features.md +++ b/vendor/github.com/openshift/api/features.md @@ -39,7 +39,6 @@ | NutanixMultiSubnets| | | Enabled | Enabled | Enabled | Enabled | | OVNObservability| | | Enabled | Enabled | Enabled | Enabled | | OnClusterBuild| | | Enabled | Enabled | Enabled | Enabled | -| PersistentIPsForVirtualization| | | Enabled | Enabled | Enabled | Enabled | | PinnedImages| | | Enabled | Enabled | Enabled | Enabled | | PlatformOperators| | | Enabled | Enabled | Enabled | Enabled | | ProcMountType| | | Enabled | Enabled | Enabled | Enabled | @@ -53,6 +52,7 @@ | UserNamespacesPodSecurityStandards| | | Enabled | Enabled | Enabled | Enabled | | UserNamespacesSupport| | | Enabled | Enabled | Enabled | Enabled | | VSphereHostVMGroupZonal| | | Enabled | Enabled | Enabled | Enabled | +| VSphereMultiDisk| | | Enabled | Enabled | Enabled | Enabled | | VSphereMultiNetworks| | | Enabled | Enabled | Enabled | Enabled | | VolumeAttributesClass| | | Enabled | Enabled | Enabled | Enabled | | VolumeGroupSnapshot| | | Enabled | Enabled | Enabled | Enabled | @@ -79,6 +79,7 @@ | NetworkLiveMigration| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | NodeDisruptionPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | OpenShiftPodSecurityAdmission| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| PersistentIPsForVirtualization| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | PrivateHostedZoneAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | SetEIPForNLBIngressController| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | VSphereControlPlaneMachineSet| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/vendor/github.com/openshift/api/machine/v1beta1/types_vsphereprovider.go b/vendor/github.com/openshift/api/machine/v1beta1/types_vsphereprovider.go index 50b6e8f54..5f462f207 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/types_vsphereprovider.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/types_vsphereprovider.go @@ -70,6 +70,15 @@ type VSphereMachineProviderSpec struct { // When using LinkedClone, if no snapshots exist for the source template, falls back to FullClone. // +optional CloneMode CloneMode `json:"cloneMode,omitempty"` + // dataDisks is a list of non OS disks to be created and attached to the VM. The max number of disk allowed to be attached is + // currently 29. The max number of disks for any controller is 30, but VM template will always have OS disk so that will leave + // 29 disks on any controller type. + // +openshift:enable:FeatureGate=VSphereMultiDisk + // +optional + // +listType=map + // +listMapKey=name + // +kubebuilder:validation:MaxItems=29 + DataDisks []VSphereDisk `json:"dataDisks,omitempty"` } // CloneMode is the type of clone operation used to clone a VM from a template. @@ -172,6 +181,25 @@ type NetworkDeviceSpec struct { AddressesFromPools []AddressesFromPool `json:"addressesFromPools,omitempty"` } +// VSphereDisk describes additional disks for vSphere. +type VSphereDisk struct { + // name is used to identify the disk definition. name is required needs to be unique so that it can be used to + // clearly identify purpose of the disk. + // It must be at most 80 characters in length and must consist only of alphanumeric characters, hyphens and underscores, + // and must start and end with an alphanumeric character. + // +kubebuilder:example=images_1 + // +kubebuilder:validation:MaxLength=80 + // +kubebuilder:validation:Pattern="^[a-zA-Z0-9]([-_a-zA-Z0-9]*[a-zA-Z0-9])?$" + // +required + Name string `json:"name"` + // sizeGiB is the size of the disk in GiB. + // The maximum supported size is 57742 GiB. + // +kubebuilder:validation:Minimum=1 + // +kubebuilder:validation:Maximum=57742 + // +required + SizeGiB int32 `json:"sizeGiB"` +} + // WorkspaceConfig defines a workspace configuration for the vSphere cloud // provider. type Workspace struct { diff --git a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go index d37ac11e6..ba9aae81e 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go @@ -1774,6 +1774,22 @@ func (in *VMDiskSecurityProfile) DeepCopy() *VMDiskSecurityProfile { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VSphereDisk) DeepCopyInto(out *VSphereDisk) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VSphereDisk. +func (in *VSphereDisk) DeepCopy() *VSphereDisk { + if in == nil { + return nil + } + out := new(VSphereDisk) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VSphereMachineProviderSpec) DeepCopyInto(out *VSphereMachineProviderSpec) { *out = *in @@ -1800,6 +1816,11 @@ func (in *VSphereMachineProviderSpec) DeepCopyInto(out *VSphereMachineProviderSp *out = make([]string, len(*in)) copy(*out, *in) } + if in.DataDisks != nil { + in, out := &in.DataDisks, &out.DataDisks + *out = make([]VSphereDisk, len(*in)) + copy(*out, *in) + } return } diff --git a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go index e26f79a45..2445bd881 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go @@ -783,6 +783,16 @@ func (NetworkSpec) SwaggerDoc() map[string]string { return map_NetworkSpec } +var map_VSphereDisk = map[string]string{ + "": "VSphereDisk describes additional disks for vSphere.", + "name": "name is used to identify the disk definition. name is required needs to be unique so that it can be used to clearly identify purpose of the disk. It must be at most 80 characters in length and must consist only of alphanumeric characters, hyphens and underscores, and must start and end with an alphanumeric character.", + "sizeGiB": "sizeGiB is the size of the disk in GiB. The maximum supported size is 57742 GiB.", +} + +func (VSphereDisk) SwaggerDoc() map[string]string { + return map_VSphereDisk +} + var map_VSphereMachineProviderSpec = map[string]string{ "": "VSphereMachineProviderSpec is the type that will be embedded in a Machine.Spec.ProviderSpec field for an VSphere virtual machine. It is used by the vSphere machine actuator to create a single Machine. Compatibility level 2: Stable within a major release for a minimum of 9 months or 3 minor releases (whichever is longer).", "userDataSecret": "userDataSecret contains a local reference to a secret that contains the UserData to apply to the instance", @@ -797,6 +807,7 @@ var map_VSphereMachineProviderSpec = map[string]string{ "tagIDs": "tagIDs is an optional set of tags to add to an instance. Specified tagIDs must use URN-notation instead of display names. A maximum of 10 tag IDs may be specified.", "snapshot": "snapshot is the name of the snapshot from which the VM was cloned", "cloneMode": "cloneMode specifies the type of clone operation. The LinkedClone mode is only support for templates that have at least one snapshot. If the template has no snapshots, then CloneMode defaults to FullClone. When LinkedClone mode is enabled the DiskGiB field is ignored as it is not possible to expand disks of linked clones. Defaults to FullClone. When using LinkedClone, if no snapshots exist for the source template, falls back to FullClone.", + "dataDisks": "dataDisks is a list of non OS disks to be created and attached to the VM. The max number of disk allowed to be attached is currently 29. The max number of disks for any controller is 30, but VM template will always have OS disk so that will leave 29 disks on any controller type.", } func (VSphereMachineProviderSpec) SwaggerDoc() map[string]string { diff --git a/vendor/modules.txt b/vendor/modules.txt index f62d68a51..7fa94b371 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -500,7 +500,7 @@ github.com/onsi/gomega/matchers/support/goraph/edge github.com/onsi/gomega/matchers/support/goraph/node github.com/onsi/gomega/matchers/support/goraph/util github.com/onsi/gomega/types -# github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 => github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 +# github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a => github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a ## explicit; go 1.22.0 github.com/openshift/api github.com/openshift/api/annotations @@ -1648,5 +1648,5 @@ sigs.k8s.io/structured-merge-diff/v4/value ## explicit; go 1.12 sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 -# github.com/openshift/api => github.com/openshift/api v0.0.0-20250106182855-361e35fd82e5 +# github.com/openshift/api => github.com/openshift/api v0.0.0-20250110183840-c1a063b1614a # github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20250106104058-89709a455e2a