Add release v0.4.6

This commit is contained in:
OmkarDeshpande7
2026-09-15 22:50:04 +05:30
parent eebd715455
commit 430bd3e323
6 changed files with 403 additions and 94 deletions
+164 -44
View File
@@ -980,13 +980,6 @@ spec:
to remove VMware Tools post migration
type: boolean
type: object
assignedIPsPerVM:
additionalProperties:
type: string
description: |-
AssignedIPsPerVM is a map of VM names to comma-separated assigned IPs for cold migration
Format: {"vm-name": "IP1,IP2,IP3"} where each IP corresponds to a network interface by index
type: object
fallbackToDHCP:
type: boolean
firstBootScript:
@@ -1176,11 +1169,6 @@ spec:
spec:
description: Spec defines the desired state of Migration
properties:
assignedIP:
description: |-
AssignedIP is the comma-separated list of user-assigned IPs for cold migration
Format: "IP1,IP2,IP3" where each IP corresponds to a network interface by index
type: string
disconnectSourceNetwork:
description: |-
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
@@ -1304,6 +1292,11 @@ spec:
- MappingVolume
- RescanningStorage
- XCOPYInProgress
- SnapshottingSourceVM
- AttachingDisksToProxy
- IdentifyingBlockDevices
- HotAddTransferInProgress
- HotAddCleanup
type: string
retryable:
description: |-
@@ -1391,8 +1384,10 @@ spec:
- openstackRef
type: object
networkMapping:
description: NetworkMapping is the reference to the NetworkMapping
resource that defines source to destination network mappings
description: |-
NetworkMapping is the reference to the NetworkMapping resource that defines source to destination network mappings.
Optional: when the selected VMs have no attached VMware networks, no NetworkMapping is required and this field
may be empty. The controller will skip network reconciliation in that case.
type: string
osFamily:
description: OSFamily is the OS type of the virtual machine
@@ -1400,6 +1395,22 @@ spec:
- windowsGuest
- linuxGuest
type: string
proxyVMRef:
description: |-
ProxyVMRef references the ProxyVM to use for HotAdd data copy.
Required when StorageCopyMethod is "HotAdd".
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
source:
description: Source is the source details for the virtual machine
properties:
@@ -1414,10 +1425,11 @@ spec:
default: normal
description: |-
StorageCopyMethod indicates the method to use for storage migration
Valid values: "normal" (default), "StorageAcceleratedCopy"
Valid values: "normal" (default), "StorageAcceleratedCopy", "HotAdd"
enum:
- normal
- StorageAcceleratedCopy
- HotAdd
type: string
storageMapping:
description: |-
@@ -1442,7 +1454,6 @@ spec:
type: string
required:
- destination
- networkMapping
- source
type: object
type: object
@@ -2032,6 +2043,138 @@ spec:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: proxyvms.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ProxyVM
listKind: ProxyVMList
plural: proxyvms
singular: proxyvm
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.vmName
name: VM-Name
type: string
- jsonPath: .status.validationStatus
name: Status
type: string
- jsonPath: .status.ipAddress
name: IP
type: string
- jsonPath: .status.attachedDiskCount
name: Attached-Disks
type: integer
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ProxyVM is the Schema for a registered Proxy VM used in Hot-Add data copy migrations.
The controller validates SSH connectivity and required components on the referenced VM.
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: ProxyVMSpec defines the desired state of ProxyVM
properties:
vmName:
description: VMName is the display name of the Proxy VM in vCenter.
type: string
vmwareCredsRef:
description: VMwareCredsRef references the VMwareCreds used to locate
and connect to the Proxy VM.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
required:
- vmName
- vmwareCredsRef
type: object
status:
description: ProxyVMStatus defines the observed state of ProxyVM
properties:
attachedDiskCount:
description: |-
AttachedDiskCount is the number of source-snapshot disks currently attached
to this Proxy VM across all active Hot-Add migrations. Max 60.
type: integer
componentsVerified:
description: ComponentsVerified lists each required component and
whether it was found.
items:
description: ProxyVMComponentCheck records whether a required component
was found on the Proxy VM.
properties:
message:
description: Message provides detail for missing components.
type: string
name:
description: Name is the component name (e.g. "lsblk", "qemu-nbd",
"sshd").
type: string
present:
description: Present indicates whether the component was found
in PATH.
type: boolean
required:
- name
- present
type: object
type: array
ipAddress:
description: IPAddress is the IP address discovered from vCenter guest
info.
type: string
lastValidationTime:
description: LastValidationTime records when the last verification
completed.
format: date-time
type: string
validationMessage:
description: ValidationMessage contains a human-readable summary of
the last validation result.
type: string
validationStatus:
description: 'ValidationStatus is one of: Pending, Verifying, Ready,
VerificationFailed.'
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
@@ -3651,6 +3794,7 @@ rules:
- openstackcreds
- pcdclusters
- pcdhosts
- proxyvms
- rdmdisks
- rollingmigrationplans
- storagemappings
@@ -3681,6 +3825,7 @@ rules:
- openstackcreds/finalizers
- pcdclusters/finalizers
- pcdhosts/finalizers
- proxyvms/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers
- storagemappings/finalizers
@@ -3703,6 +3848,7 @@ rules:
- openstackcreds/status
- pcdclusters/status
- pcdhosts/status
- proxyvms/status
- rdmdisks/status
- rollingmigrationplans/status
- storagemappings/status
@@ -4680,17 +4826,6 @@ kind: ClusterRole
metadata:
name: ui-manager-role
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- delete
- get
- list
- patch
- update
- apiGroups:
- ""
resources:
@@ -4703,20 +4838,10 @@ rules:
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- patch
- apiGroups:
- ""
resources:
- configmaps/status
- pods/status
verbs:
- get
- apiGroups:
@@ -4727,13 +4852,6 @@ rules:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
@@ -4750,6 +4868,7 @@ rules:
- openstackcreds
- pcdclusters
- pcdhosts
- proxyvms
- rdmdisks
- rollingmigrationplans
- storagemappings
@@ -4782,6 +4901,7 @@ rules:
- openstackcreds/finalizers
- pcdclusters/finalizers
- pcdhosts/finalizers
- proxyvms/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers
- storagemappings/finalizers
+1 -1
View File
@@ -41,7 +41,7 @@ spec:
envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-controller:v0.4.5
image: quay.io/platform9/vjailbreak-controller:v0.4.6
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
+1 -1
View File
@@ -27,7 +27,7 @@ spec:
- envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-vpwned:v0.4.5
image: quay.io/platform9/vjailbreak-vpwned:v0.4.6
imagePullPolicy: IfNotPresent
name: vpwned
ports:
+1 -1
View File
@@ -24,7 +24,7 @@ spec:
serviceAccountName: ui-manager-sa
containers:
- name: vjailbreak-ui-container
image: quay.io/platform9/vjailbreak-ui:v0.4.5
image: quay.io/platform9/vjailbreak-ui:v0.4.6
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
+167 -47
View File
@@ -980,13 +980,6 @@ spec:
to remove VMware Tools post migration
type: boolean
type: object
assignedIPsPerVM:
additionalProperties:
type: string
description: |-
AssignedIPsPerVM is a map of VM names to comma-separated assigned IPs for cold migration
Format: {"vm-name": "IP1,IP2,IP3"} where each IP corresponds to a network interface by index
type: object
fallbackToDHCP:
type: boolean
firstBootScript:
@@ -1176,11 +1169,6 @@ spec:
spec:
description: Spec defines the desired state of Migration
properties:
assignedIP:
description: |-
AssignedIP is the comma-separated list of user-assigned IPs for cold migration
Format: "IP1,IP2,IP3" where each IP corresponds to a network interface by index
type: string
disconnectSourceNetwork:
description: |-
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
@@ -1304,6 +1292,11 @@ spec:
- MappingVolume
- RescanningStorage
- XCOPYInProgress
- SnapshottingSourceVM
- AttachingDisksToProxy
- IdentifyingBlockDevices
- HotAddTransferInProgress
- HotAddCleanup
type: string
retryable:
description: |-
@@ -1391,8 +1384,10 @@ spec:
- openstackRef
type: object
networkMapping:
description: NetworkMapping is the reference to the NetworkMapping
resource that defines source to destination network mappings
description: |-
NetworkMapping is the reference to the NetworkMapping resource that defines source to destination network mappings.
Optional: when the selected VMs have no attached VMware networks, no NetworkMapping is required and this field
may be empty. The controller will skip network reconciliation in that case.
type: string
osFamily:
description: OSFamily is the OS type of the virtual machine
@@ -1400,6 +1395,22 @@ spec:
- windowsGuest
- linuxGuest
type: string
proxyVMRef:
description: |-
ProxyVMRef references the ProxyVM to use for HotAdd data copy.
Required when StorageCopyMethod is "HotAdd".
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
source:
description: Source is the source details for the virtual machine
properties:
@@ -1414,10 +1425,11 @@ spec:
default: normal
description: |-
StorageCopyMethod indicates the method to use for storage migration
Valid values: "normal" (default), "StorageAcceleratedCopy"
Valid values: "normal" (default), "StorageAcceleratedCopy", "HotAdd"
enum:
- normal
- StorageAcceleratedCopy
- HotAdd
type: string
storageMapping:
description: |-
@@ -1442,7 +1454,6 @@ spec:
type: string
required:
- destination
- networkMapping
- source
type: object
type: object
@@ -2032,6 +2043,138 @@ spec:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: proxyvms.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ProxyVM
listKind: ProxyVMList
plural: proxyvms
singular: proxyvm
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.vmName
name: VM-Name
type: string
- jsonPath: .status.validationStatus
name: Status
type: string
- jsonPath: .status.ipAddress
name: IP
type: string
- jsonPath: .status.attachedDiskCount
name: Attached-Disks
type: integer
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ProxyVM is the Schema for a registered Proxy VM used in Hot-Add data copy migrations.
The controller validates SSH connectivity and required components on the referenced VM.
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: ProxyVMSpec defines the desired state of ProxyVM
properties:
vmName:
description: VMName is the display name of the Proxy VM in vCenter.
type: string
vmwareCredsRef:
description: VMwareCredsRef references the VMwareCreds used to locate
and connect to the Proxy VM.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
required:
- vmName
- vmwareCredsRef
type: object
status:
description: ProxyVMStatus defines the observed state of ProxyVM
properties:
attachedDiskCount:
description: |-
AttachedDiskCount is the number of source-snapshot disks currently attached
to this Proxy VM across all active Hot-Add migrations. Max 60.
type: integer
componentsVerified:
description: ComponentsVerified lists each required component and
whether it was found.
items:
description: ProxyVMComponentCheck records whether a required component
was found on the Proxy VM.
properties:
message:
description: Message provides detail for missing components.
type: string
name:
description: Name is the component name (e.g. "lsblk", "qemu-nbd",
"sshd").
type: string
present:
description: Present indicates whether the component was found
in PATH.
type: boolean
required:
- name
- present
type: object
type: array
ipAddress:
description: IPAddress is the IP address discovered from vCenter guest
info.
type: string
lastValidationTime:
description: LastValidationTime records when the last verification
completed.
format: date-time
type: string
validationMessage:
description: ValidationMessage contains a human-readable summary of
the last validation result.
type: string
validationStatus:
description: 'ValidationStatus is one of: Pending, Verifying, Ready,
VerificationFailed.'
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
@@ -3651,6 +3794,7 @@ rules:
- openstackcreds
- pcdclusters
- pcdhosts
- proxyvms
- rdmdisks
- rollingmigrationplans
- storagemappings
@@ -3681,6 +3825,7 @@ rules:
- openstackcreds/finalizers
- pcdclusters/finalizers
- pcdhosts/finalizers
- proxyvms/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers
- storagemappings/finalizers
@@ -3703,6 +3848,7 @@ rules:
- openstackcreds/status
- pcdclusters/status
- pcdhosts/status
- proxyvms/status
- rdmdisks/status
- rollingmigrationplans/status
- storagemappings/status
@@ -4592,7 +4738,7 @@ spec:
envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-controller:v0.4.5
image: quay.io/platform9/vjailbreak-controller:v0.4.6
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -4686,7 +4832,7 @@ spec:
- envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-vpwned:v0.4.5
image: quay.io/platform9/vjailbreak-vpwned:v0.4.6
imagePullPolicy: IfNotPresent
name: vpwned
ports:
@@ -4775,7 +4921,7 @@ spec:
serviceAccountName: ui-manager-sa
containers:
- name: vjailbreak-ui-container
image: quay.io/platform9/vjailbreak-ui:v0.4.5
image: quay.io/platform9/vjailbreak-ui:v0.4.6
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
@@ -4896,17 +5042,6 @@ kind: ClusterRole
metadata:
name: ui-manager-role
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- delete
- get
- list
- patch
- update
- apiGroups:
- ""
resources:
@@ -4919,20 +5054,10 @@ rules:
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- patch
- apiGroups:
- ""
resources:
- configmaps/status
- pods/status
verbs:
- get
- apiGroups:
@@ -4943,13 +5068,6 @@ rules:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
@@ -4966,6 +5084,7 @@ rules:
- openstackcreds
- pcdclusters
- pcdhosts
- proxyvms
- rdmdisks
- rollingmigrationplans
- storagemappings
@@ -4998,6 +5117,7 @@ rules:
- openstackcreds/finalizers
- pcdclusters/finalizers
- pcdhosts/finalizers
- proxyvms/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers
- storagemappings/finalizers