Skip to content

Commit 4a1cafe

Browse files
committed
feat(vmimport): Add KVM source
Related to: harvester/harvester#9948 Signed-off-by: Volker Theile <vtheile@suse.com>
1 parent 708a95b commit 4a1cafe

8 files changed

Lines changed: 381 additions & 4 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"build": "./node_modules/.bin/vue-cli-service build",
3939
"clean": "./node_modules/@rancher/shell/scripts/clean",
4040
"lint": "./node_modules/.bin/eslint --max-warnings 0 --ext .js,.ts,.vue .",
41+
"lint:fix": "./node_modules/.bin/eslint --fix --max-warnings 0 --ext .js,.ts,.vue .",
4142
"build-pkg": "./node_modules/@rancher/shell/scripts/build-pkg.sh",
4243
"serve-pkgs": "./node_modules/@rancher/shell/scripts/serve-pkgs",
4344
"publish-pkgs": "./node_modules/@rancher/shell/scripts/extension/publish",

pkg/harvester/config/harvester-cluster.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ import {
4545
VM_IMPORT_SOURCE_O_REGION,
4646
VM_IMPORT_SOURCE_O_ENDPOINT,
4747
VM_IMPORT_SOURCE_O_STATUS,
48+
VM_IMPORT_SOURCE_KVM_ENDPOINT,
49+
VM_IMPORT_SOURCE_KVM_STATUS,
4850
VM_IMPORT_SOURCE_OVA_URL,
4951
VM_IMPORT_SOURCE_OVA_STATUS,
5052
} from './table-headers';
@@ -302,6 +304,34 @@ export function init($plugin, store) {
302304
}
303305
});
304306

307+
// Source: KVM
308+
headers(HCI.VMIMPORT_SOURCE_KVM, [
309+
STATE,
310+
NAME_COL,
311+
VM_IMPORT_SOURCE_KVM_ENDPOINT,
312+
VM_IMPORT_SOURCE_KVM_STATUS,
313+
AGE
314+
]);
315+
configureType(HCI.VMIMPORT_SOURCE_KVM, {
316+
resource: HCI.VMIMPORT_SOURCE_KVM,
317+
resourceDetail: HCI.VMIMPORT_SOURCE_KVM,
318+
resourceEdit: HCI.VMIMPORT_SOURCE_KVM,
319+
location: {
320+
name: `${ PRODUCT_NAME }-c-cluster-resource`,
321+
params: { resource: HCI.VMIMPORT_SOURCE_KVM }
322+
}
323+
});
324+
virtualType({
325+
name: HCI.VMIMPORT_SOURCE_KVM,
326+
labelKey: 'harvester.addons.vmImport.labels.vmimportSourceKVM',
327+
group: 'vmimport',
328+
namespaced: true,
329+
route: {
330+
name: `${ PRODUCT_NAME }-c-cluster-resource`,
331+
params: { resource: HCI.VMIMPORT_SOURCE_KVM }
332+
}
333+
});
334+
305335
// Source: OVA
306336
headers(HCI.VMIMPORT_SOURCE_OVA, [
307337
STATE,
@@ -338,6 +368,7 @@ export function init($plugin, store) {
338368
types: [
339369
HCI.VMIMPORT_SOURCE_V,
340370
HCI.VMIMPORT_SOURCE_O,
371+
HCI.VMIMPORT_SOURCE_KVM,
341372
HCI.VMIMPORT_SOURCE_OVA,
342373
HCI.VMIMPORT
343374
]

pkg/harvester/config/table-headers.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,24 @@ export const VM_IMPORT_SOURCE_O_STATUS = {
213213
align: 'left',
214214
};
215215

216+
// Endpoint column in migration.harvesterhci.io.kvmsource list page
217+
export const VM_IMPORT_SOURCE_KVM_ENDPOINT = {
218+
name: 'url',
219+
labelKey: 'harvester.tableHeaders.vmImportSourceKVMEndpoint',
220+
value: 'spec.endpoint',
221+
sort: 'spec.endpoint',
222+
align: 'left',
223+
};
224+
225+
// Status column in migration.harvesterhci.io.kvmsource list page
226+
export const VM_IMPORT_SOURCE_KVM_STATUS = {
227+
name: 'status',
228+
labelKey: 'harvester.tableHeaders.vmImportSourceKVMStatus',
229+
value: 'status.status',
230+
sort: 'status.status',
231+
align: 'left',
232+
};
233+
216234
// URL column in migration.harvesterhci.io.ovasource list page
217235
export const VM_IMPORT_SOURCE_OVA_URL = {
218236
name: 'url',

pkg/harvester/config/types.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@ export const L2VLAN_MODE = {
3333
export const VMIMPORT_SOURCE_PROVIDER = {
3434
VMWARE: 'vmware',
3535
OPENSTACK: 'openstack',
36+
KVM: 'kvm',
3637
OVA: 'ova',
3738
};
3839

3940
export const VMIMPORT_SOURCE_KINDS = {
4041
VMWARE: 'VmwareSource',
4142
OPENSTACK: 'OpenstackSource',
43+
KVM: 'KVMSource',
4244
OVA: 'OvaSource',
4345
};

0 commit comments

Comments
 (0)