Compare commits

...
1 Commits
Author SHA1 Message Date
OmkarDeshpande7 2fcf305d17 Add release v0.1.2 2026-09-15 22:44:18 +05:30
2 changed files with 138 additions and 569 deletions
+94 -569
View File
@@ -1,571 +1,3 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: migrationplans.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: MigrationPlan
listKind: MigrationPlanList
plural: migrationplans
singular: migrationplan
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: MigrationPlan is the Schema for the migrationplans 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: MigrationPlanSpec defines the desired state of MigrationPlan
properties:
migrationStrategy:
properties:
dataCopyStart:
format: date-time
type: string
type:
enum:
- hot
- cold
type: string
vmCutoverEnd:
format: date-time
type: string
vmCutoverStart:
format: date-time
type: string
required:
- type
type: object
migrationTemplate:
type: string
retry:
type: boolean
virtualmachines:
items:
items:
type: string
type: array
type: array
required:
- migrationStrategy
- migrationTemplate
- virtualmachines
type: object
status:
description: MigrationPlanStatus defines the observed state of MigrationPlan
properties:
migrationMessage:
type: string
migrationStatus:
type: string
required:
- migrationMessage
- migrationStatus
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: migrations.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: Migration
listKind: MigrationList
plural: migrations
singular: migration
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: Migration is the Schema for the migrations 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: MigrationSpec defines the desired state of Migration
properties:
migrationPlan:
type: string
podRef:
type: string
vmName:
type: string
required:
- migrationPlan
- podRef
- vmName
type: object
status:
description: MigrationStatus defines the observed state of Migration
properties:
conditions:
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
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
phase:
type: string
required:
- conditions
- phase
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: migrationtemplates.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: MigrationTemplate
listKind: MigrationTemplateList
plural: migrationtemplates
singular: migrationtemplate
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: MigrationTemplate is the Schema for the migrationtemplates 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: MigrationTemplateSpec defines the desired state of MigrationTemplate
properties:
destination:
description: MigrationTemplateDestination defines the destination
details for the migrationtemplate
properties:
openstackRef:
type: string
required:
- openstackRef
type: object
networkMapping:
type: string
osType:
enum:
- windows
- linux
type: string
source:
description: MigrationTemplateSource defines the source details for
the migrationtemplate
properties:
datacenter:
type: string
vmwareRef:
type: string
required:
- datacenter
- vmwareRef
type: object
storageMapping:
type: string
virtioWinDriver:
type: string
required:
- destination
- networkMapping
- source
- storageMapping
type: object
status:
description: MigrationTemplateStatus defines the observed state of MigrationTemplate
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: networkmappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: NetworkMapping
listKind: NetworkMappingList
plural: networkmappings
singular: networkmapping
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: NetworkMapping is the Schema for the networkmappings 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: NetworkMappingSpec defines the desired state of NetworkMapping
properties:
networks:
description: Networks is the list of networks
items:
properties:
source:
type: string
target:
type: string
required:
- source
- target
type: object
type: array
required:
- networks
type: object
status:
description: NetworkMappingStatus defines the observed state of NetworkMapping
properties:
networkMappingValidationMessage:
type: string
networkMappingValidationStatus:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: openstackcreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: OpenstackCreds
listKind: OpenstackCredsList
plural: openstackcreds
singular: openstackcreds
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: OpenstackCreds is the Schema for the openstackcreds 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: OpenstackCredsSpec defines the desired state of OpenstackCreds
properties:
OS_AUTH_URL:
description: OsAuthURL is the OpenStack authentication URL
type: string
OS_DOMAIN_NAME:
description: OsDomainName is the OpenStack domain name
type: string
OS_PASSWORD:
description: OsPassword is the OpenStack password
type: string
OS_REGION_NAME:
description: OsRegionName is the OpenStack region name
type: string
OS_TENANT_NAME:
description: OsTenantName is the OpenStack tenant name
type: string
OS_USERNAME:
description: OsUsername is the OpenStack username
type: string
type: object
status:
description: OpenstackCredsStatus defines the observed state of OpenstackCreds
properties:
openstackValidationMessage:
type: string
openstackValidationStatus:
description: |-
INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Important: Run "make" to regenerate code after modifying this file
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: storagemappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: StorageMapping
listKind: StorageMappingList
plural: storagemappings
singular: storagemapping
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: StorageMapping is the Schema for the storagemappings 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: StorageMappingSpec defines the desired state of StorageMapping
properties:
storages:
items:
properties:
source:
type: string
target:
type: string
required:
- source
- target
type: object
type: array
required:
- storages
type: object
status:
description: StorageMappingStatus defines the observed state of StorageMapping
properties:
storageMappingValidationMessage:
type: string
storageMappingValidationStatus:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: vmwarecreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: VMwareCreds
listKind: VMwareCredsList
plural: vmwarecreds
singular: vmwarecreds
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: VMwareCreds is the Schema for the vmwarecreds 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: VMwareCredsSpec defines the desired state of VMwareCreds
properties:
VCENTER_HOST:
type: string
VCENTER_INSECURE:
type: boolean
VCENTER_PASSWORD:
type: string
VCENTER_USERNAME:
type: string
required:
- VCENTER_HOST
- VCENTER_INSECURE
- VCENTER_PASSWORD
- VCENTER_USERNAME
type: object
status:
description: VMwareCredsStatus defines the observed state of VMwareCreds
properties:
vmwareValidationMessage:
type: string
vmwareValidationStatus:
description: |-
INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Important: Run "make" to regenerate code after modifying this file
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: v1 apiVersion: v1
kind: Namespace kind: Namespace
metadata: metadata:
@@ -615,11 +47,38 @@ spec:
spec: spec:
description: MigrationPlanSpec defines the desired state of MigrationPlan description: MigrationPlanSpec defines the desired state of MigrationPlan
properties: properties:
advancedOptions:
properties:
granularNetworks:
items:
type: string
type: array
granularPorts:
items:
type: string
type: array
granularVolumeTypes:
items:
type: string
type: array
type: object
firstBootScript:
default: echo "Add your startup script here!"
type: string
migrationStrategy: migrationStrategy:
properties: properties:
adminInitiatedCutOver:
default: false
type: boolean
dataCopyStart: dataCopyStart:
format: date-time format: date-time
type: string type: string
healthCheckPort:
default: "443"
type: string
performHealthChecks:
default: false
type: boolean
type: type:
enum: enum:
- hot - hot
@@ -706,6 +165,8 @@ spec:
spec: spec:
description: MigrationSpec defines the desired state of Migration description: MigrationSpec defines the desired state of Migration
properties: properties:
initiateCutover:
type: boolean
migrationPlan: migrationPlan:
type: string type: string
podRef: podRef:
@@ -713,6 +174,7 @@ spec:
vmName: vmName:
type: string type: string
required: required:
- initiateCutover
- migrationPlan - migrationPlan
- podRef - podRef
- vmName - vmName
@@ -850,6 +312,44 @@ spec:
type: object type: object
status: status:
description: MigrationTemplateStatus defines the observed state of MigrationTemplate description: MigrationTemplateStatus defines the observed state of MigrationTemplate
properties:
openstack:
properties:
networks:
items:
type: string
type: array
volumeTypes:
items:
type: string
type: array
type: object
vmware:
description: |-
INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Important: Run "make" to regenerate code after modifying this file
items:
properties:
datastores:
items:
type: string
type: array
ipAddress:
type: string
name:
type: string
networks:
items:
type: string
type: array
osType:
type: string
vmState:
type: string
required:
- name
type: object
type: array
type: object type: object
type: object type: object
served: true served: true
@@ -973,6 +473,11 @@ spec:
OS_DOMAIN_NAME: OS_DOMAIN_NAME:
description: OsDomainName is the OpenStack domain name description: OsDomainName is the OpenStack domain name
type: string type: string
OS_INSECURE:
default: false
description: OsInsecure is the flag to skip verification of the OpenStack
TLS Certificate
type: boolean
OS_PASSWORD: OS_PASSWORD:
description: OsPassword is the OpenStack password description: OsPassword is the OpenStack password
type: string type: string
@@ -1289,9 +794,27 @@ rules:
resources: resources:
- migrationtemplates - migrationtemplates
verbs: verbs:
- create
- delete
- get - get
- list - list
- patch
- update
- watch - watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationtemplates/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationtemplates/status
verbs:
- get
- patch
- update
- apiGroups: - apiGroups:
- vjailbreak.k8s.pf9.io - vjailbreak.k8s.pf9.io
resources: resources:
@@ -1803,7 +1326,7 @@ spec:
spec: spec:
containers: containers:
- args: - args:
- --leader-elect - --leader-elect=false
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
command: command:
- /manager - /manager
@@ -1831,6 +1354,8 @@ spec:
capabilities: capabilities:
drop: drop:
- ALL - ALL
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
serviceAccountName: migration-controller-manager serviceAccountName: migration-controller-manager
+44
View File
@@ -0,0 +1,44 @@
# v0.1.2
- **Tag:** `v0.1.2`
- **Published:** 2025-01-17T14:59:16Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.1.2
## Release Notes
## What's Changed
* Upgrade min version to v0.1.1 by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/71
* Use version as tag for release event by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/72
* Added React Query to cache data, refactored MigrationForm component, and added error handling to MigrationForm by @knnguy in https://github.com/platform9/vjailbreak/pull/69
* Add FAQs by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/74
* Fix for incomplete transfer of changed blocks by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/75
* Add Video Demo by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/73
* Add vCenter role perms and port req by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/76
* Adding additional network port prereqs for NBDkit by @jeremymv2 in https://github.com/platform9/vjailbreak/pull/77
* replaced vCenter Role permissions with more comprehensive list from R… by @jeremymv2 in https://github.com/platform9/vjailbreak/pull/78
* update README with table for prereqs by @jeremymv2 in https://github.com/platform9/vjailbreak/pull/79
* Add debug logs to v2v-helper by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/80
* UI: Fixes by @knnguy in https://github.com/platform9/vjailbreak/pull/87
* Remove unused VMInfo field by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/82
* Add ephemeral storage req and limits by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/119
* Compress nmcli scripts by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/120
* Wait for volume mount for up to a minute by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/121
* Disable healthchecks by default by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/122
* Update healthcheck in README by @tanaypf9 in https://github.com/platform9/vjailbreak/pull/124
* Mapped OS_PROJECT_DOMAIN_NAME to OS_DOMAIN_NAME and OS_PROJECT_NAME t… by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/130
* add IpAddress and VM state info to migrationtemplate status by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/133
* 106 - disabled stopped VMs from migrating and notified with a tooltip by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/136
* Allowed one to many network mappings from VMware to Openstack by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/137
* UI: If the form is not submitted CRs created, should be deleted by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/139
* UI: Handle VM refresh with additional put call to migration template and add adjust the timeout needed for it to reflect latest detail by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/142
* check if disks have os installed in lexical order (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/140
## Known Issues
* If the VM to be migrated has an LV spanning multiple physical devices used as boot volume unless both are mounted simultaneously to the OS-VM, vJailbreak cannot detect whether it is bootable, or not. ([issue link](https://github.com/platform9/vjailbreak/issues/146))
* If a user turns on a VM on VCenter after migration and tries to migrate it again, the migration object will not be created. In this case, the user should delete the VM from PCD/Openstack before trying the migration again. This error will be pushed up the stack for visibility.
## New Contributors
* @patil-pratik-87 made their first contribution in https://github.com/platform9/vjailbreak/pull/130
* @OmkarDeshpande7 made their first contribution in https://github.com/platform9/vjailbreak/pull/133
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.1.1...16.01