From 60e8007b80c0299324397ebd3f04e3e153319704 Mon Sep 17 00:00:00 2001 From: futuretea Date: Sat, 28 Jan 2023 15:13:27 +0800 Subject: [PATCH 1/3] Update Harvester node driver to support multi nics and disks Signed-off-by: futuretea --- docs/resources/cluster_v2.md | 40 +++++++++++++--- docs/resources/machine_config_v2.md | 32 +++++++++---- docs/resources/node_template.md | 32 +++++++++---- .../resource_rancher2_node_template_test.go | 38 +++++++++++++-- .../schema_machine_config_v2_harvester.go | 44 +++++++++--------- rancher2/schema_node_template_harvester.go | 46 +++++++++---------- .../structure_machine_config_v2_harvester.go | 18 ++++++++ rancher2/structure_node_template_harvester.go | 16 +++++++ 8 files changed, 194 insertions(+), 72 deletions(-) diff --git a/docs/resources/cluster_v2.md b/docs/resources/cluster_v2.md index 6de8d8ba..ab04af97 100644 --- a/docs/resources/cluster_v2.md +++ b/docs/resources/cluster_v2.md @@ -262,9 +262,23 @@ resource "rancher2_machine_config_v2" "foo-harvester-v2" { vm_namespace = "default" cpu_count = "2" memory_size = "4" - disk_size = "40" - network_name = "harvester-public/vlan1" - image_name = "harvester-public/image-57hzg" + disk_info = < 0 { + obj["disk_info"] = in.DiskInfo + } + if len(in.SSHUser) > 0 { obj["ssh_user"] = in.SSHUser } @@ -90,6 +96,10 @@ func flattenMachineConfigV2Harvester(in *MachineConfigV2Harvester) []interface{} obj["network_model"] = in.NetworkModel } + if len(in.NetworkInfo) > 0 { + obj["network_info"] = in.NetworkInfo + } + if len(in.UserData) > 0 { obj["user_data"] = in.UserData } @@ -147,6 +157,10 @@ func expandMachineConfigV2Harvester(p []interface{}, source *MachineConfigV2) *M obj.ImageName = v } + if v, ok := in["disk_info"].(string); ok && len(v) > 0 { + obj.DiskInfo = v + } + if v, ok := in["ssh_user"].(string); ok && len(v) > 0 { obj.SSHUser = v } @@ -163,6 +177,10 @@ func expandMachineConfigV2Harvester(p []interface{}, source *MachineConfigV2) *M obj.NetworkModel = v } + if v, ok := in["network_info"].(string); ok && len(v) > 0 { + obj.NetworkInfo = v + } + if v, ok := in["user_data"].(string); ok && len(v) > 0 { obj.UserData = v } diff --git a/rancher2/structure_node_template_harvester.go b/rancher2/structure_node_template_harvester.go index 56241589..7d4aae24 100644 --- a/rancher2/structure_node_template_harvester.go +++ b/rancher2/structure_node_template_harvester.go @@ -36,6 +36,10 @@ func flattenHarvesterConfig(in *harvesterConfig) []interface{} { obj["image_name"] = in.ImageName } + if len(in.DiskInfo) > 0 { + obj["disk_info"] = in.DiskInfo + } + if len(in.SSHUser) > 0 { obj["ssh_user"] = in.SSHUser } @@ -52,6 +56,10 @@ func flattenHarvesterConfig(in *harvesterConfig) []interface{} { obj["network_model"] = in.NetworkModel } + if len(in.NetworkInfo) > 0 { + obj["network_info"] = in.NetworkInfo + } + if len(in.UserData) > 0 { obj["user_data"] = in.UserData } @@ -100,6 +108,10 @@ func expandHarvestercloudConfig(p []interface{}) *harvesterConfig { obj.ImageName = v } + if v, ok := in["disk_info"].(string); ok && len(v) > 0 { + obj.DiskInfo = v + } + if v, ok := in["ssh_user"].(string); ok && len(v) > 0 { obj.SSHUser = v } @@ -116,6 +128,10 @@ func expandHarvestercloudConfig(p []interface{}) *harvesterConfig { obj.NetworkModel = v } + if v, ok := in["network_info"].(string); ok && len(v) > 0 { + obj.NetworkInfo = v + } + if v, ok := in["user_data"].(string); ok && len(v) > 0 { obj.UserData = v } From 97fe8297e60f33af714c1b0a7df4f706e09c5cbb Mon Sep 17 00:00:00 2001 From: futuretea Date: Fri, 17 Feb 2023 02:13:30 +0800 Subject: [PATCH 2/3] Update rke2 kubernetes_version in harvester node driver example Signed-off-by: futuretea --- docs/resources/cluster_v2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/resources/cluster_v2.md b/docs/resources/cluster_v2.md index ab04af97..f4c7ff17 100644 --- a/docs/resources/cluster_v2.md +++ b/docs/resources/cluster_v2.md @@ -285,7 +285,7 @@ resource "rancher2_machine_config_v2" "foo-harvester-v2" { resource "rancher2_cluster_v2" "foo-harvester-v2" { name = "foo-harvester-v2" - kubernetes_version = "v1.22.6+rke2r1" + kubernetes_version = "v1.24.10+rke2r1" rke_config { machine_pools { name = "pool1" @@ -385,7 +385,7 @@ resource "rancher2_machine_config_v2" "foo-harvester-v2-cloud-provider" { # Create a new harvester rke2 cluster with harvester cloud provider resource "rancher2_cluster_v2" "foo-harvester-v2-cloud-provider" { name = "foo-harvester-v2-cloud-provider" - kubernetes_version = "v1.22.6+rke2r1" + kubernetes_version = "v1.24.10+rke2r1" rke_config { machine_pools { name = "pool1" From e943becb5d224589e5461360f1dc36f805d08835 Mon Sep 17 00:00:00 2001 From: futuretea Date: Mon, 13 Mar 2023 17:16:30 +0800 Subject: [PATCH 3/3] Need qemu-guest-agent in harvester node driver new version Signed-off-by: futuretea --- docs/resources/cluster_v2.md | 22 +++++++++++++++++++ docs/resources/machine_config_v2.md | 13 ++++++++++- docs/resources/node_template.md | 13 ++++++++++- .../resource_rancher2_node_template_test.go | 22 +++++++++++++++++++ .../schema_machine_config_v2_harvester.go | 2 +- rancher2/schema_node_template_harvester.go | 2 +- 6 files changed, 70 insertions(+), 4 deletions(-) diff --git a/docs/resources/cluster_v2.md b/docs/resources/cluster_v2.md index f4c7ff17..79fcc635 100644 --- a/docs/resources/cluster_v2.md +++ b/docs/resources/cluster_v2.md @@ -280,6 +280,17 @@ resource "rancher2_machine_config_v2" "foo-harvester-v2" { } EOF ssh_user = "ubuntu" + user_data = <