-
- if (
- cloud_config.get("config-files")
- or cloud_config.get("users")
- or cloud_config.get("key-pairs")
- ):
- userdata_dict = {}
-
- # default user
- if cloud_config.get("key-pairs"):
- userdata_dict["ssh-authorized-keys"] = cloud_config["key-pairs"]
- userdata_dict["users"] = [
- {
- "default": None,
- "ssh-authorized-keys": cloud_config["key-pairs"],
+ # If a config drive is needed, userdata is passed directly
+ if config_drive:
+ userdata = cloud_config.get("user-data")
+ # If a config drive is not necessary, then we process userdata and
+ # generate MIME multipart
+ else:
+ if cloud_config.get("user-data"):
+ if isinstance(cloud_config["user-data"], str):
+ userdata_list.append(
+ cloud_config["user-data"] + f"\n{merge_how}"
+ )
+ else:
+ for u in cloud_config["user-data"]:
+ userdata_list.append(u + f"\n{merge_how}")
+
+ if (
+ cloud_config.get("config-files")
+ or cloud_config.get("users")
+ or cloud_config.get("key-pairs")
+ ):
+ userdata_dict = {}
+
+ # default user
+ if cloud_config.get("key-pairs"):
+ userdata_dict["ssh-authorized-keys"] = cloud_config["key-pairs"]
+ userdata_dict["system_info"] = {
+ "default_user": {
+ "ssh_authorized_keys": cloud_config["key-pairs"],
+ }