Compare commits

...
3 Commits
Author SHA1 Message Date
OmkarDeshpande7 54158f60c9 Add release v0.3.3 2026-09-15 22:48:09 +05:30
OmkarDeshpande7 0d3c530d6d Add release v0.3.2 2026-09-15 22:48:00 +05:30
OmkarDeshpande7 4542ee3fcd Add release v0.3.1 2026-09-15 22:47:51 +05:30
9 changed files with 4055 additions and 11 deletions
+278 -2
View File
@@ -797,6 +797,10 @@ 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
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
@@ -1090,7 +1094,20 @@ spec:
type: array type: array
securityGroups: securityGroups:
items: items:
description: SecurityGroupInfo holds the security group name
and ID
properties:
id:
type: string type: string
name:
type: string
requiresIdDisplay:
type: boolean
required:
- id
- name
- requiresIdDisplay
type: object
type: array type: array
volumeBackends: volumeBackends:
items: items:
@@ -1307,6 +1324,164 @@ spec:
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: rdmdisks.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: RDMDisk
listKind: RDMDiskList
plural: rdmdisks
singular: rdmdisk
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: RDMDisk is the Schema for the rdmdisks API.
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: Spec defines the desired state of RDMDisk
properties:
diskName:
description: 'Important: Run "make" to regenerate code after modifying
this file'
type: string
diskSize:
type: integer
displayName:
type: string
importToCinder:
type: boolean
openstackVolumeRef:
description: OpenstackVolumeRef ... contains information about the
OpenStack volume reference.
properties:
cinderBackendPool:
type: string
openstackCreds:
type: string
source:
additionalProperties:
type: string
type: object
volumeType:
type: string
required:
- cinderBackendPool
- source
- volumeType
type: object
ownerVMs:
items:
type: string
type: array
uuid:
type: string
required:
- diskName
- diskSize
- displayName
- openstackVolumeRef
- ownerVMs
- uuid
type: object
status:
description: RDMDiskStatus defines the observed state of RDMDisk.
properties:
cinderVolumeID:
type: string
conditions:
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
phase:
enum:
- Available
- Managing
- Managed
- Error
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.17.1 controller-gen.kubebuilder.io/version: v0.17.1
@@ -2201,6 +2376,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:
@@ -2529,6 +2706,30 @@ rules:
- get - get
- patch - patch
- update - update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apps
resources:
- deployments
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- batch - batch
resources: resources:
@@ -2554,6 +2755,7 @@ rules:
- openstackcreds - openstackcreds
- pcdclusters - pcdclusters
- pcdhosts - pcdhosts
- rdmdisks
- rollingmigrationplans - rollingmigrationplans
- storagemappings - storagemappings
- vjailbreaknodes - vjailbreaknodes
@@ -2581,6 +2783,7 @@ rules:
- openstackcreds/finalizers - openstackcreds/finalizers
- pcdclusters/finalizers - pcdclusters/finalizers
- pcdhosts/finalizers - pcdhosts/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers - rollingmigrationplans/finalizers
- storagemappings/finalizers - storagemappings/finalizers
- vjailbreaknodes/finalizers - vjailbreaknodes/finalizers
@@ -2600,6 +2803,7 @@ rules:
- openstackcreds/status - openstackcreds/status
- pcdclusters/status - pcdclusters/status
- pcdhosts/status - pcdhosts/status
- rdmdisks/status
- rollingmigrationplans/status - rollingmigrationplans/status
- storagemappings/status - storagemappings/status
- vjailbreaknodes/status - vjailbreaknodes/status
@@ -2962,6 +3166,77 @@ rules:
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
metadata:
labels:
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
name: migration-rdmdisk-admin-role
rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks
verbs:
- '*'
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks/status
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
name: migration-rdmdisk-editor-role
rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks/status
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: migration
name: migration-rdmdisk-viewer-role
rules:
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks
verbs:
- get
- list
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- rdmdisks/status
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata: metadata:
labels: labels:
app.kubernetes.io/managed-by: kustomize app.kubernetes.io/managed-by: kustomize
@@ -3391,7 +3666,7 @@ spec:
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
command: command:
- /manager - /manager
image: quay.io/platform9/vjailbreak-controller:v0.3.0 image: quay.io/platform9/vjailbreak-controller:v0.3.3
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
lifecycle: lifecycle:
preStop: preStop:
@@ -3471,7 +3746,7 @@ spec:
app: vpwned-sdk app: vpwned-sdk
spec: spec:
containers: containers:
- image: quay.io/platform9/vjailbreak-vpwned:v0.3.0 - image: quay.io/platform9/vjailbreak-vpwned:v0.3.3
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
name: vpwned name: vpwned
ports: ports:
@@ -3488,6 +3763,7 @@ spec:
restartPolicy: Always restartPolicy: Always
schedulerName: default-scheduler schedulerName: default-scheduler
securityContext: {} securityContext: {}
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 30 terminationGracePeriodSeconds: 30
volumes: volumes:
- hostPath: - hostPath:
File diff suppressed because it is too large Load Diff
+11
View File
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Secret
metadata:
name: analytics-keys
namespace: migration-system
type: Opaque
data:
amplitude-api-key: ${AMPLITUDE_API_KEY}
bugsnag-api-key: ${BUGSNAG_API_KEY}
app-version: ${VJB_VERSION_TAG}
release-stage: cHJvZHVjdGlvbgo=
+29 -5
View File
@@ -61,6 +61,19 @@ spec:
MASTER_IP=$(grep -E '^export MASTER_IP=' /etc/pf9/k3s.env | cut -d'=' -f2) MASTER_IP=$(grep -E '^export MASTER_IP=' /etc/pf9/k3s.env | cut -d'=' -f2)
if [ "$IS_MASTER" = "true" ]; then if [ "$IS_MASTER" = "true" ]; then
echo "Master node detected. IP: $MASTER_IP" echo "Master node detected. IP: $MASTER_IP"
# Clean up logs older than 24 hours on master node
echo "Cleaning up logs older than 24 hours on master node"
# Note: Not restarting services to avoid disruption
# Instead, properly closing files in the v2v-helper code
# Clean master's own logs and force delete any stuck files
find /var/log/pf9 -type f -mtime +1 -delete 2>/dev/null || true
# Clean worker logs stored on master and force delete any stuck files
find /var/lib/rsync/worker-logs -type f -mtime +1 -delete 2>/dev/null || true
# Clear deleted but open files (useful when processes still hold file handles)
echo "Clearing deleted but open files..."
lsof +L1 | grep "/var/log/pf9\|/var/lib/rsync/worker-logs" | awk '{print $2}' | xargs -r kill -HUP 2>/dev/null || true
echo "Starting rsync daemon..." echo "Starting rsync daemon..."
rsync --daemon --config=/etc/pf9/rsyncd.conf --no-detach rsync --daemon --config=/etc/pf9/rsyncd.conf --no-detach
if ps aux | grep rsync | grep -v grep; then if ps aux | grep rsync | grep -v grep; then
@@ -73,14 +86,25 @@ spec:
echo "Worker node detected. Syncing from Master..." echo "Worker node detected. Syncing from Master..."
while true; do while true; do
mkdir -p /home/ubuntu/vmware-vix-disklib-distrib/ mkdir -p /home/ubuntu/vmware-vix-disklib-distrib/
# Clean up logs older than 24 hours on worker node
echo "Cleaning up logs older than 24 hours on worker node"
# Note: Not restarting services to avoid disruption
# Instead, properly closing files in the v2v-helper code
# Force delete old log files
find /var/log/pf9 -type f -mtime +1 -delete 2>/dev/null || true
# Clear deleted but open files
echo "Clearing deleted but open files..."
lsof +L1 | grep "/var/log/pf9" | awk '{print $2}' | xargs -r kill -HUP 2>/dev/null || true
# Free up disk space by clearing caches
sync
echo 3 > /proc/sys/vm/drop_caches 2>/dev/null || true
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 # Sync logs from worker to master (with delete flag to sync deletions too)
rsync -avz /var/log/pf9 rsync://${MASTER_IP}/worker-logs rsync -avz --delete /var/log/pf9 rsync://${MASTER_IP}/worker-logs
# Also Sync logs from master to worker
rsync -avz rsync://${MASTER_IP}/master-logs /var/log/pf9
# 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
@@ -7,3 +7,5 @@ data:
version: ${TAG} version: ${TAG}
upgradeAvailable: "false" upgradeAvailable: "false"
upgradeVersion: "" upgradeVersion: ""
githubOwner: "" # Optional: Defaults to "platform9" if not set
githubRepo: "" # Optional: Defaults to "vjailbreak" if not set
@@ -8,5 +8,6 @@ data:
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: "hot" # supported value hot/cold, (This setting is not used as of now. To be used by UI)
VCENTER_SCAN_CONCURRENCY_LIMIT: "100" # max number of vcenter scan pods 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
POPULATE_VMWARE_MACHINE_FLAVORS: "true" # automatically populate VMwareMachine objects with OpenStack flavors
+21
View File
@@ -0,0 +1,21 @@
# v0.3.1
- **Tag:** `v0.3.1`
- **Published:** 2025-08-07T13:13:27Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.1
## Release Notes
## What's Changed
* Feature: Addition of rdm disk custom resource and controller by @rishabh625 in https://github.com/platform9/vjailbreak/pull/753
* re-auth vcenter after timeout by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/787
* reduce default vm scan concurrency, improve logging by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/791
* Add fallback if /etc/os-release doesn't exist by @spai-p9 in https://github.com/platform9/vjailbreak/pull/772
* bring back dhcp for non-matching subnets by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/795
* amplitude and bugsnag integration (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/769
* fix vm refresh for new govomi clients by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/803
* fix: one of the status.phase correctly renamed from pending to available by @rishabh625 in https://github.com/platform9/vjailbreak/pull/806
* Add vjailbreak-settings.yaml ( release ) by @spai-p9 in https://github.com/platform9/vjailbreak/pull/808
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.0...v0.3.1
+31
View File
@@ -0,0 +1,31 @@
# v0.3.2
- **Tag:** `v0.3.2`
- **Published:** 2025-08-26T11:39:44Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.2
## Release Notes
## What's Changed
* handle for sles by @spai-p9 in https://github.com/platform9/vjailbreak/pull/815
* make the power off live vms default when selected and add completed at column. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/813
* UI: Do admin cutover via UI by @spai-p9 in https://github.com/platform9/vjailbreak/pull/810
* Added polling for QCOW2 image before docs update by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/804
* add a setting to keep the copied volumes in case of failure by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/823
* optimisations for openstack creds upload time by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/829
* fix dasboard count mismatch by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/826
* optimise disk pressure problem due to logs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/832
* In-place upgrade by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/792
* Filtering security group according to particular tenant by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/824
* change completed at to created at by @spai-p9 in https://github.com/platform9/vjailbreak/pull/835
* Support Dynamic Hotplug-Enabled Flavors in Target Openstack Environment by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/838
* crd update and ui changes required for hotplug by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/842
* indicate missing base flavor for specific vmwaremachine by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/843
* search option(s) for faster migration triggers by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/844
* Fix label getting triggered back to no, when patched by @spai-p9 in https://github.com/platform9/vjailbreak/pull/847
* Push things to S3 and introduce nightly builds (release) by @sharma-tapas @sarika-p9 in https://github.com/platform9/vjailbreak/pull/793
* search for volume types and networks by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/849
* added alert in the ui while upgrade in progress by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/850
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.1...v0.3.2
+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