diff --git a/pipelines/e2e/scripts/longhorn-setup.sh b/pipelines/e2e/scripts/longhorn-setup.sh index 4e78acf4a2..6ba523310d 100755 --- a/pipelines/e2e/scripts/longhorn-setup.sh +++ b/pipelines/e2e/scripts/longhorn-setup.sh @@ -54,9 +54,9 @@ main(){ install_backupstores install_csi_snapshotter - # msg="failed to get package manager" error="operating systems (amzn, sl-micro) are not supported" + # msg="failed to get package manager" error="operating systems amzn are not supported" if [[ "${TF_VAR_k8s_distro_name}" != "eks" ]] && \ - [[ "${DISTRO}" != "sle-micro" ]] && [[ "${DISTRO}" != "talos" ]]; then + [[ "${DISTRO}" != "talos" ]]; then longhornctl_check fi diff --git a/test_framework/scripts/longhorn-setup.sh b/test_framework/scripts/longhorn-setup.sh index 3e60d65606..d4dc98b4b4 100755 --- a/test_framework/scripts/longhorn-setup.sh +++ b/test_framework/scripts/longhorn-setup.sh @@ -523,9 +523,9 @@ main(){ enable_mtls fi - # msg="failed to get package manager" error="operating systems (amzn, sl-micro) are not supported" + # msg="failed to get package manager" error="operating systems amzn are not supported" if [[ "${TF_VAR_k8s_distro_name}" != "eks" ]] && \ - [[ "${DISTRO}" != "sle-micro" ]] && [[ "${DISTRO}" != "talos" ]]; then + [[ "${DISTRO}" != "talos" ]]; then longhornctl_check fi diff --git a/test_framework/terraform/harvester/sle-micro/main.tf b/test_framework/terraform/harvester/sle-micro/main.tf new file mode 100644 index 0000000000..f2125617bc --- /dev/null +++ b/test_framework/terraform/harvester/sle-micro/main.tf @@ -0,0 +1,213 @@ +terraform { + required_providers { + rancher2 = { + source = "rancher/rancher2" + version = "~> 4.4.0" + } + } +} + +provider "rancher2" { + api_url = var.lab_url + insecure = true + access_key = var.lab_access_key + secret_key = var.lab_secret_key +} + +resource "random_string" "random_suffix" { + length = 8 + special = false + lower = true + upper = false +} + +data "rancher2_cluster_v2" "hal-cluster" { + name = "hal" +} + +resource "rancher2_cloud_credential" "e2e-credential" { + name = "e2e-credential-${random_string.random_suffix.id}" + harvester_credential_config { + cluster_id = data.rancher2_cluster_v2.hal-cluster.cluster_v1_id + cluster_type = "imported" + kubeconfig_content = data.rancher2_cluster_v2.hal-cluster.kube_config + } +} + +resource "rancher2_machine_config_v2" "e2e-machine-config-controlplane" { + + generate_name = "e2e-machine-config-controlplane-${random_string.random_suffix.id}" + + harvester_config { + + vm_namespace = "longhorn-qa" + + cpu_count = "4" + memory_size = "8" + + disk_info = <- + ${file(var.ssh_public_key_file_path)} +runcmd: + - - systemctl + - enable + - '--now' + - qemu-guest-agent.service +EOF + } +} + +resource "rancher2_machine_config_v2" "e2e-machine-config-worker" { + + generate_name = "e2e-machine-config-worker-${random_string.random_suffix.id}" + + harvester_config { + + vm_namespace = "longhorn-qa" + + cpu_count = "4" + memory_size = "8" + + disk_info = <- + ${file(var.ssh_public_key_file_path)} +runcmd: + - transactional-update register -r ${var.registration_code} + - transactional-update pkg install -y qemu-guest-agent iptables open-iscsi nfs-client cryptsetup device-mapper + - - systemctl + - enable + - '--now' + - qemu-guest-agent.service + - modprobe uio + - modprobe uio_pci_generic + - modprobe vfio_pci + - modprobe nvme-tcp + - modprobe dm_crypt + - touch /etc/modules-load.d/modules.conf + - echo uio >> /etc/modules-load.d/modules.conf + - echo uio_pci_generic >> /etc/modules-load.d/modules.conf + - echo vfio_pci >> /etc/modules-load.d/modules.conf + - echo nvme-tcp >> /etc/modules-load.d/modules.conf + - echo dm_crypt >> /etc/modules-load.d/modules.conf + - echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages + - echo "vm.nr_hugepages=1024" >> /etc/sysctl.conf + - touch /usr/local/bin/cron-reboot.sh + - chmod +x /usr/local/bin/cron-reboot.sh + - echo systemctl enable iscsid >> /usr/local/bin/cron-reboot.sh + - echo systemctl start iscsid >> /usr/local/bin/cron-reboot.sh + - echo "@reboot root /usr/local/bin/cron-reboot.sh" >> /etc/crontab + - shutdown -r +5 +EOF + } +} + +resource "rancher2_cluster_v2" "e2e-cluster" { + + name = "e2e-cluster-${random_string.random_suffix.id}" + + kubernetes_version = var.k8s_distro_version + + rke_config { + machine_pools { + name = "control-plane-pool" + cloud_credential_secret_name = rancher2_cloud_credential.e2e-credential.id + control_plane_role = true + etcd_role = true + worker_role = false + quantity = 1 + machine_config { + kind = rancher2_machine_config_v2.e2e-machine-config-controlplane.kind + name = rancher2_machine_config_v2.e2e-machine-config-controlplane.name + } + } + machine_pools { + name = "worker-pool" + cloud_credential_secret_name = rancher2_cloud_credential.e2e-credential.id + control_plane_role = false + etcd_role = false + worker_role = true + quantity = 3 + machine_config { + kind = rancher2_machine_config_v2.e2e-machine-config-worker.kind + name = rancher2_machine_config_v2.e2e-machine-config-worker.name + } + } + machine_selector_config { + config = <