From 2fcf305d17df8fd1437d41354598e7675d79ff6f Mon Sep 17 00:00:00 2001 From: OmkarDeshpande7 Date: Tue, 15 Sep 2026 22:44:18 +0530 Subject: [PATCH] Add release v0.1.2 --- deploy/00crds.yaml | 663 +++++++-------------------------------------- releases/v0.1.2.md | 44 +++ 2 files changed, 138 insertions(+), 569 deletions(-) create mode 100644 releases/v0.1.2.md diff --git a/deploy/00crds.yaml b/deploy/00crds.yaml index 9bed0ef..508b078 100644 --- a/deploy/00crds.yaml +++ b/deploy/00crds.yaml @@ -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 kind: Namespace metadata: @@ -615,11 +47,38 @@ spec: spec: description: MigrationPlanSpec defines the desired state of MigrationPlan 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: properties: + adminInitiatedCutOver: + default: false + type: boolean dataCopyStart: format: date-time type: string + healthCheckPort: + default: "443" + type: string + performHealthChecks: + default: false + type: boolean type: enum: - hot @@ -706,6 +165,8 @@ spec: spec: description: MigrationSpec defines the desired state of Migration properties: + initiateCutover: + type: boolean migrationPlan: type: string podRef: @@ -713,6 +174,7 @@ spec: vmName: type: string required: + - initiateCutover - migrationPlan - podRef - vmName @@ -850,6 +312,44 @@ spec: type: object status: 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 served: true @@ -973,6 +473,11 @@ spec: OS_DOMAIN_NAME: description: OsDomainName is the OpenStack domain name type: string + OS_INSECURE: + default: false + description: OsInsecure is the flag to skip verification of the OpenStack + TLS Certificate + type: boolean OS_PASSWORD: description: OsPassword is the OpenStack password type: string @@ -1289,9 +794,27 @@ rules: resources: - migrationtemplates verbs: + - create + - delete - get - list + - patch + - update - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates/status + verbs: + - get + - patch + - update - apiGroups: - vjailbreak.k8s.pf9.io resources: @@ -1803,7 +1326,7 @@ spec: spec: containers: - args: - - --leader-elect + - --leader-elect=false - --health-probe-bind-address=:8081 command: - /manager @@ -1831,6 +1354,8 @@ spec: capabilities: drop: - ALL + dnsPolicy: ClusterFirstWithHostNet + hostNetwork: true securityContext: runAsNonRoot: true serviceAccountName: migration-controller-manager diff --git a/releases/v0.1.2.md b/releases/v0.1.2.md new file mode 100644 index 0000000..e1c29ae --- /dev/null +++ b/releases/v0.1.2.md @@ -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