Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
406dbbf
fix: Support multiple values by category (#575)
abhay-nutanix Sep 29, 2025
2928db2
test: Pass GITHUB_TOKEN to e2e tests (#585)
dlipovetsky Oct 1, 2025
a22a3e8
fix: Update CSI 2.x and CSI 3.x driver versions to latest versions (#…
thunderboltsid Oct 3, 2025
ae84e02
refactor: removing prism-go-client/utils (#586)
abhay-nutanix Oct 5, 2025
dd410ae
test: update e2e kubernetes version to v1.34 (#596)
thunderboltsid Oct 7, 2025
854de9a
feat: Add cache methods and types for converged v4 client (#597)
adiantum Oct 7, 2025
3664982
fix: support multiple container engine (#572)
abhay-nutanix Oct 8, 2025
553cd39
refactor: Change DeleteVM helper to converged v4 client (#598)
adiantum Oct 8, 2025
810de86
refactor: V4 migration: GetImage and GetImageByLookup (#600)
adiantum Oct 9, 2025
7026fbc
refactor: list storage containers using converged v4 client (#602)
atulv7 Oct 10, 2025
1335c5f
feat: Add category method for converged v4 client (#607)
abhay-nutanix Oct 14, 2025
46210f0
refactor: Change GetTaskUUIDFromVM helper to work with V4 converged c…
adiantum Oct 15, 2025
c21890f
refactor: converged client v4 migration: GPU methods (#604)
adiantum Oct 16, 2025
ca31a0f
refactor: getOrCreateVM, reconcileDelete and helpers to use converged…
atulv7 Oct 20, 2025
28cae6c
feat: Change detachVolumeGroupsFromVM helper to work with V4 API (con…
abhay-nutanix Oct 25, 2025
a1f4f90
fix: Updating CCM to v0.5.3 (#617)
abhay-nutanix Nov 4, 2025
dfff3fc
fix: workaround for cloud-init template variable interpolation (#622)
thunderboltsid Nov 6, 2025
6b00660
fix: removing subnet.ClusterReference from GetSubnetUUID (#618)
abhay-nutanix Nov 6, 2025
79e51d0
feat: updating ccm to v0.5.4 (v4 migration) (#623)
abhay-nutanix Nov 6, 2025
768abdd
fix(bumpup): Pism-Go-Client v0.6.0, CCM v0.6.0 (#625) (#626)
abhay-nutanix Nov 18, 2025
8c2499c
fix: Issue/image validation (#628)
abhay-nutanix Nov 21, 2025
b6106c2
fix: fixing clusterReferenceList (#631)
abhay-nutanix Dec 4, 2025
c9a2f46
fix: handle ClusterReferenceList for subnet filtering (#632)
thunderboltsid Dec 5, 2025
824f07a
merge upstream/v1.8.3 into main
Dec 25, 2025
c588501
UPSTREAM: <carry>: Add openshift specific changes
abhay-nutanix Sep 10, 2025
45e87cd
UPSTREAM: <carry>: Add openshift specific changes and gitignore
abhay-nutanix Sep 16, 2025
6f549ae
UPSTREAM: <carry>: add mockgen/setup-envtest installation to openshif…
damdo Oct 10, 2025
dd7c67d
UPSTREAM: <drop>: Update manifests generator
Dec 25, 2025
e5f9235
UPSTREAM: <drop>: Generate OpenShift manifests
Dec 25, 2025
3218aec
UPSTREAM: <drop>: Updating and vendoring go modules after an upstream…
Dec 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/workflows/build-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ jobs:
- "nutanix-storage-test"
- "scaling"
- "kubernetes-upgrade"
- "gpu"
fail-fast: false
needs: check_approvals
uses: ./.github/workflows/e2e.yaml
Expand Down
25 changes: 21 additions & 4 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,26 @@ jobs:
restore-keys: |
${{ runner.os }}-go-

- name: Set Prism Element Cluster parameters
id: pe-params
run: |
if [[ "${{ inputs.e2e-labels }}" == "gpu" ]]; then
echo "NUTANIX_PRISM_ELEMENT_CLUSTER_NAME=${{ vars.NUTANIX_PRISM_ELEMENT_CLUSTER_NAME_WITH_GPU }}" >> "${GITHUB_OUTPUT}"
echo "NUTANIX_SUBNET_NAME=${{ vars.NUTANIX_SUBNET_NAME_WITH_GPU }}" >> "${GITHUB_OUTPUT}"
echo "CONTROL_PLANE_ENDPOINT_RANGE_START=${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_START_WITH_GPU }}" >> "${GITHUB_OUTPUT}"
echo "CONTROL_PLANE_ENDPOINT_RANGE_END=${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_END_WITH_GPU }}" >> "${GITHUB_OUTPUT}"
else
echo "NUTANIX_PRISM_ELEMENT_CLUSTER_NAME=${{ vars.NUTANIX_PRISM_ELEMENT_CLUSTER_NAME }}" >> "${GITHUB_OUTPUT}"
echo "NUTANIX_SUBNET_NAME=${{ vars.NUTANIX_SUBNET_NAME }}" >> "${GITHUB_OUTPUT}"
echo "CONTROL_PLANE_ENDPOINT_RANGE_START=${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_START }}" >> "${GITHUB_OUTPUT}"
echo "CONTROL_PLANE_ENDPOINT_RANGE_END=${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_END }}" >> "${GITHUB_OUTPUT}"
fi

- name: Get Control Plane endpoint IP
id: get-control-plane-endpoint-ip
run: |
export CONTROL_PLANE_ENDPOINT_RANGE_START="${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_START }}"
export CONTROL_PLANE_ENDPOINT_RANGE_END="${{ vars.CONTROL_PLANE_ENDPOINT_RANGE_END }}"
export CONTROL_PLANE_ENDPOINT_RANGE_START="${{ steps.pe-params.outputs.CONTROL_PLANE_ENDPOINT_RANGE_START }}"
export CONTROL_PLANE_ENDPOINT_RANGE_END="${{ steps.pe-params.outputs.CONTROL_PLANE_ENDPOINT_RANGE_END }}"
control_plane_endpoint_ip="$(devbox run -- make nutanix-cp-endpoint-ip)"
echo "control_plane_endpoint_ip=${control_plane_endpoint_ip}" >> "${GITHUB_OUTPUT}"

Expand Down Expand Up @@ -89,6 +104,8 @@ jobs:
NUTANIX_USER: ${{ secrets.NUTANIX_USER }}
NUTANIX_PASSWORD: ${{ secrets.NUTANIX_PASSWORD }}
NUTANIX_ENDPOINT: ${{ secrets.NUTANIX_ENDPOINT }}
NUTANIX_GPU_PASSTHROUGH_NAME: '${{ vars.NUTANIX_GPU_PASSTHROUGH_NAME }}'
NUTANIX_GPU_VIRTUAL_NAME: '${{ vars.NUTANIX_GPU_VIRTUAL_NAME }}'
NUTANIX_PRISM_ELEMENT_CLUSTER_IP: ${{ secrets.NUTANIX_PRISM_ELEMENT_CLUSTER_IP }}
NUTANIX_PRISM_ELEMENT_CLUSTER_USERNAME: ${{ secrets.NUTANIX_PRISM_ELEMENT_CLUSTER_USERNAME }}
NUTANIX_PRISM_ELEMENT_CLUSTER_PASSWORD: ${{ secrets.NUTANIX_PRISM_ELEMENT_CLUSTER_PASSWORD }}
Expand All @@ -97,8 +114,8 @@ jobs:
WEBHOOK_CERT: ${{ secrets.WEBHOOK_CERT }}
WEBHOOK_CA: ${{ secrets.WEBHOOK_CA }}
NUTANIX_SSH_AUTHORIZED_KEY: ${{ secrets.NUTANIX_SSH_AUTHORIZED_KEY }}
NUTANIX_PRISM_ELEMENT_CLUSTER_NAME: ${{ vars.NUTANIX_PRISM_ELEMENT_CLUSTER_NAME }}
NUTANIX_SUBNET_NAME: ${{ vars.NUTANIX_SUBNET_NAME }}
NUTANIX_PRISM_ELEMENT_CLUSTER_NAME: ${{ steps.pe-params.outputs.NUTANIX_PRISM_ELEMENT_CLUSTER_NAME }}
NUTANIX_SUBNET_NAME: ${{ steps.pe-params.outputs.NUTANIX_SUBNET_NAME }}
NUTANIX_ADDITIONAL_SUBNET_NAME: ${{ vars.NUTANIX_ADDITIONAL_SUBNET_NAME }}
NUTANIX_PROJECT_NAME: ${{ vars.NUTANIX_PROJECT_NAME }}
CONTROL_PLANE_ENDPOINT_IP: ${{ steps.get-control-plane-endpoint-ip.outputs.control_plane_endpoint_ip }}
Expand Down
25 changes: 17 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ LOCAL_PROVIDER_VERSION ?= ${IMG_TAG}

ifeq (${LOCAL_PROVIDER_VERSION},${IMG_TAG})
# TODO(release-blocker): Change this versions after release when required here
LOCAL_PROVIDER_VERSION := v1.7.99
LOCAL_PROVIDER_VERSION := v1.8.99
endif

# PLATFORMS is a list of platforms to build for.
Expand Down Expand Up @@ -80,7 +80,7 @@ CNI_PATH_CILIUM ?= "${E2E_DIR}/data/cni/cilium/cilium.yaml"
CNI_PATH_CILIUM_NO_KUBEPROXY ?= "${E2E_DIR}/data/cni/cilium/cilium-no-kubeproxy.yaml"
CNI_PATH_FLANNEL ?= "${E2E_DIR}/data/cni/flannel/flannel.yaml"
CNI_PATH_KINDNET ?= "${E2E_DIR}/data/cni/kindnet/kindnet.yaml"
CCM_VERSION ?= v0.5.0
CCM_VERSION ?= v0.5.4

# CRD_OPTIONS define options to add to the CONTROLLER_GEN
CRD_OPTIONS ?= "crd:crdVersions=v1"
Expand Down Expand Up @@ -221,8 +221,8 @@ update-kindnet-cni: ## Updates the kindnet CNI manifests
.PHONY: update-ccm
update-ccm: ## Updates the Nutanix CCM tag in all the template manifests to CCM_VERSION
@echo "Updating Nutanix CCM tag"
@find $(TEMPLATES_DIR) -type f -exec sed -i 's|CCM_TAG=[^}]*|CCM_TAG=$(CCM_VERSION)|g' {} +
@find $(NUTANIX_E2E_TEMPLATES) -type f -exec sed -i 's|CCM_TAG=[^}]*|CCM_TAG=$(CCM_VERSION)|g' {} +
@find $(TEMPLATES_DIR) -type f -name "*.yaml" -exec sed -i '' 's|CCM_TAG=v[0-9]*\.[0-9]*\.[0-9]*|CCM_TAG=$(CCM_VERSION)|g' {} +
@find $(NUTANIX_E2E_TEMPLATES) -type f -name "*.yaml" -exec sed -i '' 's|CCM_TAG=v[0-9]*\.[0-9]*\.[0-9]*|CCM_TAG=$(CCM_VERSION)|g' {} +

.PHONY: update-cni-manifests ## Updates all the CNI manifests to latest variants from upstream
update-cni-manifests: update-calico-cni update-cilium-cni update-flannel-cni update-kindnet-cni ## Updates all the CNI manifests to latest variants from upstream
Expand Down Expand Up @@ -288,10 +288,10 @@ undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/confi
##@ Templates

.PHONY: cluster-e2e-templates
cluster-e2e-templates: cluster-e2e-templates-v1beta1 cluster-e2e-templates-v161 ## Generate cluster templates for all versions
cluster-e2e-templates: cluster-e2e-templates-v1beta1 cluster-e2e-templates-v171 ## Generate cluster templates for all versions

cluster-e2e-templates-v161: ## Generate cluster templates for CAPX v1.6.1
kustomize build $(NUTANIX_E2E_TEMPLATES)/v1.6.1/cluster-template --load-restrictor LoadRestrictionsNone > $(NUTANIX_E2E_TEMPLATES)/v1.6.1/cluster-template.yaml
cluster-e2e-templates-v171: ## Generate cluster templates for CAPX v1.7.1
kustomize build $(NUTANIX_E2E_TEMPLATES)/v1.7.1/cluster-template --load-restrictor LoadRestrictionsNone > $(NUTANIX_E2E_TEMPLATES)/v1.7.1/cluster-template.yaml

cluster-e2e-templates-v1beta1: ## Generate cluster templates for v1beta1
kustomize build $(NUTANIX_E2E_TEMPLATES)/v1beta1/cluster-template --load-restrictor LoadRestrictionsNone > $(NUTANIX_E2E_TEMPLATES)/v1beta1/cluster-template.yaml
Expand Down Expand Up @@ -368,7 +368,16 @@ mocks: ## Generate mocks for the project
mockgen -destination=mocks/k8sclient/informer.go -package=mockk8sclient k8s.io/client-go/informers/core/v1 ConfigMapInformer,SecretInformer
mockgen -destination=mocks/k8sclient/lister.go -package=mockk8sclient k8s.io/client-go/listers/core/v1 SecretLister,SecretNamespaceLister
mockgen -destination=mocks/k8sapimachinery/interfaces.go -package=mockmeta k8s.io/apimachinery/pkg/api/meta RESTMapper,RESTScope
mockgen -destination=mocks/nutanix/v3.go -package=mocknutanixv3 github.com/nutanix-cloud-native/prism-go-client/v3 Service
mockgen -destination=mocks/converged/vms.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged VMs
mockgen -destination=mocks/converged/operation.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Operation
mockgen -destination=mocks/converged/anti_affinity_policies.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged AntiAffinityPolicies
mockgen -destination=mocks/converged/clusters.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Clusters
mockgen -destination=mocks/converged/categories.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Categories
mockgen -destination=mocks/converged/images.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Images
mockgen -destination=mocks/converged/storage_containers.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged StorageContainers
mockgen -destination=mocks/converged/subnets.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Subnets
mockgen -destination=mocks/converged/tasks.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged Tasks
mockgen -destination=mocks/converged/volume_groups.go -package=mockconverged github.com/nutanix-cloud-native/prism-go-client/converged VolumeGroups

GOTESTPKGS = $(shell go list ./... | grep -v /mocks | grep -v /templates)

Expand Down
10 changes: 6 additions & 4 deletions api/v1beta1/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,13 @@ const (

const (
// PrismCentralClientCondition indicates the status of the client used to connect to Prism Central
PrismCentralClientCondition capiv1.ConditionType = "PrismClientInit"
PrismCentralV4ClientCondition capiv1.ConditionType = "PrismClientV4Init"
PrismCentralClientCondition capiv1.ConditionType = "PrismClientInit"
PrismCentralV4ClientCondition capiv1.ConditionType = "PrismClientV4Init"
PrismCentralConvergedV4ClientCondition capiv1.ConditionType = "PrismClientConvergedV4Init"

PrismCentralClientInitializationFailed = "PrismClientInitFailed"
PrismCentralV4ClientInitializationFailed = "PrismClientV4InitFailed"
PrismCentralClientInitializationFailed = "PrismClientInitFailed"
PrismCentralV4ClientInitializationFailed = "PrismClientV4InitFailed"
PrismCentralConvergedV4ClientInitializationFailed = "PrismClientConvergedV4InitFailed"
)

const (
Expand Down
Loading