Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f42e7a3eeb | ||
|
|
430bd3e323 | ||
|
|
eebd715455 | ||
|
|
3900860634 | ||
|
|
7f1a95392f | ||
|
|
1fe88517ca |
+560
-20
@@ -71,6 +71,22 @@ spec:
|
|||||||
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
||||||
from OpenStack
|
from OpenStack
|
||||||
type: boolean
|
type: boolean
|
||||||
|
netAppConfig:
|
||||||
|
description: |-
|
||||||
|
NetAppConfig holds NetApp-specific configuration. Required when
|
||||||
|
VendorType is "netapp" before a migration can run. May be left empty
|
||||||
|
at creation time so the controller can surface available SVMs/FlexVols
|
||||||
|
on status.backendTargets for interactive selection.
|
||||||
|
properties:
|
||||||
|
flexVol:
|
||||||
|
description: FlexVol is the FlexVol name (within the SVM) where
|
||||||
|
LUNs will be created.
|
||||||
|
type: string
|
||||||
|
svm:
|
||||||
|
description: SVM is the Storage Virtual Machine name that owns
|
||||||
|
the target FlexVol.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
openstackMapping:
|
openstackMapping:
|
||||||
description: OpenStackMapping is the openstack mapping for this array
|
description: OpenStackMapping is the openstack mapping for this array
|
||||||
properties:
|
properties:
|
||||||
@@ -159,6 +175,38 @@ spec:
|
|||||||
ArrayValidationStatus is the status of the storage array validation
|
ArrayValidationStatus is the status of the storage array validation
|
||||||
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
||||||
type: string
|
type: string
|
||||||
|
backendTargets:
|
||||||
|
description: |-
|
||||||
|
BackendTargets is a vendor-neutral two-level tree of selectable array
|
||||||
|
targets (e.g., NetApp SVMs -> FlexVols). Populated by the controller
|
||||||
|
after successful credential validation for vendors that expose a
|
||||||
|
selectable target hierarchy. UIs consume this to render a picker.
|
||||||
|
items:
|
||||||
|
description: BackendTargetGroup groups related targets (e.g., a
|
||||||
|
NetApp SVM and its FlexVols).
|
||||||
|
properties:
|
||||||
|
children:
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
BackendTarget is a single selectable target within a BackendTargetGroup
|
||||||
|
(e.g., a NetApp FlexVol, a Dell pool).
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
dataStore:
|
dataStore:
|
||||||
description: DataStore is the list of datastores associated with this
|
description: DataStore is the list of datastores associated with this
|
||||||
array
|
array
|
||||||
@@ -195,7 +243,7 @@ spec:
|
|||||||
phase:
|
phase:
|
||||||
description: |-
|
description: |-
|
||||||
Phase indicates the current phase of the ArrayCreds
|
Phase indicates the current phase of the ArrayCreds
|
||||||
Possible values: Discovered, Configured, Validated, Failed
|
Possible values: Discovered, Configured, Validated, Failed, NeedsBackendSelection
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
@@ -909,6 +957,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
imageProfiles:
|
||||||
|
description: ImageProfiles is the ordered list of VolumeImageProfile
|
||||||
|
names to apply to the migrated VM's boot volume.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
networkPersistence:
|
networkPersistence:
|
||||||
description: NetworkPersistence instructs the migration helper
|
description: NetworkPersistence instructs the migration helper
|
||||||
to persist the source networking configuration
|
to persist the source networking configuration
|
||||||
@@ -926,13 +980,6 @@ spec:
|
|||||||
to remove VMware Tools post migration
|
to remove VMware Tools post migration
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
assignedIPsPerVM:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
AssignedIPsPerVM is a map of VM names to comma-separated assigned IPs for cold migration
|
|
||||||
Format: {"vm-name": "IP1,IP2,IP3"} where each IP corresponds to a network interface by index
|
|
||||||
type: object
|
|
||||||
fallbackToDHCP:
|
fallbackToDHCP:
|
||||||
type: boolean
|
type: boolean
|
||||||
firstBootScript:
|
firstBootScript:
|
||||||
@@ -985,6 +1032,8 @@ spec:
|
|||||||
description: NICOverride defines per-NIC overrides for IP and
|
description: NICOverride defines per-NIC overrides for IP and
|
||||||
MAC preservation during migration
|
MAC preservation during migration
|
||||||
properties:
|
properties:
|
||||||
|
UserAssignedIP:
|
||||||
|
type: string
|
||||||
interfaceIndex:
|
interfaceIndex:
|
||||||
description: InterfaceIndex is the zero-based index of the
|
description: InterfaceIndex is the zero-based index of the
|
||||||
NIC
|
NIC
|
||||||
@@ -1120,16 +1169,18 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
description: Spec defines the desired state of Migration
|
description: Spec defines the desired state of Migration
|
||||||
properties:
|
properties:
|
||||||
assignedIP:
|
|
||||||
description: |-
|
|
||||||
AssignedIP is the comma-separated list of user-assigned IPs for cold migration
|
|
||||||
Format: "IP1,IP2,IP3" where each IP corresponds to a network interface by index
|
|
||||||
type: string
|
|
||||||
disconnectSourceNetwork:
|
disconnectSourceNetwork:
|
||||||
description: |-
|
description: |-
|
||||||
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
|
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
|
||||||
after a successful migration to prevent network conflicts. Defaults to false.
|
after a successful migration to prevent network conflicts. Defaults to false.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
imageMetadata:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
ImageMetadata is the merged map of Cinder volume_image_metadata properties resolved
|
||||||
|
from the MigrationPlan's selected VolumeImageProfiles after OS-family filtering.
|
||||||
|
type: object
|
||||||
initiateCutover:
|
initiateCutover:
|
||||||
description: InitiateCutover is the flag to initiate cutover
|
description: InitiateCutover is the flag to initiate cutover
|
||||||
type: boolean
|
type: boolean
|
||||||
@@ -1241,6 +1292,11 @@ spec:
|
|||||||
- MappingVolume
|
- MappingVolume
|
||||||
- RescanningStorage
|
- RescanningStorage
|
||||||
- XCOPYInProgress
|
- XCOPYInProgress
|
||||||
|
- SnapshottingSourceVM
|
||||||
|
- AttachingDisksToProxy
|
||||||
|
- IdentifyingBlockDevices
|
||||||
|
- HotAddTransferInProgress
|
||||||
|
- HotAddCleanup
|
||||||
type: string
|
type: string
|
||||||
retryable:
|
retryable:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1328,8 +1384,10 @@ spec:
|
|||||||
- openstackRef
|
- openstackRef
|
||||||
type: object
|
type: object
|
||||||
networkMapping:
|
networkMapping:
|
||||||
description: NetworkMapping is the reference to the NetworkMapping
|
description: |-
|
||||||
resource that defines source to destination network mappings
|
NetworkMapping is the reference to the NetworkMapping resource that defines source to destination network mappings.
|
||||||
|
Optional: when the selected VMs have no attached VMware networks, no NetworkMapping is required and this field
|
||||||
|
may be empty. The controller will skip network reconciliation in that case.
|
||||||
type: string
|
type: string
|
||||||
osFamily:
|
osFamily:
|
||||||
description: OSFamily is the OS type of the virtual machine
|
description: OSFamily is the OS type of the virtual machine
|
||||||
@@ -1337,6 +1395,22 @@ spec:
|
|||||||
- windowsGuest
|
- windowsGuest
|
||||||
- linuxGuest
|
- linuxGuest
|
||||||
type: string
|
type: string
|
||||||
|
proxyVMRef:
|
||||||
|
description: |-
|
||||||
|
ProxyVMRef references the ProxyVM to use for HotAdd data copy.
|
||||||
|
Required when StorageCopyMethod is "HotAdd".
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
source:
|
source:
|
||||||
description: Source is the source details for the virtual machine
|
description: Source is the source details for the virtual machine
|
||||||
properties:
|
properties:
|
||||||
@@ -1351,10 +1425,11 @@ spec:
|
|||||||
default: normal
|
default: normal
|
||||||
description: |-
|
description: |-
|
||||||
StorageCopyMethod indicates the method to use for storage migration
|
StorageCopyMethod indicates the method to use for storage migration
|
||||||
Valid values: "normal" (default), "StorageAcceleratedCopy"
|
Valid values: "normal" (default), "StorageAcceleratedCopy", "HotAdd"
|
||||||
enum:
|
enum:
|
||||||
- normal
|
- normal
|
||||||
- StorageAcceleratedCopy
|
- StorageAcceleratedCopy
|
||||||
|
- HotAdd
|
||||||
type: string
|
type: string
|
||||||
storageMapping:
|
storageMapping:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1379,7 +1454,6 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- destination
|
- destination
|
||||||
- networkMapping
|
|
||||||
- source
|
- source
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
@@ -1704,7 +1778,19 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
networks:
|
networks:
|
||||||
items:
|
items:
|
||||||
type: string
|
description: PCDNetworkInfo is struct to hold network information
|
||||||
|
for PCD
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
tags:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- tags
|
||||||
|
type: object
|
||||||
type: array
|
type: array
|
||||||
securityGroups:
|
securityGroups:
|
||||||
items:
|
items:
|
||||||
@@ -1957,6 +2043,134 @@ 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: proxyvms.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ProxyVM
|
||||||
|
listKind: ProxyVMList
|
||||||
|
plural: proxyvms
|
||||||
|
singular: proxyvm
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.vmName
|
||||||
|
name: VM-Name
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.validationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.ipAddress
|
||||||
|
name: IP
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.attachedDiskCount
|
||||||
|
name: Attached-Disks
|
||||||
|
type: integer
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: ProxyVM is the Schema for the proxyvms 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: ProxyVMSpec defines the desired state of ProxyVM
|
||||||
|
properties:
|
||||||
|
sshKeyPairRef:
|
||||||
|
description: |-
|
||||||
|
LocalObjectReference contains enough information to let you locate the
|
||||||
|
referenced object inside the same namespace.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
vmName:
|
||||||
|
type: string
|
||||||
|
vmwareCredsRef:
|
||||||
|
description: |-
|
||||||
|
LocalObjectReference contains enough information to let you locate the
|
||||||
|
referenced object inside the same namespace.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
required:
|
||||||
|
- vmName
|
||||||
|
- vmwareCredsRef
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ProxyVMStatus defines the observed state of ProxyVM
|
||||||
|
properties:
|
||||||
|
attachedDiskCount:
|
||||||
|
type: integer
|
||||||
|
componentsVerified:
|
||||||
|
items:
|
||||||
|
description: ProxyVMComponentCheck records whether a required component
|
||||||
|
was found on the Proxy VM.
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
present:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- present
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
ipAddress:
|
||||||
|
type: string
|
||||||
|
lastValidationTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
validationMessage:
|
||||||
|
type: string
|
||||||
|
validationStatus:
|
||||||
|
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
|
||||||
@@ -2177,6 +2391,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
imageProfiles:
|
||||||
|
description: ImageProfiles is the ordered list of VolumeImageProfile
|
||||||
|
names to apply to the migrated VM's boot volume.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
networkPersistence:
|
networkPersistence:
|
||||||
description: NetworkPersistence instructs the migration helper
|
description: NetworkPersistence instructs the migration helper
|
||||||
to persist the source networking configuration
|
to persist the source networking configuration
|
||||||
@@ -2633,6 +2853,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
openstackServerGroup:
|
||||||
|
description: |-
|
||||||
|
OpenstackServerGroup is the ID of the OpenStack server group used for VM placement scheduling.
|
||||||
|
When set, the agent VM is placed according to the server group's policy.
|
||||||
|
If empty, default OpenStack scheduling applies.
|
||||||
|
type: string
|
||||||
openstackVolumeType:
|
openstackVolumeType:
|
||||||
description: |-
|
description: |-
|
||||||
OpenstackVolumeType is the volume type for the root disk of the VM
|
OpenstackVolumeType is the volume type for the root disk of the VM
|
||||||
@@ -2663,7 +2889,7 @@ spec:
|
|||||||
(e.g., Provisioning, Ready, Error, Decommissioning)
|
(e.g., Provisioning, Ready, Error, Decommissioning)
|
||||||
type: string
|
type: string
|
||||||
vmIP:
|
vmIP:
|
||||||
description: VMIP is the IP address of the VM
|
description: VMIP is the IP address of the VM
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- vmIP
|
- vmIP
|
||||||
@@ -3104,11 +3330,15 @@ spec:
|
|||||||
machine.
|
machine.
|
||||||
properties:
|
properties:
|
||||||
ipAddress:
|
ipAddress:
|
||||||
type: string
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
mac:
|
mac:
|
||||||
type: string
|
type: string
|
||||||
network:
|
network:
|
||||||
type: string
|
type: string
|
||||||
|
networkType:
|
||||||
|
type: string
|
||||||
order:
|
order:
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
@@ -3131,6 +3361,10 @@ spec:
|
|||||||
vmState:
|
vmState:
|
||||||
description: VMState is the state of the virtual machine
|
description: VMState is the state of the virtual machine
|
||||||
type: string
|
type: string
|
||||||
|
vmid:
|
||||||
|
description: VMID is the vCenter Managed Object ID (MOID) of the
|
||||||
|
virtual machine
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- name
|
- name
|
||||||
type: object
|
type: object
|
||||||
@@ -3154,6 +3388,81 @@ spec:
|
|||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
---
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.17.1
|
||||||
|
name: volumeimageprofiles.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: VolumeImageProfile
|
||||||
|
listKind: VolumeImageProfileList
|
||||||
|
plural: volumeimageprofiles
|
||||||
|
singular: volumeimageprofile
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.osFamily
|
||||||
|
name: OSFamily
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
VolumeImageProfile defines a reusable set of Cinder volume_image_metadata properties
|
||||||
|
that can be applied to VM volumes during migration.
|
||||||
|
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: VolumeImageProfileSpec defines the desired state of VolumeImageProfile
|
||||||
|
properties:
|
||||||
|
description:
|
||||||
|
description: Description will indicate the usage context of this profile
|
||||||
|
type: string
|
||||||
|
osFamily:
|
||||||
|
description: OSFamily scopes this profile to a specific VMware guest
|
||||||
|
family.
|
||||||
|
enum:
|
||||||
|
- windowsGuest
|
||||||
|
- linuxGuest
|
||||||
|
- any
|
||||||
|
type: string
|
||||||
|
properties:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: Properties is the map of Cinder volume image metadata
|
||||||
|
key-value pairs
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- osFamily
|
||||||
|
- properties
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources: {}
|
||||||
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
@@ -3487,6 +3796,7 @@ rules:
|
|||||||
- openstackcreds
|
- openstackcreds
|
||||||
- pcdclusters
|
- pcdclusters
|
||||||
- pcdhosts
|
- pcdhosts
|
||||||
|
- proxyvms
|
||||||
- rdmdisks
|
- rdmdisks
|
||||||
- rollingmigrationplans
|
- rollingmigrationplans
|
||||||
- storagemappings
|
- storagemappings
|
||||||
@@ -3517,6 +3827,7 @@ rules:
|
|||||||
- openstackcreds/finalizers
|
- openstackcreds/finalizers
|
||||||
- pcdclusters/finalizers
|
- pcdclusters/finalizers
|
||||||
- pcdhosts/finalizers
|
- pcdhosts/finalizers
|
||||||
|
- proxyvms/finalizers
|
||||||
- rdmdisks/finalizers
|
- rdmdisks/finalizers
|
||||||
- rollingmigrationplans/finalizers
|
- rollingmigrationplans/finalizers
|
||||||
- storagemappings/finalizers
|
- storagemappings/finalizers
|
||||||
@@ -3539,6 +3850,7 @@ rules:
|
|||||||
- openstackcreds/status
|
- openstackcreds/status
|
||||||
- pcdclusters/status
|
- pcdclusters/status
|
||||||
- pcdhosts/status
|
- pcdhosts/status
|
||||||
|
- proxyvms/status
|
||||||
- rdmdisks/status
|
- rdmdisks/status
|
||||||
- rollingmigrationplans/status
|
- rollingmigrationplans/status
|
||||||
- storagemappings/status
|
- storagemappings/status
|
||||||
@@ -4413,4 +4725,232 @@ spec:
|
|||||||
number: 80
|
number: 80
|
||||||
path: /dev-api/sdk/(.*)
|
path: /dev-api/sdk/(.*)
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-ui-service
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: vjailbreak-ui
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-ui-ingress
|
||||||
|
namespace: migration-system
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: vjailbreak-ui-service
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-api-ingress
|
||||||
|
namespace: default
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||||
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||||
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /(apis.*)
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: kubernetes
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
|
- path: /(api.*)
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: kubernetes
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: grafana-api-ingress
|
||||||
|
namespace: monitoring
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /grafana
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: grafana
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: ui-manager-sa
|
||||||
|
namespace: migration-system
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: ui-manager-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds
|
||||||
|
- arraycredsmappings
|
||||||
|
- bmconfigs
|
||||||
|
- esxisshcreds
|
||||||
|
- clustermigrations
|
||||||
|
- esximigrations
|
||||||
|
- migrationplans
|
||||||
|
- migrations
|
||||||
|
- migrationtemplates
|
||||||
|
- networkmappings
|
||||||
|
- openstackcreds
|
||||||
|
- pcdclusters
|
||||||
|
- pcdhosts
|
||||||
|
- proxyvms
|
||||||
|
- rdmdisks
|
||||||
|
- rollingmigrationplans
|
||||||
|
- storagemappings
|
||||||
|
- vjailbreaknodes
|
||||||
|
- vmwareclusters
|
||||||
|
- vmwarecreds
|
||||||
|
- vmwarehosts
|
||||||
|
- vmwaremachines
|
||||||
|
- volumeimageprofiles
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds/finalizers
|
||||||
|
- arraycredsmappings/finalizers
|
||||||
|
- bmconfigs/finalizers
|
||||||
|
- esxisshcreds/finalizers
|
||||||
|
- clustermigrations/finalizers
|
||||||
|
- esximigrations/finalizers
|
||||||
|
- migrationplans/finalizers
|
||||||
|
- migrationtemplates/finalizers
|
||||||
|
- networkmappings/finalizers
|
||||||
|
- openstackcreds/finalizers
|
||||||
|
- pcdclusters/finalizers
|
||||||
|
- pcdhosts/finalizers
|
||||||
|
- proxyvms/finalizers
|
||||||
|
- rdmdisks/finalizers
|
||||||
|
- rollingmigrationplans/finalizers
|
||||||
|
- storagemappings/finalizers
|
||||||
|
- vjailbreaknodes/finalizers
|
||||||
|
- vmwarecreds/finalizers
|
||||||
|
verbs:
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds/status
|
||||||
|
- arraycredsmappings/status
|
||||||
|
- bmconfigs/status
|
||||||
|
- esxisshcreds/status
|
||||||
|
- clustermigrations/status
|
||||||
|
- esximigrations/status
|
||||||
|
- migrationplans/status
|
||||||
|
- migrations/status
|
||||||
|
- migrationtemplates/status
|
||||||
|
- networkmappings/status
|
||||||
|
- openstackcreds/status
|
||||||
|
- pcdclusters/status
|
||||||
|
- pcdhosts/status
|
||||||
|
- rdmdisks/status
|
||||||
|
- rollingmigrationplans/status
|
||||||
|
- storagemappings/status
|
||||||
|
- vjailbreaknodes/status
|
||||||
|
- vmwarecreds/status
|
||||||
|
- vmwaremachines/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: ui-manager-rolebinding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: ui-manager-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: ui-manager-sa
|
||||||
|
namespace: migration-system
|
||||||
---
|
---
|
||||||
@@ -20,6 +20,10 @@ spec:
|
|||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: pf9-env
|
||||||
|
optional: true
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: pf9-logs
|
- name: pf9-logs
|
||||||
mountPath: /var/log/pf9
|
mountPath: /var/log/pf9
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ spec:
|
|||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: pf9-env
|
name: pf9-env
|
||||||
image: quay.io/platform9/vjailbreak-controller:v0.4.1
|
optional: true
|
||||||
|
image: quay.io/platform9/vjailbreak-controller:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
@@ -75,6 +76,13 @@ spec:
|
|||||||
- mountPath: /etc/hosts
|
- mountPath: /etc/hosts
|
||||||
name: hosts-file
|
name: hosts-file
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
- mountPath: /host/dmi/product_uuid
|
||||||
|
name: dmi-product-uuid
|
||||||
|
readOnly: true
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "1"
|
||||||
dnsPolicy: ClusterFirstWithHostNet
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -95,4 +103,8 @@ spec:
|
|||||||
path: /etc/hosts
|
path: /etc/hosts
|
||||||
type: File
|
type: File
|
||||||
name: hosts-file
|
name: hosts-file
|
||||||
|
- hostPath:
|
||||||
|
path: /sys/class/dmi/id/product_uuid
|
||||||
|
type: File
|
||||||
|
name: dmi-product-uuid
|
||||||
---
|
---
|
||||||
@@ -20,20 +20,41 @@ spec:
|
|||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
annotations:
|
||||||
|
container.apparmor.security.beta.kubernetes.io/vpwned: unconfined
|
||||||
labels:
|
labels:
|
||||||
app: vpwned-sdk
|
app: vpwned-sdk
|
||||||
spec:
|
spec:
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
containers:
|
containers:
|
||||||
- envFrom:
|
- env:
|
||||||
|
- name: DBUS_SYSTEM_BUS_ADDRESS
|
||||||
|
value: unix:path=/run/dbus/system_bus_socket
|
||||||
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: pf9-env
|
name: pf9-env
|
||||||
image: quay.io/platform9/vjailbreak-vpwned:v0.4.1
|
optional: true
|
||||||
|
image: quay.io/platform9/vjailbreak-vpwned:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: vpwned
|
name: vpwned
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3001
|
- containerPort: 3001
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
resources: {}
|
resources: {}
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- DAC_OVERRIDE
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
runAsUser: 0
|
||||||
terminationMessagePath: /dev/termination-log
|
terminationMessagePath: /dev/termination-log
|
||||||
terminationMessagePolicy: File
|
terminationMessagePolicy: File
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
@@ -42,6 +63,22 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
- mountPath: /home/ubuntu
|
- mountPath: /home/ubuntu
|
||||||
name: vddk-storage
|
name: vddk-storage
|
||||||
|
- mountPath: /run/dbus/system_bus_socket
|
||||||
|
name: dbus-socket
|
||||||
|
- mountPath: /etc/systemd/timesyncd.conf.d
|
||||||
|
name: timesyncd-conf-dir
|
||||||
|
- mountPath: /usr/share/zoneinfo
|
||||||
|
name: host-zoneinfo
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /etc/pf9
|
||||||
|
name: pf9-config
|
||||||
|
- mountPath: /var/log/pf9
|
||||||
|
name: pf9-logs
|
||||||
|
readOnly: true
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "1"
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
schedulerName: default-scheduler
|
schedulerName: default-scheduler
|
||||||
@@ -57,4 +94,24 @@ spec:
|
|||||||
path: /home/ubuntu
|
path: /home/ubuntu
|
||||||
type: DirectoryOrCreate
|
type: DirectoryOrCreate
|
||||||
name: vddk-storage
|
name: vddk-storage
|
||||||
|
- hostPath:
|
||||||
|
path: /run/dbus/system_bus_socket
|
||||||
|
type: Socket
|
||||||
|
name: dbus-socket
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/systemd/timesyncd.conf.d
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
name: timesyncd-conf-dir
|
||||||
|
- hostPath:
|
||||||
|
path: /usr/share/zoneinfo
|
||||||
|
type: Directory
|
||||||
|
name: host-zoneinfo
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/pf9
|
||||||
|
type: Directory
|
||||||
|
name: pf9-config
|
||||||
|
- hostPath:
|
||||||
|
path: /var/log/pf9
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
name: pf9-logs
|
||||||
---
|
---
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
@@ -13,26 +14,30 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: vjailbreak-ui
|
app: vjailbreak-ui
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: migration-controller-manager
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
serviceAccountName: ui-manager-sa
|
||||||
containers:
|
containers:
|
||||||
- name: vjailbreak-ui-container
|
- name: vjailbreak-ui-container
|
||||||
image: quay.io/platform9/vjailbreak-ui:v0.4.1
|
image: quay.io/platform9/vjailbreak-ui:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: pf9-env
|
||||||
|
optional: true
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: nginx-shadow-htpasswd
|
- name: nginx-shadow-htpasswd
|
||||||
mountPath: /etc/nginx/shadow
|
mountPath: /etc/nginx/shadow
|
||||||
- name: pf9-logs
|
|
||||||
mountPath: /var/log/pf9
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: nginx-shadow-htpasswd
|
- name: nginx-shadow-htpasswd
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /etc/htpasswd
|
path: /etc/htpasswd
|
||||||
type: FileOrCreate
|
type: FileOrCreate
|
||||||
- name: pf9-logs
|
|
||||||
hostPath:
|
|
||||||
path: /var/log/pf9
|
|
||||||
type: DirectoryOrCreate
|
|
||||||
---
|
---
|
||||||
+643
-32
@@ -71,6 +71,22 @@ spec:
|
|||||||
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
||||||
from OpenStack
|
from OpenStack
|
||||||
type: boolean
|
type: boolean
|
||||||
|
netAppConfig:
|
||||||
|
description: |-
|
||||||
|
NetAppConfig holds NetApp-specific configuration. Required when
|
||||||
|
VendorType is "netapp" before a migration can run. May be left empty
|
||||||
|
at creation time so the controller can surface available SVMs/FlexVols
|
||||||
|
on status.backendTargets for interactive selection.
|
||||||
|
properties:
|
||||||
|
flexVol:
|
||||||
|
description: FlexVol is the FlexVol name (within the SVM) where
|
||||||
|
LUNs will be created.
|
||||||
|
type: string
|
||||||
|
svm:
|
||||||
|
description: SVM is the Storage Virtual Machine name that owns
|
||||||
|
the target FlexVol.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
openstackMapping:
|
openstackMapping:
|
||||||
description: OpenStackMapping is the openstack mapping for this array
|
description: OpenStackMapping is the openstack mapping for this array
|
||||||
properties:
|
properties:
|
||||||
@@ -159,6 +175,38 @@ spec:
|
|||||||
ArrayValidationStatus is the status of the storage array validation
|
ArrayValidationStatus is the status of the storage array validation
|
||||||
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
||||||
type: string
|
type: string
|
||||||
|
backendTargets:
|
||||||
|
description: |-
|
||||||
|
BackendTargets is a vendor-neutral two-level tree of selectable array
|
||||||
|
targets (e.g., NetApp SVMs -> FlexVols). Populated by the controller
|
||||||
|
after successful credential validation for vendors that expose a
|
||||||
|
selectable target hierarchy. UIs consume this to render a picker.
|
||||||
|
items:
|
||||||
|
description: BackendTargetGroup groups related targets (e.g., a
|
||||||
|
NetApp SVM and its FlexVols).
|
||||||
|
properties:
|
||||||
|
children:
|
||||||
|
items:
|
||||||
|
description: |-
|
||||||
|
BackendTarget is a single selectable target within a BackendTargetGroup
|
||||||
|
(e.g., a NetApp FlexVol, a Dell pool).
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
uuid:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
dataStore:
|
dataStore:
|
||||||
description: DataStore is the list of datastores associated with this
|
description: DataStore is the list of datastores associated with this
|
||||||
array
|
array
|
||||||
@@ -195,7 +243,7 @@ spec:
|
|||||||
phase:
|
phase:
|
||||||
description: |-
|
description: |-
|
||||||
Phase indicates the current phase of the ArrayCreds
|
Phase indicates the current phase of the ArrayCreds
|
||||||
Possible values: Discovered, Configured, Validated, Failed
|
Possible values: Discovered, Configured, Validated, Failed, NeedsBackendSelection
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
@@ -909,6 +957,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
imageProfiles:
|
||||||
|
description: ImageProfiles is the ordered list of VolumeImageProfile
|
||||||
|
names to apply to the migrated VM's boot volume.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
networkPersistence:
|
networkPersistence:
|
||||||
description: NetworkPersistence instructs the migration helper
|
description: NetworkPersistence instructs the migration helper
|
||||||
to persist the source networking configuration
|
to persist the source networking configuration
|
||||||
@@ -926,13 +980,6 @@ spec:
|
|||||||
to remove VMware Tools post migration
|
to remove VMware Tools post migration
|
||||||
type: boolean
|
type: boolean
|
||||||
type: object
|
type: object
|
||||||
assignedIPsPerVM:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
AssignedIPsPerVM is a map of VM names to comma-separated assigned IPs for cold migration
|
|
||||||
Format: {"vm-name": "IP1,IP2,IP3"} where each IP corresponds to a network interface by index
|
|
||||||
type: object
|
|
||||||
fallbackToDHCP:
|
fallbackToDHCP:
|
||||||
type: boolean
|
type: boolean
|
||||||
firstBootScript:
|
firstBootScript:
|
||||||
@@ -985,6 +1032,8 @@ spec:
|
|||||||
description: NICOverride defines per-NIC overrides for IP and
|
description: NICOverride defines per-NIC overrides for IP and
|
||||||
MAC preservation during migration
|
MAC preservation during migration
|
||||||
properties:
|
properties:
|
||||||
|
UserAssignedIP:
|
||||||
|
type: string
|
||||||
interfaceIndex:
|
interfaceIndex:
|
||||||
description: InterfaceIndex is the zero-based index of the
|
description: InterfaceIndex is the zero-based index of the
|
||||||
NIC
|
NIC
|
||||||
@@ -1120,16 +1169,18 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
description: Spec defines the desired state of Migration
|
description: Spec defines the desired state of Migration
|
||||||
properties:
|
properties:
|
||||||
assignedIP:
|
|
||||||
description: |-
|
|
||||||
AssignedIP is the comma-separated list of user-assigned IPs for cold migration
|
|
||||||
Format: "IP1,IP2,IP3" where each IP corresponds to a network interface by index
|
|
||||||
type: string
|
|
||||||
disconnectSourceNetwork:
|
disconnectSourceNetwork:
|
||||||
description: |-
|
description: |-
|
||||||
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
|
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
|
||||||
after a successful migration to prevent network conflicts. Defaults to false.
|
after a successful migration to prevent network conflicts. Defaults to false.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
imageMetadata:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
ImageMetadata is the merged map of Cinder volume_image_metadata properties resolved
|
||||||
|
from the MigrationPlan's selected VolumeImageProfiles after OS-family filtering.
|
||||||
|
type: object
|
||||||
initiateCutover:
|
initiateCutover:
|
||||||
description: InitiateCutover is the flag to initiate cutover
|
description: InitiateCutover is the flag to initiate cutover
|
||||||
type: boolean
|
type: boolean
|
||||||
@@ -1241,6 +1292,11 @@ spec:
|
|||||||
- MappingVolume
|
- MappingVolume
|
||||||
- RescanningStorage
|
- RescanningStorage
|
||||||
- XCOPYInProgress
|
- XCOPYInProgress
|
||||||
|
- SnapshottingSourceVM
|
||||||
|
- AttachingDisksToProxy
|
||||||
|
- IdentifyingBlockDevices
|
||||||
|
- HotAddTransferInProgress
|
||||||
|
- HotAddCleanup
|
||||||
type: string
|
type: string
|
||||||
retryable:
|
retryable:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1328,8 +1384,10 @@ spec:
|
|||||||
- openstackRef
|
- openstackRef
|
||||||
type: object
|
type: object
|
||||||
networkMapping:
|
networkMapping:
|
||||||
description: NetworkMapping is the reference to the NetworkMapping
|
description: |-
|
||||||
resource that defines source to destination network mappings
|
NetworkMapping is the reference to the NetworkMapping resource that defines source to destination network mappings.
|
||||||
|
Optional: when the selected VMs have no attached VMware networks, no NetworkMapping is required and this field
|
||||||
|
may be empty. The controller will skip network reconciliation in that case.
|
||||||
type: string
|
type: string
|
||||||
osFamily:
|
osFamily:
|
||||||
description: OSFamily is the OS type of the virtual machine
|
description: OSFamily is the OS type of the virtual machine
|
||||||
@@ -1337,6 +1395,22 @@ spec:
|
|||||||
- windowsGuest
|
- windowsGuest
|
||||||
- linuxGuest
|
- linuxGuest
|
||||||
type: string
|
type: string
|
||||||
|
proxyVMRef:
|
||||||
|
description: |-
|
||||||
|
ProxyVMRef references the ProxyVM to use for HotAdd data copy.
|
||||||
|
Required when StorageCopyMethod is "HotAdd".
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
source:
|
source:
|
||||||
description: Source is the source details for the virtual machine
|
description: Source is the source details for the virtual machine
|
||||||
properties:
|
properties:
|
||||||
@@ -1351,10 +1425,11 @@ spec:
|
|||||||
default: normal
|
default: normal
|
||||||
description: |-
|
description: |-
|
||||||
StorageCopyMethod indicates the method to use for storage migration
|
StorageCopyMethod indicates the method to use for storage migration
|
||||||
Valid values: "normal" (default), "StorageAcceleratedCopy"
|
Valid values: "normal" (default), "StorageAcceleratedCopy", "HotAdd"
|
||||||
enum:
|
enum:
|
||||||
- normal
|
- normal
|
||||||
- StorageAcceleratedCopy
|
- StorageAcceleratedCopy
|
||||||
|
- HotAdd
|
||||||
type: string
|
type: string
|
||||||
storageMapping:
|
storageMapping:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1379,7 +1454,6 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- destination
|
- destination
|
||||||
- networkMapping
|
|
||||||
- source
|
- source
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
@@ -1704,7 +1778,19 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
networks:
|
networks:
|
||||||
items:
|
items:
|
||||||
type: string
|
description: PCDNetworkInfo is struct to hold network information
|
||||||
|
for PCD
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
tags:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- tags
|
||||||
|
type: object
|
||||||
type: array
|
type: array
|
||||||
securityGroups:
|
securityGroups:
|
||||||
items:
|
items:
|
||||||
@@ -1957,6 +2043,134 @@ 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: proxyvms.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ProxyVM
|
||||||
|
listKind: ProxyVMList
|
||||||
|
plural: proxyvms
|
||||||
|
singular: proxyvm
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.vmName
|
||||||
|
name: VM-Name
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.validationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.ipAddress
|
||||||
|
name: IP
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.attachedDiskCount
|
||||||
|
name: Attached-Disks
|
||||||
|
type: integer
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: ProxyVM is the Schema for the proxyvms 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: ProxyVMSpec defines the desired state of ProxyVM
|
||||||
|
properties:
|
||||||
|
sshKeyPairRef:
|
||||||
|
description: |-
|
||||||
|
LocalObjectReference contains enough information to let you locate the
|
||||||
|
referenced object inside the same namespace.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
vmName:
|
||||||
|
type: string
|
||||||
|
vmwareCredsRef:
|
||||||
|
description: |-
|
||||||
|
LocalObjectReference contains enough information to let you locate the
|
||||||
|
referenced object inside the same namespace.
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
default: ""
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
This field is effectively required, but due to backwards compatibility is
|
||||||
|
allowed to be empty. Instances of this type with an empty value here are
|
||||||
|
almost certainly wrong.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
required:
|
||||||
|
- vmName
|
||||||
|
- vmwareCredsRef
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ProxyVMStatus defines the observed state of ProxyVM
|
||||||
|
properties:
|
||||||
|
attachedDiskCount:
|
||||||
|
type: integer
|
||||||
|
componentsVerified:
|
||||||
|
items:
|
||||||
|
description: ProxyVMComponentCheck records whether a required component
|
||||||
|
was found on the Proxy VM.
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
present:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- present
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
ipAddress:
|
||||||
|
type: string
|
||||||
|
lastValidationTime:
|
||||||
|
format: date-time
|
||||||
|
type: string
|
||||||
|
validationMessage:
|
||||||
|
type: string
|
||||||
|
validationStatus:
|
||||||
|
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
|
||||||
@@ -2177,6 +2391,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
imageProfiles:
|
||||||
|
description: ImageProfiles is the ordered list of VolumeImageProfile
|
||||||
|
names to apply to the migrated VM's boot volume.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
networkPersistence:
|
networkPersistence:
|
||||||
description: NetworkPersistence instructs the migration helper
|
description: NetworkPersistence instructs the migration helper
|
||||||
to persist the source networking configuration
|
to persist the source networking configuration
|
||||||
@@ -2633,6 +2853,12 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
openstackServerGroup:
|
||||||
|
description: |-
|
||||||
|
OpenstackServerGroup is the ID of the OpenStack server group used for VM placement scheduling.
|
||||||
|
When set, the agent VM is placed according to the server group's policy.
|
||||||
|
If empty, default OpenStack scheduling applies.
|
||||||
|
type: string
|
||||||
openstackVolumeType:
|
openstackVolumeType:
|
||||||
description: |-
|
description: |-
|
||||||
OpenstackVolumeType is the volume type for the root disk of the VM
|
OpenstackVolumeType is the volume type for the root disk of the VM
|
||||||
@@ -2663,7 +2889,7 @@ spec:
|
|||||||
(e.g., Provisioning, Ready, Error, Decommissioning)
|
(e.g., Provisioning, Ready, Error, Decommissioning)
|
||||||
type: string
|
type: string
|
||||||
vmIP:
|
vmIP:
|
||||||
description: VMIP is the IP address of the VM
|
description: VMIP is the IP address of the VM
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- vmIP
|
- vmIP
|
||||||
@@ -3104,11 +3330,15 @@ spec:
|
|||||||
machine.
|
machine.
|
||||||
properties:
|
properties:
|
||||||
ipAddress:
|
ipAddress:
|
||||||
type: string
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
mac:
|
mac:
|
||||||
type: string
|
type: string
|
||||||
network:
|
network:
|
||||||
type: string
|
type: string
|
||||||
|
networkType:
|
||||||
|
type: string
|
||||||
order:
|
order:
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
@@ -3131,6 +3361,10 @@ spec:
|
|||||||
vmState:
|
vmState:
|
||||||
description: VMState is the state of the virtual machine
|
description: VMState is the state of the virtual machine
|
||||||
type: string
|
type: string
|
||||||
|
vmid:
|
||||||
|
description: VMID is the vCenter Managed Object ID (MOID) of the
|
||||||
|
virtual machine
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- name
|
- name
|
||||||
type: object
|
type: object
|
||||||
@@ -3154,6 +3388,81 @@ spec:
|
|||||||
subresources:
|
subresources:
|
||||||
status: {}
|
status: {}
|
||||||
---
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.17.1
|
||||||
|
name: volumeimageprofiles.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: VolumeImageProfile
|
||||||
|
listKind: VolumeImageProfileList
|
||||||
|
plural: volumeimageprofiles
|
||||||
|
singular: volumeimageprofile
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.osFamily
|
||||||
|
name: OSFamily
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
VolumeImageProfile defines a reusable set of Cinder volume_image_metadata properties
|
||||||
|
that can be applied to VM volumes during migration.
|
||||||
|
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: VolumeImageProfileSpec defines the desired state of VolumeImageProfile
|
||||||
|
properties:
|
||||||
|
description:
|
||||||
|
description: Description will indicate the usage context of this profile
|
||||||
|
type: string
|
||||||
|
osFamily:
|
||||||
|
description: OSFamily scopes this profile to a specific VMware guest
|
||||||
|
family.
|
||||||
|
enum:
|
||||||
|
- windowsGuest
|
||||||
|
- linuxGuest
|
||||||
|
- any
|
||||||
|
type: string
|
||||||
|
properties:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: Properties is the map of Cinder volume image metadata
|
||||||
|
key-value pairs
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- osFamily
|
||||||
|
- properties
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources: {}
|
||||||
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
@@ -3487,6 +3796,7 @@ rules:
|
|||||||
- openstackcreds
|
- openstackcreds
|
||||||
- pcdclusters
|
- pcdclusters
|
||||||
- pcdhosts
|
- pcdhosts
|
||||||
|
- proxyvms
|
||||||
- rdmdisks
|
- rdmdisks
|
||||||
- rollingmigrationplans
|
- rollingmigrationplans
|
||||||
- storagemappings
|
- storagemappings
|
||||||
@@ -3517,6 +3827,7 @@ rules:
|
|||||||
- openstackcreds/finalizers
|
- openstackcreds/finalizers
|
||||||
- pcdclusters/finalizers
|
- pcdclusters/finalizers
|
||||||
- pcdhosts/finalizers
|
- pcdhosts/finalizers
|
||||||
|
- proxyvms/finalizers
|
||||||
- rdmdisks/finalizers
|
- rdmdisks/finalizers
|
||||||
- rollingmigrationplans/finalizers
|
- rollingmigrationplans/finalizers
|
||||||
- storagemappings/finalizers
|
- storagemappings/finalizers
|
||||||
@@ -3539,6 +3850,7 @@ rules:
|
|||||||
- openstackcreds/status
|
- openstackcreds/status
|
||||||
- pcdclusters/status
|
- pcdclusters/status
|
||||||
- pcdhosts/status
|
- pcdhosts/status
|
||||||
|
- proxyvms/status
|
||||||
- rdmdisks/status
|
- rdmdisks/status
|
||||||
- rollingmigrationplans/status
|
- rollingmigrationplans/status
|
||||||
- storagemappings/status
|
- storagemappings/status
|
||||||
@@ -4428,7 +4740,8 @@ spec:
|
|||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: pf9-env
|
name: pf9-env
|
||||||
image: quay.io/platform9/vjailbreak-controller:v0.4.1
|
optional: true
|
||||||
|
image: quay.io/platform9/vjailbreak-controller:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
@@ -4462,6 +4775,13 @@ spec:
|
|||||||
- mountPath: /etc/hosts
|
- mountPath: /etc/hosts
|
||||||
name: hosts-file
|
name: hosts-file
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
- mountPath: /host/dmi/product_uuid
|
||||||
|
name: dmi-product-uuid
|
||||||
|
readOnly: true
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "1"
|
||||||
dnsPolicy: ClusterFirstWithHostNet
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -4482,6 +4802,10 @@ spec:
|
|||||||
path: /etc/hosts
|
path: /etc/hosts
|
||||||
type: File
|
type: File
|
||||||
name: hosts-file
|
name: hosts-file
|
||||||
|
- hostPath:
|
||||||
|
path: /sys/class/dmi/id/product_uuid
|
||||||
|
type: File
|
||||||
|
name: dmi-product-uuid
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
@@ -4504,20 +4828,41 @@ spec:
|
|||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
annotations:
|
||||||
|
container.apparmor.security.beta.kubernetes.io/vpwned: unconfined
|
||||||
labels:
|
labels:
|
||||||
app: vpwned-sdk
|
app: vpwned-sdk
|
||||||
spec:
|
spec:
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
containers:
|
containers:
|
||||||
- envFrom:
|
- env:
|
||||||
|
- name: DBUS_SYSTEM_BUS_ADDRESS
|
||||||
|
value: unix:path=/run/dbus/system_bus_socket
|
||||||
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: pf9-env
|
name: pf9-env
|
||||||
image: quay.io/platform9/vjailbreak-vpwned:v0.4.1
|
optional: true
|
||||||
|
image: quay.io/platform9/vjailbreak-vpwned:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
name: vpwned
|
name: vpwned
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3001
|
- containerPort: 3001
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
resources: {}
|
resources: {}
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
add:
|
||||||
|
- DAC_OVERRIDE
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
runAsUser: 0
|
||||||
terminationMessagePath: /dev/termination-log
|
terminationMessagePath: /dev/termination-log
|
||||||
terminationMessagePolicy: File
|
terminationMessagePolicy: File
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
@@ -4526,6 +4871,22 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
- mountPath: /home/ubuntu
|
- mountPath: /home/ubuntu
|
||||||
name: vddk-storage
|
name: vddk-storage
|
||||||
|
- mountPath: /run/dbus/system_bus_socket
|
||||||
|
name: dbus-socket
|
||||||
|
- mountPath: /etc/systemd/timesyncd.conf.d
|
||||||
|
name: timesyncd-conf-dir
|
||||||
|
- mountPath: /usr/share/zoneinfo
|
||||||
|
name: host-zoneinfo
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /etc/pf9
|
||||||
|
name: pf9-config
|
||||||
|
- mountPath: /var/log/pf9
|
||||||
|
name: pf9-logs
|
||||||
|
readOnly: true
|
||||||
|
dnsConfig:
|
||||||
|
options:
|
||||||
|
- name: ndots
|
||||||
|
value: "1"
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
restartPolicy: Always
|
restartPolicy: Always
|
||||||
schedulerName: default-scheduler
|
schedulerName: default-scheduler
|
||||||
@@ -4541,6 +4902,26 @@ spec:
|
|||||||
path: /home/ubuntu
|
path: /home/ubuntu
|
||||||
type: DirectoryOrCreate
|
type: DirectoryOrCreate
|
||||||
name: vddk-storage
|
name: vddk-storage
|
||||||
|
- hostPath:
|
||||||
|
path: /run/dbus/system_bus_socket
|
||||||
|
type: Socket
|
||||||
|
name: dbus-socket
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/systemd/timesyncd.conf.d
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
name: timesyncd-conf-dir
|
||||||
|
- hostPath:
|
||||||
|
path: /usr/share/zoneinfo
|
||||||
|
type: Directory
|
||||||
|
name: host-zoneinfo
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/pf9
|
||||||
|
type: Directory
|
||||||
|
name: pf9-config
|
||||||
|
- hostPath:
|
||||||
|
path: /var/log/pf9
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
name: pf9-logs
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
@@ -4586,26 +4967,256 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: vjailbreak-ui
|
app: vjailbreak-ui
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: migration-controller-manager
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
serviceAccountName: ui-manager-sa
|
||||||
containers:
|
containers:
|
||||||
- name: vjailbreak-ui-container
|
- name: vjailbreak-ui-container
|
||||||
image: quay.io/platform9/vjailbreak-ui:v0.4.1
|
image: quay.io/platform9/vjailbreak-ui:v0.4.7
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: pf9-env
|
||||||
|
optional: true
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: nginx-shadow-htpasswd
|
- name: nginx-shadow-htpasswd
|
||||||
mountPath: /etc/nginx/shadow
|
mountPath: /etc/nginx/shadow
|
||||||
- name: pf9-logs
|
|
||||||
mountPath: /var/log/pf9
|
|
||||||
readOnly: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: nginx-shadow-htpasswd
|
- name: nginx-shadow-htpasswd
|
||||||
hostPath:
|
hostPath:
|
||||||
path: /etc/htpasswd
|
path: /etc/htpasswd
|
||||||
type: FileOrCreate
|
type: FileOrCreate
|
||||||
- name: pf9-logs
|
|
||||||
hostPath:
|
|
||||||
path: /var/log/pf9
|
|
||||||
type: DirectoryOrCreate
|
|
||||||
---
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-ui-service
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: vjailbreak-ui
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-ui-ingress
|
||||||
|
namespace: migration-system
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: vjailbreak-ui-service
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: vjailbreak-api-ingress
|
||||||
|
namespace: default
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||||
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||||
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /(apis.*)
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: kubernetes
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
|
- path: /(api.*)
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: kubernetes
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: grafana-api-ingress
|
||||||
|
namespace: monitoring
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /grafana
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: grafana
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: ui-manager-sa
|
||||||
|
namespace: migration-system
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: ui-manager-role
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds
|
||||||
|
- arraycredsmappings
|
||||||
|
- bmconfigs
|
||||||
|
- esxisshcreds
|
||||||
|
- clustermigrations
|
||||||
|
- esximigrations
|
||||||
|
- migrationplans
|
||||||
|
- migrations
|
||||||
|
- migrationtemplates
|
||||||
|
- networkmappings
|
||||||
|
- openstackcreds
|
||||||
|
- pcdclusters
|
||||||
|
- pcdhosts
|
||||||
|
- proxyvms
|
||||||
|
- rdmdisks
|
||||||
|
- rollingmigrationplans
|
||||||
|
- storagemappings
|
||||||
|
- vjailbreaknodes
|
||||||
|
- vmwareclusters
|
||||||
|
- vmwarecreds
|
||||||
|
- vmwarehosts
|
||||||
|
- vmwaremachines
|
||||||
|
- volumeimageprofiles
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds/finalizers
|
||||||
|
- arraycredsmappings/finalizers
|
||||||
|
- bmconfigs/finalizers
|
||||||
|
- esxisshcreds/finalizers
|
||||||
|
- clustermigrations/finalizers
|
||||||
|
- esximigrations/finalizers
|
||||||
|
- migrationplans/finalizers
|
||||||
|
- migrationtemplates/finalizers
|
||||||
|
- networkmappings/finalizers
|
||||||
|
- openstackcreds/finalizers
|
||||||
|
- pcdclusters/finalizers
|
||||||
|
- pcdhosts/finalizers
|
||||||
|
- proxyvms/finalizers
|
||||||
|
- rdmdisks/finalizers
|
||||||
|
- rollingmigrationplans/finalizers
|
||||||
|
- storagemappings/finalizers
|
||||||
|
- vjailbreaknodes/finalizers
|
||||||
|
- vmwarecreds/finalizers
|
||||||
|
verbs:
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- vjailbreak.k8s.pf9.io
|
||||||
|
resources:
|
||||||
|
- arraycreds/status
|
||||||
|
- arraycredsmappings/status
|
||||||
|
- bmconfigs/status
|
||||||
|
- esxisshcreds/status
|
||||||
|
- clustermigrations/status
|
||||||
|
- esximigrations/status
|
||||||
|
- migrationplans/status
|
||||||
|
- migrations/status
|
||||||
|
- migrationtemplates/status
|
||||||
|
- networkmappings/status
|
||||||
|
- openstackcreds/status
|
||||||
|
- pcdclusters/status
|
||||||
|
- pcdhosts/status
|
||||||
|
- rdmdisks/status
|
||||||
|
- rollingmigrationplans/status
|
||||||
|
- storagemappings/status
|
||||||
|
- vjailbreaknodes/status
|
||||||
|
- vmwarecreds/status
|
||||||
|
- vmwaremachines/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: ui-manager-rolebinding
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: ui-manager-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: ui-manager-sa
|
||||||
|
namespace: migration-system
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
apiVersion: vjailbreak.k8s.pf9.io/v1alpha1
|
||||||
|
kind: VolumeImageProfile
|
||||||
|
metadata:
|
||||||
|
name: default-windows
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
osFamily: windowsGuest
|
||||||
|
description: Default profile for Windows VMs
|
||||||
|
properties:
|
||||||
|
hw_qemu_guest_agent: "yes"
|
||||||
|
hw_video_model: virtio
|
||||||
|
hw_pointer_model: usbtablet
|
||||||
|
hw_disk_bus: virtio
|
||||||
|
os_type: windows
|
||||||
|
---
|
||||||
|
apiVersion: vjailbreak.k8s.pf9.io/v1alpha1
|
||||||
|
kind: VolumeImageProfile
|
||||||
|
metadata:
|
||||||
|
name: default-linux
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
osFamily: linuxGuest
|
||||||
|
description: Default profile for Linux VMs
|
||||||
|
properties:
|
||||||
|
hw_qemu_guest_agent: "yes"
|
||||||
|
hw_video_model: virtio
|
||||||
|
hw_pointer_model: usbtablet
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
# This file is used to set environment variables to be injected into v2v-helper
|
# This file is used to set environment variables to be injected into v2v-helper
|
||||||
# User can populate this file via cloud-init
|
# User can populate this file via cloud-init
|
||||||
|
|
||||||
|
TZ=UTC
|
||||||
|
|
||||||
|
|||||||
@@ -20,9 +20,11 @@ data:
|
|||||||
VMWARE_CREDS_REQUEUE_AFTER_MINUTES: "60" # number of minutes to requeue after for vmware creds
|
VMWARE_CREDS_REQUEUE_AFTER_MINUTES: "60" # number of minutes to requeue after for vmware creds
|
||||||
VALIDATE_RDM_OWNER_VMS: "true" # validate RDM owner VMs before migration
|
VALIDATE_RDM_OWNER_VMS: "true" # validate RDM owner VMs before migration
|
||||||
DEPLOYMENT_NAME: vJailbreak
|
DEPLOYMENT_NAME: vJailbreak
|
||||||
|
TIMEZONE: ""
|
||||||
PERIODIC_SYNC_MAX_RETRIES: "3" # max number of retries for CBT sync
|
PERIODIC_SYNC_MAX_RETRIES: "3" # max number of retries for CBT sync
|
||||||
PERIODIC_SYNC_RETRY_CAP: "3h" # max retry interval for CBT sync
|
PERIODIC_SYNC_RETRY_CAP: "3h" # max retry interval for CBT sync
|
||||||
AUTO_FSTAB_UPDATE: "true" # automatically update fstab
|
AUTO_FSTAB_UPDATE: "true" # automatically update fstab
|
||||||
|
DEFAULT_NETWORK_PERSISTENCE: "false" # default value for persist source network interfaces in migration form
|
||||||
AUTO_PXE_BOOT_ON_CONVERSION: "false" # automatically set machine to PXE boot during cluster conversion
|
AUTO_PXE_BOOT_ON_CONVERSION: "false" # automatically set machine to PXE boot during cluster conversion
|
||||||
V2V_HELPER_POD_CPU_REQUEST: "1000m"
|
V2V_HELPER_POD_CPU_REQUEST: "1000m"
|
||||||
V2V_HELPER_POD_MEMORY_REQUEST: "2Gi"
|
V2V_HELPER_POD_MEMORY_REQUEST: "2Gi"
|
||||||
@@ -30,4 +32,7 @@ data:
|
|||||||
V2V_HELPER_POD_MEMORY_LIMIT: "5Gi"
|
V2V_HELPER_POD_MEMORY_LIMIT: "5Gi"
|
||||||
V2V_HELPER_POD_EPHEMERAL_STORAGE_REQUEST: "3Gi"
|
V2V_HELPER_POD_EPHEMERAL_STORAGE_REQUEST: "3Gi"
|
||||||
V2V_HELPER_POD_EPHEMERAL_STORAGE_LIMIT: "3Gi"
|
V2V_HELPER_POD_EPHEMERAL_STORAGE_LIMIT: "3Gi"
|
||||||
|
NTP_SERVERS: ""
|
||||||
|
HTTP_TIMEOUT_SECONDS: "30" # timeout for http calls in seconds
|
||||||
|
PROXY_VM_OVA_URL: "https://vjailbreak-dev.s3.us-west-2.amazonaws.com/hot-add/ha-proxy-vm.ova" # OVA template URL for deploying the Hot-Add Proxy VM
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# v0.4.2
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.2`
|
||||||
|
- **Published:** 2026-03-18T18:50:07Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.2
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* UI access control by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1629
|
||||||
|
* refactor for a cleaner code: consolidate go modules and constants by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1560
|
||||||
|
* Simplify S3 QCOW2 upload paths by removing date folders by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1631
|
||||||
|
* fix - Static network interface name is not getting preserved for Rocky9 by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1634
|
||||||
|
* Refactor: move commonly used functions to common package by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1633
|
||||||
|
* fix: Wait for network IP and default route before installing K3s master and worker by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1644
|
||||||
|
* metadata as input by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1639
|
||||||
|
* Implement independent post-migration script execution for mixed OS plans by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1638
|
||||||
|
* #1607 : Cancel button is not working during vddk upload by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1635
|
||||||
|
* #1575, #1577 : Start Migration is not getting disabled by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1637
|
||||||
|
* Added checks for failure in user management vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1659
|
||||||
|
* Add exponential backoff auto-reconnect for migration pod log streams by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1657
|
||||||
|
* Fix UI RBAC permissions for pod operations by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1661
|
||||||
|
* fix: Scale up agents on L2 network by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1654
|
||||||
|
* Detect if target is L2 network if so ignore ip by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1666
|
||||||
|
* Added failure checks in vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1672
|
||||||
|
* create seperate CI to create base image, use this base image to generate qcow2 by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1677
|
||||||
|
* Revert "create seperate CI to create base image, use this base image to generate qcow2" by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1684
|
||||||
|
* #1543 : VM selection filter is not working properly by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1682
|
||||||
|
* fix: Version lock ingress version by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1686
|
||||||
|
* fix - Migrations failing with - failed to reserve ports for VM by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1688
|
||||||
|
* #1694 : Extract only first IPv4 address when displaying and editing VM IP addresses by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1695
|
||||||
|
* Fix: VJailbreakNode CR status was stuck at "CreatingVM" for L2 networks even after the VM joined the K8s cluster. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1693
|
||||||
|
* Ability to reuse ports in case of l2 network by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1700
|
||||||
|
* #1692 : Support multiple IP addresses per network interface by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1697
|
||||||
|
* API change: multiple ips for single nic in vmwaremachines by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1696
|
||||||
|
* Disabled Fallbacktodhcp and Securitygrp for L2 by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1705
|
||||||
|
* #1694 : Preserve IP for a powered on VM is getting wrong IPs for no IP interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1704
|
||||||
|
* fix agents migration for L3 by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1706
|
||||||
|
* #1710 : Remove no ip validation in assign IP box for no ip interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1712
|
||||||
|
* Mount persist debug log by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1711
|
||||||
|
* Disabled assigned ip box for multiple ips by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1713
|
||||||
|
* Defining refresh ui function for vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1715
|
||||||
|
* chore: Pre-release CRD generation for v0.4.2 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/1716
|
||||||
|
* Added a check to preserve ip by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1718
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.1...v0.4.2
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
# v0.4.3
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.3`
|
||||||
|
- **Published:** 2026-04-08T06:57:13Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.3
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* fix for no cluster filter by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1726
|
||||||
|
* fix - Unable to migrate powered-off VM without IP address by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1732
|
||||||
|
* Optimise VMware tool removal by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1675
|
||||||
|
* Added dnsConfig with ndots: 1 for controller,v2v-helper and vpwned pods by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1736
|
||||||
|
* Replaced the manual name construction with a call to resolvecinderVolumeToLun Function by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1738
|
||||||
|
* Added delete permissions for secrets by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1740
|
||||||
|
* uuid for image id discovery call by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1739
|
||||||
|
* Duplicate ESXi hosts are visible for multiple VMware credentials by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1707
|
||||||
|
* Preserved non-ASCII chars in Kubernetes secrets by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1745
|
||||||
|
* #1656: Reset to Default button toggles off Auto Fstab Update and sets migration type to hot by default by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1734
|
||||||
|
* #1733 : Add a toggle to pass the instance ID when creating PCD credentials on a VJB VM that was created using an L2 network by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1744
|
||||||
|
* #1648 : Remove the N/A drop down from Storage Accelerated Copy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1748
|
||||||
|
* Disable security group selection for L2-enabled PCD credentials by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1757
|
||||||
|
* Updating virt-v2v version by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1763
|
||||||
|
* Give permission to UI user to create arraycredsmapping by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1760
|
||||||
|
* mount point for lvm by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1599
|
||||||
|
* Implement subnet compatibility warnings for VM network mapping by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1755
|
||||||
|
* Agents markdown file by @roopakparikh in https://github.com/platform9/vjailbreak/pull/1507
|
||||||
|
* Feat/support virtual portgroups by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1730
|
||||||
|
* v2v checks for windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1775
|
||||||
|
* Add update patch list to secret for ui role by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1777
|
||||||
|
* #1591 : Migration details in the details modal becomes NA if we remove creds and create new creds, Its reconciling with old creds by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1753
|
||||||
|
* adding proper filtering for agent nodes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1778
|
||||||
|
* Added devcon utility by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1790
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.2...v0.4.3
|
||||||
|
|
||||||
|
## Release Notes & Known Issues
|
||||||
|
* Static IP and interface name preservation is not supported when the target network has DHCP disabled.
|
||||||
|
* For Windows VMs, static IP configurations are automatically converted to DHCP. However, the original source IP is retained on the destination VM to maintain network connectivity.
|
||||||
|
* The VMware Tools removal script may leave behind some residual artifacts. Refer to the [documentation](https://platform9.github.io/vjailbreak/guides/troubleshooting/vmware_residual_artifacts/#_top) for more details.
|
||||||
|
* Agent scaling is not supported for vJailbreak VMs operating on L2 networks.
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# v0.4.4
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.4`
|
||||||
|
- **Published:** 2026-04-29T15:08:09Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.4
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Add offline VMware Tools cleanup and optimize firstboot script for cleaner migrations by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1779
|
||||||
|
* Claude.md and other files for LLM integration by @roopakparikh in https://github.com/platform9/vjailbreak/pull/1690
|
||||||
|
* Add security scan file for vulnerability scans by @hsri-pf9 in https://github.com/platform9/vjailbreak/pull/1039
|
||||||
|
* Removing the volume attachment delay due to metadata service connectivity by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1804
|
||||||
|
* ci: skip build-image and lint workflow by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1807
|
||||||
|
* Support duplicate VM names by using vCenter MOID as a unique identifier by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1772
|
||||||
|
* fix - Interface preservation not working on DHCP disabled network for windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1805
|
||||||
|
* #1761 : Bugsnag not working properly by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1765
|
||||||
|
* Fix multi-disk volume-type mismatch by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1815
|
||||||
|
* fix: update VM identification from name to ID in VmsSelectionStep by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1817
|
||||||
|
* validate CURRENT_INSTACE_ID is in the same env by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1816
|
||||||
|
* #1783 : Duplicate Amplitude Events Triggered During Migration by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1791
|
||||||
|
* Added user assigned ip per nic in backend by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1719
|
||||||
|
* Added UI for per-NIC multi-IP overrides by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1820
|
||||||
|
* Added workflow for old builds cleanup from quay and S3 by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1735
|
||||||
|
* change volume attachment wait time and logs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1819
|
||||||
|
* Virtio installation in windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1824
|
||||||
|
* Improved Mac Filtering by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1831
|
||||||
|
* 1825 : Enhance Amplitude Events with OS Region Name from Credentials by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1835
|
||||||
|
* feat: add UI support for setting volume metadata prior to migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1838
|
||||||
|
* feat: add volume image properties prior to migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1834
|
||||||
|
* Handling interfaces with no ip for rhel based os by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1842
|
||||||
|
* UI: show selected profiles in details modal by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1841
|
||||||
|
* Remove default profile auto-selection and fix boot volume metadata merge by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1846
|
||||||
|
* Update portgroupkey if stale with correct live mor of the dvpg. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1836
|
||||||
|
* improve bootable partition detection for Grub 2.12 and add script logging by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1829
|
||||||
|
* L2 scaling support. Don't query metadataservice, get uuid from pod's nodename. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1848
|
||||||
|
* Feature: Add FC support for pure and netapp. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1851
|
||||||
|
* fix - Suse-11-4 - VM ends up in maintenance mode post migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1850
|
||||||
|
* fix - dirty disk post migration windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1856
|
||||||
|
* Pass vmkey instead of vmname to delete object by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1865
|
||||||
|
* Map lun to igroup based on svm by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1866
|
||||||
|
* Prevent the user from adding multiple IPs if the Preserve IP toggle is turned off by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1863
|
||||||
|
* use custom http timeout from settings by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1860
|
||||||
|
* Remove L2 instance ID from UI and backend by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1858
|
||||||
|
* Fixed master instance ID issue by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1871
|
||||||
|
* After we copy the disks via storagecopy add image tags to boot correctly by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1870
|
||||||
|
* Bug: Use GetIsSimpleNetwork method instead of using stale env variable by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1875
|
||||||
|
* increased version window for github tags by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1876
|
||||||
|
* Keepalive client mechanism by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1881
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @hsri-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/1039
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.3...v0.4.4
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
- **VMware Tools Removal:** The removal script now removes all residual files and folders. A small number of registry entries may remain depending on the Windows version, but these are harmless and can be removed manually if needed.
|
||||||
|
- **Migration Profiles:** Pre-defined key-value pairs can now be applied to a migrated VM's root volume in OpenStack. Profiles are supported for both Windows and Linux guests.
|
||||||
|
- **L2 Network Scaling Support:** Scaling of agents in L2 network (Simple Networking) is now supported.
|
||||||
|
- **Persistent Network Interface for Windows (2016+):** Static network configurations including interface name, IP, MAC, and gateway are now preserved across migration for Windows Server 2016 and above.
|
||||||
|
- **FC Support for Storage Area Migration (SAM):** Fibre Channel support has been added for SAM workflows, verified with NetApp FC targets.
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
- **Windows 2012 and Earlier — Persist Network:** The persistent network interface option is not supported on Windows 2012 and below. IP and MAC addresses are preserved, but the interface name and gateway may get lost, and the NIC configuration becomes dynamic after migration.
|
||||||
|
- **Migration Profiles — Upgrade Path:** The two default profiles (Windows and Linux) are auto-created on fresh installations only. Users upgrading from lower versions to v0.4.4 will need to create these profiles manually.
|
||||||
|
- **VMware Tools Registry Entries:** Depending on the Windows version, a small number of VMware Tools registry entries (listed in public docs) may not be removed by the uninstall script. These are harmless but can be removed manually if desired.
|
||||||
|
- **FC SAM — Verified Target:** FC support for SAM has been verified against NetApp FC targets. Compatibility with other FC storage vendors is not yet validated.
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# v0.4.5
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.5`
|
||||||
|
- **Published:** 2026-05-06T06:19:56Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.5
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Fix RDM configuration issue from UI by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1895
|
||||||
|
* Bug: Fix unauthenticated error when doing vcenter operations after a long time. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1891
|
||||||
|
* Fixed migration issue for shared rdm disk by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1902
|
||||||
|
* chore: Pre-release CRD generation for v0.4.5 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/1904
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.4...v0.4.5
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# v0.4.6
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.6`
|
||||||
|
- **Published:** 2026-06-11T05:42:35Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.6
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* [1822] Removed redundant field (AssignedIP) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1899
|
||||||
|
* [1907] Fix: fetch single VMwareMachine instead of entire list in migration detail query by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1903
|
||||||
|
* [1241] Disable port security on migrated ports when no security group is selected while migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1892
|
||||||
|
* #1822: Display All VM IP Addresses in Migration Details Page (Assigned & Preserved IPs) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1911
|
||||||
|
* [1897] Feat: Add controller logs button to topbar in UI by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1896
|
||||||
|
* docs(CLAUDE.md): add unit test requirements for Claude-written code by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1917
|
||||||
|
* [1830] Fix: Include RBAC-shared security groups in destination tenant security group list by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1910
|
||||||
|
* [1925] ci: Shift nightly build trigger to 01:00 IST by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1924
|
||||||
|
* [1920] Added warnings for selected VMs with missing IPs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1918
|
||||||
|
* [1913] Fix: Skip VMwareMachine reconciliation for migrated VMs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1912
|
||||||
|
* #973: Verify vCenter FQDN DNS resolution by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1928
|
||||||
|
* [1931] feat: Add debug bundle collection with resources and logs for easier troubleshooting by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1929
|
||||||
|
* Bug: Filter Flavor Selection on AZ and flavours without AZ by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1916
|
||||||
|
* [1840] Added the ability to migrate the VMs with no interface by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1927
|
||||||
|
* Updating the compute api version to support multi-attach volumes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1932
|
||||||
|
* [1921] feat: Show revalidation progress on Credentials page by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1919
|
||||||
|
* [1890] agent dns config by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1937
|
||||||
|
* [1888] refactor: Remove direct pod permissions by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1935
|
||||||
|
* [1938] Support VMs with space in their name by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1936
|
||||||
|
* [1933] Don't restart ui when listing users by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1939
|
||||||
|
* [1796] Optimising the copy changed blocks mechanism for faster sync by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1934
|
||||||
|
* #587: UI refactor migration by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1960
|
||||||
|
* #1940: Block v2v pod creation or disable start migration if vddk is not uploaded by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1969
|
||||||
|
* #1873: Block security group selection during scaling L2 Agent by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1962
|
||||||
|
* [1803] fix: Added retry for transient API errors by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1958
|
||||||
|
* [1961] fix: Handle transient vCenter errors during VM power-off by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1973
|
||||||
|
* [1610] Fix VMware Tools cleanup for Linux/SUSE VMs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1968
|
||||||
|
* [1482] Adding hot add proxy by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1964
|
||||||
|
* [1978] Sles LVM Minitrd fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1976
|
||||||
|
* #1971: UI hot add proxy migration complete UI requirements by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1981
|
||||||
|
* UI E2E testcases with mock data using playwright by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1972
|
||||||
|
* Fix cluster conversion issues by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1984
|
||||||
|
* [1990] Fix boot device index parse failure due to mixed guestfish stderr/stdout by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1993
|
||||||
|
* Hypervisor resmgr role Cluster Conversion by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1997
|
||||||
|
* #1999: Security group warning should be visible for Use security group of primary vJB vm by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2000
|
||||||
|
* [2004] Fix SLED OS detection and broaden SSH key format support by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2003
|
||||||
|
* [2002] fix- Cant upload key Invalid key error for RSA key by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2006
|
||||||
|
* [2009] Unified logs icons and aligned migration name across logs drawer and details by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2008
|
||||||
|
* Update CRD for v0.4.6 by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2017
|
||||||
|
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
**Hot Add Proxy**: Hot-Add Proxy is an advanced data copy method that attaches source VM disks directly to a dedicated Proxy VM and streams the data over NBD (Network Block Device) to the destination. Instead of copying data over the NFC protocol from ESXi. This feature is currently in beta, will be stabilized in the coming releases.
|
||||||
|
|
||||||
|
**Migration Reliability**:
|
||||||
|
- VMs with no network interfaces can now be migrated successfully.
|
||||||
|
- Multi-attach volume types are now supported for migration.
|
||||||
|
|
||||||
|
**Enhanced UX**:
|
||||||
|
- All IP addresses (assigned and preserved) are now shown on the Migration Details page in the UI.
|
||||||
|
- Controller logs (migration controller manager) are visible in the UI irrespective of any migrations triggered.
|
||||||
|
- A debug bundle collection button makes log and resource gathering easier for troubleshooting. All CRs related to that migration are now gathered for easier debugging.
|
||||||
|
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
- Migrations of VMs with grub version lower than 2 might face issues while booting post migration.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.5...v0.4.6
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# v0.4.7
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.7`
|
||||||
|
- **Published:** 2026-07-02T10:52:42Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.7
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Fixed the missing --binding-profile '{"l2-port": true}' on ports created for VMs migrated onto L2-only networks in PCD by @spai-p9 in https://github.com/platform9/vjailbreak/pull/2015
|
||||||
|
* [2007] Fix fstab rewrite incorrectly activating commented bind-mount entries by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2011
|
||||||
|
* [1058] Configure NTP servers and system timezone for the vJailbreak VM directly from the UI by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1742
|
||||||
|
* [1915] Added persist source network interfaces as a global setting by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2025
|
||||||
|
* Detect if we are using virtio-scsi controller for windows and pass --blockdriver for conversion by @spai-p9 in https://github.com/platform9/vjailbreak/pull/2027
|
||||||
|
* [1812] Fix volume cleanup when CreateTargetInstance times out by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2026
|
||||||
|
* [1975] Hot-Add Proxy VM UX improvements by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2023
|
||||||
|
* [1996] upgrade core components with guest OS migration fixes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2031
|
||||||
|
* [1970] Add server group selection for agent scale-up to control placement affinity by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2032
|
||||||
|
* [1979] VM selection refresh button now revalidates VMware credentials by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2034
|
||||||
|
* [1872] Verify volume bootable state after SetBootable timeout by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2035
|
||||||
|
* prebake proxy VM OVA into appliance image by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2038
|
||||||
|
* Fix: Check hardware version and migration type only then check for cbt by @spai-p9 in https://github.com/platform9/vjailbreak/pull/2037
|
||||||
|
* [1980] Enhance user experience with new UI by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2040
|
||||||
|
* UI side changes for Hot add proxy improvements by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2030
|
||||||
|
* Rename Firstboot-Scheduler.ps1 to 0-Firstboot-Scheduler.ps1 by @noaboa97 in https://github.com/platform9/vjailbreak/pull/1994
|
||||||
|
* fix(v2v-helper): repair broken build on main by @valentin-pf9 in https://github.com/platform9/vjailbreak/pull/1945
|
||||||
|
* [1750] UI for edit and retry by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2024
|
||||||
|
* [2044] Consolidate edit-and-retry into single Retry action by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2021
|
||||||
|
* #2047 : Need UI enhancement in hot add proxy changes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2048
|
||||||
|
* [2050] Optimize retry flow and add bulk retry by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2049
|
||||||
|
* [2052] Fix Windows firstboot loop by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2056
|
||||||
|
* [1915] Added persist source network interfaces as a global setting by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2058
|
||||||
|
* [2054] fix(retry): prefilled IP overrides not shown in Assign IP dialog on retry form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2059
|
||||||
|
* [2062] fix - ssh keypair name missmatch by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2060
|
||||||
|
* #2051: Converting disk shows copy disk inside the migration details page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2063
|
||||||
|
* #2067: Block/Grey out the already registered proxy vm, this could mismatch the secret by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2070
|
||||||
|
* [2079] Fix ProxyVM showing Ready status while SSH validation is failing by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/2080
|
||||||
|
* #2068 #2078 #2069: VM is in conversion state but it shows Hot add transfer in UI and stuck in validating state by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2074
|
||||||
|
* [2077] Fix: Reset to Defaults must skip NTP server & timezone while migration running by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2084
|
||||||
|
* #2088: [UI] Windows VM should be blocked for selection as a proxy VM by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2089
|
||||||
|
* [2093] feat: add debug-bundle API to vpwned by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2090
|
||||||
|
* #2082: Debug logs, yamls are not present in logs fetched using log download button by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/2092
|
||||||
|
* Fix Host Entries tab: duplicate description text and low-visibility button by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/2099
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @noaboa97 made their first contribution in https://github.com/platform9/vjailbreak/pull/1994
|
||||||
|
* @valentin-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/1945
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
**Migration details page**: Added new page which shows in depth state monitoring for migration lifecycle.
|
||||||
|
|
||||||
|
**Vjailbreak Proxy**:
|
||||||
|
* End-to-end UI for registering a Proxy VM (SSH key upload, validation status), selecting Hot-Add as the copy method in the migration form, and monitoring hot-add-specific migration phases
|
||||||
|
* Verification now auto-installs missing dependencies on the Proxy VM during validation, eliminating the need for manual pre-configuration before registering
|
||||||
|
|
||||||
|
**Advanced Configuration Management**
|
||||||
|
* Configure **NTP servers** and **system timezone** for vJailbreak VMs directly from the UI.
|
||||||
|
* Introduced **server group selection** for agent scale-up, enabling better placement and affinity control.
|
||||||
|
|
||||||
|
**Enhanced Retry Experience**
|
||||||
|
* Introduced a new Edit & Retry capability, allowing users to modify migration settings and retry failed migrations without recreating the migration.
|
||||||
|
* Simplified recovery with a unified Retry action and support for Bulk Retry, reducing manual effort.
|
||||||
|
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
|
||||||
|
**Proxy VM OVA requires ESXi 8.0 U2 or higher**: The bundled OVA template uses virtual hardware version vmx-21, which is incompatible with older ESXi hosts. Attempting to deploy it on ESXi 7.x will fail with an "unsupported hardware family" error. For ESXi 7.x environments, the Proxy VM must be created and configured manually instead of using the OVA deploy option.
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.6...v0.4.7
|
||||||
Reference in New Issue
Block a user