Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f1a95392f | ||
|
|
1fe88517ca | ||
|
|
4e92311606 |
+549
-1
@@ -680,6 +680,156 @@ spec:
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.1
|
||||
name: esxisshcreds.vjailbreak.k8s.pf9.io
|
||||
spec:
|
||||
group: vjailbreak.k8s.pf9.io
|
||||
names:
|
||||
kind: ESXiSSHCreds
|
||||
listKind: ESXiSSHCredsList
|
||||
plural: esxisshcreds
|
||||
singular: esxisshcreds
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.validationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .status.successfulHosts
|
||||
name: Successful
|
||||
type: integer
|
||||
- jsonPath: .status.failedHosts
|
||||
name: Failed
|
||||
type: integer
|
||||
- jsonPath: .status.totalHosts
|
||||
name: Total
|
||||
type: integer
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: |-
|
||||
ESXiSSHCreds is the Schema for the esxisshcreds API that defines SSH credentials
|
||||
for connecting to ESXi hosts. It validates SSH connectivity to ESXi hosts either
|
||||
discovered from vCenter via VMwareCreds or explicitly specified in the hosts list.
|
||||
The controller validates connections in parallel with throttling to avoid overwhelming
|
||||
the network, and reports per-host validation results in the status.
|
||||
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: ESXiSSHCredsSpec defines the desired state of ESXiSSHCreds
|
||||
properties:
|
||||
forceReconcileToken:
|
||||
description: |-
|
||||
ForceReconcileToken is an opaque token that can be updated to force a reconciliation.
|
||||
Updating this field will increment metadata.generation and trigger the controller.
|
||||
type: string
|
||||
secretRef:
|
||||
description: |-
|
||||
SecretRef is the reference to the Kubernetes secret holding the SSH private key
|
||||
The secret should contain a key named "privateKey" with the SSH private key in PEM format
|
||||
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
|
||||
username:
|
||||
default: root
|
||||
description: 'Username is the SSH username to use for connecting to
|
||||
ESXi hosts (default: "root")'
|
||||
type: string
|
||||
required:
|
||||
- secretRef
|
||||
type: object
|
||||
status:
|
||||
description: ESXiSSHCredsStatus defines the observed state of ESXiSSHCreds
|
||||
properties:
|
||||
failedHosts:
|
||||
description: FailedHosts is the number of ESXi hosts that failed validation
|
||||
type: integer
|
||||
lastValidationTime:
|
||||
description: LastValidationTime is the timestamp of the last validation
|
||||
run
|
||||
format: date-time
|
||||
type: string
|
||||
successfulHosts:
|
||||
description: SuccessfulHosts is the number of ESXi hosts that passed
|
||||
validation
|
||||
type: integer
|
||||
totalHosts:
|
||||
description: TotalHosts is the total number of ESXi hosts to validate
|
||||
type: integer
|
||||
validationMessage:
|
||||
description: ValidationMessage is the message associated with the
|
||||
overall validation
|
||||
type: string
|
||||
validationStatus:
|
||||
description: |-
|
||||
ValidationStatus is the overall status of the ESXi SSH validation
|
||||
Possible values: Pending, Validating, Succeeded, PartiallySucceeded, 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
|
||||
@@ -697,6 +847,12 @@ spec:
|
||||
- jsonPath: .status.migrationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.migrationTemplate
|
||||
name: Migration Template
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -732,6 +888,11 @@ spec:
|
||||
description: AdvancedOptions is a list of advanced options for the
|
||||
migration
|
||||
properties:
|
||||
acknowledgeNetworkConflictRisk:
|
||||
description: AcknowledgeNetworkConflictRisk indicates that the
|
||||
user acknowledges the risk of network conflicts when doing live
|
||||
migration
|
||||
type: boolean
|
||||
granularNetworks:
|
||||
description: GranularNetworks is a list of networks to be migrated
|
||||
items:
|
||||
@@ -760,6 +921,10 @@ spec:
|
||||
description: PeriodicSyncInterval is the interval at which the
|
||||
migration plan should be synced
|
||||
type: string
|
||||
removeVMwareTools:
|
||||
description: RemoveVMwareTools instructs the migration helper
|
||||
to remove VMware Tools post migration
|
||||
type: boolean
|
||||
type: object
|
||||
assignedIPsPerVM:
|
||||
additionalProperties:
|
||||
@@ -799,6 +964,7 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
vmCutoverEnd:
|
||||
format: date-time
|
||||
@@ -813,6 +979,34 @@ spec:
|
||||
description: MigrationTemplate is the template to be used for the
|
||||
migration
|
||||
type: string
|
||||
networkOverridesPerVM:
|
||||
additionalProperties:
|
||||
items:
|
||||
description: NICOverride defines per-NIC overrides for IP and
|
||||
MAC preservation during migration
|
||||
properties:
|
||||
interfaceIndex:
|
||||
description: InterfaceIndex is the zero-based index of the
|
||||
NIC
|
||||
type: integer
|
||||
preserveIP:
|
||||
description: |-
|
||||
PreserveIP indicates whether to preserve the source VM's IP address for this NIC.
|
||||
When nil the migration default (preserve) is used.
|
||||
type: boolean
|
||||
preserveMAC:
|
||||
description: |-
|
||||
PreserveMAC indicates whether to preserve the source VM's MAC address for this NIC.
|
||||
When nil the migration default (preserve) is used.
|
||||
type: boolean
|
||||
required:
|
||||
- interfaceIndex
|
||||
type: object
|
||||
type: array
|
||||
description: |-
|
||||
NetworkOverridesPerVM is a map of VM names to per-NIC network overrides
|
||||
Only NICs with non-default settings (i.e., preserve=false) need to be listed
|
||||
type: object
|
||||
postMigrationAction:
|
||||
description: PostMigrationAction defines the post migration action
|
||||
for the virtual machine
|
||||
@@ -889,6 +1083,9 @@ spec:
|
||||
- jsonPath: .status.agentName
|
||||
name: Agent Name
|
||||
type: string
|
||||
- jsonPath: .spec.migrationPlan
|
||||
name: MigrationPlan
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
@@ -945,6 +1142,11 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
networkOverrides:
|
||||
description: NetworkOverrides is the JSON-serialized per-NIC overrides
|
||||
for IP and MAC preservation
|
||||
type: string
|
||||
podRef:
|
||||
description: PodRef is the name of the pod
|
||||
@@ -1046,6 +1248,11 @@ spec:
|
||||
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
|
||||
as RDM disk migration state prevents automatic retry.
|
||||
type: boolean
|
||||
syncWarningMessage:
|
||||
description: |-
|
||||
SyncWarningMessage contains the warning message when periodic sync is in a warning state.
|
||||
If non-empty, indicates the sync failed but will auto-retry on next interval.
|
||||
type: string
|
||||
totalDisks:
|
||||
description: TotalDisks is the total number of disks to be migrated
|
||||
type: integer
|
||||
@@ -1292,6 +1499,12 @@ spec:
|
||||
- jsonPath: .status.openstackValidationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.secretRef.name
|
||||
name: Secret Name
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -1389,8 +1602,12 @@ spec:
|
||||
type: string
|
||||
osDomainName:
|
||||
type: string
|
||||
osIdentityApiVersion:
|
||||
type: string
|
||||
osInsecure:
|
||||
type: boolean
|
||||
osInterface:
|
||||
type: string
|
||||
osPassword:
|
||||
type: string
|
||||
osRegionName:
|
||||
@@ -1474,6 +1691,10 @@ spec:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
vjbinstanceid:
|
||||
description: VJBInstanceID is the ID of current vjailbreak instance
|
||||
(needed if metadata service is not available)
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
description: OpenstackCredsStatus defines the observed state of OpenstackCreds
|
||||
@@ -1481,9 +1702,25 @@ spec:
|
||||
openstack:
|
||||
description: Openstack is the OpenStack configuration for the openstackcreds
|
||||
properties:
|
||||
backendVolumeTypeMap:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
networks:
|
||||
items:
|
||||
description: PCDNetworkInfo is struct to hold network information
|
||||
for PCD
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
- tags
|
||||
type: object
|
||||
type: array
|
||||
securityGroups:
|
||||
items:
|
||||
@@ -1935,6 +2172,11 @@ spec:
|
||||
description: AdvancedOptions is a list of advanced options for the
|
||||
migration
|
||||
properties:
|
||||
acknowledgeNetworkConflictRisk:
|
||||
description: AcknowledgeNetworkConflictRisk indicates that the
|
||||
user acknowledges the risk of network conflicts when doing live
|
||||
migration
|
||||
type: boolean
|
||||
granularNetworks:
|
||||
description: GranularNetworks is a list of networks to be migrated
|
||||
items:
|
||||
@@ -1963,6 +2205,10 @@ spec:
|
||||
description: PeriodicSyncInterval is the interval at which the
|
||||
migration plan should be synced
|
||||
type: string
|
||||
removeVMwareTools:
|
||||
description: RemoveVMwareTools instructs the migration helper
|
||||
to remove VMware Tools post migration
|
||||
type: boolean
|
||||
type: object
|
||||
bmConfigRef:
|
||||
description: BMConfigRef is the reference to the BMC credentials
|
||||
@@ -2088,6 +2334,7 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
vmCutoverEnd:
|
||||
format: date-time
|
||||
@@ -2528,6 +2775,12 @@ spec:
|
||||
- jsonPath: .status.vmwareValidationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.secretRef.name
|
||||
name: Secret Name
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -2682,9 +2935,33 @@ spec:
|
||||
name:
|
||||
description: Name of the host
|
||||
type: string
|
||||
state:
|
||||
description: State is the connection state of the host
|
||||
type: string
|
||||
vmCount:
|
||||
description: VMCount is the number of VMs on the host
|
||||
type: integer
|
||||
type: object
|
||||
status:
|
||||
description: VMwareHostStatus defines the observed state of VMwareHost
|
||||
properties:
|
||||
esxiVersion:
|
||||
description: ESXiVersion is the ESXi version retrieved via SSH if
|
||||
connection succeeded
|
||||
type: string
|
||||
sshLastChecked:
|
||||
description: SSHLastChecked is the timestamp of the last SSH validation
|
||||
attempt
|
||||
format: date-time
|
||||
type: string
|
||||
sshMessage:
|
||||
description: SSHMessage contains details about the SSH validation
|
||||
result or error
|
||||
type: string
|
||||
sshStatus:
|
||||
description: SSHStatus is the SSH validation status for this host
|
||||
(Succeeded, Failed, Pending)
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
@@ -2707,7 +2984,17 @@ spec:
|
||||
singular: vmwaremachine
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.powerState
|
||||
name: PowerState
|
||||
type: string
|
||||
- jsonPath: .spec.migrated
|
||||
name: Migrated
|
||||
type: boolean
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: |-
|
||||
@@ -2833,11 +3120,15 @@ spec:
|
||||
machine.
|
||||
properties:
|
||||
ipAddress:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
mac:
|
||||
type: string
|
||||
network:
|
||||
type: string
|
||||
networkType:
|
||||
type: string
|
||||
order:
|
||||
type: integer
|
||||
type: object
|
||||
@@ -3208,6 +3499,7 @@ rules:
|
||||
- bmconfigs
|
||||
- clustermigrations
|
||||
- esximigrations
|
||||
- esxisshcreds
|
||||
- migrationplans
|
||||
- migrations
|
||||
- migrationtemplates
|
||||
@@ -3238,6 +3530,7 @@ rules:
|
||||
- bmconfigs/finalizers
|
||||
- clustermigrations/finalizers
|
||||
- esximigrations/finalizers
|
||||
- esxisshcreds/finalizers
|
||||
- migrationplans/finalizers
|
||||
- migrationtemplates/finalizers
|
||||
- networkmappings/finalizers
|
||||
@@ -3258,6 +3551,7 @@ rules:
|
||||
- bmconfigs/status
|
||||
- clustermigrations/status
|
||||
- esximigrations/status
|
||||
- esxisshcreds/status
|
||||
- migrationplans/status
|
||||
- migrations/status
|
||||
- migrationtemplates/status
|
||||
@@ -3270,6 +3564,7 @@ rules:
|
||||
- storagemappings/status
|
||||
- vjailbreaknodes/status
|
||||
- vmwarecreds/status
|
||||
- vmwarehosts/status
|
||||
- vmwaremachines/status
|
||||
verbs:
|
||||
- get
|
||||
@@ -4138,4 +4433,257 @@ spec:
|
||||
number: 80
|
||||
path: /dev-api/sdk/(.*)
|
||||
pathType: ImplementationSpecific
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: vjailbreak-ui-service
|
||||
namespace: migration-system
|
||||
spec:
|
||||
selector:
|
||||
app: vjailbreak-ui
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: vjailbreak-ui-ingress
|
||||
namespace: migration-system
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: vjailbreak-ui-service
|
||||
port:
|
||||
number: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: vjailbreak-api-ingress
|
||||
namespace: default
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /(apis.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: kubernetes
|
||||
port:
|
||||
number: 443
|
||||
- path: /(api.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: kubernetes
|
||||
port:
|
||||
number: 443
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: grafana-api-ingress
|
||||
namespace: monitoring
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /grafana
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: grafana
|
||||
port:
|
||||
number: 3000
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: ui-manager-sa
|
||||
namespace: migration-system
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: ui-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps/status
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds
|
||||
- arraycredsmappings
|
||||
- bmconfigs
|
||||
- esxisshcreds
|
||||
- clustermigrations
|
||||
- esximigrations
|
||||
- migrationplans
|
||||
- migrations
|
||||
- migrationtemplates
|
||||
- networkmappings
|
||||
- openstackcreds
|
||||
- pcdclusters
|
||||
- pcdhosts
|
||||
- rdmdisks
|
||||
- rollingmigrationplans
|
||||
- storagemappings
|
||||
- vjailbreaknodes
|
||||
- vmwareclusters
|
||||
- vmwarecreds
|
||||
- vmwarehosts
|
||||
- vmwaremachines
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds/finalizers
|
||||
- arraycredsmappings/finalizers
|
||||
- bmconfigs/finalizers
|
||||
- esxisshcreds/finalizers
|
||||
- clustermigrations/finalizers
|
||||
- esximigrations/finalizers
|
||||
- migrationplans/finalizers
|
||||
- migrationtemplates/finalizers
|
||||
- networkmappings/finalizers
|
||||
- openstackcreds/finalizers
|
||||
- pcdclusters/finalizers
|
||||
- pcdhosts/finalizers
|
||||
- rdmdisks/finalizers
|
||||
- rollingmigrationplans/finalizers
|
||||
- storagemappings/finalizers
|
||||
- vjailbreaknodes/finalizers
|
||||
- vmwarecreds/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds/status
|
||||
- arraycredsmappings/status
|
||||
- bmconfigs/status
|
||||
- esxisshcreds/status
|
||||
- clustermigrations/status
|
||||
- esximigrations/status
|
||||
- migrationplans/status
|
||||
- migrations/status
|
||||
- migrationtemplates/status
|
||||
- networkmappings/status
|
||||
- openstackcreds/status
|
||||
- pcdclusters/status
|
||||
- pcdhosts/status
|
||||
- rdmdisks/status
|
||||
- rollingmigrationplans/status
|
||||
- storagemappings/status
|
||||
- vjailbreaknodes/status
|
||||
- vmwarecreds/status
|
||||
- vmwaremachines/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: ui-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: ui-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: ui-manager-sa
|
||||
namespace: migration-system
|
||||
---
|
||||
@@ -20,6 +20,15 @@ spec:
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: pf9-logs
|
||||
mountPath: /var/log/pf9
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: pf9-logs
|
||||
hostPath:
|
||||
path: /var/log/pf9
|
||||
type: DirectoryOrCreate
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
|
||||
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.4.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
|
||||
dnsConfig:
|
||||
options:
|
||||
- name: ndots
|
||||
value: "1"
|
||||
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
|
||||
---
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
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.4.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
|
||||
- mountPath: /home/ubuntu
|
||||
name: vddk-storage
|
||||
dnsConfig:
|
||||
options:
|
||||
- name: ndots
|
||||
value: "1"
|
||||
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
|
||||
---
|
||||
@@ -0,0 +1,46 @@
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vjailbreak-ui
|
||||
namespace: migration-system
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: vjailbreak-ui
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: vjailbreak-ui
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
serviceAccountName: ui-manager-sa
|
||||
containers:
|
||||
- name: vjailbreak-ui-container
|
||||
image: quay.io/platform9/vjailbreak-ui:v0.4.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: nginx-shadow-htpasswd
|
||||
mountPath: /etc/nginx/shadow
|
||||
- name: pf9-logs
|
||||
mountPath: /var/log/pf9
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: nginx-shadow-htpasswd
|
||||
hostPath:
|
||||
path: /etc/htpasswd
|
||||
type: FileOrCreate
|
||||
- name: pf9-logs
|
||||
hostPath:
|
||||
path: /var/log/pf9
|
||||
type: DirectoryOrCreate
|
||||
---
|
||||
+604
-3
@@ -680,6 +680,156 @@ spec:
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.17.1
|
||||
name: esxisshcreds.vjailbreak.k8s.pf9.io
|
||||
spec:
|
||||
group: vjailbreak.k8s.pf9.io
|
||||
names:
|
||||
kind: ESXiSSHCreds
|
||||
listKind: ESXiSSHCredsList
|
||||
plural: esxisshcreds
|
||||
singular: esxisshcreds
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.validationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .status.successfulHosts
|
||||
name: Successful
|
||||
type: integer
|
||||
- jsonPath: .status.failedHosts
|
||||
name: Failed
|
||||
type: integer
|
||||
- jsonPath: .status.totalHosts
|
||||
name: Total
|
||||
type: integer
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: |-
|
||||
ESXiSSHCreds is the Schema for the esxisshcreds API that defines SSH credentials
|
||||
for connecting to ESXi hosts. It validates SSH connectivity to ESXi hosts either
|
||||
discovered from vCenter via VMwareCreds or explicitly specified in the hosts list.
|
||||
The controller validates connections in parallel with throttling to avoid overwhelming
|
||||
the network, and reports per-host validation results in the status.
|
||||
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: ESXiSSHCredsSpec defines the desired state of ESXiSSHCreds
|
||||
properties:
|
||||
forceReconcileToken:
|
||||
description: |-
|
||||
ForceReconcileToken is an opaque token that can be updated to force a reconciliation.
|
||||
Updating this field will increment metadata.generation and trigger the controller.
|
||||
type: string
|
||||
secretRef:
|
||||
description: |-
|
||||
SecretRef is the reference to the Kubernetes secret holding the SSH private key
|
||||
The secret should contain a key named "privateKey" with the SSH private key in PEM format
|
||||
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
|
||||
username:
|
||||
default: root
|
||||
description: 'Username is the SSH username to use for connecting to
|
||||
ESXi hosts (default: "root")'
|
||||
type: string
|
||||
required:
|
||||
- secretRef
|
||||
type: object
|
||||
status:
|
||||
description: ESXiSSHCredsStatus defines the observed state of ESXiSSHCreds
|
||||
properties:
|
||||
failedHosts:
|
||||
description: FailedHosts is the number of ESXi hosts that failed validation
|
||||
type: integer
|
||||
lastValidationTime:
|
||||
description: LastValidationTime is the timestamp of the last validation
|
||||
run
|
||||
format: date-time
|
||||
type: string
|
||||
successfulHosts:
|
||||
description: SuccessfulHosts is the number of ESXi hosts that passed
|
||||
validation
|
||||
type: integer
|
||||
totalHosts:
|
||||
description: TotalHosts is the total number of ESXi hosts to validate
|
||||
type: integer
|
||||
validationMessage:
|
||||
description: ValidationMessage is the message associated with the
|
||||
overall validation
|
||||
type: string
|
||||
validationStatus:
|
||||
description: |-
|
||||
ValidationStatus is the overall status of the ESXi SSH validation
|
||||
Possible values: Pending, Validating, Succeeded, PartiallySucceeded, 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
|
||||
@@ -697,6 +847,12 @@ spec:
|
||||
- jsonPath: .status.migrationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.migrationTemplate
|
||||
name: Migration Template
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -732,6 +888,11 @@ spec:
|
||||
description: AdvancedOptions is a list of advanced options for the
|
||||
migration
|
||||
properties:
|
||||
acknowledgeNetworkConflictRisk:
|
||||
description: AcknowledgeNetworkConflictRisk indicates that the
|
||||
user acknowledges the risk of network conflicts when doing live
|
||||
migration
|
||||
type: boolean
|
||||
granularNetworks:
|
||||
description: GranularNetworks is a list of networks to be migrated
|
||||
items:
|
||||
@@ -760,6 +921,10 @@ spec:
|
||||
description: PeriodicSyncInterval is the interval at which the
|
||||
migration plan should be synced
|
||||
type: string
|
||||
removeVMwareTools:
|
||||
description: RemoveVMwareTools instructs the migration helper
|
||||
to remove VMware Tools post migration
|
||||
type: boolean
|
||||
type: object
|
||||
assignedIPsPerVM:
|
||||
additionalProperties:
|
||||
@@ -799,6 +964,7 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
vmCutoverEnd:
|
||||
format: date-time
|
||||
@@ -813,6 +979,34 @@ spec:
|
||||
description: MigrationTemplate is the template to be used for the
|
||||
migration
|
||||
type: string
|
||||
networkOverridesPerVM:
|
||||
additionalProperties:
|
||||
items:
|
||||
description: NICOverride defines per-NIC overrides for IP and
|
||||
MAC preservation during migration
|
||||
properties:
|
||||
interfaceIndex:
|
||||
description: InterfaceIndex is the zero-based index of the
|
||||
NIC
|
||||
type: integer
|
||||
preserveIP:
|
||||
description: |-
|
||||
PreserveIP indicates whether to preserve the source VM's IP address for this NIC.
|
||||
When nil the migration default (preserve) is used.
|
||||
type: boolean
|
||||
preserveMAC:
|
||||
description: |-
|
||||
PreserveMAC indicates whether to preserve the source VM's MAC address for this NIC.
|
||||
When nil the migration default (preserve) is used.
|
||||
type: boolean
|
||||
required:
|
||||
- interfaceIndex
|
||||
type: object
|
||||
type: array
|
||||
description: |-
|
||||
NetworkOverridesPerVM is a map of VM names to per-NIC network overrides
|
||||
Only NICs with non-default settings (i.e., preserve=false) need to be listed
|
||||
type: object
|
||||
postMigrationAction:
|
||||
description: PostMigrationAction defines the post migration action
|
||||
for the virtual machine
|
||||
@@ -889,6 +1083,9 @@ spec:
|
||||
- jsonPath: .status.agentName
|
||||
name: Agent Name
|
||||
type: string
|
||||
- jsonPath: .spec.migrationPlan
|
||||
name: MigrationPlan
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
@@ -945,6 +1142,11 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
networkOverrides:
|
||||
description: NetworkOverrides is the JSON-serialized per-NIC overrides
|
||||
for IP and MAC preservation
|
||||
type: string
|
||||
podRef:
|
||||
description: PodRef is the name of the pod
|
||||
@@ -1046,6 +1248,11 @@ spec:
|
||||
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
|
||||
as RDM disk migration state prevents automatic retry.
|
||||
type: boolean
|
||||
syncWarningMessage:
|
||||
description: |-
|
||||
SyncWarningMessage contains the warning message when periodic sync is in a warning state.
|
||||
If non-empty, indicates the sync failed but will auto-retry on next interval.
|
||||
type: string
|
||||
totalDisks:
|
||||
description: TotalDisks is the total number of disks to be migrated
|
||||
type: integer
|
||||
@@ -1292,6 +1499,12 @@ spec:
|
||||
- jsonPath: .status.openstackValidationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.secretRef.name
|
||||
name: Secret Name
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -1389,8 +1602,12 @@ spec:
|
||||
type: string
|
||||
osDomainName:
|
||||
type: string
|
||||
osIdentityApiVersion:
|
||||
type: string
|
||||
osInsecure:
|
||||
type: boolean
|
||||
osInterface:
|
||||
type: string
|
||||
osPassword:
|
||||
type: string
|
||||
osRegionName:
|
||||
@@ -1474,6 +1691,10 @@ spec:
|
||||
type: string
|
||||
type: object
|
||||
x-kubernetes-map-type: atomic
|
||||
vjbinstanceid:
|
||||
description: VJBInstanceID is the ID of current vjailbreak instance
|
||||
(needed if metadata service is not available)
|
||||
type: string
|
||||
type: object
|
||||
status:
|
||||
description: OpenstackCredsStatus defines the observed state of OpenstackCreds
|
||||
@@ -1481,9 +1702,25 @@ spec:
|
||||
openstack:
|
||||
description: Openstack is the OpenStack configuration for the openstackcreds
|
||||
properties:
|
||||
backendVolumeTypeMap:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
networks:
|
||||
items:
|
||||
description: PCDNetworkInfo is struct to hold network information
|
||||
for PCD
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- name
|
||||
- tags
|
||||
type: object
|
||||
type: array
|
||||
securityGroups:
|
||||
items:
|
||||
@@ -1935,6 +2172,11 @@ spec:
|
||||
description: AdvancedOptions is a list of advanced options for the
|
||||
migration
|
||||
properties:
|
||||
acknowledgeNetworkConflictRisk:
|
||||
description: AcknowledgeNetworkConflictRisk indicates that the
|
||||
user acknowledges the risk of network conflicts when doing live
|
||||
migration
|
||||
type: boolean
|
||||
granularNetworks:
|
||||
description: GranularNetworks is a list of networks to be migrated
|
||||
items:
|
||||
@@ -1963,6 +2205,10 @@ spec:
|
||||
description: PeriodicSyncInterval is the interval at which the
|
||||
migration plan should be synced
|
||||
type: string
|
||||
removeVMwareTools:
|
||||
description: RemoveVMwareTools instructs the migration helper
|
||||
to remove VMware Tools post migration
|
||||
type: boolean
|
||||
type: object
|
||||
bmConfigRef:
|
||||
description: BMConfigRef is the reference to the BMC credentials
|
||||
@@ -2088,6 +2334,7 @@ spec:
|
||||
enum:
|
||||
- hot
|
||||
- cold
|
||||
- mock
|
||||
type: string
|
||||
vmCutoverEnd:
|
||||
format: date-time
|
||||
@@ -2528,6 +2775,12 @@ spec:
|
||||
- jsonPath: .status.vmwareValidationStatus
|
||||
name: Status
|
||||
type: string
|
||||
- jsonPath: .spec.secretRef.name
|
||||
name: Secret Name
|
||||
type: string
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
@@ -2682,9 +2935,33 @@ spec:
|
||||
name:
|
||||
description: Name of the host
|
||||
type: string
|
||||
state:
|
||||
description: State is the connection state of the host
|
||||
type: string
|
||||
vmCount:
|
||||
description: VMCount is the number of VMs on the host
|
||||
type: integer
|
||||
type: object
|
||||
status:
|
||||
description: VMwareHostStatus defines the observed state of VMwareHost
|
||||
properties:
|
||||
esxiVersion:
|
||||
description: ESXiVersion is the ESXi version retrieved via SSH if
|
||||
connection succeeded
|
||||
type: string
|
||||
sshLastChecked:
|
||||
description: SSHLastChecked is the timestamp of the last SSH validation
|
||||
attempt
|
||||
format: date-time
|
||||
type: string
|
||||
sshMessage:
|
||||
description: SSHMessage contains details about the SSH validation
|
||||
result or error
|
||||
type: string
|
||||
sshStatus:
|
||||
description: SSHStatus is the SSH validation status for this host
|
||||
(Succeeded, Failed, Pending)
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
@@ -2707,7 +2984,17 @@ spec:
|
||||
singular: vmwaremachine
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
- additionalPrinterColumns:
|
||||
- jsonPath: .status.powerState
|
||||
name: PowerState
|
||||
type: string
|
||||
- jsonPath: .spec.migrated
|
||||
name: Migrated
|
||||
type: boolean
|
||||
- jsonPath: .metadata.creationTimestamp
|
||||
name: Age
|
||||
type: date
|
||||
name: v1alpha1
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
description: |-
|
||||
@@ -2833,11 +3120,15 @@ spec:
|
||||
machine.
|
||||
properties:
|
||||
ipAddress:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
mac:
|
||||
type: string
|
||||
network:
|
||||
type: string
|
||||
networkType:
|
||||
type: string
|
||||
order:
|
||||
type: integer
|
||||
type: object
|
||||
@@ -3208,6 +3499,7 @@ rules:
|
||||
- bmconfigs
|
||||
- clustermigrations
|
||||
- esximigrations
|
||||
- esxisshcreds
|
||||
- migrationplans
|
||||
- migrations
|
||||
- migrationtemplates
|
||||
@@ -3238,6 +3530,7 @@ rules:
|
||||
- bmconfigs/finalizers
|
||||
- clustermigrations/finalizers
|
||||
- esximigrations/finalizers
|
||||
- esxisshcreds/finalizers
|
||||
- migrationplans/finalizers
|
||||
- migrationtemplates/finalizers
|
||||
- networkmappings/finalizers
|
||||
@@ -3258,6 +3551,7 @@ rules:
|
||||
- bmconfigs/status
|
||||
- clustermigrations/status
|
||||
- esximigrations/status
|
||||
- esxisshcreds/status
|
||||
- migrationplans/status
|
||||
- migrations/status
|
||||
- migrationtemplates/status
|
||||
@@ -3270,6 +3564,7 @@ rules:
|
||||
- storagemappings/status
|
||||
- vjailbreaknodes/status
|
||||
- vmwarecreds/status
|
||||
- vmwarehosts/status
|
||||
- vmwaremachines/status
|
||||
verbs:
|
||||
- get
|
||||
@@ -4153,7 +4448,7 @@ spec:
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: pf9-env
|
||||
image: quay.io/platform9/vjailbreak-controller:v0.3.8
|
||||
image: quay.io/platform9/vjailbreak-controller:v0.4.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
preStop:
|
||||
@@ -4187,6 +4482,10 @@ spec:
|
||||
- mountPath: /etc/hosts
|
||||
name: hosts-file
|
||||
readOnly: true
|
||||
dnsConfig:
|
||||
options:
|
||||
- name: ndots
|
||||
value: "1"
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
hostNetwork: true
|
||||
securityContext:
|
||||
@@ -4236,7 +4535,7 @@ spec:
|
||||
- envFrom:
|
||||
- configMapRef:
|
||||
name: pf9-env
|
||||
image: quay.io/platform9/vjailbreak-vpwned:v0.3.8
|
||||
image: quay.io/platform9/vjailbreak-vpwned:v0.4.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: vpwned
|
||||
ports:
|
||||
@@ -4251,6 +4550,10 @@ spec:
|
||||
readOnly: true
|
||||
- mountPath: /home/ubuntu
|
||||
name: vddk-storage
|
||||
dnsConfig:
|
||||
options:
|
||||
- name: ndots
|
||||
value: "1"
|
||||
dnsPolicy: ClusterFirst
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
@@ -4294,3 +4597,301 @@ spec:
|
||||
number: 80
|
||||
path: /dev-api/sdk/(.*)
|
||||
pathType: ImplementationSpecific
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: vjailbreak-ui
|
||||
namespace: migration-system
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: vjailbreak-ui
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: vjailbreak-ui
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: node-role.kubernetes.io/control-plane
|
||||
operator: Exists
|
||||
serviceAccountName: ui-manager-sa
|
||||
containers:
|
||||
- name: vjailbreak-ui-container
|
||||
image: quay.io/platform9/vjailbreak-ui:v0.4.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 80
|
||||
volumeMounts:
|
||||
- name: nginx-shadow-htpasswd
|
||||
mountPath: /etc/nginx/shadow
|
||||
- name: pf9-logs
|
||||
mountPath: /var/log/pf9
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: nginx-shadow-htpasswd
|
||||
hostPath:
|
||||
path: /etc/htpasswd
|
||||
type: FileOrCreate
|
||||
- name: pf9-logs
|
||||
hostPath:
|
||||
path: /var/log/pf9
|
||||
type: DirectoryOrCreate
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: vjailbreak-ui-service
|
||||
namespace: migration-system
|
||||
spec:
|
||||
selector:
|
||||
app: vjailbreak-ui
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 80
|
||||
targetPort: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: vjailbreak-ui-ingress
|
||||
namespace: migration-system
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: vjailbreak-ui-service
|
||||
port:
|
||||
number: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: vjailbreak-api-ingress
|
||||
namespace: default
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /(apis.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: kubernetes
|
||||
port:
|
||||
number: 443
|
||||
- path: /(api.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
service:
|
||||
name: kubernetes
|
||||
port:
|
||||
number: 443
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: grafana-api-ingress
|
||||
namespace: monitoring
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- path: /grafana
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: grafana
|
||||
port:
|
||||
number: 3000
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: ui-manager-sa
|
||||
namespace: migration-system
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: ui-manager-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps/status
|
||||
- pods/status
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds
|
||||
- arraycredsmappings
|
||||
- bmconfigs
|
||||
- esxisshcreds
|
||||
- clustermigrations
|
||||
- esximigrations
|
||||
- migrationplans
|
||||
- migrations
|
||||
- migrationtemplates
|
||||
- networkmappings
|
||||
- openstackcreds
|
||||
- pcdclusters
|
||||
- pcdhosts
|
||||
- rdmdisks
|
||||
- rollingmigrationplans
|
||||
- storagemappings
|
||||
- vjailbreaknodes
|
||||
- vmwareclusters
|
||||
- vmwarecreds
|
||||
- vmwarehosts
|
||||
- vmwaremachines
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds/finalizers
|
||||
- arraycredsmappings/finalizers
|
||||
- bmconfigs/finalizers
|
||||
- esxisshcreds/finalizers
|
||||
- clustermigrations/finalizers
|
||||
- esximigrations/finalizers
|
||||
- migrationplans/finalizers
|
||||
- migrationtemplates/finalizers
|
||||
- networkmappings/finalizers
|
||||
- openstackcreds/finalizers
|
||||
- pcdclusters/finalizers
|
||||
- pcdhosts/finalizers
|
||||
- rdmdisks/finalizers
|
||||
- rollingmigrationplans/finalizers
|
||||
- storagemappings/finalizers
|
||||
- vjailbreaknodes/finalizers
|
||||
- vmwarecreds/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- vjailbreak.k8s.pf9.io
|
||||
resources:
|
||||
- arraycreds/status
|
||||
- arraycredsmappings/status
|
||||
- bmconfigs/status
|
||||
- esxisshcreds/status
|
||||
- clustermigrations/status
|
||||
- esximigrations/status
|
||||
- migrationplans/status
|
||||
- migrations/status
|
||||
- migrationtemplates/status
|
||||
- networkmappings/status
|
||||
- openstackcreds/status
|
||||
- pcdclusters/status
|
||||
- pcdhosts/status
|
||||
- rdmdisks/status
|
||||
- rollingmigrationplans/status
|
||||
- storagemappings/status
|
||||
- vjailbreaknodes/status
|
||||
- vmwarecreds/status
|
||||
- vmwaremachines/status
|
||||
verbs:
|
||||
- get
|
||||
- patch
|
||||
- update
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/managed-by: kustomize
|
||||
app.kubernetes.io/name: migration
|
||||
name: ui-manager-rolebinding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: ui-manager-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: ui-manager-sa
|
||||
namespace: migration-system
|
||||
|
||||
@@ -22,7 +22,7 @@ data:
|
||||
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_FSTAB_UPDATE: "true" # 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"
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
# v0.4.1
|
||||
|
||||
- **Tag:** `v0.4.1`
|
||||
- **Published:** 2026-03-03T08:32:13Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.1
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* upgarde core components by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1458
|
||||
* Network Persistence For Windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1408
|
||||
* increase QPS for kubernetes client in proxy pod by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1460
|
||||
* Fixed - v2v build failure by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1471
|
||||
* Added s3 URL artifact to build outputs (release) by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1464
|
||||
* Push image on S3 only for release, nightly and manual triggers by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1474
|
||||
* Added option to migrate a vm without powering off the source vm by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1472
|
||||
* Fixed the variable issue in v2v helper by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1476
|
||||
* Added downloadable s3 url for qcow2 images by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1475
|
||||
* #1451 :: Remove data copy method and cutover options from adavance options when user selects storage accelerated copy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1473
|
||||
* Install latest golang and libnbd-devel in Dockerfile by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1485
|
||||
* chore: upgrade grafana by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1483
|
||||
* user experience enhancements (download logs) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1486
|
||||
* add pre-commit hooks for lint and YAML generator by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1494
|
||||
* Use GitHub repository variables for S3 bucket names and region in CI workflow by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1488
|
||||
* Added manual pre-release workflow for CRD and installer generation by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1489
|
||||
* add backoff for migration pod checking logs by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1396
|
||||
* #1454 :: Deselecting the advanced option does not reset the UI to its original state by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1477
|
||||
* Replace pre-baked Ubuntu base image with Ubuntu Minimal and automate K3s/Helm installation by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1496
|
||||
* firstboot scheduling windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1500
|
||||
* Run upgrade process as a job by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1467
|
||||
* Removed extra logging by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1490
|
||||
* pin golang lint version by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1517
|
||||
* fix: continue network discovery even for orphaned networks by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1457
|
||||
* #1515 :: UI Bug: “Start Conversion” Button Not Enabled in Rolling Cluster Conversion Form by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1516
|
||||
* #1398 :: Reorganize Main Menu into Two-Level Structure by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1512
|
||||
* replace grafana yamls by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1521
|
||||
* add more printcolumns by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1522
|
||||
* Apply PostMigrationAction for all migrations in a batch by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1492
|
||||
* Support duplicate VM names by using vCenter MOID as a unique identifier by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1523
|
||||
* fix nginx grafana by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1526
|
||||
* Keep icons consistent in all the pages by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1530
|
||||
* #1450 :: UI is not allowing to delete auto discovered storage mapping by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1470
|
||||
* Revert #1523: Remove duplicate vm name changes by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1535
|
||||
* Add ssh validate CR for key validation by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1505
|
||||
* Removed extra logs showing repeated 0% by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1536
|
||||
* Add necessary tools for easier debug ability by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1538
|
||||
* Cluster Conversion: fix the capacity check for esxi hosts by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1504
|
||||
* #1506 :: Create New Page for ESXi SSH Key Management by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1539
|
||||
* fix - Firstboot script for nic recovery is not running and errors on specific windows versions by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1534
|
||||
* add esxi details by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1525
|
||||
* Resolve UI synchronization lag during Admin Cutover by refining MigrationPlan predicates by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1542
|
||||
* Introduce warning error states during periodic sync so that customer can take necessary steps by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1497
|
||||
* Feature/option not to preserve ip and mac by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1511
|
||||
* Fixed retry mechanism by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1544
|
||||
* backend volume type validations by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1498
|
||||
* fix: scope VM validation to non-terminal states and harden post-migration actions by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1549
|
||||
* Create esxi ssh cr while configuring esxi ssh key. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1558
|
||||
* bake virtio 0.1.185 for windows server 2012 by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1425
|
||||
* script to remove log files regarding vmwaretools,vmware etc by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1547
|
||||
* Added advanced option to run vmware removal script with just a check in the migration form by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1550
|
||||
* user firstboot fix by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1569
|
||||
* #1545 : UI - Redirect to the first sub item upon clicking the Item in the sidebar by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1570
|
||||
* fix: adding a timestamp measure to ensure the latest version is fetched for vddk version by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1562
|
||||
* skip deletion of vmwaremachine that was migrated and renamed by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1566
|
||||
* fix generate-mount-persistence invocation for multi-disk by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1564
|
||||
* Remove irrelevent filters on ESXi SSH Credentials page by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1567
|
||||
* #1510 :: UI Request option to NOT preserve the IP address and MAC address to allow migration to a different subnet by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1557
|
||||
* #1443 : Add Storage accelerated copy related information in migration details for storage mapping (currently showing NA) by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1571
|
||||
* UI: Fix rdm configure tab in migration form by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1576
|
||||
* #1574: Update Tour Popup Messaging for Separate VMware and PCD Pages by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1579
|
||||
* fix: on empty IP create only port group else route the standard way by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1573
|
||||
* fix: Migration phase skips CopyingChangedBlocks/ConvertingDisk after admin cutover by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1585
|
||||
* guestfish run fix, fix grub bootloader by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1586
|
||||
* Net persist patch by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1589
|
||||
* Remove 2 errors on UI for rdm form and add a warning dialog box if wrong selected by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1590
|
||||
* Injected Disk-Online script into the codebase and enhanced tool removal script for win2012 by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1578
|
||||
* fix: custom IP is not applied for no preserve IP and no preserve MAC by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1597
|
||||
* #1583 : Cannot remove assign IP post a new IP is applied by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1592
|
||||
* Include resourceVersion when updating ESXi SSH credentials by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1605
|
||||
* fix: adding dhcp search for no ip by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1481
|
||||
* Revert fix generate-mount-persistence invocation for multi-disk by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1606
|
||||
* Continue after failure Firstboot Schduling for windows firstboot by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1604
|
||||
* Interface Name preservation by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1609
|
||||
* Disable github hook on pre-release commit by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1613
|
||||
* chore: Pre-release CRD generation for v0.4.1 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/1614
|
||||
* Use Cloud image instead of minimal ubuntu by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1618
|
||||
* Update nginx ingress and prometheus alert manager images ( release ) by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1619
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.0...v0.4.1
|
||||
|
||||
|
||||
|
||||
### Upgrade Guide: v0.4.0 → v0.4.1
|
||||
Users upgrading from v0.4.0 to v0.4.1 needs to follow the steps below:
|
||||
|
||||
- #### Step 1: Update v0.4.0 Container Images
|
||||
|
||||
In your existing v0.4.0 setup, update the deployment images to pull the latest v0.4.0 containers and set imagePullPolicy to Always with the below command given.
|
||||
```
|
||||
kubectl patch deployment migration-controller-manager -n migration-system --type='json' \
|
||||
-p='[{"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"Always"}]' && \
|
||||
kubectl patch deployment migration-vpwned-sdk -n migration-system --type='json' \
|
||||
-p='[{"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"Always"}]' && \
|
||||
kubectl patch deployment vjailbreak-ui -n migration-system --type='json' \
|
||||
-p='[{"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"Always"}]'
|
||||
```
|
||||
|
||||
- #### Step 2: Restart Deployments
|
||||
|
||||
Restart the deployments to ensure the updated images are pulled and running:
|
||||
```
|
||||
kubectl rollout restart deployment -n migration-system
|
||||
- #### Step 3: Follow Upgrade Steps from the [public documentation](https://platform9.github.io/vjailbreak/guides/how-to/upgrade_vjailbreak/)
|
||||
@@ -0,0 +1,47 @@
|
||||
# v0.4.2
|
||||
|
||||
- **Tag:** `v0.4.2`
|
||||
- **Published:** 2026-03-18T18:50:07Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.2
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* UI access control by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1629
|
||||
* refactor for a cleaner code: consolidate go modules and constants by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1560
|
||||
* Simplify S3 QCOW2 upload paths by removing date folders by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1631
|
||||
* fix - Static network interface name is not getting preserved for Rocky9 by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1634
|
||||
* Refactor: move commonly used functions to common package by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1633
|
||||
* fix: Wait for network IP and default route before installing K3s master and worker by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1644
|
||||
* metadata as input by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1639
|
||||
* Implement independent post-migration script execution for mixed OS plans by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1638
|
||||
* #1607 : Cancel button is not working during vddk upload by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1635
|
||||
* #1575, #1577 : Start Migration is not getting disabled by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1637
|
||||
* Added checks for failure in user management vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1659
|
||||
* Add exponential backoff auto-reconnect for migration pod log streams by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1657
|
||||
* Fix UI RBAC permissions for pod operations by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1661
|
||||
* fix: Scale up agents on L2 network by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1654
|
||||
* Detect if target is L2 network if so ignore ip by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1666
|
||||
* Added failure checks in vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1672
|
||||
* create seperate CI to create base image, use this base image to generate qcow2 by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1677
|
||||
* Revert "create seperate CI to create base image, use this base image to generate qcow2" by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1684
|
||||
* #1543 : VM selection filter is not working properly by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1682
|
||||
* fix: Version lock ingress version by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1686
|
||||
* fix - Migrations failing with - failed to reserve ports for VM by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1688
|
||||
* #1694 : Extract only first IPv4 address when displaying and editing VM IP addresses by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1695
|
||||
* Fix: VJailbreakNode CR status was stuck at "CreatingVM" for L2 networks even after the VM joined the K8s cluster. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1693
|
||||
* Ability to reuse ports in case of l2 network by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1700
|
||||
* #1692 : Support multiple IP addresses per network interface by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1697
|
||||
* API change: multiple ips for single nic in vmwaremachines by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1696
|
||||
* Disabled Fallbacktodhcp and Securitygrp for L2 by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1705
|
||||
* #1694 : Preserve IP for a powered on VM is getting wrong IPs for no IP interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1704
|
||||
* fix agents migration for L3 by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1706
|
||||
* #1710 : Remove no ip validation in assign IP box for no ip interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1712
|
||||
* Mount persist debug log by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1711
|
||||
* Disabled assigned ip box for multiple ips by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1713
|
||||
* Defining refresh ui function for vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1715
|
||||
* chore: Pre-release CRD generation for v0.4.2 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/1716
|
||||
* Added a check to preserve ip by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1718
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.1...v0.4.2
|
||||
@@ -0,0 +1,42 @@
|
||||
# v0.4.3
|
||||
|
||||
- **Tag:** `v0.4.3`
|
||||
- **Published:** 2026-04-08T06:57:13Z
|
||||
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.3
|
||||
|
||||
## Release Notes
|
||||
|
||||
## What's Changed
|
||||
* fix for no cluster filter by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1726
|
||||
* fix - Unable to migrate powered-off VM without IP address by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1732
|
||||
* Optimise VMware tool removal by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1675
|
||||
* Added dnsConfig with ndots: 1 for controller,v2v-helper and vpwned pods by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1736
|
||||
* Replaced the manual name construction with a call to resolvecinderVolumeToLun Function by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1738
|
||||
* Added delete permissions for secrets by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1740
|
||||
* uuid for image id discovery call by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1739
|
||||
* Duplicate ESXi hosts are visible for multiple VMware credentials by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1707
|
||||
* Preserved non-ASCII chars in Kubernetes secrets by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1745
|
||||
* #1656: Reset to Default button toggles off Auto Fstab Update and sets migration type to hot by default by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1734
|
||||
* #1733 : Add a toggle to pass the instance ID when creating PCD credentials on a VJB VM that was created using an L2 network by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1744
|
||||
* #1648 : Remove the N/A drop down from Storage Accelerated Copy by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1748
|
||||
* Disable security group selection for L2-enabled PCD credentials by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1757
|
||||
* Updating virt-v2v version by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1763
|
||||
* Give permission to UI user to create arraycredsmapping by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1760
|
||||
* mount point for lvm by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1599
|
||||
* Implement subnet compatibility warnings for VM network mapping by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1755
|
||||
* Agents markdown file by @roopakparikh in https://github.com/platform9/vjailbreak/pull/1507
|
||||
* Feat/support virtual portgroups by @sanya-pf9 in https://github.com/platform9/vjailbreak/pull/1730
|
||||
* v2v checks for windows by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1775
|
||||
* Add update patch list to secret for ui role by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1777
|
||||
* #1591 : Migration details in the details modal becomes NA if we remove creds and create new creds, Its reconciling with old creds by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1753
|
||||
* adding proper filtering for agent nodes by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1778
|
||||
* Added devcon utility by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1790
|
||||
|
||||
|
||||
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.2...v0.4.3
|
||||
|
||||
## Release Notes & Known Issues
|
||||
* Static IP and interface name preservation is not supported when the target network has DHCP disabled.
|
||||
* For Windows VMs, static IP configurations are automatically converted to DHCP. However, the original source IP is retained on the destination VM to maintain network connectivity.
|
||||
* The VMware Tools removal script may leave behind some residual artifacts. Refer to the [documentation](https://platform9.github.io/vjailbreak/guides/troubleshooting/vmware_residual_artifacts/#_top) for more details.
|
||||
* Agent scaling is not supported for vJailbreak VMs operating on L2 networks.
|
||||
Reference in New Issue
Block a user