You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/advanced/addons/vmimport.md
+47-5Lines changed: 47 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ title: "VM Import"
10
10
11
11
_Available as of v1.1.0_
12
12
13
-
With the vm-import-controller addon users can import their virtual machines from VMwareand OpenStack into Harvester.
13
+
With the vm-import-controller add-on, you can import virtual machines from VMware, OpenStack, and Open Virtual Appliance (OVA) packages.
14
14
15
15
To use the VM import feature, users need to enable the vm-import-controller addon.
16
16
@@ -29,6 +29,7 @@ To avoid this, users are advised to enable PVC-backed storage and customize the
29
29
Currently, the following source providers are supported:
30
30
* VMware
31
31
* OpenStack
32
+
* Open Virtual Appliance (OVA)
32
33
33
34
## API
34
35
The vm-import-controller introduces two CRDs.
@@ -71,7 +72,7 @@ Once this check is passed, the source is marked as ready and can be used for VM
71
72
72
73
```shell
73
74
$ kubectl get vmwaresource.migration
74
-
NAME STATUS
75
+
NAME STATUS
75
76
vcsim clusterReady
76
77
```
77
78
@@ -107,14 +108,54 @@ stringData:
107
108
"ca_cert": "pem-encoded-ca-cert"
108
109
```
109
110
110
-
The OpenStack source reconciliation process attempts to list VMs in the project and marks the source as ready.
111
+
As part of the reconciliation process, the controller attempts to list VMs in the project and marks the source as ready.
111
112
112
113
```shell
113
-
$ kubectl get opestacksource.migration
114
+
$ kubectl get openstacksource.migration
114
115
NAME STATUS
115
116
devstack clusterReady
116
117
```
117
118
119
+
For OVA-based sources, an example definition is as follows:
120
+
121
+
```yaml
122
+
apiVersion: migration.harvesterhci.io/v1beta1
123
+
kind: OvaSource
124
+
metadata:
125
+
name: example
126
+
namespace: default
127
+
spec:
128
+
url: "http://192.168.0.1:8080/example.ova"
129
+
httpTimeoutSeconds: 300
130
+
credentials:
131
+
name: example-ova-credentials
132
+
namespace: default
133
+
```
134
+
135
+
The optional `httpTimeoutSeconds` field allows you to specify the maximum time (in seconds) Harvester waits for an HTTP request to be completed. This period covers the entire transaction, including establishing the connection, handling redirects, and reading the response body. When the value is `0`, the timeout feature is disabled. The default value is `600` (10 minutes).
136
+
137
+
When configuring the secret, you can include basic authentication credentials for the URL and a CA certificate if the endpoint uses HTTPS.
138
+
139
+
```yaml
140
+
apiVersion: v1
141
+
kind: Secret
142
+
metadata:
143
+
name: example-ova-credentials
144
+
namespace: default
145
+
stringData:
146
+
"username": "user"
147
+
"password": "password"
148
+
"ca.crt": "pem-encoded-ca-cert"
149
+
```
150
+
151
+
As part of the reconciliation process, the controller issues a HEAD request to the specified URL to confirm its validity before marking the source as ready.
152
+
153
+
```shell
154
+
$ kubectl get ovasource.migration
155
+
NAME STATUS
156
+
example clusterReady
157
+
```
158
+
118
159
### VirtualMachineImport
119
160
The VirtualMachineImport CRD provides a way for users to define a source VM and map to the actual source cluster to perform VM export/import.
120
161
@@ -174,6 +215,7 @@ The `defaultDiskBusType` field allows you to specify the bus type for imported d
174
215
175
216
- VMware sources: The value is used only if Harvester is unable to automatically detect the bus type.
176
217
- OpenStack sources: The value is used for all imported disks.
218
+
- Open Virtual Appliance (OVA) sources: The value is used only if Harvester is unable to automatically detect the bus type.
177
219
178
220
The valid values are `sata`, `scsi`, `usb`, and `virtio`. If you do not specify a value, `virtio` is used by default.
179
221
@@ -232,7 +274,7 @@ OpenStack allows users to have multiple instances with the same name. In such a
232
274
When creating a virtual machine object, the vm-import-controller add-on uses the name of the source virtual machine, which may not meet the Kubernetes object [naming criteria](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names). You may need to rename the source virtual machine to allow successful completion of the import.
233
275
##### VMware-Based Virtual Machine Without VMware Tools Is Not Migrated
234
276
235
-
When you attempt to import a VMware-based virtual machine in Harvester v1.6.0, the following occur if [VMware Tools](https://knowledge.broadcom.com/external/article/315382/overview-of-vmware-tools.html) is not installed on the virtual machine:
277
+
When you attempt to import a VMware-based virtual machine in Harvester v1.6.0, the following issues occur if [VMware Tools](https://knowledge.broadcom.com/external/article/315382/overview-of-vmware-tools.html) is not installed on the virtual machine:
236
278
237
279
- The vm-import-controller does not gracefully shut down the guest operating system.
238
280
- When the graceful shutdown period (`gracefulShutdownTimeoutSeconds`) lapses, the vm-import-controller does not force a hard poweroff.
0 commit comments