Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4542ee3fcd | ||
|
|
4a634af992 | ||
|
|
0c53794517 |
+259
-53
@@ -473,6 +473,9 @@ spec:
|
||||
dataCopyStart:
|
||||
format: date-time
|
||||
type: string
|
||||
disconnectSourceNetwork:
|
||||
default: false
|
||||
type: boolean
|
||||
healthCheckPort:
|
||||
default: "443"
|
||||
type: string
|
||||
@@ -513,6 +516,10 @@ spec:
|
||||
retry:
|
||||
description: Retry the migration if it fails
|
||||
type: boolean
|
||||
securityGroups:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
virtualMachines:
|
||||
description: VirtualMachines is a list of virtual machines to be migrated
|
||||
items:
|
||||
@@ -530,51 +537,6 @@ spec:
|
||||
MigrationPlanStatus defines the observed state of MigrationPlan including
|
||||
the current status and progress of the migration
|
||||
properties:
|
||||
conditions:
|
||||
description: Conditions represents the current state of the migration
|
||||
items:
|
||||
description: PodCondition contains details for the current condition
|
||||
of this pod.
|
||||
properties:
|
||||
lastProbeTime:
|
||||
description: Last time we probed the condition.
|
||||
format: date-time
|
||||
type: string
|
||||
lastTransitionTime:
|
||||
description: Last time the condition transitioned from one status
|
||||
to another.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Human-readable message indicating details about
|
||||
last transition.
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: |-
|
||||
If set, this represents the .metadata.generation that the pod condition was set based upon.
|
||||
This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.
|
||||
format: int64
|
||||
type: integer
|
||||
reason:
|
||||
description: Unique, one-word, CamelCase reason for the condition's
|
||||
last transition.
|
||||
type: string
|
||||
status:
|
||||
description: |-
|
||||
Status is the status of the condition.
|
||||
Can be True, False, Unknown.
|
||||
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
|
||||
type: string
|
||||
type:
|
||||
description: |-
|
||||
Type is the type of the condition.
|
||||
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
|
||||
type: string
|
||||
required:
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
migrationMessage:
|
||||
description: MigrationMessage is the message associated with the migration
|
||||
type: string
|
||||
@@ -649,6 +611,11 @@ spec:
|
||||
spec:
|
||||
description: Spec defines the desired state of Migration
|
||||
properties:
|
||||
disconnectSourceNetwork:
|
||||
description: |-
|
||||
DisconnectSourceNetwork specifies whether to disconnect the source VM's network interfaces
|
||||
after a successful migration to prevent network conflicts. Defaults to false.
|
||||
type: boolean
|
||||
initiateCutover:
|
||||
description: InitiateCutover is the flag to initiate cutover
|
||||
type: boolean
|
||||
@@ -1121,6 +1088,14 @@ spec:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
securityGroups:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
volumeBackends:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
volumeTypes:
|
||||
items:
|
||||
type: string
|
||||
@@ -1332,6 +1307,164 @@ spec:
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.1
|
||||
name: rdmdisks.vjailbreak.k8s.pf9.io
|
||||
spec:
|
||||
group: vjailbreak.k8s.pf9.io
|
||||
names:
|
||||
kind: RDMDisk
|
||||
listKind: RDMDiskList
|
||||
plural: rdmdisks
|
||||
singular: rdmdisk
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: RDMDisk is the Schema for the rdmdisks API.
|
||||
properties:
|
||||
apiVersion:
|
||||
description: |-
|
||||
APIVersion defines the versioned schema of this representation of an object.
|
||||
Servers should convert recognized schemas to the latest internal value, and
|
||||
may reject unrecognized values.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
||||
type: string
|
||||
kind:
|
||||
description: |-
|
||||
Kind is a string value representing the REST resource this object represents.
|
||||
Servers may infer this from the endpoint the client submits requests to.
|
||||
Cannot be updated.
|
||||
In CamelCase.
|
||||
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: Spec defines the desired state of RDMDisk
|
||||
properties:
|
||||
diskName:
|
||||
description: 'Important: Run "make" to regenerate code after modifying
|
||||
this file'
|
||||
type: string
|
||||
diskSize:
|
||||
type: integer
|
||||
displayName:
|
||||
type: string
|
||||
importToCinder:
|
||||
type: boolean
|
||||
openstackVolumeRef:
|
||||
description: OpenstackVolumeRef ... contains information about the
|
||||
OpenStack volume reference.
|
||||
properties:
|
||||
cinderBackendPool:
|
||||
type: string
|
||||
openstackCreds:
|
||||
type: string
|
||||
source:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
volumeType:
|
||||
type: string
|
||||
required:
|
||||
- cinderBackendPool
|
||||
- source
|
||||
- volumeType
|
||||
type: object
|
||||
ownerVMs:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
uuid:
|
||||
type: string
|
||||
required:
|
||||
- diskName
|
||||
- diskSize
|
||||
- displayName
|
||||
- openstackVolumeRef
|
||||
- ownerVMs
|
||||
- uuid
|
||||
type: object
|
||||
status:
|
||||
description: RDMDiskStatus defines the observed state of RDMDisk.
|
||||
properties:
|
||||
cinderVolumeID:
|
||||
type: string
|
||||
conditions:
|
||||
items:
|
||||
description: Condition contains details for one aspect of the current
|
||||
state of this API Resource.
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: |-
|
||||
lastTransitionTime is the last time the condition transitioned from one status to another.
|
||||
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: |-
|
||||
message is a human readable message indicating details about the transition.
|
||||
This may be an empty string.
|
||||
maxLength: 32768
|
||||
type: string
|
||||
observedGeneration:
|
||||
description: |-
|
||||
observedGeneration represents the .metadata.generation that the condition was set based upon.
|
||||
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
|
||||
with respect to the current state of the instance.
|
||||
format: int64
|
||||
minimum: 0
|
||||
type: integer
|
||||
reason:
|
||||
description: |-
|
||||
reason contains a programmatic identifier indicating the reason for the condition's last transition.
|
||||
Producers of specific condition types may define expected values and meanings for this field,
|
||||
and whether the values are considered a guaranteed API.
|
||||
The value should be a CamelCase string.
|
||||
This field may not be empty.
|
||||
maxLength: 1024
|
||||
minLength: 1
|
||||
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
|
||||
type: string
|
||||
status:
|
||||
description: status of the condition, one of True, False, Unknown.
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
- Unknown
|
||||
type: string
|
||||
type:
|
||||
description: type of condition in CamelCase or in foo.example.com/CamelCase.
|
||||
maxLength: 316
|
||||
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
|
||||
type: string
|
||||
required:
|
||||
- lastTransitionTime
|
||||
- message
|
||||
- reason
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
phase:
|
||||
enum:
|
||||
- Available
|
||||
- Managing
|
||||
- Managed
|
||||
- Error
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.1
|
||||
@@ -1503,6 +1636,9 @@ spec:
|
||||
dataCopyStart:
|
||||
format: date-time
|
||||
type: string
|
||||
disconnectSourceNetwork:
|
||||
default: false
|
||||
type: boolean
|
||||
healthCheckPort:
|
||||
default: "443"
|
||||
type: string
|
||||
@@ -2210,12 +2346,6 @@ spec:
|
||||
ipAddress:
|
||||
description: IPAddress is the IP address of the virtual machine
|
||||
type: string
|
||||
macAddresses:
|
||||
description: MacAddresses is the list of MAC addresses assigned
|
||||
to the VM's network interfaces
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
memory:
|
||||
description: Memory is the amount of memory in the virtual machine
|
||||
type: integer
|
||||
@@ -2582,6 +2712,7 @@ rules:
|
||||
- openstackcreds
|
||||
- pcdclusters
|
||||
- pcdhosts
|
||||
- rdmdisks
|
||||
- rollingmigrationplans
|
||||
- storagemappings
|
||||
- vjailbreaknodes
|
||||
@@ -2609,6 +2740,7 @@ rules:
|
||||
- openstackcreds/finalizers
|
||||
- pcdclusters/finalizers
|
||||
- pcdhosts/finalizers
|
||||
- rdmdisks/finalizers
|
||||
- rollingmigrationplans/finalizers
|
||||
- storagemappings/finalizers
|
||||
- vjailbreaknodes/finalizers
|
||||
@@ -2628,6 +2760,7 @@ rules:
|
||||
- openstackcreds/status
|
||||
- pcdclusters/status
|
||||
- pcdhosts/status
|
||||
- rdmdisks/status
|
||||
- rollingmigrationplans/status
|
||||
- storagemappings/status
|
||||
- vjailbreaknodes/status
|
||||
@@ -2990,6 +3123,77 @@ rules:
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: migration-rdmdisk-admin-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks/status
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: migration-rdmdisk-editor-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks/status
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: migration-rdmdisk-viewer-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- rdmdisks/status
|
||||
verbs:
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
@@ -3419,7 +3623,7 @@ spec:
|
||||
- --health-probe-bind-address=:8081
|
||||
command:
|
||||
- /manager
|
||||
image: quay.io/platform9/vjailbreak-controller:v0.2.0
|
||||
image: quay.io/platform9/vjailbreak-controller:v0.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -3452,6 +3656,8 @@ spec:
|
||||
name: vddk
|
||||
- mountPath: /etc/hosts
|
||||
name: hosts-file
|
||||
readOnly: true
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
hostNetwork: true
|
||||
securityContext:
|
||||
runAsGroup: 0
|
||||
@@ -3497,7 +3703,7 @@ spec:
|
||||
app: vpwned-sdk
|
||||
spec:
|
||||
containers:
|
||||
- image: quay.io/platform9/vjailbreak-vpwned:v0.2.0
|
||||
- image: quay.io/platform9/vjailbreak-vpwned:v0.3.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: vpwned
|
||||
ports:
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: analytics-keys
|
||||
namespace: migration-system
|
||||
type: Opaque
|
||||
data:
|
||||
amplitude-api-key: ${AMPLITUDE_API_KEY}
|
||||
bugsnag-api-key: ${BUGSNAG_API_KEY}
|
||||
app-version: ${VJB_VERSION_TAG}
|
||||
release-stage: cHJvZHVjdGlvbgo=
|
||||
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: vjailbreak-settings
|
||||
namespace: migration-system
|
||||
data:
|
||||
CHANGED_BLOCKS_COPY_ITERATION_THRESHOLD: "20" # number of iterations to copy changed blocks
|
||||
VM_ACTIVE_WAIT_INTERVAL_SECONDS: "20" # interval to wait for vm to become active
|
||||
VM_ACTIVE_WAIT_RETRY_LIMIT: "15" # number of retries to wait for vm to become active
|
||||
DEFAULT_MIGRATION_METHOD: "hot" # supported value hot/cold, (This setting is not used as of now. To be used by UI)
|
||||
VCENTER_SCAN_CONCURRENCY_LIMIT: "10" # max number of vms to scan at the same time
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# v0.2.1
|
||||
|
||||
- **Tag:** `v0.2.1`
|
||||
- **Published:** 2025-07-16T11:00:09Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.2.1
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* Nit: readme by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/704
|
||||
* Backport: vPwned: fix condition trigger for vm migrations by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/682
|
||||
* GH actions for cross fork PRs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/709
|
||||
* remove docker login for build only steps by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/717
|
||||
* add kubernetes dashboard by default to grafana by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/714
|
||||
* Add opensource.txt file,inject it into the vm and prebake virtio-drivers by @spai-p9 in https://github.com/platform9/vjailbreak/pull/718
|
||||
* Revert pr 662 by @spai-p9 @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/719
|
||||
* simplified the release notes workflow to update docs by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/710
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.2.0...v0.2.1
|
||||
@@ -0,0 +1,39 @@
|
||||
# v0.3.0
|
||||
|
||||
- **Tag:** `v0.3.0`
|
||||
- **Published:** 2025-07-31T13:37:39Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.0
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* RDM disk migration from VMware to Openstack on Same SAN array - if RDM is attached to single VM by @rishabh625 in https://github.com/platform9/vjailbreak/pull/654
|
||||
* persist host dns by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/735
|
||||
* fix for long vm names by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/738
|
||||
* additional vm name changes (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/746
|
||||
* process single VM at a time by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/749
|
||||
* Feature: add volume backend to openstackcreds custom resource by @rishabh625 in https://github.com/platform9/vjailbreak/pull/745
|
||||
* v2v-helper: log time taken by disk copy and conversion by @jessicaralhan in https://github.com/platform9/vjailbreak/pull/737
|
||||
* throttle goroutines by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/758
|
||||
* unblock vcenter with no clusters by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/755
|
||||
* added option to select security group by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/761
|
||||
* Delete rolling migration plan by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/754
|
||||
* Reset migrated status on migration object deletion by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/744
|
||||
* configurable vjb settings (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/762
|
||||
* added amplitude changes by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/765
|
||||
* Adding time elapsed for migration and cluster conversions + fixed the … by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/767
|
||||
* Improve ESXi host configuration UX by removing selection confusion by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/757
|
||||
* Disconnect all Virtual NICs on VMWare Source VM upon successful migration by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/768
|
||||
* Backend: rhel family guest network ip retention ( release ) by @spai-p9 in https://github.com/platform9/vjailbreak/pull/766
|
||||
* v0.3.0 fixes for SG and os creds validation by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/773
|
||||
* fix ui for clusters by @spai-p9 in https://github.com/platform9/vjailbreak/pull/775
|
||||
* Fix time elapsed issue by @spai-p9 in https://github.com/platform9/vjailbreak/pull/776
|
||||
* fix for wait active timeout by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/777
|
||||
* fix vpwned unavailable issue by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/779
|
||||
* idle connection timeout for vcenter by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/781
|
||||
* revert back to metadata name by @spai-p9 in https://github.com/platform9/vjailbreak/pull/780
|
||||
|
||||
## New Contributors
|
||||
* @jessicaralhan made their first contribution in https://github.com/platform9/vjailbreak/pull/737
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.2.1...v0.3.0
|
||||
@@ -0,0 +1,21 @@
|
||||
# v0.3.1
|
||||
|
||||
- **Tag:** `v0.3.1`
|
||||
- **Published:** 2025-08-07T13:13:27Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.3.1
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* Feature: Addition of rdm disk custom resource and controller by @rishabh625 in https://github.com/platform9/vjailbreak/pull/753
|
||||
* re-auth vcenter after timeout by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/787
|
||||
* reduce default vm scan concurrency, improve logging by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/791
|
||||
* Add fallback if /etc/os-release doesn't exist by @spai-p9 in https://github.com/platform9/vjailbreak/pull/772
|
||||
* bring back dhcp for non-matching subnets by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/795
|
||||
* amplitude and bugsnag integration (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/769
|
||||
* fix vm refresh for new govomi clients by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/803
|
||||
* fix: one of the status.phase correctly renamed from pending to available by @rishabh625 in https://github.com/platform9/vjailbreak/pull/806
|
||||
* Add vjailbreak-settings.yaml ( release ) by @spai-p9 in https://github.com/platform9/vjailbreak/pull/808
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.3.0...v0.3.1
|
||||
Reference in New Issue
Block a user