aports/community/virt-manager/0001-virt-install-fix-cloud-init-ssh-keys.patch
Natanael Copa e270fd75f7 community/virt-manager: replace cloud-init fix with upstream
Use the patch that was merged upstream.
648f52bde0
2024-07-25 17:32:40 +02:00

90 lines
5.2 KiB
Diff

From 648f52bde0069d5e1fc48a87a0170f1ca229f9c9 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Tue, 23 Jul 2024 17:21:17 +0200
Subject: [PATCH] virt-install: fix cloud-init ssh keys
Fix the cloud-init config file for --clouduser-ssh key.
Also change ssh_authorized_keys to `ssh_authorized_keys`, and make sure
default user is not deleted when setting ssh key for root.
Fixes commit 22478f307dd9 (virt-install: Add --cloud-init clouduser-ssh-key=)
Resolves: https://github.com/virt-manager/virt-manager/issues/452
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
.../virt-install-cloud-init-options2.xml | 6 ++++--
.../virt-install-cloud-init-options3.xml | 3 ++-
virtinst/install/cloudinit.py | 19 ++++++++++---------
3 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/tests/data/cli/compare/virt-install-cloud-init-options2.xml b/tests/data/cli/compare/virt-install-cloud-init-options2.xml
index 2a7e6a17..0baf7db4 100644
--- a/tests/data/cli/compare/virt-install-cloud-init-options2.xml
+++ b/tests/data/cli/compare/virt-install-cloud-init-options2.xml
@@ -4,10 +4,12 @@ chpasswd:
root:[SCRUBBLED]
expire: False
users:
+ - default
- name: root
- ssh-authorized-keys:
+ ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAuibybX5lw2G/LPIyqgQS5KwgbOnKMA9TZyQPtRmIfKSGypdMJmGQ+Gsf54A9VI8zoL2fnq2t66zQIPJU53XveXU0oqCm7PfsEcoYjnqDeUeiqvCfTye8bIbEmIkLriH0SaISNnzyN0JSfb0VDYIg8Za6iW3/PfPs+tV0PSYyVEm3pBNJ9bHat2liA1/Afk0UWNrhCQG9/5v9kR36aIxNU+4qI9cZ2npFWt61/7t2otz2GcygJDCUYEp6wDlmoW6DHXnaUUj1USjZ9uI1IrgmjZYxfjlt/UaB7AJOJP/3bOC1iPXBe9HKt30YUG23KaVfK9DDeGD/tlAeIklaYK8RZd4zUXSm3eZjeZCGiC3XFYIIyf7e7M/IZE+/DbD1jQEGxGd7AmdVBJZPBFtkAd4Blypaidykx7n1UcfF0WWISfFsae956PHnqnSBKM5OUDh2y5LowgXjWmr/BVJmnaiNbeMhgC3axZVL3EmFSVtvwnup+sRmDwYoHh/RbmInyns=
- - ssh-authorized-keys: ssh-rsa 123453NzaC1yc2EAAAADAQABAAABgQDAuibybX5lw2G/LPIyqgQS5KwgbOnKMA9TZyQPtRmIfKSGypdMJmGQ+Gsf54A9VI8zoL2fnq2t66zQIPJU53XveXU0oqCm7PfsEcoYjnqDeUeiqvCfTye8bIbEmIkLriH0SaISNnzyN0JSfb0VDYIg8Za6iW3/PfPs+tV0PSYyVEm3pBNJ9bHat2liA1/Afk0UWNrhCQG9/5v9kR36aIxNU+4qI9cZ2npFWt61/7t2otz2GcygJDCUYEp6wDlmoW6DHXnaUUj1USjZ9uI1IrgmjZYxfjlt/UaB7AJOJP/3bOC1iPXBe9HKt30YUG23KaVfK9DDeGD/tlAeIklaYK8RZd4zUXSm3eZjeZCGiC3XFYIIyf7e7M/IZE+/DbD1jQEGxGd7AmdVBJZPBFtkAd4Blypaidykx7n1UcfF0WWISfFsae956PHnqnSBKM5OUDh2y5LowgXjWmr/BVJmnaiNbeMhgC3axZVL3EmFSVtvwnup+sRmDwYoHh/RbmInyns=
+ssh_authorized_keys:
+ - ssh-rsa 123453NzaC1yc2EAAAADAQABAAABgQDAuibybX5lw2G/LPIyqgQS5KwgbOnKMA9TZyQPtRmIfKSGypdMJmGQ+Gsf54A9VI8zoL2fnq2t66zQIPJU53XveXU0oqCm7PfsEcoYjnqDeUeiqvCfTye8bIbEmIkLriH0SaISNnzyN0JSfb0VDYIg8Za6iW3/PfPs+tV0PSYyVEm3pBNJ9bHat2liA1/Afk0UWNrhCQG9/5v9kR36aIxNU+4qI9cZ2npFWt61/7t2otz2GcygJDCUYEp6wDlmoW6DHXnaUUj1USjZ9uI1IrgmjZYxfjlt/UaB7AJOJP/3bOC1iPXBe9HKt30YUG23KaVfK9DDeGD/tlAeIklaYK8RZd4zUXSm3eZjeZCGiC3XFYIIyf7e7M/IZE+/DbD1jQEGxGd7AmdVBJZPBFtkAd4Blypaidykx7n1UcfF0WWISfFsae956PHnqnSBKM5OUDh2y5LowgXjWmr/BVJmnaiNbeMhgC3axZVL3EmFSVtvwnup+sRmDwYoHh/RbmInyns=
<domain type="test">
<name>fedora28</name>
diff --git a/tests/data/cli/compare/virt-install-cloud-init-options3.xml b/tests/data/cli/compare/virt-install-cloud-init-options3.xml
index c3a7e719..7f4c6d63 100644
--- a/tests/data/cli/compare/virt-install-cloud-init-options3.xml
+++ b/tests/data/cli/compare/virt-install-cloud-init-options3.xml
@@ -1,7 +1,8 @@
#cloud-config
users:
+ - default
- name: root
- ssh-authorized-keys:
+ ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAuibybX5lw2G/LPIyqgQS5KwgbOnKMA9TZyQPtRmIfKSGypdMJmGQ+Gsf54A9VI8zoL2fnq2t66zQIPJU53XveXU0oqCm7PfsEcoYjnqDeUeiqvCfTye8bIbEmIkLriH0SaISNnzyN0JSfb0VDYIg8Za6iW3/PfPs+tV0PSYyVEm3pBNJ9bHat2liA1/Afk0UWNrhCQG9/5v9kR36aIxNU+4qI9cZ2npFWt61/7t2otz2GcygJDCUYEp6wDlmoW6DHXnaUUj1USjZ9uI1IrgmjZYxfjlt/UaB7AJOJP/3bOC1iPXBe9HKt30YUG23KaVfK9DDeGD/tlAeIklaYK8RZd4zUXSm3eZjeZCGiC3XFYIIyf7e7M/IZE+/DbD1jQEGxGd7AmdVBJZPBFtkAd4Blypaidykx7n1UcfF0WWISfFsae956PHnqnSBKM5OUDh2y5LowgXjWmr/BVJmnaiNbeMhgC3axZVL3EmFSVtvwnup+sRmDwYoHh/RbmInyns=
<domain type="test">
diff --git a/virtinst/install/cloudinit.py b/virtinst/install/cloudinit.py
index a5a3821f..02f4a046 100644
--- a/virtinst/install/cloudinit.py
+++ b/virtinst/install/cloudinit.py
@@ -81,17 +81,18 @@ def _create_userdata_content(cloudinit_data):
elif cloudinit_data.root_password_file:
content += " expire: False\n"
- if cloudinit_data.root_ssh_key or cloudinit_data.clouduser_ssh_key:
- content += "users:\n"
+ if cloudinit_data.root_ssh_key:
rootkey = cloudinit_data.get_root_ssh_key()
- userkey = cloudinit_data.get_clouduser_ssh_key()
+ content += "users:\n"
+ content += " - default\n"
+ content += " - name: root\n"
+ content += " ssh_authorized_keys:\n"
+ content += " - %s\n" % rootkey
- if rootkey:
- content += " - name: root\n"
- content += " ssh-authorized-keys:\n"
- content += " - %s\n" % rootkey
- if userkey:
- content += " - ssh-authorized-keys: %s\n" % userkey
+ if cloudinit_data.clouduser_ssh_key:
+ userkey = cloudinit_data.get_clouduser_ssh_key()
+ content += "ssh_authorized_keys:\n"
+ content += " - %s\n" % userkey
if cloudinit_data.disable:
content += "runcmd:\n"
--
2.45.2