Add release v0.4.0

This commit is contained in:
OmkarDeshpande7
2026-09-15 22:49:07 +05:30
parent b1a4209926
commit 47983006c0
5 changed files with 833 additions and 8 deletions
+376 -3
View File
@@ -9,6 +9,295 @@ metadata:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: arraycreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ArrayCreds
listKind: ArrayCredsList
plural: arraycreds
singular: arraycreds
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.vendorType
name: Vendor
type: string
- jsonPath: .spec.openstackMapping.volumeType
name: VolumeType
type: string
- jsonPath: .spec.openstackMapping.cinderBackendName
name: Backend
type: string
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .status.arrayValidationStatus
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ArrayCreds is the Schema for the storage array credentials API that defines authentication
and connection details for storage arrays. It provides a secure way to store and validate
storage array credentials for use in migration operations, supporting multiple vendors, but as of now
We have qualified pure storage flash array.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ArrayCredsSpec defines the desired state of ArrayCreds
properties:
autoDiscovered:
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
from OpenStack
type: boolean
openstackMapping:
description: OpenStackMapping is the openstack mapping for this array
properties:
cinderBackendName:
description: |-
CinderBackendName is the Cinder backend name for this mapping
This is the backend configured in cinder.conf (e.g., "pure-01")
type: string
cinderBackendPool:
description: CinderBackendPool is the pool name within the backend
(optional)
type: string
cinderHost:
description: |-
CinderHost is the full Cinder host string for manage API
Format: hostname@backend or hostname@backend#pool (e.g., "pcd-ce@pure-iscsi-1#vt-pure-iscsi")
type: string
volumeType:
description: VolumeType is the Cinder volume type associated with
this mapping
type: string
required:
- cinderBackendName
- volumeType
type: object
secretRef:
description: SecretRef is the reference to the Kubernetes secret holding
storage array credentials
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
vendorType:
description: VendorType is the storage array vendor type (e.g., pure,
ontap, hpalletra)
type: string
required:
- vendorType
type: object
status:
description: ArrayCredsStatus defines the observed state of ArrayCreds
properties:
arrayValidationMessage:
description: ArrayValidationMessage is the message associated with
the storage array validation
type: string
arrayValidationStatus:
description: |-
ArrayValidationStatus is the status of the storage array validation
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
type: string
dataStore:
description: DataStore is the list of datastores associated with this
array
items:
description: DatastoreInfo holds datastore information including
backing device NAA
properties:
backingNAA:
type: string
backingUUID:
type: string
capacity:
format: int64
type: integer
freeSpace:
format: int64
type: integer
moID:
type: string
name:
type: string
type:
type: string
required:
- backingNAA
- backingUUID
- capacity
- freeSpace
- moID
- name
- type
type: object
type: array
phase:
description: |-
Phase indicates the current phase of the ArrayCreds
Possible values: Discovered, Configured, Validated, Failed
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: arraycredsmappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ArrayCredsMapping
listKind: ArrayCredsMappingList
plural: arraycredsmappings
singular: arraycredsmapping
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.validationStatus
name: Status
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ArrayCredsMapping is the Schema for the arraycredsmappings API that defines
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy storage migration
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
ArrayCredsMappingSpec defines the desired state of ArrayCredsMapping including
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy data copy
properties:
mappings:
description: Mappings is a list of datastore to ArrayCreds mappings
items:
description: DatastoreArrayCredsMapping represents a mapping between
a VMware datastore and ArrayCreds
properties:
source:
description: Source is the name of the source datastore in VMware
type: string
target:
description: Target is the name of the ArrayCreds resource to
use for this datastore
type: string
required:
- source
- target
type: object
type: array
required:
- mappings
type: object
status:
description: ArrayCredsMappingStatus defines the observed state of ArrayCredsMapping
properties:
validationMessage:
description: |-
ValidationMessage provides detailed validation information including
information about available ArrayCreds and any validation errors
type: string
validationStatus:
description: |-
ValidationStatus indicates the validation status of the ArrayCreds mapping
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
@@ -491,6 +780,9 @@ spec:
adminInitiatedCutOver:
default: false
type: boolean
arrayOffload:
default: false
type: boolean
dataCopyStart:
format: date-time
type: string
@@ -647,6 +939,13 @@ spec:
migrationPlan:
description: MigrationPlan is the name of the migration plan
type: string
migrationType:
description: MigrationType indicates whether this is a hot (live)
or cold migration
enum:
- hot
- cold
type: string
podRef:
description: PodRef is the name of the pod
type: string
@@ -713,6 +1012,11 @@ spec:
- type
type: object
type: array
currentDisk:
description: |-
CurrentDisk tracks which disk is currently being copied (e.g., "0", "1")
Extracted from migration pod events
type: string
phase:
description: Phase is the current phase of the migration
enum:
@@ -728,7 +1032,23 @@ spec:
- Succeeded
- Failed
- Unknown
- ConnectingToESXi
- CreatingInitiatorGroup
- CreatingVolume
- ImportingToCinder
- MappingVolume
- RescanningStorage
- XCOPYInProgress
type: string
retryable:
description: |-
Retryable indicates whether this migration can be retried when it fails.
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
as RDM disk migration state prevents automatic retry.
type: boolean
totalDisks:
description: TotalDisks is the total number of disks to be migrated
type: integer
required:
- phase
type: object
@@ -784,6 +1104,11 @@ spec:
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
including source/destination environments and mappings
properties:
arrayCredsMapping:
description: |-
ArrayCredsMapping is the reference to the ArrayCredsMapping resource that defines datastore to ArrayCreds mappings
This is used for StorageAcceleratedCopy data copy method
type: string
destination:
description: Destination is the destination details for the virtual
machine
@@ -815,9 +1140,19 @@ spec:
required:
- vmwareRef
type: object
storageCopyMethod:
default: normal
description: |-
StorageCopyMethod indicates the method to use for storage migration
Valid values: "normal" (default), "StorageAcceleratedCopy"
enum:
- normal
- StorageAcceleratedCopy
type: string
storageMapping:
description: StorageMapping is the reference to the StorageMapping
resource that defines source to destination storage mappings
description: |-
StorageMapping is the reference to the StorageMapping resource that defines source to destination storage mappings
This is used for normal data copy method
type: string
targetPCDClusterName:
description: TargetPCDClusterName is the name of the PCD cluster where
@@ -839,7 +1174,6 @@ spec:
- destination
- networkMapping
- source
- storageMapping
type: object
type: object
served: true
@@ -1049,6 +1383,22 @@ spec:
- vcpus
type: object
type: array
osAuthToken:
type: string
osAuthUrl:
type: string
osDomainName:
type: string
osInsecure:
type: boolean
osPassword:
type: string
osRegionName:
type: string
osTenantName:
type: string
osUsername:
type: string
pcdHostConfig:
description: PCDHostConfig is the list of available clusters in openstack
items:
@@ -1719,6 +2069,9 @@ spec:
adminInitiatedCutOver:
default: false
type: boolean
arrayOffload:
default: false
type: boolean
dataCopyStart:
format: date-time
type: string
@@ -2410,7 +2763,18 @@ spec:
disks:
description: Disks is the list of disks for the virtual machine
items:
description: Disk represents a virtual disk attached to a virtual
machine
properties:
capacityGB:
type: integer
datastore:
type: string
datastoreId:
type: string
name:
type: string
type: object
type: array
esxiName:
description: ESXiName is the name of the ESXi host
@@ -2840,6 +3204,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds
- bmconfigs
- clustermigrations
- esximigrations
@@ -2869,6 +3234,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds/finalizers
- bmconfigs/finalizers
- clustermigrations/finalizers
- esximigrations/finalizers
@@ -2888,6 +3254,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds/status
- bmconfigs/status
- clustermigrations/status
- esximigrations/status
@@ -3749,6 +4116,12 @@ kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/proxy-body-size: 500m
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
name: migration-vpwned-ingress
+6
View File
@@ -45,6 +45,12 @@ metadata:
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "500m"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
spec:
ingressClassName: nginx
rules:
+382 -3
View File
@@ -9,6 +9,295 @@ metadata:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: arraycreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ArrayCreds
listKind: ArrayCredsList
plural: arraycreds
singular: arraycreds
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.vendorType
name: Vendor
type: string
- jsonPath: .spec.openstackMapping.volumeType
name: VolumeType
type: string
- jsonPath: .spec.openstackMapping.cinderBackendName
name: Backend
type: string
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .status.arrayValidationStatus
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ArrayCreds is the Schema for the storage array credentials API that defines authentication
and connection details for storage arrays. It provides a secure way to store and validate
storage array credentials for use in migration operations, supporting multiple vendors, but as of now
We have qualified pure storage flash array.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ArrayCredsSpec defines the desired state of ArrayCreds
properties:
autoDiscovered:
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
from OpenStack
type: boolean
openstackMapping:
description: OpenStackMapping is the openstack mapping for this array
properties:
cinderBackendName:
description: |-
CinderBackendName is the Cinder backend name for this mapping
This is the backend configured in cinder.conf (e.g., "pure-01")
type: string
cinderBackendPool:
description: CinderBackendPool is the pool name within the backend
(optional)
type: string
cinderHost:
description: |-
CinderHost is the full Cinder host string for manage API
Format: hostname@backend or hostname@backend#pool (e.g., "pcd-ce@pure-iscsi-1#vt-pure-iscsi")
type: string
volumeType:
description: VolumeType is the Cinder volume type associated with
this mapping
type: string
required:
- cinderBackendName
- volumeType
type: object
secretRef:
description: SecretRef is the reference to the Kubernetes secret holding
storage array credentials
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: |-
If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
type: string
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
resourceVersion:
description: |-
Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
type: string
uid:
description: |-
UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
type: string
type: object
x-kubernetes-map-type: atomic
vendorType:
description: VendorType is the storage array vendor type (e.g., pure,
ontap, hpalletra)
type: string
required:
- vendorType
type: object
status:
description: ArrayCredsStatus defines the observed state of ArrayCreds
properties:
arrayValidationMessage:
description: ArrayValidationMessage is the message associated with
the storage array validation
type: string
arrayValidationStatus:
description: |-
ArrayValidationStatus is the status of the storage array validation
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
type: string
dataStore:
description: DataStore is the list of datastores associated with this
array
items:
description: DatastoreInfo holds datastore information including
backing device NAA
properties:
backingNAA:
type: string
backingUUID:
type: string
capacity:
format: int64
type: integer
freeSpace:
format: int64
type: integer
moID:
type: string
name:
type: string
type:
type: string
required:
- backingNAA
- backingUUID
- capacity
- freeSpace
- moID
- name
- type
type: object
type: array
phase:
description: |-
Phase indicates the current phase of the ArrayCreds
Possible values: Discovered, Configured, Validated, Failed
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: arraycredsmappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ArrayCredsMapping
listKind: ArrayCredsMappingList
plural: arraycredsmappings
singular: arraycredsmapping
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.validationStatus
name: Status
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ArrayCredsMapping is the Schema for the arraycredsmappings API that defines
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy storage migration
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
ArrayCredsMappingSpec defines the desired state of ArrayCredsMapping including
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy data copy
properties:
mappings:
description: Mappings is a list of datastore to ArrayCreds mappings
items:
description: DatastoreArrayCredsMapping represents a mapping between
a VMware datastore and ArrayCreds
properties:
source:
description: Source is the name of the source datastore in VMware
type: string
target:
description: Target is the name of the ArrayCreds resource to
use for this datastore
type: string
required:
- source
- target
type: object
type: array
required:
- mappings
type: object
status:
description: ArrayCredsMappingStatus defines the observed state of ArrayCredsMapping
properties:
validationMessage:
description: |-
ValidationMessage provides detailed validation information including
information about available ArrayCreds and any validation errors
type: string
validationStatus:
description: |-
ValidationStatus indicates the validation status of the ArrayCreds mapping
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
@@ -491,6 +780,9 @@ spec:
adminInitiatedCutOver:
default: false
type: boolean
arrayOffload:
default: false
type: boolean
dataCopyStart:
format: date-time
type: string
@@ -647,6 +939,13 @@ spec:
migrationPlan:
description: MigrationPlan is the name of the migration plan
type: string
migrationType:
description: MigrationType indicates whether this is a hot (live)
or cold migration
enum:
- hot
- cold
type: string
podRef:
description: PodRef is the name of the pod
type: string
@@ -713,6 +1012,11 @@ spec:
- type
type: object
type: array
currentDisk:
description: |-
CurrentDisk tracks which disk is currently being copied (e.g., "0", "1")
Extracted from migration pod events
type: string
phase:
description: Phase is the current phase of the migration
enum:
@@ -728,7 +1032,23 @@ spec:
- Succeeded
- Failed
- Unknown
- ConnectingToESXi
- CreatingInitiatorGroup
- CreatingVolume
- ImportingToCinder
- MappingVolume
- RescanningStorage
- XCOPYInProgress
type: string
retryable:
description: |-
Retryable indicates whether this migration can be retried when it fails.
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
as RDM disk migration state prevents automatic retry.
type: boolean
totalDisks:
description: TotalDisks is the total number of disks to be migrated
type: integer
required:
- phase
type: object
@@ -784,6 +1104,11 @@ spec:
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
including source/destination environments and mappings
properties:
arrayCredsMapping:
description: |-
ArrayCredsMapping is the reference to the ArrayCredsMapping resource that defines datastore to ArrayCreds mappings
This is used for StorageAcceleratedCopy data copy method
type: string
destination:
description: Destination is the destination details for the virtual
machine
@@ -815,9 +1140,19 @@ spec:
required:
- vmwareRef
type: object
storageCopyMethod:
default: normal
description: |-
StorageCopyMethod indicates the method to use for storage migration
Valid values: "normal" (default), "StorageAcceleratedCopy"
enum:
- normal
- StorageAcceleratedCopy
type: string
storageMapping:
description: StorageMapping is the reference to the StorageMapping
resource that defines source to destination storage mappings
description: |-
StorageMapping is the reference to the StorageMapping resource that defines source to destination storage mappings
This is used for normal data copy method
type: string
targetPCDClusterName:
description: TargetPCDClusterName is the name of the PCD cluster where
@@ -839,7 +1174,6 @@ spec:
- destination
- networkMapping
- source
- storageMapping
type: object
type: object
served: true
@@ -1049,6 +1383,22 @@ spec:
- vcpus
type: object
type: array
osAuthToken:
type: string
osAuthUrl:
type: string
osDomainName:
type: string
osInsecure:
type: boolean
osPassword:
type: string
osRegionName:
type: string
osTenantName:
type: string
osUsername:
type: string
pcdHostConfig:
description: PCDHostConfig is the list of available clusters in openstack
items:
@@ -1719,6 +2069,9 @@ spec:
adminInitiatedCutOver:
default: false
type: boolean
arrayOffload:
default: false
type: boolean
dataCopyStart:
format: date-time
type: string
@@ -2410,7 +2763,18 @@ spec:
disks:
description: Disks is the list of disks for the virtual machine
items:
description: Disk represents a virtual disk attached to a virtual
machine
properties:
capacityGB:
type: integer
datastore:
type: string
datastoreId:
type: string
name:
type: string
type: object
type: array
esxiName:
description: ESXiName is the name of the ESXi host
@@ -2840,6 +3204,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds
- bmconfigs
- clustermigrations
- esximigrations
@@ -2869,6 +3234,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds/finalizers
- bmconfigs/finalizers
- clustermigrations/finalizers
- esximigrations/finalizers
@@ -2888,6 +3254,7 @@ rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- arraycreds/status
- bmconfigs/status
- clustermigrations/status
- esximigrations/status
@@ -3882,6 +4249,8 @@ spec:
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
- mountPath: /home/ubuntu
name: vddk-storage
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
@@ -3893,12 +4262,22 @@ spec:
path: /etc/hosts
type: File
name: hosts-file
- hostPath:
path: /home/ubuntu
type: DirectoryOrCreate
name: vddk-storage
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/proxy-body-size: 500m
nginx.ingress.kubernetes.io/proxy-buffering: "off"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
name: migration-vpwned-ingress
@@ -24,3 +24,10 @@ data:
PERIODIC_SYNC_RETRY_CAP: "3h" # max retry interval for CBT sync
AUTO_FSTAB_UPDATE: "false" # automatically update fstab
AUTO_PXE_BOOT_ON_CONVERSION: "false" # automatically set machine to PXE boot during cluster conversion
V2V_HELPER_POD_CPU_REQUEST: "1000m"
V2V_HELPER_POD_MEMORY_REQUEST: "2Gi"
V2V_HELPER_POD_CPU_LIMIT: "2000m"
V2V_HELPER_POD_MEMORY_LIMIT: "5Gi"
V2V_HELPER_POD_EPHEMERAL_STORAGE_REQUEST: "3Gi"
V2V_HELPER_POD_EPHEMERAL_STORAGE_LIMIT: "3Gi"
+60
View File
@@ -0,0 +1,60 @@
# v0.4.0
- **Tag:** `v0.4.0`
- **Published:** 2026-02-03T10:40:48Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.0
## Release Notes
## What's Changed
* Added link to public documentation in the ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1345
* #1336, #834 :: UI implement feedback changes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1346
* Implement Storage SDK Foundation (#1091 #1093) - PART1 by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1291
* continues the array-accelerated migration work by implementing the storage array gRPC server layer by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1350
* Storage SDK Foundation - Part 3 -- removed all UI changes by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1353
* Upload VDDK via UI. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1319
* fix: Make VCENTER_DATACENTER optional in secret by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1356
* Reverting 3 commits that introduced breaking changes by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1357
* storage array integration by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1361
* Added migration details modal by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1355
* remove stale folders from the project by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1359
* Handled trailing slash in vCenter URL by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1349
* VDDK upload by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1364
* Added more relevant option in MigrationForm by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1347
* Bug: Check for empty arraycreds secret ref when normal migration and change names. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1369
* Restrict retry on rdm migration by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1365
* Added validation for hotplug flavor discovery by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1360
* merge two common folders for better code structure by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1379
* Added return to avoid segmentation fault or panic by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1387
* VM Migrations stats and alerts on grafana dashboards by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1362
* #1368, #1367 date time selection is not working for scheduled cutover and copy start time by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1384
* feat: adding vddk upload status api by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1377
* deterministic volume ordering during copy by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1389
* UI: Create UI for storage accelerated copy. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1378
* Added missing logs for better debugging by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1401
* feat: adding vddk version in the api by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1397
* #731 :: [UI] add prompts for missing VDDK, credentials by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1372
* Fix - windows 2022 not able to recognise the network interfaces by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1382
* pass vminfo by reference and improve sync error handling by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1391
* Reset currentState to initial in case of error and success by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1404
* Implemented OpenStack token-based authentication by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1394
* feat: adding fuzzy search by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1392
* Add VM power status check after poweroff by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1405
* Make request limit configurable and increase limit to 5Gib by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1407
* feat: Adding netapp storage.go by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1399
* Mark migrations ValidationFailed when RDM disk is not managed by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1406
* Disabled hour-time-picker for scheduled cutover if minutes are disabled by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1415
* Fix issues in vddk upload page by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1418
* fix: added buildBackendToVolumeTypeMap function and cleanup logic by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1422
* #1424 :: The screen flickers first time when clicking on other Global Settings tabs while the VDDK upload is in progress or uploaded by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1429
* #1434 :: Add ESXi SSH Private Key Input Field to Storage Array Credentials Page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1435
* Prioritizing Cold Migration in case of cutover options selected with cold migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1439
* #1444 :: Couldn't upload ssh key without an extension by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1447
* Throttling the go routines during copying changed block stage by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1446
* UI :: #1438 :: Admin cutover + cold migration is not a valid usecase by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1441
* #1430 :: Updating the vJailbreak settings through the UI removes ConfigMap keys that are not shown in the UI by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1436
## New Contributors
* @geet-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/1401
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.8...v0.4.0