Compare commits

..
4 Commits
Author SHA1 Message Date
OmkarDeshpande7 4542ee3fcd Add release v0.3.1 2026-09-15 22:47:51 +05:30
OmkarDeshpande7 4a634af992 Add release v0.3.0 2026-09-15 22:47:41 +05:30
OmkarDeshpande7 0c53794517 Add release v0.2.1 2026-09-15 22:47:32 +05:30
OmkarDeshpande7 d1d28eff24 Add release v0.2.0 2026-09-15 22:47:23 +05:30
9 changed files with 504 additions and 4 deletions
+355 -3
View File
@@ -473,6 +473,9 @@ spec:
dataCopyStart: dataCopyStart:
format: date-time format: date-time
type: string type: string
disconnectSourceNetwork:
default: false
type: boolean
healthCheckPort: healthCheckPort:
default: "443" default: "443"
type: string type: string
@@ -513,6 +516,10 @@ spec:
retry: retry:
description: Retry the migration if it fails description: Retry the migration if it fails
type: boolean type: boolean
securityGroups:
items:
type: string
type: array
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:
@@ -604,6 +611,11 @@ spec:
spec: spec:
description: Spec defines the desired state of Migration description: Spec defines the desired state of Migration
properties: 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: initiateCutover:
description: InitiateCutover is the flag to initiate cutover description: InitiateCutover is the flag to initiate cutover
type: boolean type: boolean
@@ -1076,6 +1088,14 @@ spec:
items: items:
type: string type: string
type: array type: array
securityGroups:
items:
type: string
type: array
volumeBackends:
items:
type: string
type: array
volumeTypes: volumeTypes:
items: items:
type: string type: string
@@ -1287,6 +1307,164 @@ spec:
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: 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: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.17.1 controller-gen.kubebuilder.io/version: v0.17.1
@@ -1458,6 +1636,9 @@ spec:
dataCopyStart: dataCopyStart:
format: date-time format: date-time
type: string type: string
disconnectSourceNetwork:
default: false
type: boolean
healthCheckPort: healthCheckPort:
default: "443" default: "443"
type: string type: string
@@ -1724,7 +1905,7 @@ spec:
description: Spec defines the desired state of VjailbreakNode description: Spec defines the desired state of VjailbreakNode
properties: properties:
nodeRole: nodeRole:
description: NodeRole is the role assigned to the node (e.g., "migration-worker", description: NodeRole is the role assigned to the node (e.g., "worker",
"controller") "controller")
type: string type: string
openstackCreds: openstackCreds:
@@ -2138,6 +2319,30 @@ spec:
esxiName: esxiName:
description: ESXiName is the name of the ESXi host description: ESXiName is the name of the ESXi host
type: string type: string
guestNetworks:
description: GuestNetworks is the list of network interfaces for
the virtual machine as reported by the guest
items:
description: GuestNetwork represents a network interface as
reported by the guest.
properties:
device:
type: string
dns:
items:
type: string
type: array
ip:
type: string
mac:
type: string
origin:
type: string
prefixLength:
format: int32
type: integer
type: object
type: array
ipAddress: ipAddress:
description: IPAddress is the IP address of the virtual machine description: IPAddress is the IP address of the virtual machine
type: string type: string
@@ -2147,6 +2352,21 @@ spec:
name: name:
description: Name is the name of the virtual machine description: Name is the name of the virtual machine
type: string type: string
networkInterfaces:
description: NetworkInterfaces is the list of network interfaces
for the virtual machine expect the lo device
items:
description: NIC represents a Virtual ethernet card in the virtual
machine.
properties:
mac:
type: string
network:
type: string
order:
type: integer
type: object
type: array
networks: networks:
description: Networks is the list of networks for the virtual description: Networks is the list of networks for the virtual
machine machine
@@ -2156,6 +2376,47 @@ spec:
osFamily: osFamily:
description: OSFamily is the OS family of the virtual machine description: OSFamily is the OS family of the virtual machine
type: string type: string
rdmDisks:
description: RDMDisks is the list of RDM disks for the virtual
machine
items:
description: RDMDiskInfo contains information about a Raw Device
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
vmState: vmState:
description: VMState is the state of the virtual machine description: VMState is the state of the virtual machine
type: string type: string
@@ -2451,6 +2712,7 @@ rules:
- openstackcreds - openstackcreds
- pcdclusters - pcdclusters
- pcdhosts - pcdhosts
- rdmdisks
- rollingmigrationplans - rollingmigrationplans
- storagemappings - storagemappings
- vjailbreaknodes - vjailbreaknodes
@@ -2478,6 +2740,7 @@ rules:
- openstackcreds/finalizers - openstackcreds/finalizers
- pcdclusters/finalizers - pcdclusters/finalizers
- pcdhosts/finalizers - pcdhosts/finalizers
- rdmdisks/finalizers
- rollingmigrationplans/finalizers - rollingmigrationplans/finalizers
- storagemappings/finalizers - storagemappings/finalizers
- vjailbreaknodes/finalizers - vjailbreaknodes/finalizers
@@ -2497,6 +2760,7 @@ rules:
- openstackcreds/status - openstackcreds/status
- pcdclusters/status - pcdclusters/status
- pcdhosts/status - pcdhosts/status
- rdmdisks/status
- rollingmigrationplans/status - rollingmigrationplans/status
- storagemappings/status - storagemappings/status
- vjailbreaknodes/status - vjailbreaknodes/status
@@ -2859,6 +3123,77 @@ rules:
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole 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: metadata:
labels: labels:
app.kubernetes.io/managed-by: kustomize app.kubernetes.io/managed-by: kustomize
@@ -3288,7 +3623,7 @@ spec:
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
command: command:
- /manager - /manager
image: platform9/vjailbreak-controller:v0.1.13 image: quay.io/platform9/vjailbreak-controller:v0.3.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
lifecycle: lifecycle:
preStop: preStop:
@@ -3319,6 +3654,10 @@ spec:
name: master-token name: master-token
- mountPath: /home/ubuntu - mountPath: /home/ubuntu
name: vddk name: vddk
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirstWithHostNet
hostNetwork: true hostNetwork: true
securityContext: securityContext:
runAsGroup: 0 runAsGroup: 0
@@ -3334,6 +3673,10 @@ spec:
path: /home/ubuntu path: /home/ubuntu
type: Directory type: Directory
name: vddk name: vddk
- hostPath:
path: /etc/hosts
type: File
name: hosts-file
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@@ -3360,7 +3703,7 @@ spec:
app: vpwned-sdk app: vpwned-sdk
spec: spec:
containers: containers:
- image: platform9/vjailbreak-vpwned:v0.1.13 - image: quay.io/platform9/vjailbreak-vpwned:v0.3.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
name: vpwned name: vpwned
ports: ports:
@@ -3369,11 +3712,20 @@ spec:
resources: {} resources: {}
terminationMessagePath: /dev/termination-log terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/hosts
name: hosts-file
readOnly: true
dnsPolicy: ClusterFirst dnsPolicy: ClusterFirst
restartPolicy: Always restartPolicy: Always
schedulerName: default-scheduler schedulerName: default-scheduler
securityContext: {} securityContext: {}
terminationGracePeriodSeconds: 30 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
+1 -1
View File
@@ -6,7 +6,7 @@ metadata:
spec: spec:
networkMapping: networkmapping networkMapping: networkmapping
storageMapping: storagemapping storageMapping: storagemapping
osType: windows osFamily: windowsGuest
source: source:
datacenter: Datacenter Name datacenter: Datacenter Name
vmwareRef: vmwarecreds vmwareRef: vmwarecreds
+11
View File
@@ -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,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: version-config
namespace: migration-system
data:
version: ${TAG}
upgradeAvailable: "false"
upgradeVersion: ""
@@ -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
+36
View File
@@ -0,0 +1,36 @@
# v0.2.0
- **Tag:** `v0.2.0`
- **Published:** 2025-07-14T04:45:16Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.2.0
## Release Notes
## What's Changed
* refactor: unify release notes workflow for both PR merges and direct releases by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/631
* Update release notes for v0.1.14 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/645
* Update release notes for v0.1.15 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/646
* PR description for testing by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/647
* configmap for current vjailbreak version (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/632
* Update docs from gh-pages by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/649
* Updated VMware custom resource to capture RDM disk information in VM details by @rishabh625 in https://github.com/platform9/vjailbreak/pull/563
* sanitize kubernetes label values by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/655
* dynamic etc host entries for controller (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/663
* Added a new sidenav by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/664
* rolling conversion validations by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/566
* remove docs dir and optimize API doc generation by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/652
* #667 Fixes the Rebase Action by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/668
* Check the target IP Allocation Pool to determine if Source VM IP is Available and Handle Port Creation 409 Conflict (release) by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/662
* fix docs for yamls by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/670
* Validate Openstack creds only for same env by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/681
* Delete the mastercreds for openstack by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/678
* Bugsnag and sidenav enahancements by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/679
* Delete VMware credentials stuck in Unknown state by @sarika-p9 in https://github.com/platform9/vjailbreak/pull/683
* Detect ubuntu vm's < 17.10 and appropriately handle the networking for the interfaces by @spai-p9 in https://github.com/platform9/vjailbreak/pull/674
* Fixed issue where sidenav collapse icon was coming on top of the Migr… by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/695
* v2v-helper: Add sled in the checks by @spai-p9 in https://github.com/platform9/vjailbreak/pull/694
## New Contributors
* @rishabh625 made their first contribution in https://github.com/platform9/vjailbreak/pull/563
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.1.15...v0.2.0
+20
View File
@@ -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
+39
View File
@@ -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
+21
View File
@@ -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