Skip to content

crd: add Kubernetes CRD module for vim APIs#3989

Draft
akutz wants to merge 1 commit intovmware:mainfrom
akutz:feature/k8s-crds
Draft

crd: add Kubernetes CRD module for vim APIs#3989
akutz wants to merge 1 commit intovmware:mainfrom
akutz:feature/k8s-crds

Conversation

@akutz
Copy link
Copy Markdown
Member

@akutz akutz commented Mar 31, 2026

Description

Introduces a new crd Go module that defines Kubernetes Custom Resource Definitions for VMware vSphere (vim) API types under the vim.vmware.com API group.

The crd/pkg/vim/api/v1alpha1 package provides the following CRD types:

  • VirtualMachineConfigOptions: represents hardware config options for a given VMX hardware version
  • VirtualMachineConfigTarget: represents available devices and options for a compute resource
  • ClusterConfigTarget: cluster-level config target info
  • Virtual device types covering controllers, disks, ethernet adapters, and device backings

Also included:

  • A Makefile with controller-gen-based code generation
  • Generated DeepCopy functions (zz_generated.deepcopy.go)
  • Generated CRD YAML manifests under config/crd/bases/
  • XML test fixtures for VMX hardware versions 10-22, including vGPU and SR-IOV scenarios

Closes: NA

How Has This Been Tested?

By successfully generating the CRDs. Tests will be added soon to validate them loading into a K8s kind cluster via GH action testing.

Guidelines

Please read and follow the CONTRIBUTION guidelines of this project.

@akutz akutz marked this pull request as draft March 31, 2026 17:04
@akutz akutz force-pushed the feature/k8s-crds branch 8 times, most recently from f39f779 to b918a0c Compare March 31, 2026 22:14
Introduces a new `crd` Go module that defines Kubernetes
Custom Resource Definitions for VMware vSphere (vim) API
types under the `vim.vmware.com` API group.

The `crd/pkg/vim/api/v1alpha1` package provides the
following CRD types:

- VirtualMachineConfigOptions: represents hardware config
  options for a given VMX hardware version
- VirtualMachineConfigTarget: represents available devices
  and options for a compute resource
- ClusterConfigTarget: cluster-level config target info
- Virtual device types covering controllers, disks,
  ethernet adapters, and device backings

Also included:
- A Makefile with controller-gen-based code generation
- Generated DeepCopy functions (zz_generated.deepcopy.go)
- Generated CRD YAML manifests under config/crd/bases/
- XML test fixtures for VMX hardware versions 10-22,
  including vGPU and SR-IOV scenarios

Signed-off-by: akutz <andrew.kutz@broadcom.com>
@akutz akutz force-pushed the feature/k8s-crds branch from b918a0c to 74b2d29 Compare March 31, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant