Compare commits

...
6 Commits
Author SHA1 Message Date
OmkarDeshpande7 b1a4209926 Add release v0.3.8 2026-09-15 22:48:58 +05:30
OmkarDeshpande7 8d140beca7 Add release v0.3.7 2026-09-15 22:48:48 +05:30
OmkarDeshpande7 817b00fdc0 Add release v0.3.6 2026-09-15 22:48:38 +05:30
OmkarDeshpande7 16583b180f Add release v0.3.5 2026-09-15 22:48:28 +05:30
OmkarDeshpande7 610dd94bb9 Add release v0.3.4 2026-09-15 22:48:19 +05:30
OmkarDeshpande7 54158f60c9 Add release v0.3.3 2026-09-15 22:48:09 +05:30
12 changed files with 800 additions and 282 deletions
+173 -208
View File
@@ -459,7 +459,28 @@ spec:
items: items:
type: string type: string
type: array type: array
networkPersistence:
description: NetworkPersistence instructs the migration helper
to persist the source networking configuration
type: boolean
periodicSyncEnabled:
description: PeriodicSyncEnabled is a boolean to enable periodic
sync
type: boolean
periodicSyncInterval:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
type: object 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: firstBootScript:
default: echo "Add your startup script here!" default: echo "Add your startup script here!"
type: string type: string
@@ -513,18 +534,12 @@ spec:
suffix: suffix:
type: string type: string
type: object type: object
retry:
description: Retry the migration if it fails
type: boolean
securityGroups: securityGroups:
items: items:
type: string type: string
type: array type: array
useFlavorless: serverGroup:
description: |- type: string
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId for the VM should be set to a base flavor (e.g., a 0-0-x flavor).
type: boolean
virtualMachines: virtualMachines:
description: VirtualMachines is a list of virtual machines to be migrated description: VirtualMachines is a list of virtual machines to be migrated
items: items:
@@ -616,6 +631,11 @@ spec:
spec: spec:
description: Spec defines the desired state of Migration description: Spec defines the desired state of Migration
properties: 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: disconnectSourceNetwork:
description: |- description: |-
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
@@ -630,11 +650,6 @@ spec:
podRef: podRef:
description: PodRef is the name of the pod description: PodRef is the name of the pod
type: string type: string
useFlavorless:
description: |-
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId in the Migrate object should be set to the base flavor.
type: boolean
vmName: vmName:
description: VMName is the name of the VM getting migrated from VMWare description: VMName is the name of the VM getting migrated from VMWare
to Openstack to Openstack
@@ -703,6 +718,7 @@ spec:
enum: enum:
- Pending - Pending
- Validating - Validating
- ValidationFailed
- AwaitingDataCopyStart - AwaitingDataCopyStart
- CopyingBlocks - CopyingBlocks
- CopyingChangedBlocks - CopyingChangedBlocks
@@ -807,6 +823,14 @@ spec:
description: TargetPCDClusterName is the name of the PCD cluster where description: TargetPCDClusterName is the name of the PCD cluster where
the virtual machine will be migrated the virtual machine will be migrated
type: string type: string
useFlavorless:
description: UseFlavorless indicates if the migration should use flavorless
VM creation for PCD.
type: boolean
useGPUFlavor:
description: UseGPUFlavor indicates if the migration should filter
and use GPU-enabled flavors.
type: boolean
virtioWinDriver: virtioWinDriver:
description: VirtioWinDriver is the driver to be used for the virtual description: VirtioWinDriver is the driver to be used for the virtual
machine machine
@@ -983,6 +1007,15 @@ spec:
disk: disk:
description: Disk is the amount of root disk, measured in GB. description: Disk is the amount of root disk, measured in GB.
type: integer type: integer
extra_specs:
additionalProperties:
type: string
description: |-
Properties is a dictionary of the flavor’s extra-specs key-and-value
pairs. This will only be included if the user is allowed by policy to
index flavor extra_specs
New in version 2.61
type: object
id: id:
description: ID is the flavor's unique ID. description: ID is the flavor's unique ID.
type: string type: string
@@ -1007,6 +1040,7 @@ spec:
- OS-FLV-EXT-DATA:ephemeral - OS-FLV-EXT-DATA:ephemeral
- description - description
- disk - disk
- extra_specs
- id - id
- name - name
- os-flavor-access:is_public - os-flavor-access:is_public
@@ -1043,6 +1077,9 @@ spec:
type: string type: string
type: object type: object
type: array type: array
projectName:
description: ProjectName is the name of the project in openstack
type: string
secretRef: secretRef:
description: SecretRef is the reference to the Kubernetes secret holding description: SecretRef is the reference to the Kubernetes secret holding
OpenStack credentials OpenStack credentials
@@ -1115,6 +1152,25 @@ spec:
- requiresIdDisplay - requiresIdDisplay
type: object type: object
type: array type: array
serverGroups:
items:
description: ServerGroupInfo holds the server group name, ID,
and policy information
properties:
id:
type: string
members:
type: integer
name:
type: string
policy:
type: string
required:
- id
- name
- policy
type: object
type: array
volumeBackends: volumeBackends:
items: items:
type: string type: string
@@ -1346,7 +1402,7 @@ spec:
- name: v1alpha1 - name: v1alpha1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: RDMDisk is the Schema for the rdmdisks API. description: RDMDisk is the Schema for the RDMDisks API.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@@ -1392,10 +1448,6 @@ spec:
type: object type: object
volumeType: volumeType:
type: string type: string
required:
- cinderBackendPool
- source
- volumeType
type: object type: object
ownerVMs: ownerVMs:
items: items:
@@ -1407,7 +1459,6 @@ spec:
- diskName - diskName
- diskSize - diskSize
- displayName - displayName
- openstackVolumeRef
- ownerVMs - ownerVMs
- uuid - uuid
type: object type: object
@@ -1550,6 +1601,18 @@ spec:
items: items:
type: string type: string
type: array type: array
networkPersistence:
description: NetworkPersistence instructs the migration helper
to persist the source networking configuration
type: boolean
periodicSyncEnabled:
description: PeriodicSyncEnabled is a boolean to enable periodic
sync
type: boolean
periodicSyncInterval:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
type: object type: object
bmConfigRef: bmConfigRef:
description: BMConfigRef is the reference to the BMC credentials description: BMConfigRef is the reference to the BMC credentials
@@ -1699,14 +1762,6 @@ spec:
suffix: suffix:
type: string type: string
type: object type: object
retry:
description: Retry the migration if it fails
type: boolean
useFlavorless:
description: |-
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId for the VM should be set to a base flavor (e.g., a 0-0-x flavor).
type: boolean
vmMigrationPlans: vmMigrationPlans:
description: VMMigrationPlans is the reference to the VM migration description: VMMigrationPlans is the reference to the VM migration
plan plan
@@ -1987,6 +2042,18 @@ spec:
openstackImageID: openstackImageID:
description: OpenstackImageID is the image of the VM description: OpenstackImageID is the image of the VM
type: string type: string
openstackSecurityGroups:
description: |-
OpenstackSecurityGroups is the list of security groups for the VM
If empty, the security groups will be determined from the master node
items:
type: string
type: array
openstackVolumeType:
description: |-
OpenstackVolumeType is the volume type for the root disk of the VM
If empty, the volume type will be determined from the master node
type: string
required: required:
- nodeRole - nodeRole
- openstackCreds - openstackCreds
@@ -2184,8 +2251,9 @@ spec:
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
required: vcenterHost:
- datacenter description: VcenterHost is the vCenter host
type: string
type: object type: object
status: status:
description: VMwareCredsStatus defines the observed state of VMwareCreds description: VMwareCredsStatus defines the observed state of VMwareCreds
@@ -2347,6 +2415,19 @@ spec:
esxiName: esxiName:
description: ESXiName is the name of the ESXi host description: ESXiName is the name of the ESXi host
type: string type: string
gpu:
description: GPU contains information about GPU devices attached
to the VM
properties:
passthroughCount:
description: PassthroughCount is the number of PCI passthrough
GPU devices
type: integer
vgpuCount:
description: VGPUCount is the number of vGPU (shared GPU)
devices
type: integer
type: object
guestNetworks: guestNetworks:
description: GuestNetworks is the list of network interfaces for description: GuestNetworks is the list of network interfaces for
the virtual machine as reported by the guest the virtual machine as reported by the guest
@@ -2387,6 +2468,8 @@ spec:
description: NIC represents a Virtual ethernet card in the virtual description: NIC represents a Virtual ethernet card in the virtual
machine. machine.
properties: properties:
ipAddress:
type: string
mac: mac:
type: string type: string
network: network:
@@ -2408,42 +2491,7 @@ spec:
description: RDMDisks is the list of RDM disks for the virtual description: RDMDisks is the list of RDM disks for the virtual
machine machine
items: items:
description: RDMDiskInfo contains information about a Raw Device type: string
Mapping (RDM) disk
properties:
diskName:
description: DiskName is the name of the disk
type: string
diskSize:
description: DiskSize is the size of the disk in GB
format: int64
type: integer
displayName:
description: DisplayName is the display name of the disk
type: string
openstackVolumeRef:
description: OpenstackVolumeRef contains OpenStack volume
reference information
properties:
cinderBackendPool:
description: CinderBackendPool is the cinder backend
pool of the disk
type: string
volumeRef:
additionalProperties:
type: string
description: VolumeRef is the reference to the OpenStack
volume
type: object
volumeType:
description: VolumeType is the volume type of the disk
type: string
type: object
uuid:
description: UUID (VML id) is the unique identifier of the
disk
type: string
type: object
type: array type: array
vmState: vmState:
description: VMState is the state of the virtual machine description: VMState is the state of the virtual machine
@@ -2680,8 +2728,11 @@ rules:
- "" - ""
resources: resources:
- configmaps - configmaps
- namespaces
- pods - pods
- secrets - secrets
- serviceaccounts
- services
verbs: verbs:
- create - create
- delete - delete
@@ -2690,6 +2741,15 @@ rules:
- patch - patch
- update - update
- watch - watch
- apiGroups:
- ""
resources:
- configmaps/status
- pods/status
verbs:
- get
- patch
- update
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
@@ -2710,11 +2770,10 @@ rules:
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- pods/status - pods/log
verbs: verbs:
- get - get
- patch - list
- update
- apiGroups: - apiGroups:
- apiextensions.k8s.io - apiextensions.k8s.io
resources: resources:
@@ -2751,6 +2810,33 @@ rules:
- patch - patch
- update - update
- watch - watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- clusterroles
- rolebindings
- roles
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- vjailbreak.k8s.pf9.io - vjailbreak.k8s.pf9.io
resources: resources:
@@ -3627,6 +3713,23 @@ subjects:
name: migration-controller-manager name: migration-controller-manager
namespace: migration-system namespace: migration-system
--- ---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
name: migration-migration-controller-manager-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: migration-controller-manager
namespace: migration-system
---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
@@ -3641,145 +3744,6 @@ spec:
app: vpwned-sdk app: vpwned-sdk
type: ClusterIP type: ClusterIP
--- ---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
control-plane: controller-manager
name: migration-controller-manager
namespace: migration-system
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
control-plane: controller-manager
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
containers:
- args:
- --leader-elect=false
- --health-probe-bind-address=:8081
command:
- /manager
image: quay.io/platform9/vjailbreak-controller:v0.3.2
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- sleep 5
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
requests:
cpu: 200m
memory: 256Mi
volumeMounts:
- mountPath: /etc/pf9/k3s
name: master-token
- mountPath: /home/ubuntu
name: vddk
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true
securityContext:
runAsGroup: 0
runAsUser: 0
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /var/lib/rancher/k3s/server
type: Directory
name: master-token
- hostPath:
path: /home/ubuntu
type: Directory
name: vddk
- hostPath:
path: /etc/hosts
type: File
name: hosts-file
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: vpwned-sdk
name: migration-vpwned-sdk
namespace: migration-system
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: vpwned-sdk
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: vpwned-sdk
spec:
containers:
- image: quay.io/platform9/vjailbreak-vpwned:v0.3.2
imagePullPolicy: IfNotPresent
name: vpwned
ports:
- containerPort: 3001
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /etc/hosts
type: File
name: hosts-file
---
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
@@ -3800,4 +3764,5 @@ spec:
port: port:
number: 80 number: 80
path: /dev-api/sdk/(.*) path: /dev-api/sdk/(.*)
pathType: ImplementationSpecific pathType: ImplementationSpecific
---
+5
View File
@@ -20,6 +20,7 @@ spec:
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
ports: ports:
- containerPort: 80 - containerPort: 80
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
@@ -42,6 +43,8 @@ metadata:
namespace: migration-system namespace: migration-system
annotations: annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTP" nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec: spec:
ingressClassName: nginx ingressClassName: nginx
rules: rules:
@@ -64,6 +67,8 @@ metadata:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/rewrite-target: /$1 nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec: spec:
ingressClassName: nginx ingressClassName: nginx
rules: rules:
@@ -459,7 +459,28 @@ spec:
items: items:
type: string type: string
type: array type: array
networkPersistence:
description: NetworkPersistence instructs the migration helper
to persist the source networking configuration
type: boolean
periodicSyncEnabled:
description: PeriodicSyncEnabled is a boolean to enable periodic
sync
type: boolean
periodicSyncInterval:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
type: object 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: firstBootScript:
default: echo "Add your startup script here!" default: echo "Add your startup script here!"
type: string type: string
@@ -513,18 +534,12 @@ spec:
suffix: suffix:
type: string type: string
type: object type: object
retry:
description: Retry the migration if it fails
type: boolean
securityGroups: securityGroups:
items: items:
type: string type: string
type: array type: array
useFlavorless: serverGroup:
description: |- type: string
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId for the VM should be set to a base flavor (e.g., a 0-0-x flavor).
type: boolean
virtualMachines: virtualMachines:
description: VirtualMachines is a list of virtual machines to be migrated description: VirtualMachines is a list of virtual machines to be migrated
items: items:
@@ -616,6 +631,11 @@ spec:
spec: spec:
description: Spec defines the desired state of Migration description: Spec defines the desired state of Migration
properties: 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: disconnectSourceNetwork:
description: |- description: |-
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
@@ -630,11 +650,6 @@ spec:
podRef: podRef:
description: PodRef is the name of the pod description: PodRef is the name of the pod
type: string type: string
useFlavorless:
description: |-
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId in the Migrate object should be set to the base flavor.
type: boolean
vmName: vmName:
description: VMName is the name of the VM getting migrated from VMWare description: VMName is the name of the VM getting migrated from VMWare
to Openstack to Openstack
@@ -703,6 +718,7 @@ spec:
enum: enum:
- Pending - Pending
- Validating - Validating
- ValidationFailed
- AwaitingDataCopyStart - AwaitingDataCopyStart
- CopyingBlocks - CopyingBlocks
- CopyingChangedBlocks - CopyingChangedBlocks
@@ -807,6 +823,14 @@ spec:
description: TargetPCDClusterName is the name of the PCD cluster where description: TargetPCDClusterName is the name of the PCD cluster where
the virtual machine will be migrated the virtual machine will be migrated
type: string type: string
useFlavorless:
description: UseFlavorless indicates if the migration should use flavorless
VM creation for PCD.
type: boolean
useGPUFlavor:
description: UseGPUFlavor indicates if the migration should filter
and use GPU-enabled flavors.
type: boolean
virtioWinDriver: virtioWinDriver:
description: VirtioWinDriver is the driver to be used for the virtual description: VirtioWinDriver is the driver to be used for the virtual
machine machine
@@ -983,6 +1007,15 @@ spec:
disk: disk:
description: Disk is the amount of root disk, measured in GB. description: Disk is the amount of root disk, measured in GB.
type: integer type: integer
extra_specs:
additionalProperties:
type: string
description: |-
Properties is a dictionary of the flavor’s extra-specs key-and-value
pairs. This will only be included if the user is allowed by policy to
index flavor extra_specs
New in version 2.61
type: object
id: id:
description: ID is the flavor's unique ID. description: ID is the flavor's unique ID.
type: string type: string
@@ -1007,6 +1040,7 @@ spec:
- OS-FLV-EXT-DATA:ephemeral - OS-FLV-EXT-DATA:ephemeral
- description - description
- disk - disk
- extra_specs
- id - id
- name - name
- os-flavor-access:is_public - os-flavor-access:is_public
@@ -1043,6 +1077,9 @@ spec:
type: string type: string
type: object type: object
type: array type: array
projectName:
description: ProjectName is the name of the project in openstack
type: string
secretRef: secretRef:
description: SecretRef is the reference to the Kubernetes secret holding description: SecretRef is the reference to the Kubernetes secret holding
OpenStack credentials OpenStack credentials
@@ -1115,6 +1152,25 @@ spec:
- requiresIdDisplay - requiresIdDisplay
type: object type: object
type: array type: array
serverGroups:
items:
description: ServerGroupInfo holds the server group name, ID,
and policy information
properties:
id:
type: string
members:
type: integer
name:
type: string
policy:
type: string
required:
- id
- name
- policy
type: object
type: array
volumeBackends: volumeBackends:
items: items:
type: string type: string
@@ -1346,7 +1402,7 @@ spec:
- name: v1alpha1 - name: v1alpha1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: RDMDisk is the Schema for the rdmdisks API. description: RDMDisk is the Schema for the RDMDisks API.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@@ -1392,10 +1448,6 @@ spec:
type: object type: object
volumeType: volumeType:
type: string type: string
required:
- cinderBackendPool
- source
- volumeType
type: object type: object
ownerVMs: ownerVMs:
items: items:
@@ -1407,7 +1459,6 @@ spec:
- diskName - diskName
- diskSize - diskSize
- displayName - displayName
- openstackVolumeRef
- ownerVMs - ownerVMs
- uuid - uuid
type: object type: object
@@ -1550,6 +1601,18 @@ spec:
items: items:
type: string type: string
type: array type: array
networkPersistence:
description: NetworkPersistence instructs the migration helper
to persist the source networking configuration
type: boolean
periodicSyncEnabled:
description: PeriodicSyncEnabled is a boolean to enable periodic
sync
type: boolean
periodicSyncInterval:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
type: object type: object
bmConfigRef: bmConfigRef:
description: BMConfigRef is the reference to the BMC credentials description: BMConfigRef is the reference to the BMC credentials
@@ -1699,14 +1762,6 @@ spec:
suffix: suffix:
type: string type: string
type: object type: object
retry:
description: Retry the migration if it fails
type: boolean
useFlavorless:
description: |-
UseFlavorless indicates if the migration should use flavorless VM creation for PCD.
When true, TargetFlavorId for the VM should be set to a base flavor (e.g., a 0-0-x flavor).
type: boolean
vmMigrationPlans: vmMigrationPlans:
description: VMMigrationPlans is the reference to the VM migration description: VMMigrationPlans is the reference to the VM migration
plan plan
@@ -1987,6 +2042,18 @@ spec:
openstackImageID: openstackImageID:
description: OpenstackImageID is the image of the VM description: OpenstackImageID is the image of the VM
type: string type: string
openstackSecurityGroups:
description: |-
OpenstackSecurityGroups is the list of security groups for the VM
If empty, the security groups will be determined from the master node
items:
type: string
type: array
openstackVolumeType:
description: |-
OpenstackVolumeType is the volume type for the root disk of the VM
If empty, the volume type will be determined from the master node
type: string
required: required:
- nodeRole - nodeRole
- openstackCreds - openstackCreds
@@ -2184,8 +2251,9 @@ spec:
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
required: vcenterHost:
- datacenter description: VcenterHost is the vCenter host
type: string
type: object type: object
status: status:
description: VMwareCredsStatus defines the observed state of VMwareCreds description: VMwareCredsStatus defines the observed state of VMwareCreds
@@ -2347,6 +2415,19 @@ spec:
esxiName: esxiName:
description: ESXiName is the name of the ESXi host description: ESXiName is the name of the ESXi host
type: string type: string
gpu:
description: GPU contains information about GPU devices attached
to the VM
properties:
passthroughCount:
description: PassthroughCount is the number of PCI passthrough
GPU devices
type: integer
vgpuCount:
description: VGPUCount is the number of vGPU (shared GPU)
devices
type: integer
type: object
guestNetworks: guestNetworks:
description: GuestNetworks is the list of network interfaces for description: GuestNetworks is the list of network interfaces for
the virtual machine as reported by the guest the virtual machine as reported by the guest
@@ -2387,6 +2468,8 @@ spec:
description: NIC represents a Virtual ethernet card in the virtual description: NIC represents a Virtual ethernet card in the virtual
machine. machine.
properties: properties:
ipAddress:
type: string
mac: mac:
type: string type: string
network: network:
@@ -2408,42 +2491,7 @@ spec:
description: RDMDisks is the list of RDM disks for the virtual description: RDMDisks is the list of RDM disks for the virtual
machine machine
items: items:
description: RDMDiskInfo contains information about a Raw Device type: string
Mapping (RDM) disk
properties:
diskName:
description: DiskName is the name of the disk
type: string
diskSize:
description: DiskSize is the size of the disk in GB
format: int64
type: integer
displayName:
description: DisplayName is the display name of the disk
type: string
openstackVolumeRef:
description: OpenstackVolumeRef contains OpenStack volume
reference information
properties:
cinderBackendPool:
description: CinderBackendPool is the cinder backend
pool of the disk
type: string
volumeRef:
additionalProperties:
type: string
description: VolumeRef is the reference to the OpenStack
volume
type: object
volumeType:
description: VolumeType is the volume type of the disk
type: string
type: object
uuid:
description: UUID (VML id) is the unique identifier of the
disk
type: string
type: object
type: array type: array
vmState: vmState:
description: VMState is the state of the virtual machine description: VMState is the state of the virtual machine
@@ -2680,8 +2728,11 @@ rules:
- "" - ""
resources: resources:
- configmaps - configmaps
- namespaces
- pods - pods
- secrets - secrets
- serviceaccounts
- services
verbs: verbs:
- create - create
- delete - delete
@@ -2690,6 +2741,15 @@ rules:
- patch - patch
- update - update
- watch - watch
- apiGroups:
- ""
resources:
- configmaps/status
- pods/status
verbs:
- get
- patch
- update
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
@@ -2710,11 +2770,10 @@ rules:
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- pods/status - pods/log
verbs: verbs:
- get - get
- patch - list
- update
- apiGroups: - apiGroups:
- apiextensions.k8s.io - apiextensions.k8s.io
resources: resources:
@@ -2751,6 +2810,33 @@ rules:
- patch - patch
- update - update
- watch - watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
- clusterroles
- rolebindings
- roles
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- vjailbreak.k8s.pf9.io - vjailbreak.k8s.pf9.io
resources: resources:
@@ -3627,6 +3713,23 @@ subjects:
name: migration-controller-manager name: migration-controller-manager
namespace: migration-system namespace: migration-system
--- ---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: rbac
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
name: migration-migration-controller-manager-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: migration-controller-manager
namespace: migration-system
---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
@@ -3641,6 +3744,156 @@ spec:
app: vpwned-sdk app: vpwned-sdk
type: ClusterIP type: ClusterIP
--- ---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
control-plane: controller-manager
name: migration-controller-manager
namespace: migration-system
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
strategy:
type: Recreate
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
control-plane: controller-manager
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
containers:
- args:
- --leader-elect=false
- --health-probe-bind-address=:8081
command:
- /manager
env:
- name: MAX_CONCURRENT_RECONCILES
value: "5"
envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-controller:v0.3.8
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- sleep 5
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
requests:
cpu: 200m
memory: 256Mi
volumeMounts:
- mountPath: /etc/pf9/k3s
name: master-token
- mountPath: /home/ubuntu
name: vddk
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true
securityContext:
runAsGroup: 0
runAsUser: 0
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /var/lib/rancher/k3s/server
type: Directory
name: master-token
- hostPath:
path: /home/ubuntu
type: Directory
name: vddk
- hostPath:
path: /etc/hosts
type: File
name: hosts-file
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: vpwned-sdk
name: migration-vpwned-sdk
namespace: migration-system
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: vpwned-sdk
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: vpwned-sdk
spec:
containers:
- envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-vpwned:v0.3.8
imagePullPolicy: IfNotPresent
name: vpwned
ports:
- containerPort: 3001
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /etc/hosts
type: File
name: hosts-file
---
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
@@ -3662,4 +3915,3 @@ spec:
number: 80 number: 80
path: /dev-api/sdk/(.*) path: /dev-api/sdk/(.*)
pathType: ImplementationSpecific pathType: ImplementationSpecific
---
+2 -2
View File
@@ -103,8 +103,8 @@ spec:
echo "Syncing from rsync://${MASTER_IP}" echo "Syncing from rsync://${MASTER_IP}"
rsync -avz rsync://${MASTER_IP}/vmwarelib/ /home/ubuntu/vmware-vix-disklib-distrib/ rsync -avz rsync://${MASTER_IP}/vmwarelib/ /home/ubuntu/vmware-vix-disklib-distrib/
# Sync logs from worker to master (with delete flag to sync deletions too) # Sync logs from worker to master
rsync -avz --delete /var/log/pf9 rsync://${MASTER_IP}/worker-logs rsync -avz /var/log/pf9 rsync://${MASTER_IP}/worker-logs
# Sync virtio-win drivers from master to worker # Sync virtio-win drivers from master to worker
rsync -avz rsync://${MASTER_IP}/virtio-win /home/ubuntu/virtio-win rsync -avz rsync://${MASTER_IP}/virtio-win /home/ubuntu/virtio-win
+2 -1
View File
@@ -1,3 +1,4 @@
export IS_MASTER=true export IS_MASTER=true
export MASTER_IP= export MASTER_IP=
export K3S_TOKEN= export K3S_TOKEN=
export INSTALL_K3S_EXEC="server --secrets-encryption"
+15 -2
View File
@@ -5,9 +5,22 @@ metadata:
namespace: migration-system namespace: migration-system
data: data:
CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks
PERIODIC_SYNC_INTERVAL: "1h" # interval to sync vCenter VMs
VM_ACTIVE_WAIT_INTERVAL_SECONDS: "20" # interval to wait for vm to become active VM_ACTIVE_WAIT_INTERVAL_SECONDS: "20" # interval to wait for vm to become active
VM_ACTIVE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for vm to become active VM_ACTIVE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for vm to become active
DEFAULT_MIGRATION_METHOD: "hot" # supported value hot/cold, (This setting is not used as of now. To be used by UI) DEFAULT_MIGRATION_METHOD: "cold" # supported value hot/cold, (This setting is not used as of now. To be used by UI)
VCENTER_SCAN_CONCURRENCY_LIMIT: "10" # max number of vms to scan at the same time VCENTER_SCAN_CONCURRENCY_LIMIT: "10" # max number of vms to scan at the same time
CLEANUP_VOLUMES_AFTER_CONVERT_FAILURE: "false" # cleanup volumes after disk convert failure CLEANUP_VOLUMES_AFTER_CONVERT_FAILURE: "false" # cleanup volumes after disk convert failure
POPULATE_VMWARE_MACHINE_FLAVORS: "true" # automatically populate VMwareMachine objects with OpenStack flavors CLEANUP_PORTS_AFTER_MIGRATION_FAILURE: "false" # cleanup ports after migration failure
POPULATE_VMWARE_MACHINE_FLAVORS: "true" # automatically populate VMwareMachine objects with OpenStack flavors
VOLUME_AVAILABLE_WAIT_INTERVAL_SECONDS: "10" # interval to wait for volume to become available
VOLUME_AVAILABLE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for volume to become available
VCENTER_LOGIN_RETRY_LIMIT: "5" # number of retries for vcenter login
OPENSTACK_CREDS_REQUEUE_AFTER_MINUTES: "60" # number of minutes to requeue after for openstack creds
VMWARE_CREDS_REQUEUE_AFTER_MINUTES: "60" # number of minutes to requeue after for vmware creds
VALIDATE_RDM_OWNER_VMS: "true" # validate RDM owner VMs before migration
DEPLOYMENT_NAME: vJailbreak
PERIODIC_SYNC_MAX_RETRIES: "3" # max number of retries for CBT sync
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
+22
View File
@@ -0,0 +1,22 @@
# v0.3.3
- **Tag:** `v0.3.3`
- **Published:** 2025-09-04T12:15:48Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.3
## Release Notes
## What's Changed
* Fixed artifacts availability check by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/851
* fill networks based on network devices by @spai-p9 in https://github.com/platform9/vjailbreak/pull/846
* equate mac id case insensitive by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/857
* get bootable index for windows LDM by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/855
* Added MAX Keys to hotplug metadata and made it specific to PCD by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/860
* UI and backend for multiple ip by @spai-p9 in https://github.com/platform9/vjailbreak/pull/833
* Fix admin cutover by @spai-p9 in https://github.com/platform9/vjailbreak/pull/862
* locked versions for nbdkit by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/865
* fetch rpm from main by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/870
* Fixed the os assigment in the migration form by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/867
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.2...v0.3.3
+32
View File
@@ -0,0 +1,32 @@
# v0.3.4
- **Tag:** `v0.3.4`
- **Published:** 2025-09-16T13:29:31Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.4
## Release Notes
## What's Changed
* volume wait interval through settings by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/872
* logs all openstack calls that we make by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/873
* admin cut over poweroff sequence prevent user error by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/874
* Added cronjob to fetch for latest release and notify in UI by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/882
* bugfix: Add logic to assign IP from network interfaces if not already… by @rishabh625 in https://github.com/platform9/vjailbreak/pull/895
* create openstack ports before copy by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/879
* Admin cutover improve the pod label watch function by @spai-p9 in https://github.com/platform9/vjailbreak/pull/881
* remove --delete to not purge each others logs in master by @spai-p9 in https://github.com/platform9/vjailbreak/pull/904
* Advance option in UI to ask for fallback to DHCP if static IP assignment fails by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/906
* block on channel send to ensure initial label delivery by @spai-p9 in https://github.com/platform9/vjailbreak/pull/900
* Support for shared pRDM disk migration in vJailbreak, including all necessary controller changes and validation through testing with clustered Windows VMs using RDM disks by @rishabh625 in https://github.com/platform9/vjailbreak/pull/858
* Optimize OpenstackCreds reconciliation for scalability by @spai-p9 in https://github.com/platform9/vjailbreak/pull/908
* Change implementation from select to normal blocking channel. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/917
* bugfix: Add check for RDM disks in VM migration validation by @rishabh625 in https://github.com/platform9/vjailbreak/pull/915
* Added option in UI to retry Failed migrations by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/918
* changed MAAS to Bare-metal by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/916
* Added static RPMs and versionlocked in dnf by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/921
* Add SELinux for nbdkit by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/923
* vmdataexporter cli arg validation by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/884
* Fixed fonts inconsistency in vJailbreak UI by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/898
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.3...v0.3.4
+55
View File
@@ -0,0 +1,55 @@
# v0.3.5
- **Tag:** `v0.3.5`
- **Published:** 2025-10-17T10:14:05Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.5
## Release Notes
## What's Changed
* Cache OpenStack instance metadata for performance and reliability by @spai-p9 in https://github.com/platform9/vjailbreak/pull/913
* disabled upgrade button while migrations are in progress by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/934
* disabled docs update workflow to run on release event by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/935
* Updated CRD Upgrade logic with missing permissions by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/933
* Bugfix: Added vmwaresession logged out, after retrieving data from vmware by @rishabh625 in https://github.com/platform9/vjailbreak/pull/939
* Changed description of a advanced option - Fallback to DHCP by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/948
* feat: View Migration pod logs from UI by @rishabh625 in https://github.com/platform9/vjailbreak/pull/942
* Add support to display rdm disk and populate rdm disk details in UI by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/926
* Refactor : VMwareMachine retrieval and validation in migration plan reconciliation by @rishabh625 in https://github.com/platform9/vjailbreak/pull/947
* Custom header for a vjailbreak deployment through configmap by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/958
* add creds requeue config to vjailbreak settings by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/965
* feat: Implement RDM disks validation and query integration in migration workflow by @rishabh625 in https://github.com/platform9/vjailbreak/pull/963
* feat: Set owner reference for RDM disks to ensure proper deletion with VMwareCreds by @rishabh625 in https://github.com/platform9/vjailbreak/pull/967
* feat: Enhance RDM validation to include configuration checks and improve error messaging by @rishabh625 in https://github.com/platform9/vjailbreak/pull/972
* fix: Update RDM disk migration retry logic and error handling by @rishabh625 in https://github.com/platform9/vjailbreak/pull/970
* Add a default password for Ubuntu user that needs to be changed on first boot by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/976
* List udev/fstab rules to preserve device mapping after migrations by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/905
* Disable selection of older date and time while scheduling cutover by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/960
* tls: remove cert trust logic, rely on OS_INSECURE for skipping verification by @jessicaralhan in https://github.com/platform9/vjailbreak/pull/863
* change controller rollout policy to re-create by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/979
* Fixed the bug where the script was not passed to the backend + update… by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/980
* feat: Enhance RDM disk info population by validating disk name before updating volume reference by @rishabh625 in https://github.com/platform9/vjailbreak/pull/984
* disabled log icon in ui (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/986
* disabled rdm config in UI (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/987
* enable k3s encryption at rest by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/990
* Added htpasswd based authentification for ui by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/994
* cache cred info for UI by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/996
* Removed secrets GET calls from UI by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/995
* Added command line utility to change and manage the user credentials for UI by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1002
* bugfix: add limit to log streaming - limit number of bytes by @rishabh625 in https://github.com/platform9/vjailbreak/pull/988
* Implemented automated HTTPS with Cert-Manager (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1005
* removed nonce from CSP by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1006
* Vjbctl - utility to add and manage users by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1003
* Vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1010
* cronjob fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1013
* Add host entries to migration-vpwned-ingress by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1015
* Implemented HTTPS with Cert-Manager by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1021
* Updated default username from ubuntu to admin by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1023
* added --no-restart to the utility to vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1024
* fixed count of selected vm by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1022
* Custom title on browser tab for each vjailbreak VM deployment by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1026
## New Contributors
* @meghansh-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/958
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.4...v0.3.5
+89
View File
@@ -0,0 +1,89 @@
# v0.3.6
- **Tag:** `v0.3.6`
- **Published:** 2025-12-01T16:12:37Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.6
## Release Notes
## What's Changed
* fix - Migration only takes the first subnet while creating the ports by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1019
* Bugfix: sync annotation from VMware to RDM disk openstack volume reference if changed by @rishabh625 in https://github.com/platform9/vjailbreak/pull/993
* Added vjailbreak-settings ConfigMap and implement RDM owner VM validation toggle by @rishabh625 in https://github.com/platform9/vjailbreak/pull/953
* bugfix: previous PR introduced a issue where importToCinder was not g… by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1033
* Fix - blocking port creation if dhcp is selected but VM doesn't have a valid IP by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1047
* Version Checker Cronjob exits gracefully in air-gapped environments by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1045
* enabled rdm configuration button by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1041
* bugfix: fix ImportToCinder to true from migrationplan controller by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1038
* Added filter on migrations based on current status and current creation time by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/944
* Blocked migration of VM having unknown OS by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/1042
* Skip CopyingChagedBlocks phase when migration type is cold by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1055
* fix: changing from patch to update while modifying importToCinder fieeld of RDM CR, adding idempotent guard and retry on conflict.. by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1054
* delete firstboot configmap when migration is deleted by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1071
* Sv/issue 920/enhancements log collector bundle by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1063
* added FQDN tooltip for better user guidance by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1069
* bugfix: Handle VMware login failures gracefully without requeuing by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1061
* Admin Cutover Periodic sync by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1056
* fix - Delay in password expiration after creating the vjailbreak vm upon first login by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1076
* Implement VM OS type validation in migration plan (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1044
* Cluster-Based VM Filtering in Migration Form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/964
* fix(airgap): Pre-bake cert-manager images by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1087
* Show tenant name in openstack cluster name by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1085
* Handle inconsistent types in Host API response by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1099
* Separate Periodic Sync Interval Configuration for different migrations by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1083
* Add DeepWiki badge to README by @roopakparikh in https://github.com/platform9/vjailbreak/pull/1107
* Fix: Display RDM disk sizes correctly for disks smaller than 1 GB by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1090
* fix: issue-1073 Removing password log and replacing with "REDACTED" echo by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1064
* #1067 :: Remove unnecessary get migration calls on UI by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1103
* Added Pre-migration check to see if port is available before migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1115
* Fix: Prevent race condition in RDMDisk controller causing duplicate Cinder volume imports by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1086
* [UI] Need a Global settings page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1114
* Remove race condition in credential deletion flow by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1116
* Removed retry on failure checkbox by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1118
* Added powershell scripts for firstboot by @amar-chand in https://github.com/platform9/vjailbreak/pull/945
* mark migrationplan as successful if there are no VMs to migrate by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1123
* fix deleted creds used in migrationtemplate and migrationplan by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1127
* Resolve race condition and remove RDM sleep delay by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1125
* Added Retry Mechanism in Periodic Sync by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1080
* 1017 assigned ip for all vms removed if we select os of one of the vms post assigning ip by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1128
* Added a new option to enter Periodic Sync interval by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1126
* add proxy env set by user in controller as well by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1135
* do not wait for status after sumitting migrationform by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1132
* Fix - User should not be able to submit migration if OS is not selected during cold migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1136
* powering on of cold migration vms fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1131
* #1104 :: Bug :: Filter box for tenant search is going out of focus by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1138
* #989 :: Bug :: VM search box is going out of focus on start migration page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1141
* Implemented wait for RDM disks availability by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1142
* fix - Periodic sync values are not being populated in the migration ConfigMap, causing periodic sync to be skipped by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1148
* fix - Vm with multiple IPs on same MAC address (Tried with 2 IPs) are not getting 2nd IP on interface post migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1034
* Added an enhancement to revalidate the creds whenever required by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1113
* Added podfailed status check and reordered validation logic by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1151
* #1137 :: Bug :: OpenStack “Validate IP” does not fail gracefully when receiving a 500 (Internal Server Error) response by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1147
* #1144,#1145 :: periodic sync interval should not be a mandatory field on the migration form page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1152
* find the correct boot device without guestfish by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1133
* Pass user-assigned IPs through MigrationPlan for cold migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1153
* #864 :: Fixed multiple IP reset on OS selection by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1156
* #1154 :: Convert the global settings page to a tabular format by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1162
* Fetch resources post revalidation of credentials by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1161
* Fix: Use proxy from ENV for creating net/http clients by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1159
* added edge cases for blocking plan to reconcile by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1163
* bugfix: Add empty check by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1166
* fix: #903 Using format() with timezone offset instead of ISOString() for a… by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1171
* Add envFrom configmap and have logs in validate IP endpoint by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1172
* #1129 :: Remove duplicate error text on credential creation failure by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1174
* Format UI directory with prettier by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1170
* Removed duplicate options in migration form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1177
* #1175 :: Periodic sync validation requires clicking outside the input box before the Start button becomes enabled/disabled, which leads to start migration enabled even with wrong value sometimes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1179
* In advanced option validation check only for granularoptions ignore rest by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1183
* Fix sdk while adding logs and other details by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1178
* Added check to fallback to 5m if interval is less than 5m by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1187
* #1181 :: UI: Move to folder cannot use anyother name, when clearing the vjailbreakedVMs it appears again by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1186
* #1192 :: Bug: Migration Submit button is disabled when triggering admin cutover with periodic sync by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1197
* Inject log_collector.sh into the VM by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1194
* fix netplan upload for multi-disk VM by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1195
* Update revalidation status correctly by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1205
## New Contributors
* @rijojohn85 made their first contribution in https://github.com/platform9/vjailbreak/pull/1061
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.5...v0.3.6
+47
View File
@@ -0,0 +1,47 @@
# v0.3.7
- **Tag:** `v0.3.7`
- **Published:** 2025-12-19T12:08:24Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.7
## Release Notes
## What's Changed
* fix - Periodic Sync Migration Fails on Transient Network Errors Instead of Retrying by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1204
* Prebaked Openstack Cli inside the vjailbreak VM by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1211
* fix - Migration controller logs are being flooded by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1212
* #1202 :: Bug :: Single migrationtemplate object should be created for one migrationplan (Use Dynamic Hotplug-Enabled Flavors is the advance option making post calls) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1215
* #1140 :: Enhancement :: Allow user input for IP's for any VM being migrated by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1217
* Added migration pod and controller logs in the UI by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1214
* #1040 :: Bug :: UI should block migration of VM having unknown OS (Should provide an option to select OS) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1222
* Backend implementation for ability to add server group to the VMs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1219
* Frontend for selecting server group during migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1220
* [Fix] added APIReader to get RDM by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1149
* cluster conversion fixes for static esx IPs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1203
* fix - Password set in cloud init is not being reflected by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1226
* add more aggressive cleaning in v2v-helper by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1235
* support gpu flavours by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1233
* Show correct time elapsed during migration on ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1237
* Removed fstrim by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1143
* Reduced log verbosity for disk copy by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1249
* Disable 'Apply Changes' button when ip has invalid format by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1251
* fix - Can't assign dhcp IP to the migrated instance by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1234
* Fix migration timeout for multi-attach RDM volumes by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1247
* add setting to delete port after migration failure by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1255
* reflect current default migration method in migration form by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1257
* Fix batch script to properly write self-delete logic to the generated startup script by @Track2k in https://github.com/platform9/vjailbreak/pull/1213
* add UI option to automatically run script to fix fstab entries during migration by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1258
* feat: add a net pacakge with unit test cases by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1160
* Added script to check disks status in Windows post-migration by @amar-chand in https://github.com/platform9/vjailbreak/pull/1167
* fix agents tenant and security groups by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1260
* fix multiple migration succeeded events in amplitude by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1262
* fix - Migration fails when port already exist on pcd side (DHCP=true) by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1279
* Setting up the default password for the agent nodes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1281
* Fixed default migration-method to cold and map with global settings by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1284
* Updating CRDs for release by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1285
* Populate metadata in extra specs in openstack creds by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1286
## New Contributors
* @Track2k made their first contribution in https://github.com/platform9/vjailbreak/pull/1213
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.6...v0.3.7
+37
View File
@@ -0,0 +1,37 @@
# v0.3.8
- **Tag:** `v0.3.8`
- **Published:** 2026-01-07T08:27:41Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.8
## Release Notes
## What's Changed
* Implement Session Timeout (18 hours inactivity) for UI by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1264
* install vjbctl binary system wide by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1269
* Make datacenter field as an optional entry in vmware creds form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1256
* #1227, #1224 :: Create a Common Component Library for Consistent UI Across the Application by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1297
* support additional machine states, optional set to PXE boot by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1301
* fix - Agent Node not prompting to change password by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1310
* fix errored agent nodes deletion from PCD by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1303
* Added script to preserve network interfaces by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1304
* #1299 :: New UI – Issues and Required Fixes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1313
* Added advanced option in UI to select if the user wants to persist network interfaces by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1314
* add script to check and bring the offline volumes online by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1309
* Added a new state to show migrationplan validation failure in ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1298
* fix - logs for persistance script showing errors by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1317
* Add endpoint to take proxy variable, update the cm and restart controller. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1316
* Fix logs UI and updated CRDs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1320
* #1294 :: UI add proxy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1322
* #1294 :: UI: Add proxy with separate Http, Https field by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1325
* added validationFailed to stop time elapsed by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1328
* Refactored network persistance script by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1327
* #1331 :: Show warning message on UI after saving proxy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1332
* no_proxy default values by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1335
* Fixed migrationplan status based on all edge cases (combination of validationFailed, failed, suceeded, inprogress) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1333
* Fix - Network persistence not working for older versions of ubuntu by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1338
* Vmware tools fix by @amar-chand in https://github.com/platform9/vjailbreak/pull/1267
* fix - Interfaces with no ip for ubuntu older versions getting default ip by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1340
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.7...v0.3.8