Compare commits

...
3 Commits
Author SHA1 Message Date
OmkarDeshpande7 4542ee3fcd Add release v0.3.1 2026-09-15 22:47:51 +05:30
OmkarDeshpande7 4a634af992 Add release v0.3.0 2026-09-15 22:47:41 +05:30
OmkarDeshpande7 0c53794517 Add release v0.2.1 2026-09-15 22:47:32 +05:30
6 changed files with 362 additions and 53 deletions
+259 -53
View File
@@ -473,6 +473,9 @@ spec:
dataCopyStart: dataCopyStart:
format: date-time format: date-time
type: string type: string
disconnectSourceNetwork:
default: false
type: boolean
healthCheckPort: healthCheckPort:
default: "443" default: "443"
type: string type: string
@@ -513,6 +516,10 @@ spec:
retry: retry:
description: Retry the migration if it fails description: Retry the migration if it fails
type: boolean type: boolean
securityGroups:
items:
type: string
type: array
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:
@@ -530,51 +537,6 @@ spec:
MigrationPlanStatus defines the observed state of MigrationPlan including MigrationPlanStatus defines the observed state of MigrationPlan including
the current status and progress of the migration the current status and progress of the migration
properties: properties:
conditions:
description: Conditions represents the current state of the migration
items:
description: PodCondition contains details for the current condition
of this pod.
properties:
lastProbeTime:
description: Last time we probed the condition.
format: date-time
type: string
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: Human-readable message indicating details about
last transition.
type: string
observedGeneration:
description: |-
If set, this represents the .metadata.generation that the pod condition was set based upon.
This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.
format: int64
type: integer
reason:
description: Unique, one-word, CamelCase reason for the condition's
last transition.
type: string
status:
description: |-
Status is the status of the condition.
Can be True, False, Unknown.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
type: string
type:
description: |-
Type is the type of the condition.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
type: string
required:
- status
- type
type: object
type: array
migrationMessage: migrationMessage:
description: MigrationMessage is the message associated with the migration description: MigrationMessage is the message associated with the migration
type: string type: string
@@ -649,6 +611,11 @@ spec:
spec: spec:
description: Spec defines the desired state of Migration description: Spec defines the desired state of Migration
properties: properties:
disconnectSourceNetwork:
description: |-
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
after a successful migration to prevent network conflicts. Defaults to false.
type: boolean
initiateCutover: initiateCutover:
description: InitiateCutover is the flag to initiate cutover description: InitiateCutover is the flag to initiate cutover
type: boolean type: boolean
@@ -1121,6 +1088,14 @@ spec:
items: items:
type: string type: string
type: array type: array
securityGroups:
items:
type: string
type: array
volumeBackends:
items:
type: string
type: array
volumeTypes: volumeTypes:
items: items:
type: string type: string
@@ -1332,6 +1307,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
@@ -1503,6 +1636,9 @@ spec:
dataCopyStart: dataCopyStart:
format: date-time format: date-time
type: string type: string
disconnectSourceNetwork:
default: false
type: boolean
healthCheckPort: healthCheckPort:
default: "443" default: "443"
type: string type: string
@@ -2210,12 +2346,6 @@ spec:
ipAddress: ipAddress:
description: IPAddress is the IP address of the virtual machine description: IPAddress is the IP address of the virtual machine
type: string type: string
macAddresses:
description: MacAddresses is the list of MAC addresses assigned
to the VM's network interfaces
items:
type: string
type: array
memory: memory:
description: Memory is the amount of memory in the virtual machine description: Memory is the amount of memory in the virtual machine
type: integer type: integer
@@ -2582,6 +2712,7 @@ rules:
- openstackcreds - openstackcreds
- pcdclusters - pcdclusters
- pcdhosts - pcdhosts
- rdmdisks
- rollingmigrationplans - rollingmigrationplans
- storagemappings - storagemappings
- vjailbreaknodes - vjailbreaknodes
@@ -2609,6 +2740,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
@@ -2628,6 +2760,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
@@ -2990,6 +3123,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
@@ -3419,7 +3623,7 @@ spec:
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
command: command:
- /manager - /manager
image: quay.io/platform9/vjailbreak-controller:v0.2.0 image: quay.io/platform9/vjailbreak-controller:v0.3.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
lifecycle: lifecycle:
preStop: preStop:
@@ -3452,6 +3656,8 @@ spec:
name: vddk name: vddk
- mountPath: /etc/hosts - mountPath: /etc/hosts
name: hosts-file name: hosts-file
readOnly: true
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true hostNetwork: true
securityContext: securityContext:
runAsGroup: 0 runAsGroup: 0
@@ -3497,7 +3703,7 @@ spec:
app: vpwned-sdk app: vpwned-sdk
spec: spec:
containers: containers:
- image: quay.io/platform9/vjailbreak-vpwned:v0.2.0 - image: quay.io/platform9/vjailbreak-vpwned:v0.3.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
name: vpwned name: vpwned
ports: ports:
+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=
@@ -0,0 +1,12 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: vjailbreak-settings
namespace: migration-system
data:
CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks
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
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: "10" # max number of vms to scan at the same time
+20
View File
@@ -0,0 +1,20 @@
# v0.2.1
- **Tag:** `v0.2.1`
- **Published:** 2025-07-16T11:00:09Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.2.1
## Release Notes
## What's Changed
* Nit: readme by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/704
* Backport: vPwned: fix condition trigger for vm migrations by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/682
* GH actions for cross fork PRs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/709
* remove docker login for build only steps by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/717
* add kubernetes dashboard by default to grafana by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/714
* Add opensource.txt file,inject it into the vm and prebake virtio-drivers by @spai-p9 in https://github.com/platform9/vjailbreak/pull/718
* Revert pr 662 by @spai-p9 @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/719
* simplified the release notes workflow to update docs by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/710
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.2.0...v0.2.1
+39
View File
@@ -0,0 +1,39 @@
# v0.3.0
- **Tag:** `v0.3.0`
- **Published:** 2025-07-31T13:37:39Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.0
## Release Notes
## What's Changed
* RDM disk migration from VMware to Openstack on Same SAN array - if RDM is attached to single VM by @rishabh625 in https://github.com/platform9/vjailbreak/pull/654
* persist host dns by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/735
* fix for long vm names by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/738
* additional vm name changes (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/746
* process single VM at a time by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/749
* Feature: add volume backend to openstackcreds custom resource by @rishabh625 in https://github.com/platform9/vjailbreak/pull/745
* v2v-helper: log time taken by disk copy and conversion by @jessicaralhan in https://github.com/platform9/vjailbreak/pull/737
* throttle goroutines by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/758
* unblock vcenter with no clusters by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/755
* added option to select security group by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/761
* Delete rolling migration plan by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/754
* Reset migrated status on migration object deletion by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/744
* configurable vjb settings (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/762
* added amplitude changes by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/765
* Adding time elapsed for migration and cluster conversions + fixed the … by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/767
* Improve ESXi host configuration UX by removing selection confusion by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/757
* Disconnect all Virtual NICs on VMWare Source VM upon successful migration by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/768
* Backend: rhel family guest network ip retention ( release ) by @spai-p9 in https://github.com/platform9/vjailbreak/pull/766
* v0.3.0 fixes for SG and os creds validation by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/773
* fix ui for clusters by @spai-p9 in https://github.com/platform9/vjailbreak/pull/775
* Fix time elapsed issue by @spai-p9 in https://github.com/platform9/vjailbreak/pull/776
* fix for wait active timeout by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/777
* fix vpwned unavailable issue by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/779
* idle connection timeout for vcenter by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/781
* revert back to metadata name by @spai-p9 in https://github.com/platform9/vjailbreak/pull/780
## New Contributors
* @jessicaralhan made their first contribution in https://github.com/platform9/vjailbreak/pull/737
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.2.1...v0.3.0
+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