Compare commits

..
2 Commits
Author SHA1 Message Date
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
8 changed files with 384 additions and 228 deletions
+68 -180
View File
@@ -460,6 +460,8 @@ spec:
type: string type: string
type: array type: array
type: object 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
@@ -545,6 +547,10 @@ spec:
MigrationStatus is the status of the migration using Kubernetes PodPhase states MigrationStatus is the status of the migration using Kubernetes PodPhase states
(Pending, Running, Succeeded, Failed, Unknown) (Pending, Running, Succeeded, Failed, Unknown)
type: string type: string
retryCount:
description: Migration RetryCount is the number of times the migration
has been retried
type: integer
required: required:
- migrationMessage - migrationMessage
- migrationStatus - migrationStatus
@@ -1037,6 +1043,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
@@ -1340,7 +1349,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: |-
@@ -1386,10 +1395,6 @@ spec:
type: object type: object
volumeType: volumeType:
type: string type: string
required:
- cinderBackendPool
- source
- volumeType
type: object type: object
ownerVMs: ownerVMs:
items: items:
@@ -1401,7 +1406,6 @@ spec:
- diskName - diskName
- diskSize - diskSize
- displayName - displayName
- openstackVolumeRef
- ownerVMs - ownerVMs
- uuid - uuid
type: object type: object
@@ -2173,6 +2177,9 @@ spec:
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
vcenterHost:
description: VcenterHost is the vCenter host
type: string
required: required:
- datacenter - datacenter
type: object type: object
@@ -2399,42 +2406,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
Mapping (RDM) disk
properties:
diskName:
description: DiskName is the name of the disk
type: string 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
@@ -2671,8 +2643,11 @@ rules:
- "" - ""
resources: resources:
- configmaps - configmaps
- namespaces
- pods - pods
- secrets - secrets
- serviceaccounts
- services
verbs: verbs:
- create - create
- delete - delete
@@ -2698,6 +2673,13 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
@@ -2742,6 +2724,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:
@@ -3618,6 +3627,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:
@@ -3632,145 +3658,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.3
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.3
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:
@@ -3792,3 +3679,4 @@ spec:
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:
@@ -460,6 +460,8 @@ spec:
type: string type: string
type: array type: array
type: object 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
@@ -545,6 +547,10 @@ spec:
MigrationStatus is the status of the migration using Kubernetes PodPhase states MigrationStatus is the status of the migration using Kubernetes PodPhase states
(Pending, Running, Succeeded, Failed, Unknown) (Pending, Running, Succeeded, Failed, Unknown)
type: string type: string
retryCount:
description: Migration RetryCount is the number of times the migration
has been retried
type: integer
required: required:
- migrationMessage - migrationMessage
- migrationStatus - migrationStatus
@@ -1037,6 +1043,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
@@ -1340,7 +1349,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: |-
@@ -1386,10 +1395,6 @@ spec:
type: object type: object
volumeType: volumeType:
type: string type: string
required:
- cinderBackendPool
- source
- volumeType
type: object type: object
ownerVMs: ownerVMs:
items: items:
@@ -1401,7 +1406,6 @@ spec:
- diskName - diskName
- diskSize - diskSize
- displayName - displayName
- openstackVolumeRef
- ownerVMs - ownerVMs
- uuid - uuid
type: object type: object
@@ -2173,6 +2177,9 @@ spec:
type: string type: string
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
vcenterHost:
description: VcenterHost is the vCenter host
type: string
required: required:
- datacenter - datacenter
type: object type: object
@@ -2399,42 +2406,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
Mapping (RDM) disk
properties:
diskName:
description: DiskName is the name of the disk
type: string 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
@@ -2671,8 +2643,11 @@ rules:
- "" - ""
resources: resources:
- configmaps - configmaps
- namespaces
- pods - pods
- secrets - secrets
- serviceaccounts
- services
verbs: verbs:
- create - create
- delete - delete
@@ -2698,6 +2673,13 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
@@ -2742,6 +2724,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:
@@ -3618,6 +3627,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:
@@ -3632,6 +3658,150 @@ 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"
image: quay.io/platform9/vjailbreak-controller:v0.3.5
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.5
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:
@@ -3653,4 +3823,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
+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"
@@ -11,3 +11,9 @@ data:
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 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
DEPLOYMENT_NAME: vJailbreak
+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