Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47983006c0 | ||
|
|
b1a4209926 | ||
|
|
8d140beca7 | ||
|
|
817b00fdc0 | ||
|
|
16583b180f | ||
|
|
610dd94bb9 |
+543
-196
@@ -9,6 +9,295 @@ metadata:
|
|||||||
---
|
---
|
||||||
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: arraycreds.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ArrayCreds
|
||||||
|
listKind: ArrayCredsList
|
||||||
|
plural: arraycreds
|
||||||
|
singular: arraycreds
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.vendorType
|
||||||
|
name: Vendor
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.openstackMapping.volumeType
|
||||||
|
name: VolumeType
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.openstackMapping.cinderBackendName
|
||||||
|
name: Backend
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.phase
|
||||||
|
name: Phase
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.arrayValidationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
ArrayCreds is the Schema for the storage array credentials API that defines authentication
|
||||||
|
and connection details for storage arrays. It provides a secure way to store and validate
|
||||||
|
storage array credentials for use in migration operations, supporting multiple vendors, but as of now
|
||||||
|
We have qualified pure storage flash array.
|
||||||
|
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: ArrayCredsSpec defines the desired state of ArrayCreds
|
||||||
|
properties:
|
||||||
|
autoDiscovered:
|
||||||
|
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
||||||
|
from OpenStack
|
||||||
|
type: boolean
|
||||||
|
openstackMapping:
|
||||||
|
description: OpenStackMapping is the openstack mapping for this array
|
||||||
|
properties:
|
||||||
|
cinderBackendName:
|
||||||
|
description: |-
|
||||||
|
CinderBackendName is the Cinder backend name for this mapping
|
||||||
|
This is the backend configured in cinder.conf (e.g., "pure-01")
|
||||||
|
type: string
|
||||||
|
cinderBackendPool:
|
||||||
|
description: CinderBackendPool is the pool name within the backend
|
||||||
|
(optional)
|
||||||
|
type: string
|
||||||
|
cinderHost:
|
||||||
|
description: |-
|
||||||
|
CinderHost is the full Cinder host string for manage API
|
||||||
|
Format: hostname@backend or hostname@backend#pool (e.g., "pcd-ce@pure-iscsi-1#vt-pure-iscsi")
|
||||||
|
type: string
|
||||||
|
volumeType:
|
||||||
|
description: VolumeType is the Cinder volume type associated with
|
||||||
|
this mapping
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cinderBackendName
|
||||||
|
- volumeType
|
||||||
|
type: object
|
||||||
|
secretRef:
|
||||||
|
description: SecretRef is the reference to the Kubernetes secret holding
|
||||||
|
storage array credentials
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: API version of the referent.
|
||||||
|
type: string
|
||||||
|
fieldPath:
|
||||||
|
description: |-
|
||||||
|
If referring to a piece of an object instead of an entire object, this string
|
||||||
|
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
||||||
|
For example, if the object reference is to a container within a pod, this would take on a value like:
|
||||||
|
"spec.containers{name}" (where "name" refers to the name of the container that triggered
|
||||||
|
the event) or if no container name is specified "spec.containers[2]" (container with
|
||||||
|
index 2 in this pod). This syntax is chosen only to have some well-defined way of
|
||||||
|
referencing a part of an object.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: |-
|
||||||
|
Kind of the referent.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
namespace:
|
||||||
|
description: |-
|
||||||
|
Namespace of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
|
||||||
|
type: string
|
||||||
|
resourceVersion:
|
||||||
|
description: |-
|
||||||
|
Specific resourceVersion to which this reference is made, if any.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
description: |-
|
||||||
|
UID of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
vendorType:
|
||||||
|
description: VendorType is the storage array vendor type (e.g., pure,
|
||||||
|
ontap, hpalletra)
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- vendorType
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ArrayCredsStatus defines the observed state of ArrayCreds
|
||||||
|
properties:
|
||||||
|
arrayValidationMessage:
|
||||||
|
description: ArrayValidationMessage is the message associated with
|
||||||
|
the storage array validation
|
||||||
|
type: string
|
||||||
|
arrayValidationStatus:
|
||||||
|
description: |-
|
||||||
|
ArrayValidationStatus is the status of the storage array validation
|
||||||
|
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
||||||
|
type: string
|
||||||
|
dataStore:
|
||||||
|
description: DataStore is the list of datastores associated with this
|
||||||
|
array
|
||||||
|
items:
|
||||||
|
description: DatastoreInfo holds datastore information including
|
||||||
|
backing device NAA
|
||||||
|
properties:
|
||||||
|
backingNAA:
|
||||||
|
type: string
|
||||||
|
backingUUID:
|
||||||
|
type: string
|
||||||
|
capacity:
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
freeSpace:
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
moID:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- backingNAA
|
||||||
|
- backingUUID
|
||||||
|
- capacity
|
||||||
|
- freeSpace
|
||||||
|
- moID
|
||||||
|
- name
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
phase:
|
||||||
|
description: |-
|
||||||
|
Phase indicates the current phase of the ArrayCreds
|
||||||
|
Possible values: Discovered, Configured, Validated, Failed
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.17.1
|
||||||
|
name: arraycredsmappings.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ArrayCredsMapping
|
||||||
|
listKind: ArrayCredsMappingList
|
||||||
|
plural: arraycredsmappings
|
||||||
|
singular: arraycredsmapping
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .status.validationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
ArrayCredsMapping is the Schema for the arraycredsmappings API that defines
|
||||||
|
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy storage 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: |-
|
||||||
|
ArrayCredsMappingSpec defines the desired state of ArrayCredsMapping including
|
||||||
|
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy data copy
|
||||||
|
properties:
|
||||||
|
mappings:
|
||||||
|
description: Mappings is a list of datastore to ArrayCreds mappings
|
||||||
|
items:
|
||||||
|
description: DatastoreArrayCredsMapping represents a mapping between
|
||||||
|
a VMware datastore and ArrayCreds
|
||||||
|
properties:
|
||||||
|
source:
|
||||||
|
description: Source is the name of the source datastore in VMware
|
||||||
|
type: string
|
||||||
|
target:
|
||||||
|
description: Target is the name of the ArrayCreds resource to
|
||||||
|
use for this datastore
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- source
|
||||||
|
- target
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- mappings
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ArrayCredsMappingStatus defines the observed state of ArrayCredsMapping
|
||||||
|
properties:
|
||||||
|
validationMessage:
|
||||||
|
description: |-
|
||||||
|
ValidationMessage provides detailed validation information including
|
||||||
|
information about available ArrayCreds and any validation errors
|
||||||
|
type: string
|
||||||
|
validationStatus:
|
||||||
|
description: |-
|
||||||
|
ValidationStatus indicates the validation status of the ArrayCreds mapping
|
||||||
|
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
|
||||||
|
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
|
||||||
@@ -459,7 +748,28 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
networkPersistence:
|
||||||
|
description: NetworkPersistence instructs the migration helper
|
||||||
|
to persist the source networking configuration
|
||||||
|
type: boolean
|
||||||
|
periodicSyncEnabled:
|
||||||
|
description: PeriodicSyncEnabled is a boolean to enable periodic
|
||||||
|
sync
|
||||||
|
type: boolean
|
||||||
|
periodicSyncInterval:
|
||||||
|
description: PeriodicSyncInterval is the interval at which the
|
||||||
|
migration plan should be synced
|
||||||
|
type: string
|
||||||
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:
|
||||||
|
type: boolean
|
||||||
firstBootScript:
|
firstBootScript:
|
||||||
default: echo "Add your startup script here!"
|
default: echo "Add your startup script here!"
|
||||||
type: string
|
type: string
|
||||||
@@ -470,6 +780,9 @@ spec:
|
|||||||
adminInitiatedCutOver:
|
adminInitiatedCutOver:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
arrayOffload:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
dataCopyStart:
|
dataCopyStart:
|
||||||
format: date-time
|
format: date-time
|
||||||
type: string
|
type: string
|
||||||
@@ -513,13 +826,12 @@ spec:
|
|||||||
suffix:
|
suffix:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
retry:
|
|
||||||
description: Retry the migration if it fails
|
|
||||||
type: boolean
|
|
||||||
securityGroups:
|
securityGroups:
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
serverGroup:
|
||||||
|
type: string
|
||||||
virtualMachines:
|
virtualMachines:
|
||||||
description: VirtualMachines is a list of virtual machines to be migrated
|
description: VirtualMachines is a list of virtual machines to be migrated
|
||||||
items:
|
items:
|
||||||
@@ -611,6 +923,11 @@ 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
|
||||||
@@ -622,6 +939,13 @@ spec:
|
|||||||
migrationPlan:
|
migrationPlan:
|
||||||
description: MigrationPlan is the name of the migration plan
|
description: MigrationPlan is the name of the migration plan
|
||||||
type: string
|
type: string
|
||||||
|
migrationType:
|
||||||
|
description: MigrationType indicates whether this is a hot (live)
|
||||||
|
or cold migration
|
||||||
|
enum:
|
||||||
|
- hot
|
||||||
|
- cold
|
||||||
|
type: string
|
||||||
podRef:
|
podRef:
|
||||||
description: PodRef is the name of the pod
|
description: PodRef is the name of the pod
|
||||||
type: string
|
type: string
|
||||||
@@ -688,11 +1012,17 @@ spec:
|
|||||||
- type
|
- type
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
currentDisk:
|
||||||
|
description: |-
|
||||||
|
CurrentDisk tracks which disk is currently being copied (e.g., "0", "1")
|
||||||
|
Extracted from migration pod events
|
||||||
|
type: string
|
||||||
phase:
|
phase:
|
||||||
description: Phase is the current phase of the migration
|
description: Phase is the current phase of the migration
|
||||||
enum:
|
enum:
|
||||||
- Pending
|
- Pending
|
||||||
- Validating
|
- Validating
|
||||||
|
- ValidationFailed
|
||||||
- AwaitingDataCopyStart
|
- AwaitingDataCopyStart
|
||||||
- CopyingBlocks
|
- CopyingBlocks
|
||||||
- CopyingChangedBlocks
|
- CopyingChangedBlocks
|
||||||
@@ -702,7 +1032,23 @@ spec:
|
|||||||
- Succeeded
|
- Succeeded
|
||||||
- Failed
|
- Failed
|
||||||
- Unknown
|
- Unknown
|
||||||
|
- ConnectingToESXi
|
||||||
|
- CreatingInitiatorGroup
|
||||||
|
- CreatingVolume
|
||||||
|
- ImportingToCinder
|
||||||
|
- MappingVolume
|
||||||
|
- RescanningStorage
|
||||||
|
- XCOPYInProgress
|
||||||
type: string
|
type: string
|
||||||
|
retryable:
|
||||||
|
description: |-
|
||||||
|
Retryable indicates whether this migration can be retried when it fails.
|
||||||
|
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
|
||||||
|
as RDM disk migration state prevents automatic retry.
|
||||||
|
type: boolean
|
||||||
|
totalDisks:
|
||||||
|
description: TotalDisks is the total number of disks to be migrated
|
||||||
|
type: integer
|
||||||
required:
|
required:
|
||||||
- phase
|
- phase
|
||||||
type: object
|
type: object
|
||||||
@@ -758,6 +1104,11 @@ spec:
|
|||||||
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
|
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
|
||||||
including source/destination environments and mappings
|
including source/destination environments and mappings
|
||||||
properties:
|
properties:
|
||||||
|
arrayCredsMapping:
|
||||||
|
description: |-
|
||||||
|
ArrayCredsMapping is the reference to the ArrayCredsMapping resource that defines datastore to ArrayCreds mappings
|
||||||
|
This is used for StorageAcceleratedCopy data copy method
|
||||||
|
type: string
|
||||||
destination:
|
destination:
|
||||||
description: Destination is the destination details for the virtual
|
description: Destination is the destination details for the virtual
|
||||||
machine
|
machine
|
||||||
@@ -789,9 +1140,19 @@ spec:
|
|||||||
required:
|
required:
|
||||||
- vmwareRef
|
- vmwareRef
|
||||||
type: object
|
type: object
|
||||||
|
storageCopyMethod:
|
||||||
|
default: normal
|
||||||
|
description: |-
|
||||||
|
StorageCopyMethod indicates the method to use for storage migration
|
||||||
|
Valid values: "normal" (default), "StorageAcceleratedCopy"
|
||||||
|
enum:
|
||||||
|
- normal
|
||||||
|
- StorageAcceleratedCopy
|
||||||
|
type: string
|
||||||
storageMapping:
|
storageMapping:
|
||||||
description: StorageMapping is the reference to the StorageMapping
|
description: |-
|
||||||
resource that defines source to destination storage mappings
|
StorageMapping is the reference to the StorageMapping resource that defines source to destination storage mappings
|
||||||
|
This is used for normal data copy method
|
||||||
type: string
|
type: string
|
||||||
targetPCDClusterName:
|
targetPCDClusterName:
|
||||||
description: TargetPCDClusterName is the name of the PCD cluster where
|
description: TargetPCDClusterName is the name of the PCD cluster where
|
||||||
@@ -801,6 +1162,10 @@ spec:
|
|||||||
description: UseFlavorless indicates if the migration should use flavorless
|
description: UseFlavorless indicates if the migration should use flavorless
|
||||||
VM creation for PCD.
|
VM creation for PCD.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
useGPUFlavor:
|
||||||
|
description: UseGPUFlavor indicates if the migration should filter
|
||||||
|
and use GPU-enabled flavors.
|
||||||
|
type: boolean
|
||||||
virtioWinDriver:
|
virtioWinDriver:
|
||||||
description: VirtioWinDriver is the driver to be used for the virtual
|
description: VirtioWinDriver is the driver to be used for the virtual
|
||||||
machine
|
machine
|
||||||
@@ -809,7 +1174,6 @@ spec:
|
|||||||
- destination
|
- destination
|
||||||
- networkMapping
|
- networkMapping
|
||||||
- source
|
- source
|
||||||
- storageMapping
|
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
@@ -977,6 +1341,15 @@ spec:
|
|||||||
disk:
|
disk:
|
||||||
description: Disk is the amount of root disk, measured in GB.
|
description: Disk is the amount of root disk, measured in GB.
|
||||||
type: integer
|
type: integer
|
||||||
|
extra_specs:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Properties is a dictionary of the flavor’s extra-specs key-and-value
|
||||||
|
pairs. This will only be included if the user is allowed by policy to
|
||||||
|
index flavor extra_specs
|
||||||
|
New in version 2.61
|
||||||
|
type: object
|
||||||
id:
|
id:
|
||||||
description: ID is the flavor's unique ID.
|
description: ID is the flavor's unique ID.
|
||||||
type: string
|
type: string
|
||||||
@@ -1001,6 +1374,7 @@ spec:
|
|||||||
- OS-FLV-EXT-DATA:ephemeral
|
- OS-FLV-EXT-DATA:ephemeral
|
||||||
- description
|
- description
|
||||||
- disk
|
- disk
|
||||||
|
- extra_specs
|
||||||
- id
|
- id
|
||||||
- name
|
- name
|
||||||
- os-flavor-access:is_public
|
- os-flavor-access:is_public
|
||||||
@@ -1009,6 +1383,22 @@ spec:
|
|||||||
- vcpus
|
- vcpus
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
osAuthToken:
|
||||||
|
type: string
|
||||||
|
osAuthUrl:
|
||||||
|
type: string
|
||||||
|
osDomainName:
|
||||||
|
type: string
|
||||||
|
osInsecure:
|
||||||
|
type: boolean
|
||||||
|
osPassword:
|
||||||
|
type: string
|
||||||
|
osRegionName:
|
||||||
|
type: string
|
||||||
|
osTenantName:
|
||||||
|
type: string
|
||||||
|
osUsername:
|
||||||
|
type: string
|
||||||
pcdHostConfig:
|
pcdHostConfig:
|
||||||
description: PCDHostConfig is the list of available clusters in openstack
|
description: PCDHostConfig is the list of available clusters in openstack
|
||||||
items:
|
items:
|
||||||
@@ -1037,6 +1427,9 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
projectName:
|
||||||
|
description: ProjectName is the name of the project in openstack
|
||||||
|
type: string
|
||||||
secretRef:
|
secretRef:
|
||||||
description: SecretRef is the reference to the Kubernetes secret holding
|
description: SecretRef is the reference to the Kubernetes secret holding
|
||||||
OpenStack credentials
|
OpenStack credentials
|
||||||
@@ -1109,6 +1502,25 @@ spec:
|
|||||||
- requiresIdDisplay
|
- requiresIdDisplay
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
serverGroups:
|
||||||
|
items:
|
||||||
|
description: ServerGroupInfo holds the server group name, ID,
|
||||||
|
and policy information
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
members:
|
||||||
|
type: integer
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
policy:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- policy
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
volumeBackends:
|
volumeBackends:
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
@@ -1340,7 +1752,7 @@ spec:
|
|||||||
- name: v1alpha1
|
- name: v1alpha1
|
||||||
schema:
|
schema:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
description: RDMDisk is the Schema for the rdmdisks API.
|
description: RDMDisk is the Schema for the RDMDisks API.
|
||||||
properties:
|
properties:
|
||||||
apiVersion:
|
apiVersion:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1386,10 +1798,6 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
volumeType:
|
volumeType:
|
||||||
type: string
|
type: string
|
||||||
required:
|
|
||||||
- cinderBackendPool
|
|
||||||
- source
|
|
||||||
- volumeType
|
|
||||||
type: object
|
type: object
|
||||||
ownerVMs:
|
ownerVMs:
|
||||||
items:
|
items:
|
||||||
@@ -1401,7 +1809,6 @@ spec:
|
|||||||
- diskName
|
- diskName
|
||||||
- diskSize
|
- diskSize
|
||||||
- displayName
|
- displayName
|
||||||
- openstackVolumeRef
|
|
||||||
- ownerVMs
|
- ownerVMs
|
||||||
- uuid
|
- uuid
|
||||||
type: object
|
type: object
|
||||||
@@ -1544,6 +1951,18 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
networkPersistence:
|
||||||
|
description: NetworkPersistence instructs the migration helper
|
||||||
|
to persist the source networking configuration
|
||||||
|
type: boolean
|
||||||
|
periodicSyncEnabled:
|
||||||
|
description: PeriodicSyncEnabled is a boolean to enable periodic
|
||||||
|
sync
|
||||||
|
type: boolean
|
||||||
|
periodicSyncInterval:
|
||||||
|
description: PeriodicSyncInterval is the interval at which the
|
||||||
|
migration plan should be synced
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
bmConfigRef:
|
bmConfigRef:
|
||||||
description: BMConfigRef is the reference to the BMC credentials
|
description: BMConfigRef is the reference to the BMC credentials
|
||||||
@@ -1650,6 +2069,9 @@ spec:
|
|||||||
adminInitiatedCutOver:
|
adminInitiatedCutOver:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
arrayOffload:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
dataCopyStart:
|
dataCopyStart:
|
||||||
format: date-time
|
format: date-time
|
||||||
type: string
|
type: string
|
||||||
@@ -1693,9 +2115,6 @@ spec:
|
|||||||
suffix:
|
suffix:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
retry:
|
|
||||||
description: Retry the migration if it fails
|
|
||||||
type: boolean
|
|
||||||
vmMigrationPlans:
|
vmMigrationPlans:
|
||||||
description: VMMigrationPlans is the reference to the VM migration
|
description: VMMigrationPlans is the reference to the VM migration
|
||||||
plan
|
plan
|
||||||
@@ -1976,6 +2395,18 @@ spec:
|
|||||||
openstackImageID:
|
openstackImageID:
|
||||||
description: OpenstackImageID is the image of the VM
|
description: OpenstackImageID is the image of the VM
|
||||||
type: string
|
type: string
|
||||||
|
openstackSecurityGroups:
|
||||||
|
description: |-
|
||||||
|
OpenstackSecurityGroups is the list of security groups for the VM
|
||||||
|
If empty, the security groups will be determined from the master node
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
openstackVolumeType:
|
||||||
|
description: |-
|
||||||
|
OpenstackVolumeType is the volume type for the root disk of the VM
|
||||||
|
If empty, the volume type will be determined from the master node
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- nodeRole
|
- nodeRole
|
||||||
- openstackCreds
|
- openstackCreds
|
||||||
@@ -2173,8 +2604,9 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
x-kubernetes-map-type: atomic
|
x-kubernetes-map-type: atomic
|
||||||
required:
|
vcenterHost:
|
||||||
- datacenter
|
description: VcenterHost is the vCenter host
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
status:
|
status:
|
||||||
description: VMwareCredsStatus defines the observed state of VMwareCreds
|
description: VMwareCredsStatus defines the observed state of VMwareCreds
|
||||||
@@ -2331,11 +2763,35 @@ spec:
|
|||||||
disks:
|
disks:
|
||||||
description: Disks is the list of disks for the virtual machine
|
description: Disks is the list of disks for the virtual machine
|
||||||
items:
|
items:
|
||||||
type: string
|
description: Disk represents a virtual disk attached to a virtual
|
||||||
|
machine
|
||||||
|
properties:
|
||||||
|
capacityGB:
|
||||||
|
type: integer
|
||||||
|
datastore:
|
||||||
|
type: string
|
||||||
|
datastoreId:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: array
|
type: array
|
||||||
esxiName:
|
esxiName:
|
||||||
description: ESXiName is the name of the ESXi host
|
description: ESXiName is the name of the ESXi host
|
||||||
type: string
|
type: string
|
||||||
|
gpu:
|
||||||
|
description: GPU contains information about GPU devices attached
|
||||||
|
to the VM
|
||||||
|
properties:
|
||||||
|
passthroughCount:
|
||||||
|
description: PassthroughCount is the number of PCI passthrough
|
||||||
|
GPU devices
|
||||||
|
type: integer
|
||||||
|
vgpuCount:
|
||||||
|
description: VGPUCount is the number of vGPU (shared GPU)
|
||||||
|
devices
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
guestNetworks:
|
guestNetworks:
|
||||||
description: GuestNetworks is the list of network interfaces for
|
description: GuestNetworks is the list of network interfaces for
|
||||||
the virtual machine as reported by the guest
|
the virtual machine as reported by the guest
|
||||||
@@ -2399,42 +2855,7 @@ spec:
|
|||||||
description: RDMDisks is the list of RDM disks for the virtual
|
description: RDMDisks is the list of RDM disks for the virtual
|
||||||
machine
|
machine
|
||||||
items:
|
items:
|
||||||
description: RDMDiskInfo contains information about a Raw Device
|
type: string
|
||||||
Mapping (RDM) disk
|
|
||||||
properties:
|
|
||||||
diskName:
|
|
||||||
description: DiskName is the name of the disk
|
|
||||||
type: string
|
|
||||||
diskSize:
|
|
||||||
description: DiskSize is the size of the disk in GB
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
displayName:
|
|
||||||
description: DisplayName is the display name of the disk
|
|
||||||
type: string
|
|
||||||
openstackVolumeRef:
|
|
||||||
description: OpenstackVolumeRef contains OpenStack volume
|
|
||||||
reference information
|
|
||||||
properties:
|
|
||||||
cinderBackendPool:
|
|
||||||
description: CinderBackendPool is the cinder backend
|
|
||||||
pool of the disk
|
|
||||||
type: string
|
|
||||||
volumeRef:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: VolumeRef is the reference to the OpenStack
|
|
||||||
volume
|
|
||||||
type: object
|
|
||||||
volumeType:
|
|
||||||
description: VolumeType is the volume type of the disk
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
uuid:
|
|
||||||
description: UUID (VML id) is the unique identifier of the
|
|
||||||
disk
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: array
|
type: array
|
||||||
vmState:
|
vmState:
|
||||||
description: VMState is the state of the virtual machine
|
description: VMState is the state of the virtual machine
|
||||||
@@ -2671,8 +3092,11 @@ rules:
|
|||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
|
- namespaces
|
||||||
- pods
|
- pods
|
||||||
- secrets
|
- secrets
|
||||||
|
- serviceaccounts
|
||||||
|
- services
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- delete
|
- delete
|
||||||
@@ -2681,6 +3105,15 @@ rules:
|
|||||||
- patch
|
- patch
|
||||||
- update
|
- update
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps/status
|
||||||
|
- pods/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
@@ -2701,11 +3134,10 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- pods/status
|
- pods/log
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- patch
|
- list
|
||||||
- update
|
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- apiextensions.k8s.io
|
- apiextensions.k8s.io
|
||||||
resources:
|
resources:
|
||||||
@@ -2742,9 +3174,37 @@ rules:
|
|||||||
- patch
|
- patch
|
||||||
- update
|
- update
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- rbac.authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- clusterrolebindings
|
||||||
|
- clusterroles
|
||||||
|
- rolebindings
|
||||||
|
- roles
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds
|
||||||
- bmconfigs
|
- bmconfigs
|
||||||
- clustermigrations
|
- clustermigrations
|
||||||
- esximigrations
|
- esximigrations
|
||||||
@@ -2774,6 +3234,7 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds/finalizers
|
||||||
- bmconfigs/finalizers
|
- bmconfigs/finalizers
|
||||||
- clustermigrations/finalizers
|
- clustermigrations/finalizers
|
||||||
- esximigrations/finalizers
|
- esximigrations/finalizers
|
||||||
@@ -2793,6 +3254,7 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds/status
|
||||||
- bmconfigs/status
|
- bmconfigs/status
|
||||||
- clustermigrations/status
|
- clustermigrations/status
|
||||||
- esximigrations/status
|
- esximigrations/status
|
||||||
@@ -3618,6 +4080,23 @@ subjects:
|
|||||||
name: migration-controller-manager
|
name: migration-controller-manager
|
||||||
namespace: migration-system
|
namespace: migration-system
|
||||||
---
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: rbac
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: migration-migration-controller-manager-admin
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: cluster-admin
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: migration-controller-manager
|
||||||
|
namespace: migration-system
|
||||||
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
@@ -3632,150 +4111,17 @@ spec:
|
|||||||
app: vpwned-sdk
|
app: vpwned-sdk
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/managed-by: kustomize
|
|
||||||
app.kubernetes.io/name: migration
|
|
||||||
control-plane: controller-manager
|
|
||||||
name: migration-controller-manager
|
|
||||||
namespace: migration-system
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
control-plane: controller-manager
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
kubectl.kubernetes.io/default-container: manager
|
|
||||||
labels:
|
|
||||||
control-plane: controller-manager
|
|
||||||
spec:
|
|
||||||
affinity:
|
|
||||||
nodeAffinity:
|
|
||||||
requiredDuringSchedulingIgnoredDuringExecution:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: node-role.kubernetes.io/control-plane
|
|
||||||
operator: Exists
|
|
||||||
containers:
|
|
||||||
- args:
|
|
||||||
- --leader-elect=false
|
|
||||||
- --health-probe-bind-address=:8081
|
|
||||||
command:
|
|
||||||
- /manager
|
|
||||||
image: quay.io/platform9/vjailbreak-controller:v0.3.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
lifecycle:
|
|
||||||
preStop:
|
|
||||||
exec:
|
|
||||||
command:
|
|
||||||
- /bin/sh
|
|
||||||
- -c
|
|
||||||
- sleep 5
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /healthz
|
|
||||||
port: 8081
|
|
||||||
initialDelaySeconds: 15
|
|
||||||
periodSeconds: 20
|
|
||||||
name: manager
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /readyz
|
|
||||||
port: 8081
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 10
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 256Mi
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/pf9/k3s
|
|
||||||
name: master-token
|
|
||||||
- mountPath: /home/ubuntu
|
|
||||||
name: vddk
|
|
||||||
- mountPath: /etc/hosts
|
|
||||||
name: hosts-file
|
|
||||||
readOnly: true
|
|
||||||
dnsPolicy: ClusterFirstWithHostNet
|
|
||||||
hostNetwork: true
|
|
||||||
securityContext:
|
|
||||||
runAsGroup: 0
|
|
||||||
runAsUser: 0
|
|
||||||
serviceAccountName: migration-controller-manager
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- hostPath:
|
|
||||||
path: /var/lib/rancher/k3s/server
|
|
||||||
type: Directory
|
|
||||||
name: master-token
|
|
||||||
- hostPath:
|
|
||||||
path: /home/ubuntu
|
|
||||||
type: Directory
|
|
||||||
name: vddk
|
|
||||||
- hostPath:
|
|
||||||
path: /etc/hosts
|
|
||||||
type: File
|
|
||||||
name: hosts-file
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: vpwned-sdk
|
|
||||||
name: migration-vpwned-sdk
|
|
||||||
namespace: migration-system
|
|
||||||
spec:
|
|
||||||
progressDeadlineSeconds: 600
|
|
||||||
replicas: 1
|
|
||||||
revisionHistoryLimit: 10
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: vpwned-sdk
|
|
||||||
strategy:
|
|
||||||
rollingUpdate:
|
|
||||||
maxSurge: 25%
|
|
||||||
maxUnavailable: 25%
|
|
||||||
type: RollingUpdate
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: vpwned-sdk
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: quay.io/platform9/vjailbreak-vpwned:v0.3.3
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: vpwned
|
|
||||||
ports:
|
|
||||||
- containerPort: 3001
|
|
||||||
protocol: TCP
|
|
||||||
resources: {}
|
|
||||||
terminationMessagePath: /dev/termination-log
|
|
||||||
terminationMessagePolicy: File
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/hosts
|
|
||||||
name: hosts-file
|
|
||||||
readOnly: true
|
|
||||||
dnsPolicy: ClusterFirst
|
|
||||||
restartPolicy: Always
|
|
||||||
schedulerName: default-scheduler
|
|
||||||
securityContext: {}
|
|
||||||
serviceAccountName: migration-controller-manager
|
|
||||||
terminationGracePeriodSeconds: 30
|
|
||||||
volumes:
|
|
||||||
- hostPath:
|
|
||||||
path: /etc/hosts
|
|
||||||
type: File
|
|
||||||
name: hosts-file
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: 500m
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
||||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
name: migration-vpwned-ingress
|
name: migration-vpwned-ingress
|
||||||
@@ -3792,3 +4138,4 @@ spec:
|
|||||||
number: 80
|
number: 80
|
||||||
path: /dev-api/sdk/(.*)
|
path: /dev-api/sdk/(.*)
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
|
---
|
||||||
@@ -20,6 +20,7 @@ spec:
|
|||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
@@ -42,6 +43,14 @@ metadata:
|
|||||||
namespace: migration-system
|
namespace: migration-system
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "500m"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
@@ -64,6 +73,8 @@ metadata:
|
|||||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
rules:
|
rules:
|
||||||
|
|||||||
@@ -9,6 +9,295 @@ metadata:
|
|||||||
---
|
---
|
||||||
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: arraycreds.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ArrayCreds
|
||||||
|
listKind: ArrayCredsList
|
||||||
|
plural: arraycreds
|
||||||
|
singular: arraycreds
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .spec.vendorType
|
||||||
|
name: Vendor
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.openstackMapping.volumeType
|
||||||
|
name: VolumeType
|
||||||
|
type: string
|
||||||
|
- jsonPath: .spec.openstackMapping.cinderBackendName
|
||||||
|
name: Backend
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.phase
|
||||||
|
name: Phase
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.arrayValidationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
ArrayCreds is the Schema for the storage array credentials API that defines authentication
|
||||||
|
and connection details for storage arrays. It provides a secure way to store and validate
|
||||||
|
storage array credentials for use in migration operations, supporting multiple vendors, but as of now
|
||||||
|
We have qualified pure storage flash array.
|
||||||
|
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: ArrayCredsSpec defines the desired state of ArrayCreds
|
||||||
|
properties:
|
||||||
|
autoDiscovered:
|
||||||
|
description: AutoDiscovered indicates if this ArrayCreds was auto-discovered
|
||||||
|
from OpenStack
|
||||||
|
type: boolean
|
||||||
|
openstackMapping:
|
||||||
|
description: OpenStackMapping is the openstack mapping for this array
|
||||||
|
properties:
|
||||||
|
cinderBackendName:
|
||||||
|
description: |-
|
||||||
|
CinderBackendName is the Cinder backend name for this mapping
|
||||||
|
This is the backend configured in cinder.conf (e.g., "pure-01")
|
||||||
|
type: string
|
||||||
|
cinderBackendPool:
|
||||||
|
description: CinderBackendPool is the pool name within the backend
|
||||||
|
(optional)
|
||||||
|
type: string
|
||||||
|
cinderHost:
|
||||||
|
description: |-
|
||||||
|
CinderHost is the full Cinder host string for manage API
|
||||||
|
Format: hostname@backend or hostname@backend#pool (e.g., "pcd-ce@pure-iscsi-1#vt-pure-iscsi")
|
||||||
|
type: string
|
||||||
|
volumeType:
|
||||||
|
description: VolumeType is the Cinder volume type associated with
|
||||||
|
this mapping
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cinderBackendName
|
||||||
|
- volumeType
|
||||||
|
type: object
|
||||||
|
secretRef:
|
||||||
|
description: SecretRef is the reference to the Kubernetes secret holding
|
||||||
|
storage array credentials
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: API version of the referent.
|
||||||
|
type: string
|
||||||
|
fieldPath:
|
||||||
|
description: |-
|
||||||
|
If referring to a piece of an object instead of an entire object, this string
|
||||||
|
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
|
||||||
|
For example, if the object reference is to a container within a pod, this would take on a value like:
|
||||||
|
"spec.containers{name}" (where "name" refers to the name of the container that triggered
|
||||||
|
the event) or if no container name is specified "spec.containers[2]" (container with
|
||||||
|
index 2 in this pod). This syntax is chosen only to have some well-defined way of
|
||||||
|
referencing a part of an object.
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: |-
|
||||||
|
Kind of the referent.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: |-
|
||||||
|
Name of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
type: string
|
||||||
|
namespace:
|
||||||
|
description: |-
|
||||||
|
Namespace of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
|
||||||
|
type: string
|
||||||
|
resourceVersion:
|
||||||
|
description: |-
|
||||||
|
Specific resourceVersion to which this reference is made, if any.
|
||||||
|
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
description: |-
|
||||||
|
UID of the referent.
|
||||||
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
x-kubernetes-map-type: atomic
|
||||||
|
vendorType:
|
||||||
|
description: VendorType is the storage array vendor type (e.g., pure,
|
||||||
|
ontap, hpalletra)
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- vendorType
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ArrayCredsStatus defines the observed state of ArrayCreds
|
||||||
|
properties:
|
||||||
|
arrayValidationMessage:
|
||||||
|
description: ArrayValidationMessage is the message associated with
|
||||||
|
the storage array validation
|
||||||
|
type: string
|
||||||
|
arrayValidationStatus:
|
||||||
|
description: |-
|
||||||
|
ArrayValidationStatus is the status of the storage array validation
|
||||||
|
Possible values: Pending, Succeeded, Failed, AwaitingCredentials
|
||||||
|
type: string
|
||||||
|
dataStore:
|
||||||
|
description: DataStore is the list of datastores associated with this
|
||||||
|
array
|
||||||
|
items:
|
||||||
|
description: DatastoreInfo holds datastore information including
|
||||||
|
backing device NAA
|
||||||
|
properties:
|
||||||
|
backingNAA:
|
||||||
|
type: string
|
||||||
|
backingUUID:
|
||||||
|
type: string
|
||||||
|
capacity:
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
freeSpace:
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
moID:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- backingNAA
|
||||||
|
- backingUUID
|
||||||
|
- capacity
|
||||||
|
- freeSpace
|
||||||
|
- moID
|
||||||
|
- name
|
||||||
|
- type
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
phase:
|
||||||
|
description: |-
|
||||||
|
Phase indicates the current phase of the ArrayCreds
|
||||||
|
Possible values: Discovered, Configured, Validated, Failed
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
subresources:
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
controller-gen.kubebuilder.io/version: v0.17.1
|
||||||
|
name: arraycredsmappings.vjailbreak.k8s.pf9.io
|
||||||
|
spec:
|
||||||
|
group: vjailbreak.k8s.pf9.io
|
||||||
|
names:
|
||||||
|
kind: ArrayCredsMapping
|
||||||
|
listKind: ArrayCredsMappingList
|
||||||
|
plural: arraycredsmappings
|
||||||
|
singular: arraycredsmapping
|
||||||
|
scope: Namespaced
|
||||||
|
versions:
|
||||||
|
- additionalPrinterColumns:
|
||||||
|
- jsonPath: .status.validationStatus
|
||||||
|
name: Status
|
||||||
|
type: string
|
||||||
|
- jsonPath: .metadata.creationTimestamp
|
||||||
|
name: Age
|
||||||
|
type: date
|
||||||
|
name: v1alpha1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: |-
|
||||||
|
ArrayCredsMapping is the Schema for the arraycredsmappings API that defines
|
||||||
|
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy storage 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: |-
|
||||||
|
ArrayCredsMappingSpec defines the desired state of ArrayCredsMapping including
|
||||||
|
mappings between VMware datastores and ArrayCreds for StorageAcceleratedCopy data copy
|
||||||
|
properties:
|
||||||
|
mappings:
|
||||||
|
description: Mappings is a list of datastore to ArrayCreds mappings
|
||||||
|
items:
|
||||||
|
description: DatastoreArrayCredsMapping represents a mapping between
|
||||||
|
a VMware datastore and ArrayCreds
|
||||||
|
properties:
|
||||||
|
source:
|
||||||
|
description: Source is the name of the source datastore in VMware
|
||||||
|
type: string
|
||||||
|
target:
|
||||||
|
description: Target is the name of the ArrayCreds resource to
|
||||||
|
use for this datastore
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- source
|
||||||
|
- target
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- mappings
|
||||||
|
type: object
|
||||||
|
status:
|
||||||
|
description: ArrayCredsMappingStatus defines the observed state of ArrayCredsMapping
|
||||||
|
properties:
|
||||||
|
validationMessage:
|
||||||
|
description: |-
|
||||||
|
ValidationMessage provides detailed validation information including
|
||||||
|
information about available ArrayCreds and any validation errors
|
||||||
|
type: string
|
||||||
|
validationStatus:
|
||||||
|
description: |-
|
||||||
|
ValidationStatus indicates the validation status of the ArrayCreds mapping
|
||||||
|
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
|
||||||
|
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
|
||||||
@@ -459,7 +748,28 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
networkPersistence:
|
||||||
|
description: NetworkPersistence instructs the migration helper
|
||||||
|
to persist the source networking configuration
|
||||||
|
type: boolean
|
||||||
|
periodicSyncEnabled:
|
||||||
|
description: PeriodicSyncEnabled is a boolean to enable periodic
|
||||||
|
sync
|
||||||
|
type: boolean
|
||||||
|
periodicSyncInterval:
|
||||||
|
description: PeriodicSyncInterval is the interval at which the
|
||||||
|
migration plan should be synced
|
||||||
|
type: string
|
||||||
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:
|
||||||
|
type: boolean
|
||||||
firstBootScript:
|
firstBootScript:
|
||||||
default: echo "Add your startup script here!"
|
default: echo "Add your startup script here!"
|
||||||
type: string
|
type: string
|
||||||
@@ -470,6 +780,9 @@ spec:
|
|||||||
adminInitiatedCutOver:
|
adminInitiatedCutOver:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
arrayOffload:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
dataCopyStart:
|
dataCopyStart:
|
||||||
format: date-time
|
format: date-time
|
||||||
type: string
|
type: string
|
||||||
@@ -513,13 +826,12 @@ spec:
|
|||||||
suffix:
|
suffix:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
retry:
|
|
||||||
description: Retry the migration if it fails
|
|
||||||
type: boolean
|
|
||||||
securityGroups:
|
securityGroups:
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
serverGroup:
|
||||||
|
type: string
|
||||||
virtualMachines:
|
virtualMachines:
|
||||||
description: VirtualMachines is a list of virtual machines to be migrated
|
description: VirtualMachines is a list of virtual machines to be migrated
|
||||||
items:
|
items:
|
||||||
@@ -611,6 +923,11 @@ 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
|
||||||
@@ -622,6 +939,13 @@ spec:
|
|||||||
migrationPlan:
|
migrationPlan:
|
||||||
description: MigrationPlan is the name of the migration plan
|
description: MigrationPlan is the name of the migration plan
|
||||||
type: string
|
type: string
|
||||||
|
migrationType:
|
||||||
|
description: MigrationType indicates whether this is a hot (live)
|
||||||
|
or cold migration
|
||||||
|
enum:
|
||||||
|
- hot
|
||||||
|
- cold
|
||||||
|
type: string
|
||||||
podRef:
|
podRef:
|
||||||
description: PodRef is the name of the pod
|
description: PodRef is the name of the pod
|
||||||
type: string
|
type: string
|
||||||
@@ -688,11 +1012,17 @@ spec:
|
|||||||
- type
|
- type
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
currentDisk:
|
||||||
|
description: |-
|
||||||
|
CurrentDisk tracks which disk is currently being copied (e.g., "0", "1")
|
||||||
|
Extracted from migration pod events
|
||||||
|
type: string
|
||||||
phase:
|
phase:
|
||||||
description: Phase is the current phase of the migration
|
description: Phase is the current phase of the migration
|
||||||
enum:
|
enum:
|
||||||
- Pending
|
- Pending
|
||||||
- Validating
|
- Validating
|
||||||
|
- ValidationFailed
|
||||||
- AwaitingDataCopyStart
|
- AwaitingDataCopyStart
|
||||||
- CopyingBlocks
|
- CopyingBlocks
|
||||||
- CopyingChangedBlocks
|
- CopyingChangedBlocks
|
||||||
@@ -702,7 +1032,23 @@ spec:
|
|||||||
- Succeeded
|
- Succeeded
|
||||||
- Failed
|
- Failed
|
||||||
- Unknown
|
- Unknown
|
||||||
|
- ConnectingToESXi
|
||||||
|
- CreatingInitiatorGroup
|
||||||
|
- CreatingVolume
|
||||||
|
- ImportingToCinder
|
||||||
|
- MappingVolume
|
||||||
|
- RescanningStorage
|
||||||
|
- XCOPYInProgress
|
||||||
type: string
|
type: string
|
||||||
|
retryable:
|
||||||
|
description: |-
|
||||||
|
Retryable indicates whether this migration can be retried when it fails.
|
||||||
|
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
|
||||||
|
as RDM disk migration state prevents automatic retry.
|
||||||
|
type: boolean
|
||||||
|
totalDisks:
|
||||||
|
description: TotalDisks is the total number of disks to be migrated
|
||||||
|
type: integer
|
||||||
required:
|
required:
|
||||||
- phase
|
- phase
|
||||||
type: object
|
type: object
|
||||||
@@ -758,6 +1104,11 @@ spec:
|
|||||||
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
|
description: MigrationTemplateSpec defines the desired state of MigrationTemplate
|
||||||
including source/destination environments and mappings
|
including source/destination environments and mappings
|
||||||
properties:
|
properties:
|
||||||
|
arrayCredsMapping:
|
||||||
|
description: |-
|
||||||
|
ArrayCredsMapping is the reference to the ArrayCredsMapping resource that defines datastore to ArrayCreds mappings
|
||||||
|
This is used for StorageAcceleratedCopy data copy method
|
||||||
|
type: string
|
||||||
destination:
|
destination:
|
||||||
description: Destination is the destination details for the virtual
|
description: Destination is the destination details for the virtual
|
||||||
machine
|
machine
|
||||||
@@ -789,9 +1140,19 @@ spec:
|
|||||||
required:
|
required:
|
||||||
- vmwareRef
|
- vmwareRef
|
||||||
type: object
|
type: object
|
||||||
|
storageCopyMethod:
|
||||||
|
default: normal
|
||||||
|
description: |-
|
||||||
|
StorageCopyMethod indicates the method to use for storage migration
|
||||||
|
Valid values: "normal" (default), "StorageAcceleratedCopy"
|
||||||
|
enum:
|
||||||
|
- normal
|
||||||
|
- StorageAcceleratedCopy
|
||||||
|
type: string
|
||||||
storageMapping:
|
storageMapping:
|
||||||
description: StorageMapping is the reference to the StorageMapping
|
description: |-
|
||||||
resource that defines source to destination storage mappings
|
StorageMapping is the reference to the StorageMapping resource that defines source to destination storage mappings
|
||||||
|
This is used for normal data copy method
|
||||||
type: string
|
type: string
|
||||||
targetPCDClusterName:
|
targetPCDClusterName:
|
||||||
description: TargetPCDClusterName is the name of the PCD cluster where
|
description: TargetPCDClusterName is the name of the PCD cluster where
|
||||||
@@ -801,6 +1162,10 @@ spec:
|
|||||||
description: UseFlavorless indicates if the migration should use flavorless
|
description: UseFlavorless indicates if the migration should use flavorless
|
||||||
VM creation for PCD.
|
VM creation for PCD.
|
||||||
type: boolean
|
type: boolean
|
||||||
|
useGPUFlavor:
|
||||||
|
description: UseGPUFlavor indicates if the migration should filter
|
||||||
|
and use GPU-enabled flavors.
|
||||||
|
type: boolean
|
||||||
virtioWinDriver:
|
virtioWinDriver:
|
||||||
description: VirtioWinDriver is the driver to be used for the virtual
|
description: VirtioWinDriver is the driver to be used for the virtual
|
||||||
machine
|
machine
|
||||||
@@ -809,7 +1174,6 @@ spec:
|
|||||||
- destination
|
- destination
|
||||||
- networkMapping
|
- networkMapping
|
||||||
- source
|
- source
|
||||||
- storageMapping
|
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
@@ -977,6 +1341,15 @@ spec:
|
|||||||
disk:
|
disk:
|
||||||
description: Disk is the amount of root disk, measured in GB.
|
description: Disk is the amount of root disk, measured in GB.
|
||||||
type: integer
|
type: integer
|
||||||
|
extra_specs:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
Properties is a dictionary of the flavor’s extra-specs key-and-value
|
||||||
|
pairs. This will only be included if the user is allowed by policy to
|
||||||
|
index flavor extra_specs
|
||||||
|
New in version 2.61
|
||||||
|
type: object
|
||||||
id:
|
id:
|
||||||
description: ID is the flavor's unique ID.
|
description: ID is the flavor's unique ID.
|
||||||
type: string
|
type: string
|
||||||
@@ -1001,6 +1374,7 @@ spec:
|
|||||||
- OS-FLV-EXT-DATA:ephemeral
|
- OS-FLV-EXT-DATA:ephemeral
|
||||||
- description
|
- description
|
||||||
- disk
|
- disk
|
||||||
|
- extra_specs
|
||||||
- id
|
- id
|
||||||
- name
|
- name
|
||||||
- os-flavor-access:is_public
|
- os-flavor-access:is_public
|
||||||
@@ -1009,6 +1383,22 @@ spec:
|
|||||||
- vcpus
|
- vcpus
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
osAuthToken:
|
||||||
|
type: string
|
||||||
|
osAuthUrl:
|
||||||
|
type: string
|
||||||
|
osDomainName:
|
||||||
|
type: string
|
||||||
|
osInsecure:
|
||||||
|
type: boolean
|
||||||
|
osPassword:
|
||||||
|
type: string
|
||||||
|
osRegionName:
|
||||||
|
type: string
|
||||||
|
osTenantName:
|
||||||
|
type: string
|
||||||
|
osUsername:
|
||||||
|
type: string
|
||||||
pcdHostConfig:
|
pcdHostConfig:
|
||||||
description: PCDHostConfig is the list of available clusters in openstack
|
description: PCDHostConfig is the list of available clusters in openstack
|
||||||
items:
|
items:
|
||||||
@@ -1037,6 +1427,9 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
projectName:
|
||||||
|
description: ProjectName is the name of the project in openstack
|
||||||
|
type: string
|
||||||
secretRef:
|
secretRef:
|
||||||
description: SecretRef is the reference to the Kubernetes secret holding
|
description: SecretRef is the reference to the Kubernetes secret holding
|
||||||
OpenStack credentials
|
OpenStack credentials
|
||||||
@@ -1109,6 +1502,25 @@ spec:
|
|||||||
- requiresIdDisplay
|
- requiresIdDisplay
|
||||||
type: object
|
type: object
|
||||||
type: array
|
type: array
|
||||||
|
serverGroups:
|
||||||
|
items:
|
||||||
|
description: ServerGroupInfo holds the server group name, ID,
|
||||||
|
and policy information
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
members:
|
||||||
|
type: integer
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
policy:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
- policy
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
volumeBackends:
|
volumeBackends:
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
@@ -1340,7 +1752,7 @@ spec:
|
|||||||
- name: v1alpha1
|
- name: v1alpha1
|
||||||
schema:
|
schema:
|
||||||
openAPIV3Schema:
|
openAPIV3Schema:
|
||||||
description: RDMDisk is the Schema for the rdmdisks API.
|
description: RDMDisk is the Schema for the RDMDisks API.
|
||||||
properties:
|
properties:
|
||||||
apiVersion:
|
apiVersion:
|
||||||
description: |-
|
description: |-
|
||||||
@@ -1386,10 +1798,6 @@ spec:
|
|||||||
type: object
|
type: object
|
||||||
volumeType:
|
volumeType:
|
||||||
type: string
|
type: string
|
||||||
required:
|
|
||||||
- cinderBackendPool
|
|
||||||
- source
|
|
||||||
- volumeType
|
|
||||||
type: object
|
type: object
|
||||||
ownerVMs:
|
ownerVMs:
|
||||||
items:
|
items:
|
||||||
@@ -1401,7 +1809,6 @@ spec:
|
|||||||
- diskName
|
- diskName
|
||||||
- diskSize
|
- diskSize
|
||||||
- displayName
|
- displayName
|
||||||
- openstackVolumeRef
|
|
||||||
- ownerVMs
|
- ownerVMs
|
||||||
- uuid
|
- uuid
|
||||||
type: object
|
type: object
|
||||||
@@ -1544,6 +1951,18 @@ spec:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
|
networkPersistence:
|
||||||
|
description: NetworkPersistence instructs the migration helper
|
||||||
|
to persist the source networking configuration
|
||||||
|
type: boolean
|
||||||
|
periodicSyncEnabled:
|
||||||
|
description: PeriodicSyncEnabled is a boolean to enable periodic
|
||||||
|
sync
|
||||||
|
type: boolean
|
||||||
|
periodicSyncInterval:
|
||||||
|
description: PeriodicSyncInterval is the interval at which the
|
||||||
|
migration plan should be synced
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
bmConfigRef:
|
bmConfigRef:
|
||||||
description: BMConfigRef is the reference to the BMC credentials
|
description: BMConfigRef is the reference to the BMC credentials
|
||||||
@@ -1650,6 +2069,9 @@ spec:
|
|||||||
adminInitiatedCutOver:
|
adminInitiatedCutOver:
|
||||||
default: false
|
default: false
|
||||||
type: boolean
|
type: boolean
|
||||||
|
arrayOffload:
|
||||||
|
default: false
|
||||||
|
type: boolean
|
||||||
dataCopyStart:
|
dataCopyStart:
|
||||||
format: date-time
|
format: date-time
|
||||||
type: string
|
type: string
|
||||||
@@ -1693,9 +2115,6 @@ spec:
|
|||||||
suffix:
|
suffix:
|
||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
retry:
|
|
||||||
description: Retry the migration if it fails
|
|
||||||
type: boolean
|
|
||||||
vmMigrationPlans:
|
vmMigrationPlans:
|
||||||
description: VMMigrationPlans is the reference to the VM migration
|
description: VMMigrationPlans is the reference to the VM migration
|
||||||
plan
|
plan
|
||||||
@@ -1976,6 +2395,18 @@ spec:
|
|||||||
openstackImageID:
|
openstackImageID:
|
||||||
description: OpenstackImageID is the image of the VM
|
description: OpenstackImageID is the image of the VM
|
||||||
type: string
|
type: string
|
||||||
|
openstackSecurityGroups:
|
||||||
|
description: |-
|
||||||
|
OpenstackSecurityGroups is the list of security groups for the VM
|
||||||
|
If empty, the security groups will be determined from the master node
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
openstackVolumeType:
|
||||||
|
description: |-
|
||||||
|
OpenstackVolumeType is the volume type for the root disk of the VM
|
||||||
|
If empty, the volume type will be determined from the master node
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- nodeRole
|
- nodeRole
|
||||||
- openstackCreds
|
- openstackCreds
|
||||||
@@ -2173,8 +2604,9 @@ spec:
|
|||||||
type: string
|
type: string
|
||||||
type: object
|
type: object
|
||||||
x-kubernetes-map-type: atomic
|
x-kubernetes-map-type: atomic
|
||||||
required:
|
vcenterHost:
|
||||||
- datacenter
|
description: VcenterHost is the vCenter host
|
||||||
|
type: string
|
||||||
type: object
|
type: object
|
||||||
status:
|
status:
|
||||||
description: VMwareCredsStatus defines the observed state of VMwareCreds
|
description: VMwareCredsStatus defines the observed state of VMwareCreds
|
||||||
@@ -2331,11 +2763,35 @@ spec:
|
|||||||
disks:
|
disks:
|
||||||
description: Disks is the list of disks for the virtual machine
|
description: Disks is the list of disks for the virtual machine
|
||||||
items:
|
items:
|
||||||
type: string
|
description: Disk represents a virtual disk attached to a virtual
|
||||||
|
machine
|
||||||
|
properties:
|
||||||
|
capacityGB:
|
||||||
|
type: integer
|
||||||
|
datastore:
|
||||||
|
type: string
|
||||||
|
datastoreId:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: array
|
type: array
|
||||||
esxiName:
|
esxiName:
|
||||||
description: ESXiName is the name of the ESXi host
|
description: ESXiName is the name of the ESXi host
|
||||||
type: string
|
type: string
|
||||||
|
gpu:
|
||||||
|
description: GPU contains information about GPU devices attached
|
||||||
|
to the VM
|
||||||
|
properties:
|
||||||
|
passthroughCount:
|
||||||
|
description: PassthroughCount is the number of PCI passthrough
|
||||||
|
GPU devices
|
||||||
|
type: integer
|
||||||
|
vgpuCount:
|
||||||
|
description: VGPUCount is the number of vGPU (shared GPU)
|
||||||
|
devices
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
guestNetworks:
|
guestNetworks:
|
||||||
description: GuestNetworks is the list of network interfaces for
|
description: GuestNetworks is the list of network interfaces for
|
||||||
the virtual machine as reported by the guest
|
the virtual machine as reported by the guest
|
||||||
@@ -2399,42 +2855,7 @@ spec:
|
|||||||
description: RDMDisks is the list of RDM disks for the virtual
|
description: RDMDisks is the list of RDM disks for the virtual
|
||||||
machine
|
machine
|
||||||
items:
|
items:
|
||||||
description: RDMDiskInfo contains information about a Raw Device
|
type: string
|
||||||
Mapping (RDM) disk
|
|
||||||
properties:
|
|
||||||
diskName:
|
|
||||||
description: DiskName is the name of the disk
|
|
||||||
type: string
|
|
||||||
diskSize:
|
|
||||||
description: DiskSize is the size of the disk in GB
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
displayName:
|
|
||||||
description: DisplayName is the display name of the disk
|
|
||||||
type: string
|
|
||||||
openstackVolumeRef:
|
|
||||||
description: OpenstackVolumeRef contains OpenStack volume
|
|
||||||
reference information
|
|
||||||
properties:
|
|
||||||
cinderBackendPool:
|
|
||||||
description: CinderBackendPool is the cinder backend
|
|
||||||
pool of the disk
|
|
||||||
type: string
|
|
||||||
volumeRef:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
description: VolumeRef is the reference to the OpenStack
|
|
||||||
volume
|
|
||||||
type: object
|
|
||||||
volumeType:
|
|
||||||
description: VolumeType is the volume type of the disk
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
uuid:
|
|
||||||
description: UUID (VML id) is the unique identifier of the
|
|
||||||
disk
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: array
|
type: array
|
||||||
vmState:
|
vmState:
|
||||||
description: VMState is the state of the virtual machine
|
description: VMState is the state of the virtual machine
|
||||||
@@ -2671,8 +3092,11 @@ rules:
|
|||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- configmaps
|
- configmaps
|
||||||
|
- namespaces
|
||||||
- pods
|
- pods
|
||||||
- secrets
|
- secrets
|
||||||
|
- serviceaccounts
|
||||||
|
- services
|
||||||
verbs:
|
verbs:
|
||||||
- create
|
- create
|
||||||
- delete
|
- delete
|
||||||
@@ -2681,6 +3105,15 @@ rules:
|
|||||||
- patch
|
- patch
|
||||||
- update
|
- update
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps/status
|
||||||
|
- pods/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
@@ -2701,11 +3134,10 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- pods/status
|
- pods/log
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- patch
|
- list
|
||||||
- update
|
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- apiextensions.k8s.io
|
- apiextensions.k8s.io
|
||||||
resources:
|
resources:
|
||||||
@@ -2742,9 +3174,37 @@ rules:
|
|||||||
- patch
|
- patch
|
||||||
- update
|
- update
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- rbac.authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- clusterrolebindings
|
||||||
|
- clusterroles
|
||||||
|
- rolebindings
|
||||||
|
- roles
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds
|
||||||
- bmconfigs
|
- bmconfigs
|
||||||
- clustermigrations
|
- clustermigrations
|
||||||
- esximigrations
|
- esximigrations
|
||||||
@@ -2774,6 +3234,7 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds/finalizers
|
||||||
- bmconfigs/finalizers
|
- bmconfigs/finalizers
|
||||||
- clustermigrations/finalizers
|
- clustermigrations/finalizers
|
||||||
- esximigrations/finalizers
|
- esximigrations/finalizers
|
||||||
@@ -2793,6 +3254,7 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- vjailbreak.k8s.pf9.io
|
- vjailbreak.k8s.pf9.io
|
||||||
resources:
|
resources:
|
||||||
|
- arraycreds/status
|
||||||
- bmconfigs/status
|
- bmconfigs/status
|
||||||
- clustermigrations/status
|
- clustermigrations/status
|
||||||
- esximigrations/status
|
- esximigrations/status
|
||||||
@@ -3618,6 +4080,23 @@ subjects:
|
|||||||
name: migration-controller-manager
|
name: migration-controller-manager
|
||||||
namespace: migration-system
|
namespace: migration-system
|
||||||
---
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/component: rbac
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
name: migration-migration-controller-manager-admin
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: cluster-admin
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: migration-controller-manager
|
||||||
|
namespace: migration-system
|
||||||
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
@@ -3632,11 +4111,173 @@ spec:
|
|||||||
app: vpwned-sdk
|
app: vpwned-sdk
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
---
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: kustomize
|
||||||
|
app.kubernetes.io/name: migration
|
||||||
|
control-plane: controller-manager
|
||||||
|
name: migration-controller-manager
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
control-plane: controller-manager
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kubectl.kubernetes.io/default-container: manager
|
||||||
|
labels:
|
||||||
|
control-plane: controller-manager
|
||||||
|
spec:
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- --leader-elect=false
|
||||||
|
- --health-probe-bind-address=:8081
|
||||||
|
command:
|
||||||
|
- /manager
|
||||||
|
env:
|
||||||
|
- name: MAX_CONCURRENT_RECONCILES
|
||||||
|
value: "5"
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: pf9-env
|
||||||
|
image: quay.io/platform9/vjailbreak-controller:v0.3.8
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
lifecycle:
|
||||||
|
preStop:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- sleep 5
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8081
|
||||||
|
initialDelaySeconds: 15
|
||||||
|
periodSeconds: 20
|
||||||
|
name: manager
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /readyz
|
||||||
|
port: 8081
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 256Mi
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/pf9/k3s
|
||||||
|
name: master-token
|
||||||
|
- mountPath: /home/ubuntu
|
||||||
|
name: vddk
|
||||||
|
- mountPath: /etc/hosts
|
||||||
|
name: hosts-file
|
||||||
|
readOnly: true
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
hostNetwork: true
|
||||||
|
securityContext:
|
||||||
|
runAsGroup: 0
|
||||||
|
runAsUser: 0
|
||||||
|
serviceAccountName: migration-controller-manager
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /var/lib/rancher/k3s/server
|
||||||
|
type: Directory
|
||||||
|
name: master-token
|
||||||
|
- hostPath:
|
||||||
|
path: /home/ubuntu
|
||||||
|
type: Directory
|
||||||
|
name: vddk
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/hosts
|
||||||
|
type: File
|
||||||
|
name: hosts-file
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: vpwned-sdk
|
||||||
|
name: migration-vpwned-sdk
|
||||||
|
namespace: migration-system
|
||||||
|
spec:
|
||||||
|
progressDeadlineSeconds: 600
|
||||||
|
replicas: 1
|
||||||
|
revisionHistoryLimit: 10
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vpwned-sdk
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 25%
|
||||||
|
maxUnavailable: 25%
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: vpwned-sdk
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: pf9-env
|
||||||
|
image: quay.io/platform9/vjailbreak-vpwned:v0.3.8
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
name: vpwned
|
||||||
|
ports:
|
||||||
|
- containerPort: 3001
|
||||||
|
protocol: TCP
|
||||||
|
resources: {}
|
||||||
|
terminationMessagePath: /dev/termination-log
|
||||||
|
terminationMessagePolicy: File
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/hosts
|
||||||
|
name: hosts-file
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: /home/ubuntu
|
||||||
|
name: vddk-storage
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
restartPolicy: Always
|
||||||
|
schedulerName: default-scheduler
|
||||||
|
securityContext: {}
|
||||||
|
serviceAccountName: migration-controller-manager
|
||||||
|
terminationGracePeriodSeconds: 30
|
||||||
|
volumes:
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/hosts
|
||||||
|
type: File
|
||||||
|
name: hosts-file
|
||||||
|
- hostPath:
|
||||||
|
path: /home/ubuntu
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
name: vddk-storage
|
||||||
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: 500m
|
||||||
|
nginx.ingress.kubernetes.io/proxy-buffering: "off"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
|
||||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||||
name: migration-vpwned-ingress
|
name: migration-vpwned-ingress
|
||||||
@@ -3653,4 +4294,3 @@ spec:
|
|||||||
number: 80
|
number: 80
|
||||||
path: /dev-api/sdk/(.*)
|
path: /dev-api/sdk/(.*)
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
---
|
|
||||||
@@ -103,8 +103,8 @@ spec:
|
|||||||
echo "Syncing from rsync://${MASTER_IP}"
|
echo "Syncing from rsync://${MASTER_IP}"
|
||||||
rsync -avz rsync://${MASTER_IP}/vmwarelib/ /home/ubuntu/vmware-vix-disklib-distrib/
|
rsync -avz rsync://${MASTER_IP}/vmwarelib/ /home/ubuntu/vmware-vix-disklib-distrib/
|
||||||
|
|
||||||
# Sync logs from worker to master (with delete flag to sync deletions too)
|
# Sync logs from worker to master
|
||||||
rsync -avz --delete /var/log/pf9 rsync://${MASTER_IP}/worker-logs
|
rsync -avz /var/log/pf9 rsync://${MASTER_IP}/worker-logs
|
||||||
|
|
||||||
# Sync virtio-win drivers from master to worker
|
# Sync virtio-win drivers from master to worker
|
||||||
rsync -avz rsync://${MASTER_IP}/virtio-win /home/ubuntu/virtio-win
|
rsync -avz rsync://${MASTER_IP}/virtio-win /home/ubuntu/virtio-win
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
export IS_MASTER=true
|
export IS_MASTER=true
|
||||||
export MASTER_IP=
|
export MASTER_IP=
|
||||||
export K3S_TOKEN=
|
export K3S_TOKEN=
|
||||||
|
export INSTALL_K3S_EXEC="server --secrets-encryption"
|
||||||
@@ -5,9 +5,29 @@ metadata:
|
|||||||
namespace: migration-system
|
namespace: migration-system
|
||||||
data:
|
data:
|
||||||
CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks
|
CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks
|
||||||
|
PERIODIC_SYNC_INTERVAL: "1h" # interval to sync vCenter VMs
|
||||||
VM_ACTIVE_WAIT_INTERVAL_SECONDS: "20" # interval to wait for vm to become active
|
VM_ACTIVE_WAIT_INTERVAL_SECONDS: "20" # interval to wait for vm to become active
|
||||||
VM_ACTIVE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for vm to become active
|
VM_ACTIVE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for vm to become active
|
||||||
DEFAULT_MIGRATION_METHOD: "hot" # supported value hot/cold, (This setting is not used as of now. To be used by UI)
|
DEFAULT_MIGRATION_METHOD: "cold" # supported value hot/cold, (This setting is not used as of now. To be used by UI)
|
||||||
VCENTER_SCAN_CONCURRENCY_LIMIT: "10" # max number of vms to scan at the same time
|
VCENTER_SCAN_CONCURRENCY_LIMIT: "10" # max number of vms to scan at the same time
|
||||||
CLEANUP_VOLUMES_AFTER_CONVERT_FAILURE: "false" # cleanup volumes after disk convert failure
|
CLEANUP_VOLUMES_AFTER_CONVERT_FAILURE: "false" # cleanup volumes after disk convert failure
|
||||||
POPULATE_VMWARE_MACHINE_FLAVORS: "true" # automatically populate VMwareMachine objects with OpenStack flavors
|
CLEANUP_PORTS_AFTER_MIGRATION_FAILURE: "false" # cleanup ports after migration failure
|
||||||
|
POPULATE_VMWARE_MACHINE_FLAVORS: "true" # automatically populate VMwareMachine objects with OpenStack flavors
|
||||||
|
VOLUME_AVAILABLE_WAIT_INTERVAL_SECONDS: "10" # interval to wait for volume to become available
|
||||||
|
VOLUME_AVAILABLE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for volume to become available
|
||||||
|
VCENTER_LOGIN_RETRY_LIMIT: "5" # number of retries for vcenter login
|
||||||
|
OPENSTACK_CREDS_REQUEUE_AFTER_MINUTES: "60" # number of minutes to requeue after for openstack 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
|
||||||
|
DEPLOYMENT_NAME: vJailbreak
|
||||||
|
PERIODIC_SYNC_MAX_RETRIES: "3" # max number of retries for CBT sync
|
||||||
|
PERIODIC_SYNC_RETRY_CAP: "3h" # max retry interval for CBT sync
|
||||||
|
AUTO_FSTAB_UPDATE: "false" # automatically update fstab
|
||||||
|
AUTO_PXE_BOOT_ON_CONVERSION: "false" # automatically set machine to PXE boot during cluster conversion
|
||||||
|
V2V_HELPER_POD_CPU_REQUEST: "1000m"
|
||||||
|
V2V_HELPER_POD_MEMORY_REQUEST: "2Gi"
|
||||||
|
V2V_HELPER_POD_CPU_LIMIT: "2000m"
|
||||||
|
V2V_HELPER_POD_MEMORY_LIMIT: "5Gi"
|
||||||
|
V2V_HELPER_POD_EPHEMERAL_STORAGE_REQUEST: "3Gi"
|
||||||
|
V2V_HELPER_POD_EPHEMERAL_STORAGE_LIMIT: "3Gi"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# v0.3.4
|
||||||
|
|
||||||
|
- **Tag:** `v0.3.4`
|
||||||
|
- **Published:** 2025-09-16T13:29:31Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.4
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* volume wait interval through settings by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/872
|
||||||
|
* logs all openstack calls that we make by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/873
|
||||||
|
* admin cut over poweroff sequence prevent user error by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/874
|
||||||
|
* Added cronjob to fetch for latest release and notify in UI by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/882
|
||||||
|
* bugfix: Add logic to assign IP from network interfaces if not already… by @rishabh625 in https://github.com/platform9/vjailbreak/pull/895
|
||||||
|
* create openstack ports before copy by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/879
|
||||||
|
* Admin cutover improve the pod label watch function by @spai-p9 in https://github.com/platform9/vjailbreak/pull/881
|
||||||
|
* remove --delete to not purge each others logs in master by @spai-p9 in https://github.com/platform9/vjailbreak/pull/904
|
||||||
|
* Advance option in UI to ask for fallback to DHCP if static IP assignment fails by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/906
|
||||||
|
* block on channel send to ensure initial label delivery by @spai-p9 in https://github.com/platform9/vjailbreak/pull/900
|
||||||
|
* Support for shared pRDM disk migration in vJailbreak, including all necessary controller changes and validation through testing with clustered Windows VMs using RDM disks by @rishabh625 in https://github.com/platform9/vjailbreak/pull/858
|
||||||
|
* Optimize OpenstackCreds reconciliation for scalability by @spai-p9 in https://github.com/platform9/vjailbreak/pull/908
|
||||||
|
* Change implementation from select to normal blocking channel. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/917
|
||||||
|
* bugfix: Add check for RDM disks in VM migration validation by @rishabh625 in https://github.com/platform9/vjailbreak/pull/915
|
||||||
|
* Added option in UI to retry Failed migrations by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/918
|
||||||
|
* changed MAAS to Bare-metal by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/916
|
||||||
|
* Added static RPMs and versionlocked in dnf by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/921
|
||||||
|
* Add SELinux for nbdkit by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/923
|
||||||
|
* vmdataexporter cli arg validation by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/884
|
||||||
|
* Fixed fonts inconsistency in vJailbreak UI by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/898
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.3...v0.3.4
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# v0.3.5
|
||||||
|
|
||||||
|
- **Tag:** `v0.3.5`
|
||||||
|
- **Published:** 2025-10-17T10:14:05Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.5
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Cache OpenStack instance metadata for performance and reliability by @spai-p9 in https://github.com/platform9/vjailbreak/pull/913
|
||||||
|
* disabled upgrade button while migrations are in progress by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/934
|
||||||
|
* disabled docs update workflow to run on release event by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/935
|
||||||
|
* Updated CRD Upgrade logic with missing permissions by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/933
|
||||||
|
* Bugfix: Added vmwaresession logged out, after retrieving data from vmware by @rishabh625 in https://github.com/platform9/vjailbreak/pull/939
|
||||||
|
* Changed description of a advanced option - Fallback to DHCP by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/948
|
||||||
|
* feat: View Migration pod logs from UI by @rishabh625 in https://github.com/platform9/vjailbreak/pull/942
|
||||||
|
* Add support to display rdm disk and populate rdm disk details in UI by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/926
|
||||||
|
* Refactor : VMwareMachine retrieval and validation in migration plan reconciliation by @rishabh625 in https://github.com/platform9/vjailbreak/pull/947
|
||||||
|
* Custom header for a vjailbreak deployment through configmap by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/958
|
||||||
|
* add creds requeue config to vjailbreak settings by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/965
|
||||||
|
* feat: Implement RDM disks validation and query integration in migration workflow by @rishabh625 in https://github.com/platform9/vjailbreak/pull/963
|
||||||
|
* feat: Set owner reference for RDM disks to ensure proper deletion with VMwareCreds by @rishabh625 in https://github.com/platform9/vjailbreak/pull/967
|
||||||
|
* feat: Enhance RDM validation to include configuration checks and improve error messaging by @rishabh625 in https://github.com/platform9/vjailbreak/pull/972
|
||||||
|
* fix: Update RDM disk migration retry logic and error handling by @rishabh625 in https://github.com/platform9/vjailbreak/pull/970
|
||||||
|
* Add a default password for Ubuntu user that needs to be changed on first boot by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/976
|
||||||
|
* List udev/fstab rules to preserve device mapping after migrations by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/905
|
||||||
|
* Disable selection of older date and time while scheduling cutover by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/960
|
||||||
|
* tls: remove cert trust logic, rely on OS_INSECURE for skipping verification by @jessicaralhan in https://github.com/platform9/vjailbreak/pull/863
|
||||||
|
* change controller rollout policy to re-create by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/979
|
||||||
|
* Fixed the bug where the script was not passed to the backend + update… by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/980
|
||||||
|
* feat: Enhance RDM disk info population by validating disk name before updating volume reference by @rishabh625 in https://github.com/platform9/vjailbreak/pull/984
|
||||||
|
* disabled log icon in ui (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/986
|
||||||
|
* disabled rdm config in UI (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/987
|
||||||
|
* enable k3s encryption at rest by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/990
|
||||||
|
* Added htpasswd based authentification for ui by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/994
|
||||||
|
* cache cred info for UI by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/996
|
||||||
|
* Removed secrets GET calls from UI by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/995
|
||||||
|
* Added command line utility to change and manage the user credentials for UI by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1002
|
||||||
|
* bugfix: add limit to log streaming - limit number of bytes by @rishabh625 in https://github.com/platform9/vjailbreak/pull/988
|
||||||
|
* Implemented automated HTTPS with Cert-Manager (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1005
|
||||||
|
* removed nonce from CSP by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1006
|
||||||
|
* Vjbctl - utility to add and manage users by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1003
|
||||||
|
* Vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1010
|
||||||
|
* cronjob fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1013
|
||||||
|
* Add host entries to migration-vpwned-ingress by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1015
|
||||||
|
* Implemented HTTPS with Cert-Manager by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1021
|
||||||
|
* Updated default username from ubuntu to admin by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1023
|
||||||
|
* added --no-restart to the utility to vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1024
|
||||||
|
* fixed count of selected vm by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1022
|
||||||
|
* Custom title on browser tab for each vjailbreak VM deployment by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1026
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @meghansh-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/958
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.4...v0.3.5
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
# v0.3.6
|
||||||
|
|
||||||
|
- **Tag:** `v0.3.6`
|
||||||
|
- **Published:** 2025-12-01T16:12:37Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.6
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* fix - Migration only takes the first subnet while creating the ports by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1019
|
||||||
|
* Bugfix: sync annotation from VMware to RDM disk openstack volume reference if changed by @rishabh625 in https://github.com/platform9/vjailbreak/pull/993
|
||||||
|
* Added vjailbreak-settings ConfigMap and implement RDM owner VM validation toggle by @rishabh625 in https://github.com/platform9/vjailbreak/pull/953
|
||||||
|
* bugfix: previous PR introduced a issue where importToCinder was not g… by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1033
|
||||||
|
* Fix - blocking port creation if dhcp is selected but VM doesn't have a valid IP by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1047
|
||||||
|
* Version Checker Cronjob exits gracefully in air-gapped environments by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1045
|
||||||
|
* enabled rdm configuration button by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1041
|
||||||
|
* bugfix: fix ImportToCinder to true from migrationplan controller by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1038
|
||||||
|
* Added filter on migrations based on current status and current creation time by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/944
|
||||||
|
* Blocked migration of VM having unknown OS by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/1042
|
||||||
|
* Skip CopyingChagedBlocks phase when migration type is cold by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1055
|
||||||
|
* fix: changing from patch to update while modifying importToCinder fieeld of RDM CR, adding idempotent guard and retry on conflict.. by @rishabh625 in https://github.com/platform9/vjailbreak/pull/1054
|
||||||
|
* delete firstboot configmap when migration is deleted by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1071
|
||||||
|
* Sv/issue 920/enhancements log collector bundle by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1063
|
||||||
|
* added FQDN tooltip for better user guidance by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1069
|
||||||
|
* bugfix: Handle VMware login failures gracefully without requeuing by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1061
|
||||||
|
* Admin Cutover Periodic sync by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1056
|
||||||
|
* fix - Delay in password expiration after creating the vjailbreak vm upon first login by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1076
|
||||||
|
* Implement VM OS type validation in migration plan (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1044
|
||||||
|
* Cluster-Based VM Filtering in Migration Form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/964
|
||||||
|
* fix(airgap): Pre-bake cert-manager images by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1087
|
||||||
|
* Show tenant name in openstack cluster name by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1085
|
||||||
|
* Handle inconsistent types in Host API response by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1099
|
||||||
|
* Separate Periodic Sync Interval Configuration for different migrations by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1083
|
||||||
|
* Add DeepWiki badge to README by @roopakparikh in https://github.com/platform9/vjailbreak/pull/1107
|
||||||
|
* Fix: Display RDM disk sizes correctly for disks smaller than 1 GB by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1090
|
||||||
|
* fix: issue-1073 Removing password log and replacing with "REDACTED" echo by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1064
|
||||||
|
* #1067 :: Remove unnecessary get migration calls on UI by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1103
|
||||||
|
* Added Pre-migration check to see if port is available before migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1115
|
||||||
|
* Fix: Prevent race condition in RDMDisk controller causing duplicate Cinder volume imports by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1086
|
||||||
|
* [UI] Need a Global settings page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1114
|
||||||
|
* Remove race condition in credential deletion flow by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1116
|
||||||
|
* Removed retry on failure checkbox by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1118
|
||||||
|
* Added powershell scripts for firstboot by @amar-chand in https://github.com/platform9/vjailbreak/pull/945
|
||||||
|
* mark migrationplan as successful if there are no VMs to migrate by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1123
|
||||||
|
* fix deleted creds used in migrationtemplate and migrationplan by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1127
|
||||||
|
* Resolve race condition and remove RDM sleep delay by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1125
|
||||||
|
* Added Retry Mechanism in Periodic Sync by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1080
|
||||||
|
* 1017 assigned ip for all vms removed if we select os of one of the vms post assigning ip by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1128
|
||||||
|
* Added a new option to enter Periodic Sync interval by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1126
|
||||||
|
* add proxy env set by user in controller as well by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1135
|
||||||
|
* do not wait for status after sumitting migrationform by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1132
|
||||||
|
* Fix - User should not be able to submit migration if OS is not selected during cold migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1136
|
||||||
|
* powering on of cold migration vms fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1131
|
||||||
|
* #1104 :: Bug :: Filter box for tenant search is going out of focus by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1138
|
||||||
|
* #989 :: Bug :: VM search box is going out of focus on start migration page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1141
|
||||||
|
* Implemented wait for RDM disks availability by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1142
|
||||||
|
* fix - Periodic sync values are not being populated in the migration ConfigMap, causing periodic sync to be skipped by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1148
|
||||||
|
* fix - Vm with multiple IPs on same MAC address (Tried with 2 IPs) are not getting 2nd IP on interface post migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1034
|
||||||
|
* Added an enhancement to revalidate the creds whenever required by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1113
|
||||||
|
* Added podfailed status check and reordered validation logic by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1151
|
||||||
|
* #1137 :: Bug :: OpenStack “Validate IP” does not fail gracefully when receiving a 500 (Internal Server Error) response by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1147
|
||||||
|
* #1144,#1145 :: periodic sync interval should not be a mandatory field on the migration form page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1152
|
||||||
|
* find the correct boot device without guestfish by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1133
|
||||||
|
* Pass user-assigned IPs through MigrationPlan for cold migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1153
|
||||||
|
* #864 :: Fixed multiple IP reset on OS selection by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1156
|
||||||
|
* #1154 :: Convert the global settings page to a tabular format by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1162
|
||||||
|
* Fetch resources post revalidation of credentials by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1161
|
||||||
|
* Fix: Use proxy from ENV for creating net/http clients by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1159
|
||||||
|
* added edge cases for blocking plan to reconcile by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1163
|
||||||
|
* bugfix: Add empty check by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1166
|
||||||
|
* fix: #903 Using format() with timezone offset instead of ISOString() for a… by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1171
|
||||||
|
* Add envFrom configmap and have logs in validate IP endpoint by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1172
|
||||||
|
* #1129 :: Remove duplicate error text on credential creation failure by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1174
|
||||||
|
* Format UI directory with prettier by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1170
|
||||||
|
* Removed duplicate options in migration form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1177
|
||||||
|
* #1175 :: Periodic sync validation requires clicking outside the input box before the Start button becomes enabled/disabled, which leads to start migration enabled even with wrong value sometimes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1179
|
||||||
|
* In advanced option validation check only for granularoptions ignore rest by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1183
|
||||||
|
* Fix sdk while adding logs and other details by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1178
|
||||||
|
* Added check to fallback to 5m if interval is less than 5m by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1187
|
||||||
|
* #1181 :: UI: Move to folder cannot use anyother name, when clearing the vjailbreakedVMs it appears again by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1186
|
||||||
|
* #1192 :: Bug: Migration Submit button is disabled when triggering admin cutover with periodic sync by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1197
|
||||||
|
* Inject log_collector.sh into the VM by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1194
|
||||||
|
* fix netplan upload for multi-disk VM by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1195
|
||||||
|
* Update revalidation status correctly by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1205
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @rijojohn85 made their first contribution in https://github.com/platform9/vjailbreak/pull/1061
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.5...v0.3.6
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# v0.3.7
|
||||||
|
|
||||||
|
- **Tag:** `v0.3.7`
|
||||||
|
- **Published:** 2025-12-19T12:08:24Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.7
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* fix - Periodic Sync Migration Fails on Transient Network Errors Instead of Retrying by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1204
|
||||||
|
* Prebaked Openstack Cli inside the vjailbreak VM by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1211
|
||||||
|
* fix - Migration controller logs are being flooded by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1212
|
||||||
|
* #1202 :: Bug :: Single migrationtemplate object should be created for one migrationplan (Use Dynamic Hotplug-Enabled Flavors is the advance option making post calls) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1215
|
||||||
|
* #1140 :: Enhancement :: Allow user input for IP's for any VM being migrated by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1217
|
||||||
|
* Added migration pod and controller logs in the UI by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1214
|
||||||
|
* #1040 :: Bug :: UI should block migration of VM having unknown OS (Should provide an option to select OS) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1222
|
||||||
|
* Backend implementation for ability to add server group to the VMs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1219
|
||||||
|
* Frontend for selecting server group during migration by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1220
|
||||||
|
* [Fix] added APIReader to get RDM by @rijojohn85 in https://github.com/platform9/vjailbreak/pull/1149
|
||||||
|
* cluster conversion fixes for static esx IPs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1203
|
||||||
|
* fix - Password set in cloud init is not being reflected by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1226
|
||||||
|
* add more aggressive cleaning in v2v-helper by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1235
|
||||||
|
* support gpu flavours by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1233
|
||||||
|
* Show correct time elapsed during migration on ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1237
|
||||||
|
* Removed fstrim by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1143
|
||||||
|
* Reduced log verbosity for disk copy by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1249
|
||||||
|
* Disable 'Apply Changes' button when ip has invalid format by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1251
|
||||||
|
* fix - Can't assign dhcp IP to the migrated instance by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1234
|
||||||
|
* Fix migration timeout for multi-attach RDM volumes by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1247
|
||||||
|
* add setting to delete port after migration failure by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1255
|
||||||
|
* reflect current default migration method in migration form by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1257
|
||||||
|
* Fix batch script to properly write self-delete logic to the generated startup script by @Track2k in https://github.com/platform9/vjailbreak/pull/1213
|
||||||
|
* add UI option to automatically run script to fix fstab entries during migration by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1258
|
||||||
|
* feat: add a net pacakge with unit test cases by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/1160
|
||||||
|
* Added script to check disks status in Windows post-migration by @amar-chand in https://github.com/platform9/vjailbreak/pull/1167
|
||||||
|
* fix agents tenant and security groups by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1260
|
||||||
|
* fix multiple migration succeeded events in amplitude by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1262
|
||||||
|
* fix - Migration fails when port already exist on pcd side (DHCP=true) by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1279
|
||||||
|
* Setting up the default password for the agent nodes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1281
|
||||||
|
* Fixed default migration-method to cold and map with global settings by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1284
|
||||||
|
* Updating CRDs for release by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1285
|
||||||
|
* Populate metadata in extra specs in openstack creds by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1286
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @Track2k made their first contribution in https://github.com/platform9/vjailbreak/pull/1213
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.6...v0.3.7
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# v0.3.8
|
||||||
|
|
||||||
|
- **Tag:** `v0.3.8`
|
||||||
|
- **Published:** 2026-01-07T08:27:41Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.8
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Implement Session Timeout (18 hours inactivity) for UI by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1264
|
||||||
|
* install vjbctl binary system wide by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1269
|
||||||
|
* Make datacenter field as an optional entry in vmware creds form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1256
|
||||||
|
* #1227, #1224 :: Create a Common Component Library for Consistent UI Across the Application by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1297
|
||||||
|
* support additional machine states, optional set to PXE boot by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1301
|
||||||
|
* fix - Agent Node not prompting to change password by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1310
|
||||||
|
* fix errored agent nodes deletion from PCD by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1303
|
||||||
|
* Added script to preserve network interfaces by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1304
|
||||||
|
* #1299 :: New UI – Issues and Required Fixes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1313
|
||||||
|
* Added advanced option in UI to select if the user wants to persist network interfaces by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1314
|
||||||
|
* add script to check and bring the offline volumes online by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1309
|
||||||
|
* Added a new state to show migrationplan validation failure in ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1298
|
||||||
|
* fix - logs for persistance script showing errors by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1317
|
||||||
|
* Add endpoint to take proxy variable, update the cm and restart controller. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1316
|
||||||
|
* Fix logs UI and updated CRDs by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1320
|
||||||
|
* #1294 :: UI add proxy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1322
|
||||||
|
* #1294 :: UI: Add proxy with separate Http, Https field by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1325
|
||||||
|
* added validationFailed to stop time elapsed by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1328
|
||||||
|
* Refactored network persistance script by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1327
|
||||||
|
* #1331 :: Show warning message on UI after saving proxy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1332
|
||||||
|
* no_proxy default values by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1335
|
||||||
|
* Fixed migrationplan status based on all edge cases (combination of validationFailed, failed, suceeded, inprogress) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1333
|
||||||
|
* Fix - Network persistence not working for older versions of ubuntu by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1338
|
||||||
|
* Vmware tools fix by @amar-chand in https://github.com/platform9/vjailbreak/pull/1267
|
||||||
|
* fix - Interfaces with no ip for ubuntu older versions getting default ip by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1340
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.7...v0.3.8
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# v0.4.0
|
||||||
|
|
||||||
|
- **Tag:** `v0.4.0`
|
||||||
|
- **Published:** 2026-02-03T10:40:48Z
|
||||||
|
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.0
|
||||||
|
|
||||||
|
## Release Notes
|
||||||
|
|
||||||
|
## What's Changed
|
||||||
|
* Added link to public documentation in the ui by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1345
|
||||||
|
* #1336, #834 :: UI implement feedback changes by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1346
|
||||||
|
* Implement Storage SDK Foundation (#1091 #1093) - PART1 by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1291
|
||||||
|
* continues the array-accelerated migration work by implementing the storage array gRPC server layer by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1350
|
||||||
|
* Storage SDK Foundation - Part 3 -- removed all UI changes by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1353
|
||||||
|
* Upload VDDK via UI. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1319
|
||||||
|
* fix: Make VCENTER_DATACENTER optional in secret by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1356
|
||||||
|
* Reverting 3 commits that introduced breaking changes by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1357
|
||||||
|
* storage array integration by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1361
|
||||||
|
* Added migration details modal by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1355
|
||||||
|
* remove stale folders from the project by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1359
|
||||||
|
* Handled trailing slash in vCenter URL by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1349
|
||||||
|
* VDDK upload by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1364
|
||||||
|
* Added more relevant option in MigrationForm by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1347
|
||||||
|
* Bug: Check for empty arraycreds secret ref when normal migration and change names. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1369
|
||||||
|
* Restrict retry on rdm migration by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1365
|
||||||
|
* Added validation for hotplug flavor discovery by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1360
|
||||||
|
* merge two common folders for better code structure by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1379
|
||||||
|
* Added return to avoid segmentation fault or panic by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1387
|
||||||
|
* VM Migrations stats and alerts on grafana dashboards by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1362
|
||||||
|
* #1368, #1367 date time selection is not working for scheduled cutover and copy start time by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1384
|
||||||
|
* feat: adding vddk upload status api by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1377
|
||||||
|
* deterministic volume ordering during copy by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1389
|
||||||
|
* UI: Create UI for storage accelerated copy. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1378
|
||||||
|
* Added missing logs for better debugging by @geet-pf9 in https://github.com/platform9/vjailbreak/pull/1401
|
||||||
|
* feat: adding vddk version in the api by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1397
|
||||||
|
* #731 :: [UI] add prompts for missing VDDK, credentials by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1372
|
||||||
|
* Fix - windows 2022 not able to recognise the network interfaces by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1382
|
||||||
|
* pass vminfo by reference and improve sync error handling by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1391
|
||||||
|
* Reset currentState to initial in case of error and success by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1404
|
||||||
|
* Implemented OpenStack token-based authentication by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1394
|
||||||
|
* feat: adding fuzzy search by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1392
|
||||||
|
* Add VM power status check after poweroff by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1405
|
||||||
|
* Make request limit configurable and increase limit to 5Gib by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1407
|
||||||
|
* feat: Adding netapp storage.go by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1399
|
||||||
|
* Mark migrations ValidationFailed when RDM disk is not managed by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1406
|
||||||
|
* Disabled hour-time-picker for scheduled cutover if minutes are disabled by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1415
|
||||||
|
* Fix issues in vddk upload page by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1418
|
||||||
|
* fix: added buildBackendToVolumeTypeMap function and cleanup logic by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1422
|
||||||
|
* #1424 :: The screen flickers first time when clicking on other Global Settings tabs while the VDDK upload is in progress or uploaded by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1429
|
||||||
|
* #1434 :: Add ESXi SSH Private Key Input Field to Storage Array Credentials Page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1435
|
||||||
|
* Prioritizing Cold Migration in case of cutover options selected with cold migration by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1439
|
||||||
|
* #1444 :: Couldn't upload ssh key without an extension by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1447
|
||||||
|
* Throttling the go routines during copying changed block stage by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1446
|
||||||
|
* UI :: #1438 :: Admin cutover + cold migration is not a valid usecase by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1441
|
||||||
|
* #1430 :: Updating the vJailbreak settings through the UI removes ConfigMap keys that are not shown in the UI by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1436
|
||||||
|
|
||||||
|
## New Contributors
|
||||||
|
* @geet-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/1401
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.8...v0.4.0
|
||||||
Reference in New Issue
Block a user