commit 5ebdf99f85bed3f3b871e22aa373dfa56d66954b96dcd90a5637f2a8546f4781 Author: Adrian Schröter Date: Fri May 3 11:36:49 2024 +0200 Sync from SUSE:SLFO:Main cloud-init revision ef1c2f663d427ccc3e9fb8331515b755 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/cloud-init-23.3.tar.gz b/cloud-init-23.3.tar.gz new file mode 100644 index 0000000..d8a5acc --- /dev/null +++ b/cloud-init-23.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a5a54369f78891b79f43061c1ff0fb31e2bd74ff9527d7150ddd6517c3e2b07 +size 5720790 diff --git a/cloud-init-break-resolv-symlink.patch b/cloud-init-break-resolv-symlink.patch new file mode 100644 index 0000000..849eb57 --- /dev/null +++ b/cloud-init-break-resolv-symlink.patch @@ -0,0 +1,14 @@ +--- cloudinit/net/sysconfig.py.orig ++++ cloudinit/net/sysconfig.py +@@ -998,6 +998,11 @@ class Renderer(renderer.Renderer): + network_state, existing_dns_path=dns_path + ) + if resolv_content: ++ # netconfig checks if /etc/resolv.conf is a symlink and if ++ # that is true will write it's version of the file clobbering ++ # our changes. ++ if os.path.islink(dns_path): ++ os.unlink(dns_path) + util.write_file(dns_path, resolv_content, file_mode) + if self.networkmanager_conf_path: + nm_conf_path = subp.target_path( diff --git a/cloud-init-ds-deterministic.patch b/cloud-init-ds-deterministic.patch new file mode 100644 index 0000000..cc1a818 --- /dev/null +++ b/cloud-init-ds-deterministic.patch @@ -0,0 +1,54 @@ +--- tests/unittests/test_ds_identify.py.orig ++++ tests/unittests/test_ds_identify.py +@@ -1488,7 +1488,6 @@ VALID_CFG = { + }, + "IBMCloud-metadata": { + "ds": "IBMCloud", +- "policy_dmi": POLICY_FOUND_ONLY, + "mocks": [ + MOCK_VIRT_IS_XEN, + {"name": "is_ibm_provisioning", "ret": shell_false}, +@@ -1555,7 +1554,6 @@ VALID_CFG = { + }, + "IBMCloud-nodisks": { + "ds": "IBMCloud", +- "policy_dmi": POLICY_FOUND_ONLY, + "mocks": [ + MOCK_VIRT_IS_XEN, + {"name": "is_ibm_provisioning", "ret": shell_false}, +@@ -1642,7 +1640,6 @@ VALID_CFG = { + }, + "VMware-NoValidTransports": { + "ds": "VMware", +- "policy_dmi": POLICY_FOUND_ONLY, + "mocks": [ + MOCK_VIRT_IS_VMWARE, + ], +@@ -1665,7 +1662,6 @@ VALID_CFG = { + }, + "VMware-EnvVar-NoData": { + "ds": "VMware", +- "policy_dmi": POLICY_FOUND_ONLY, + "mocks": [ + { + "name": "vmware_has_envvar_vmx_guestinfo", +@@ -1775,7 +1771,6 @@ VALID_CFG = { + }, + "VMware-GuestInfo-NoData": { + "ds": "VMware", +- "policy_dmi": POLICY_FOUND_ONLY, + "mocks": [ + { + "name": "vmware_has_rpctool", +--- tools/ds-identify.orig ++++ tools/ds-identify +@@ -739,9 +739,6 @@ probe_floppy() { + dscheck_CloudStack() { + is_container && return ${DS_NOT_FOUND} + dmi_product_name_matches "CloudStack*" && return $DS_FOUND +- if [ "$DI_VIRT" = "vmware" ] || [ "$DI_VIRT" = "xen" ]; then +- return $DS_MAYBE +- fi + return $DS_NOT_FOUND + } + diff --git a/cloud-init-keep-flake.patch b/cloud-init-keep-flake.patch new file mode 100644 index 0000000..51ebf06 --- /dev/null +++ b/cloud-init-keep-flake.patch @@ -0,0 +1,11 @@ +--- tools/run-lint.orig ++++ tools/run-lint +@@ -11,7 +11,7 @@ else + files=( "$@" ) + fi + +-cmd=( "python3" -m "ruff" "${files[@]}" ) ++cmd=( "python3" -m "flake8" "${files[@]}" ) + + echo "Running: " "${cmd[@]}" 1>&2 + exec "${cmd[@]}" diff --git a/cloud-init-lint-fixes.patch b/cloud-init-lint-fixes.patch new file mode 100644 index 0000000..3241fcf --- /dev/null +++ b/cloud-init-lint-fixes.patch @@ -0,0 +1,412 @@ +--- cloudinit/cmd/main.py.orig ++++ cloudinit/cmd/main.py +@@ -28,26 +28,27 @@ from cloudinit.config.modules import Mod + + patcher.patch_logging() + +-from cloudinit.config.schema import validate_cloudconfig_schema +-from cloudinit import log as logging +-from cloudinit import netinfo +-from cloudinit import signal_handler +-from cloudinit import sources +-from cloudinit import stages +-from cloudinit import url_helper +-from cloudinit import util +-from cloudinit import version +-from cloudinit import warnings +- +-from cloudinit import reporting +-from cloudinit.reporting import events ++from cloudinit.config.schema import validate_cloudconfig_schema # noqa: E402 ++from cloudinit import log as logging # noqa: E402 ++from cloudinit import netinfo # noqa: E402 ++from cloudinit import signal_handler # noqa: E402 ++from cloudinit import sources # noqa: E402 ++from cloudinit import stages # noqa: E402 ++from cloudinit import url_helper # noqa: E402 ++from cloudinit import util # noqa: E402 ++from cloudinit import version # noqa: E402 ++from cloudinit import warnings # noqa: E402 ++ ++from cloudinit import reporting # noqa: E402 ++from cloudinit.reporting import events # noqa: E402 + +-from cloudinit.settings import PER_INSTANCE, PER_ALWAYS, PER_ONCE, CLOUD_CONFIG ++from cloudinit.settings import ( # noqa: E402 ++ PER_INSTANCE, PER_ALWAYS, PER_ONCE, CLOUD_CONFIG) # noqa: E402 + +-from cloudinit import atomic_helper ++from cloudinit import atomic_helper # noqa: E402 + +-from cloudinit.config import cc_set_hostname +-from cloudinit.cmd.devel import read_cfg_paths ++from cloudinit.config import cc_set_hostname # noqa: E402 ++from cloudinit.cmd.devel import read_cfg_paths # noqa: E402 + + + # Welcome message template +@@ -538,7 +539,7 @@ def di_report_warn(datasource, cfg): + # where Name is the thing that shows up in datasource_list. + modname = datasource.__module__.rpartition(".")[2] + if modname.startswith(sources.DS_PREFIX): +- modname = modname[len(sources.DS_PREFIX) :] ++ modname = modname[len(sources.DS_PREFIX):] + else: + LOG.warning( + "Datasource '%s' came from unexpected module '%s'.", +--- cloudinit/config/cc_apt_configure.py.orig ++++ cloudinit/config/cc_apt_configure.py +@@ -354,7 +354,7 @@ def mirrorurl_to_apt_fileprefix(mirror): + string = string[0:-1] + pos = string.find("://") + if pos >= 0: +- string = string[pos + 3 :] ++ string = string[pos + 3:] + string = string.replace("/", "_") + return string + +--- cloudinit/config/cc_ssh_authkey_fingerprints.py.orig ++++ cloudinit/config/cc_ssh_authkey_fingerprints.py +@@ -44,7 +44,7 @@ LOG = logging.getLogger(__name__) + def _split_hash(bin_hash): + split_up = [] + for i in range(0, len(bin_hash), 2): +- split_up.append(bin_hash[i : i + 2]) ++ split_up.append(bin_hash[i: i + 2]) + return split_up + + +--- cloudinit/config/modules.py.orig ++++ cloudinit/config/modules.py +@@ -39,7 +39,7 @@ class ModuleDetails(NamedTuple): + def form_module_name(name): + canon_name = name.replace("-", "_") + if canon_name.lower().endswith(".py"): +- canon_name = canon_name[0 : (len(canon_name) - 3)] ++ canon_name = canon_name[0: (len(canon_name) - 3)] + canon_name = canon_name.strip() + if not canon_name: + return None +--- cloudinit/distros/parsers/ifconfig.py.orig ++++ cloudinit/distros/parsers/ifconfig.py +@@ -140,7 +140,7 @@ class Ifconfig: + dev.index = int(toks[1]) + + if toks[0] == "description:": +- dev.description = line[line.index(":") + 2 :] ++ dev.description = line[line.index(":") + 2:] + + if ( + toks[0].startswith("options=") +@@ -165,7 +165,7 @@ class Ifconfig: + dev.groups += toks[1:] + + if toks[0] == "media:": +- dev.media = line[line.index(": ") + 2 :] ++ dev.media = line[line.index(": ") + 2:] + + if toks[0] == "nd6": + nd6_opts = re.split(r"<|>", toks[0]) +--- cloudinit/net/dhcp.py.orig ++++ cloudinit/net/dhcp.py +@@ -415,24 +415,24 @@ class IscDhclient(DhcpClient): + if len(tokens[idx:]) < req_toks: + _trunc_error(net_length, req_toks, len(tokens[idx:])) + return static_routes +- net_address = ".".join(tokens[idx + 1 : idx + 5]) +- gateway = ".".join(tokens[idx + 5 : idx + req_toks]) ++ net_address = ".".join(tokens[idx + 1: idx + 5]) ++ gateway = ".".join(tokens[idx + 5: idx + req_toks]) + current_idx = idx + req_toks + elif net_length in range(17, 25): + req_toks = 8 + if len(tokens[idx:]) < req_toks: + _trunc_error(net_length, req_toks, len(tokens[idx:])) + return static_routes +- net_address = ".".join(tokens[idx + 1 : idx + 4] + ["0"]) +- gateway = ".".join(tokens[idx + 4 : idx + req_toks]) ++ net_address = ".".join(tokens[idx + 1: idx + 4] + ["0"]) ++ gateway = ".".join(tokens[idx + 4: idx + req_toks]) + current_idx = idx + req_toks + elif net_length in range(9, 17): + req_toks = 7 + if len(tokens[idx:]) < req_toks: + _trunc_error(net_length, req_toks, len(tokens[idx:])) + return static_routes +- net_address = ".".join(tokens[idx + 1 : idx + 3] + ["0", "0"]) +- gateway = ".".join(tokens[idx + 3 : idx + req_toks]) ++ net_address = ".".join(tokens[idx + 1: idx + 3] + ["0", "0"]) ++ gateway = ".".join(tokens[idx + 3: idx + req_toks]) + current_idx = idx + req_toks + elif net_length in range(1, 9): + req_toks = 6 +@@ -440,9 +440,9 @@ class IscDhclient(DhcpClient): + _trunc_error(net_length, req_toks, len(tokens[idx:])) + return static_routes + net_address = ".".join( +- tokens[idx + 1 : idx + 2] + ["0", "0", "0"] ++ tokens[idx + 1: idx + 2] + ["0", "0", "0"] + ) +- gateway = ".".join(tokens[idx + 2 : idx + req_toks]) ++ gateway = ".".join(tokens[idx + 2: idx + req_toks]) + current_idx = idx + req_toks + elif net_length == 0: + req_toks = 5 +@@ -450,7 +450,7 @@ class IscDhclient(DhcpClient): + _trunc_error(net_length, req_toks, len(tokens[idx:])) + return static_routes + net_address = "0.0.0.0" +- gateway = ".".join(tokens[idx + 1 : idx + req_toks]) ++ gateway = ".".join(tokens[idx + 1: idx + req_toks]) + current_idx = idx + req_toks + else: + LOG.error( +--- cloudinit/net/network_state.py.orig ++++ cloudinit/net/network_state.py +@@ -135,7 +135,7 @@ class CommandHandlerMeta(type): + command_handlers = {} + for attr_name, attr in dct.items(): + if callable(attr) and attr_name.startswith("handle_"): +- handles_what = attr_name[len("handle_") :] ++ handles_what = attr_name[len("handle_"):] + if handles_what: + command_handlers[handles_what] = attr + dct["command_handlers"] = command_handlers +--- cloudinit/reporting/handlers.py.orig ++++ cloudinit/reporting/handlers.py +@@ -295,13 +295,13 @@ class HyperVKvpReportingHandler(Reportin + ) + ) + k = ( +- record_data[0 : self.HV_KVP_EXCHANGE_MAX_KEY_SIZE] ++ record_data[0: self.HV_KVP_EXCHANGE_MAX_KEY_SIZE] + .decode("utf-8") + .strip("\x00") + ) + v = ( + record_data[ +- self.HV_KVP_EXCHANGE_MAX_KEY_SIZE : self.HV_KVP_RECORD_SIZE ++ self.HV_KVP_EXCHANGE_MAX_KEY_SIZE: self.HV_KVP_RECORD_SIZE + ] + .decode("utf-8") + .strip("\x00") +@@ -320,7 +320,7 @@ class HyperVKvpReportingHandler(Reportin + def _break_down(self, key, meta_data, description): + del meta_data[self.MSG_KEY] + des_in_json = json.dumps(description) +- des_in_json = des_in_json[1 : (len(des_in_json) - 1)] ++ des_in_json = des_in_json[1: (len(des_in_json) - 1)] + i = 0 + result_array = [] + message_place_holder = '"' + self.MSG_KEY + '":""' +@@ -353,7 +353,7 @@ class HyperVKvpReportingHandler(Reportin + Values will be truncated as needed. + """ + if len(value) >= self.HV_KVP_AZURE_MAX_VALUE_SIZE: +- value = value[0 : self.HV_KVP_AZURE_MAX_VALUE_SIZE - 1] ++ value = value[0: self.HV_KVP_AZURE_MAX_VALUE_SIZE - 1] + + data = [self._encode_kvp_item(key, value)] + +--- cloudinit/sources/__init__.py.orig ++++ cloudinit/sources/__init__.py +@@ -747,7 +747,7 @@ class DataSource(CloudInitPickleMixin, m + if not short_name.startswith(nfrom): + continue + for nto in tlist: +- cand = "/dev/%s%s" % (nto, short_name[len(nfrom) :]) ++ cand = "/dev/%s%s" % (nto, short_name[len(nfrom):]) + if os.path.exists(cand): + return cand + return None +--- cloudinit/sources/helpers/azure.py.orig ++++ cloudinit/sources/helpers/azure.py +@@ -566,7 +566,7 @@ class OpenSSLManager: + """ + raw_fp = self._run_x509_action("-fingerprint", certificate) + eq = raw_fp.find("=") +- octets = raw_fp[eq + 1 : -1].split(":") ++ octets = raw_fp[eq + 1: -1].split(":") + return "".join(octets) + + @azure_ds_telemetry_reporter +--- cloudinit/sources/helpers/netlink.py.orig ++++ cloudinit/sources/helpers/netlink.py +@@ -150,7 +150,7 @@ def unpack_rta_attr(data, offset): + return None # Should mean our offset is >= remaining data + + # Unpack just the attribute's data. Offset by 4 to skip length/type header +- attr_data = data[offset + RTA_DATA_START_OFFSET : offset + length] ++ attr_data = data[offset + RTA_DATA_START_OFFSET: offset + length] + return RTAAttr(length, rta_type, attr_data) + + +--- cloudinit/ssh_util.py.orig ++++ cloudinit/ssh_util.py +@@ -659,7 +659,7 @@ def get_opensshd_version(): + prefix = "OpenSSH_" + for line in err.split("\n"): + if line.startswith(prefix): +- return line[len(prefix) : line.find(",")] ++ return line[len(prefix): line.find(",")] + return None + + +--- cloudinit/url_helper.py.orig ++++ cloudinit/url_helper.py +@@ -73,7 +73,7 @@ def read_file_or_url(url, **kwargs) -> U + if url.lower().startswith("file://"): + if kwargs.get("data"): + LOG.warning("Unable to post data to file resource %s", url) +- file_path = url[len("file://") :] ++ file_path = url[len("file://"):] + try: + with open(file_path, "rb") as fp: + contents = fp.read() +--- cloudinit/user_data.py.orig ++++ cloudinit/user_data.py +@@ -211,13 +211,13 @@ class UserDataProcessor: + for line in content.splitlines(): + lc_line = line.lower() + if lc_line.startswith("#include-once"): +- line = line[len("#include-once") :].lstrip() ++ line = line[len("#include-once"):].lstrip() + # Every following include will now + # not be refetched.... but will be + # re-read from a local urlcache (if it worked) + include_once_on = True + elif lc_line.startswith("#include"): +- line = line[len("#include") :].lstrip() ++ line = line[len("#include"):].lstrip() + # Disable the include once if it was on + # if it wasn't, then this has no effect. + include_once_on = False +--- cloudinit/util.py.orig ++++ cloudinit/util.py +@@ -1177,7 +1177,7 @@ def read_cc_from_cmdline(cmdline=None): + if end < 0: + end = clen + tokens.append( +- parse.unquote(cmdline[begin + begin_l : end].lstrip()).replace( ++ parse.unquote(cmdline[begin + begin_l: end].lstrip()).replace( + "\\n", "\n" + ) + ) +@@ -1724,7 +1724,7 @@ def get_output_cfg(cfg, mode): + found = False + for s in swlist: + if val.startswith(s): +- val = "%s %s" % (s, val[len(s) :].strip()) ++ val = "%s %s" % (s, val[len(s):].strip()) + found = True + break + if not found: +@@ -2362,7 +2362,7 @@ def shellify(cmdlist, add_header=True): + + def strip_prefix_suffix(line, prefix=None, suffix=None): + if prefix and line.startswith(prefix): +- line = line[len(prefix) :] ++ line = line[len(prefix):] + if suffix and line.endswith(suffix): + line = line[: -len(suffix)] + return line +@@ -2942,7 +2942,7 @@ def human2bytes(size): + for m in mpliers: + if size.endswith(m): + mplier = m +- num = size[0 : -len(m)] ++ num = size[0: -len(m)] + + try: + num = float(num) +@@ -3022,12 +3022,12 @@ def rootdev_from_cmdline(cmdline): + if found.startswith("/dev/"): + return found + if found.startswith("LABEL="): +- return "/dev/disk/by-label/" + found[len("LABEL=") :] ++ return "/dev/disk/by-label/" + found[len("LABEL="):] + if found.startswith("UUID="): +- return "/dev/disk/by-uuid/" + found[len("UUID=") :].lower() ++ return "/dev/disk/by-uuid/" + found[len("UUID="):].lower() + if found.startswith("PARTUUID="): + disks_path = ( +- "/dev/disk/by-partuuid/" + found[len("PARTUUID=") :].lower() ++ "/dev/disk/by-partuuid/" + found[len("PARTUUID="):].lower() + ) + if os.path.exists(disks_path): + return disks_path +--- setup.py.orig ++++ setup.py +@@ -187,7 +187,7 @@ elif os.path.isfile("/etc/system-release + else: + # String formatted CPE + inc = 1 +- (cpe_vendor, cpe_product, cpe_version) = cpe_data[2 + inc : 5 + inc] ++ (cpe_vendor, cpe_product, cpe_version) = cpe_data[2 + inc: 5 + inc] + if cpe_vendor == "amazon": + USR_LIB_EXEC = "usr/libexec" + +--- tests/unittests/helpers.py.orig ++++ tests/unittests/helpers.py +@@ -265,7 +265,7 @@ class FilesystemMockingTestCase(Resource + real_root = os.path.join(real_root, "roots", example_root) + for (dir_path, _dirnames, filenames) in os.walk(real_root): + real_path = dir_path +- make_path = rebase_path(real_path[len(real_root) :], target_root) ++ make_path = rebase_path(real_path[len(real_root):], target_root) + util.ensure_dir(make_path) + for f in filenames: + real_path = util.abs_join(real_path, f) +@@ -469,7 +469,7 @@ def dir2dict(startdir, prefix=None): + for root, _dirs, files in os.walk(startdir): + for fname in files: + fpath = os.path.join(root, fname) +- key = fpath[len(prefix) :] ++ key = fpath[len(prefix):] + flist[key] = util.load_file(fpath) + return flist + +--- tests/unittests/reporting/test_reporting_hyperv.py.orig ++++ tests/unittests/reporting/test_reporting_hyperv.py +@@ -293,7 +293,7 @@ class TextKvpReporter(CiTestCase): + reporter, + 2, + [ +- log_content[-azure.MAX_LOG_TO_KVP_LENGTH :].encode(), ++ log_content[-azure.MAX_LOG_TO_KVP_LENGTH:].encode(), + extra_content.encode(), + ], + ) +--- tests/unittests/sources/test_configdrive.py.orig ++++ tests/unittests/sources/test_configdrive.py +@@ -412,7 +412,7 @@ class TestConfigDriveDataSource(CiTestCa + } + for name, dev_name in name_tests.items(): + with ExitStack() as mocks: +- provided_name = dev_name[len("/dev/") :] ++ provided_name = dev_name[len("/dev/"):] + provided_name = "s" + provided_name[1:] + find_mock = mocks.enter_context( + mock.patch.object( +--- tests/unittests/sources/test_maas.py.orig ++++ tests/unittests/sources/test_maas.py +@@ -131,7 +131,7 @@ class TestMAASDataSource(CiTestCase): + if not url.startswith(prefix): + raise ValueError("unexpected call %s" % url) + +- short = url[len(prefix) :] ++ short = url[len(prefix):] + if short not in data: + raise url_helper.UrlError("not found", code=404, url=url) + return url_helper.StringResponse(data[short]) +--- tests/unittests/sources/test_smartos.py.orig ++++ tests/unittests/sources/test_smartos.py +@@ -766,7 +766,7 @@ class ShortReader: + rsize = next_null - self.index + 1 + i = self.index + self.index += rsize +- ret = self.data[i : i + rsize] ++ ret = self.data[i: i + rsize] + if len(ret) and ret[-1:] == self.endbyte: + ret = ret[:-1] + return ret diff --git a/cloud-init-no-nmcfg-needed.patch b/cloud-init-no-nmcfg-needed.patch new file mode 100644 index 0000000..527847a --- /dev/null +++ b/cloud-init-no-nmcfg-needed.patch @@ -0,0 +1,27 @@ +--- cloudinit/net/network_manager.py.orig ++++ cloudinit/net/network_manager.py +@@ -9,7 +9,6 @@ + import configparser + import io + import itertools +-import os + import uuid + from typing import Optional + +@@ -401,7 +400,6 @@ def available(target=None): + # It is imported here to avoid circular import + from cloudinit.distros import uses_systemd + +- config_present = os.path.isfile(subp.target_path(target, path=NM_CFG_FILE)) + nmcli_present = subp.which("nmcli", target=target) + service_active = True + if uses_systemd(): +@@ -410,7 +408,7 @@ def available(target=None): + except subp.ProcessExecutionError: + service_active = False + +- return config_present and bool(nmcli_present) and service_active ++ return bool(nmcli_present) and service_active + + + # vi: ts=4 expandtab diff --git a/cloud-init-no-openstack-guess.patch b/cloud-init-no-openstack-guess.patch new file mode 100644 index 0000000..0c7b1e3 --- /dev/null +++ b/cloud-init-no-openstack-guess.patch @@ -0,0 +1,35 @@ +--- tools/ds-identify.orig ++++ tools/ds-identify +@@ -95,7 +95,7 @@ DI_MAIN=${DI_MAIN:-main} + DI_BLKID_EXPORT_OUT="" + DI_GEOM_LABEL_STATUS_OUT="" + DI_DEFAULT_POLICY="search,found=all,maybe=all,notfound=${DI_DISABLED}" +-DI_DEFAULT_POLICY_NO_DMI="search,found=all,maybe=all,notfound=${DI_ENABLED}" ++DI_DEFAULT_POLICY_NO_DMI="search,found=all,maybe=all,notfound=${DI_DISABLED}" + DI_DMI_BOARD_NAME="" + DI_DMI_CHASSIS_ASSET_TAG="" + DI_DMI_PRODUCT_NAME="" +@@ -1261,12 +1261,6 @@ dscheck_OpenStack() { + return ${DS_FOUND} + fi + +- # LP: #1715241 : arch other than intel are not identified properly. +- case "$DI_UNAME_MACHINE" in +- i?86|x86_64) :;; +- *) return ${DS_MAYBE};; +- esac +- + return ${DS_NOT_FOUND} + } + +--- tests/unittests/test_ds_identify.py.orig ++++ tests/unittests/test_ds_identify.py +@@ -574,7 +574,7 @@ class TestDsIdentify(DsIdentifyBase): + + nova does not identify itself on platforms other than intel. + https://bugs.launchpad.net/cloud-init/+bugs?field.tag=dsid-nova""" +- ++ return + data = copy.deepcopy(VALID_CFG["OpenStack"]) + del data["files"][P_PRODUCT_NAME] + data.update( diff --git a/cloud-init-no-tempnet-oci.patch b/cloud-init-no-tempnet-oci.patch new file mode 100644 index 0000000..f42fcae --- /dev/null +++ b/cloud-init-no-tempnet-oci.patch @@ -0,0 +1,21 @@ +--- cloudinit/sources/DataSourceOracle.py.orig ++++ cloudinit/sources/DataSourceOracle.py +@@ -204,6 +204,8 @@ class DataSourceOracle(sources.DataSourc + + def _is_iscsi_root(self) -> bool: + """Return whether we are on a iscsi machine.""" ++ # SUSE images are built with iSCSI setup. ++ return True + return self._network_config_source.is_applicable() + + def _get_iscsi_config(self) -> dict: +--- tests/unittests/sources/test_oracle.py.orig ++++ tests/unittests/sources/test_oracle.py +@@ -996,6 +996,7 @@ class TestNonIscsiRoot_GetDataBehaviour: + def test_read_opc_metadata_called_with_ephemeral_dhcp( + self, m_find_fallback_nic, m_EphemeralDHCPv4, oracle_ds + ): ++ return + in_context_manager = False + + def enter_context_manager(): diff --git a/cloud-init-pckg-reboot.patch b/cloud-init-pckg-reboot.patch new file mode 100644 index 0000000..2df676b --- /dev/null +++ b/cloud-init-pckg-reboot.patch @@ -0,0 +1,28 @@ +--- cloudinit/config/cc_package_update_upgrade_install.py.orig ++++ cloudinit/config/cc_package_update_upgrade_install.py +@@ -18,7 +18,7 @@ from cloudinit.config.schema import Meta + from cloudinit.distros import ALL_DISTROS + from cloudinit.settings import PER_INSTANCE + +-REBOOT_FILE = "/var/run/reboot-required" ++REBOOT_FILES = ("/var/run/reboot-required", "/run/reboot-needed") + REBOOT_CMD = ["/sbin/reboot"] + + MODULE_DESCRIPTION = """\ +@@ -120,11 +120,14 @@ def handle(name: str, cfg: Config, cloud + # kernel and openssl (possibly some other packages) + # write a file /var/run/reboot-required after upgrading. + # if that file exists and configured, then just stop right now and reboot +- reboot_fn_exists = os.path.isfile(REBOOT_FILE) ++ for reboot_marker in REBOOT_FILES: ++ reboot_fn_exists = os.path.isfile(reboot_marker) ++ if reboot_fn_exists: ++ break + if (upgrade or pkglist) and reboot_if_required and reboot_fn_exists: + try: + LOG.warning( +- "Rebooting after upgrade or install per %s", REBOOT_FILE ++ "Rebooting after upgrade or install per %s", reboot_marker + ) + # Flush the above warning + anything else out... + logging.flushLoggers(LOG) diff --git a/cloud-init-skip-empty-conf.patch b/cloud-init-skip-empty-conf.patch new file mode 100644 index 0000000..154b93d --- /dev/null +++ b/cloud-init-skip-empty-conf.patch @@ -0,0 +1,374 @@ +--- tests/unittests/config/test_cc_yum_add_repo.py.orig ++++ tests/unittests/config/test_cc_yum_add_repo.py +@@ -2,7 +2,7 @@ + + import configparser + import logging +-import re ++# import re + import shutil + import tempfile + +@@ -137,10 +137,10 @@ class TestAddYumRepoSchema: + {"yum_repo_dir": True}, + "yum_repo_dir: True is not of type 'string'", + ), +- ( +- {"yum_repos": {}}, +- re.escape("yum_repos: {} does not have enough properties"), +- ), ++ # ( ++ # {"yum_repos": {}}, ++ # re.escape("yum_repos: {} does not have enough properties"), ++ # ), + # baseurl required + ( + {"yum_repos": {"My-Repo": {}}}, +--- tests/unittests/config/test_cc_apk_configure.py.orig ++++ tests/unittests/config/test_cc_apk_configure.py +@@ -352,11 +352,11 @@ class TestApkConfigureSchema: + " allowed ('bogus' was unexpected)" + ), + ), +- ( +- {"apk_repos": {"alpine_repo": {}}}, +- "apk_repos.alpine_repo: 'version' is a required property," +- " apk_repos.alpine_repo: {} does not have enough properties", +- ), ++ # ( ++ # {"apk_repos": {"alpine_repo": {}}}, ++ # "apk_repos.alpine_repo: 'version' is a required property," ++ # " apk_repos.alpine_repo: {} does not have enough properties", ++ # ), + ( + {"apk_repos": {"alpine_repo": True}}, + "apk_repos.alpine_repo: True is not of type 'object', 'null'", +@@ -366,10 +366,10 @@ class TestApkConfigureSchema: + "apk_repos.preserve_repositories: 'wrongtype' is not of type" + " 'boolean'", + ), +- ( +- {"apk_repos": {}}, +- "apk_repos: {} does not have enough properties", +- ), ++ # ( ++ # {"apk_repos": {}}, ++ # "apk_repos: {} does not have enough properties", ++ # ), + ( + {"apk_repos": {"local_repo_base_url": None}}, + "apk_repos.local_repo_base_url: None is not of type 'string'", +--- tests/unittests/config/test_cc_apt_configure.py.orig ++++ tests/unittests/config/test_cc_apt_configure.py +@@ -32,7 +32,7 @@ class TestAPTConfigureSchema: + " ('boguskey' was unexpected)" + ), + ), +- ({"apt": {}}, "apt: {} does not have enough properties"), ++ # ({"apt": {}}, "apt: {} does not have enough properties"), + ( + {"apt": {"preserve_sources_list": 1}}, + "apt.preserve_sources_list: 1 is not of type 'boolean'", +@@ -41,10 +41,10 @@ class TestAPTConfigureSchema: + {"apt": {"disable_suites": 1}}, + "apt.disable_suites: 1 is not of type 'array'", + ), +- ( +- {"apt": {"disable_suites": []}}, +- re.escape("apt.disable_suites: [] is too short"), +- ), ++ # ( ++ # {"apt": {"disable_suites": []}}, ++ # re.escape("apt.disable_suites: [] is too short"), ++ # ), + ( + {"apt": {"disable_suites": [1]}}, + "apt.disable_suites.0: 1 is not of type 'string'", +@@ -61,18 +61,18 @@ class TestAPTConfigureSchema: + {"apt": {"primary": "nonlist"}}, + "apt.primary: 'nonlist' is not of type 'array'", + ), +- ( +- {"apt": {"primary": []}}, +- re.escape("apt.primary: [] is too short"), +- ), ++ # ( ++ # {"apt": {"primary": []}}, ++ # re.escape("apt.primary: [] is too short"), ++ # ), + ( + {"apt": {"primary": ["nonobj"]}}, + "apt.primary.0: 'nonobj' is not of type 'object'", + ), +- ( +- {"apt": {"primary": [{}]}}, +- "apt.primary.0: 'arches' is a required property", +- ), ++ # ( ++ # {"apt": {"primary": [{}]}}, ++ # "apt.primary.0: 'arches' is a required property", ++ # ), + ( + {"apt": {"primary": [{"boguskey": True}]}}, + re.escape( +@@ -98,10 +98,10 @@ class TestAPTConfigureSchema: + }, + "apt.primary.0.search: 'non-array' is not of type 'array'", + ), +- ( +- {"apt": {"primary": [{"arches": ["amd64"], "search": []}]}}, +- re.escape("apt.primary.0.search: [] is too short"), +- ), ++ # ( ++ # {"apt": {"primary": [{"arches": ["amd64"], "search": []}]}}, ++ # re.escape("apt.primary.0.search: [] is too short"), ++ # ), + ( + { + "apt": { +@@ -130,10 +130,10 @@ class TestAPTConfigureSchema: + {"apt": {"debconf_selections": True}}, + "apt.debconf_selections: True is not of type 'object'", + ), +- ( +- {"apt": {"debconf_selections": {}}}, +- "apt.debconf_selections: {} does not have enough properties", +- ), ++ # ( ++ # {"apt": {"debconf_selections": {}}}, ++ # "apt.debconf_selections: {} does not have enough properties", ++ # ), + ( + {"apt": {"sources_list": True}}, + "apt.sources_list: True is not of type 'string'", +@@ -166,10 +166,10 @@ class TestAPTConfigureSchema: + {"apt": {"sources": {"opaquekey": True}}}, + "apt.sources.opaquekey: True is not of type 'object'", + ), +- ( +- {"apt": {"sources": {"opaquekey": {}}}}, +- "apt.sources.opaquekey: {} does not have enough properties", +- ), ++ # ( ++ # {"apt": {"sources": {"opaquekey": {}}}}, ++ # "apt.sources.opaquekey: {} does not have enough properties", ++ # ), + ( + {"apt": {"sources": {"opaquekey": {"boguskey": True}}}}, + re.escape( +--- tests/unittests/config/test_cc_bootcmd.py.orig ++++ tests/unittests/config/test_cc_bootcmd.py +@@ -1,5 +1,5 @@ + # This file is part of cloud-init. See LICENSE file for license information. +-import re ++# import re + import tempfile + + import pytest +@@ -128,13 +128,13 @@ class TestBootCMDSchema: + "Cloud config schema errors: bootcmd: 1 is not of type" + " 'array'", + ), +- ({"bootcmd": []}, re.escape("bootcmd: [] is too short")), +- ( +- {"bootcmd": []}, +- re.escape( +- "Cloud config schema errors: bootcmd: [] is too short" +- ), +- ), ++ # ({"bootcmd": []}, re.escape("bootcmd: [] is too short")), ++ # ( ++ # {"bootcmd": []}, ++ # re.escape( ++ # "Cloud config schema errors: bootcmd: [] is too short" ++ # ), ++ # ), + ( + { + "bootcmd": [ +--- tests/unittests/config/test_cc_ca_certs.py.orig ++++ tests/unittests/config/test_cc_ca_certs.py +@@ -394,10 +394,10 @@ class TestCACertsSchema: + {"ca_certs": 1}, + "ca_certs: 1 is not of type 'object'", + ), +- ( +- {"ca_certs": {}}, +- re.escape("ca_certs: {} does not have enough properties"), +- ), ++ # ( ++ # {"ca_certs": {}}, ++ # re.escape("ca_certs: {} does not have enough properties"), ++ # ), + ( + {"ca_certs": {"boguskey": 1}}, + re.escape( +@@ -413,10 +413,10 @@ class TestCACertsSchema: + {"ca_certs": {"trusted": [1]}}, + "ca_certs.trusted.0: 1 is not of type 'string'", + ), +- ( +- {"ca_certs": {"trusted": []}}, +- re.escape("ca_certs.trusted: [] is too short"), +- ), ++ # ( ++ # {"ca_certs": {"trusted": []}}, ++ # re.escape("ca_certs.trusted: [] is too short"), ++ # ), + ), + ) + @skipUnlessJsonSchema() +--- tests/unittests/config/test_cc_chef.py.orig ++++ tests/unittests/config/test_cc_chef.py +@@ -304,10 +304,10 @@ class TestBootCMDSchema: + {"chef": 1}, + "chef: 1 is not of type 'object'", + ), +- ( +- {"chef": {}}, +- re.escape(" chef: {} does not have enough properties"), +- ), ++ # ( ++ # {"chef": {}}, ++ # re.escape(" chef: {} does not have enough properties"), ++ # ), + ( + {"chef": {"boguskey": True}}, + re.escape( +@@ -319,10 +319,10 @@ class TestBootCMDSchema: + {"chef": {"directories": 1}}, + "chef.directories: 1 is not of type 'array'", + ), +- ( +- {"chef": {"directories": []}}, +- re.escape("chef.directories: [] is too short"), +- ), ++ # ( ++ # {"chef": {"directories": []}}, ++ # re.escape("chef.directories: [] is too short"), ++ # ), + ( + {"chef": {"directories": [1]}}, + "chef.directories.0: 1 is not of type 'string'", +--- tests/unittests/config/test_cc_lxd.py.orig ++++ tests/unittests/config/test_cc_lxd.py +@@ -385,7 +385,7 @@ class TestLXDSchema: + # Require bridge.mode + ({"lxd": {"bridge": {}}}, "bridge: 'mode' is a required property"), + # Require init or bridge keys +- ({"lxd": {}}, "lxd: {} does not have enough properties"), ++ # ({"lxd": {}}, "lxd: {} does not have enough properties"), + # Require some non-empty preseed config of type string + ({"lxd": {"preseed": {}}}, "not of type 'string'"), + ({"lxd": {"preseed": ""}}, None), +--- tests/unittests/config/test_cc_mounts.py.orig ++++ tests/unittests/config/test_cc_mounts.py +@@ -583,9 +583,9 @@ class TestMountsSchema: + "config, error_msg", + [ + # We expect to see one mount if provided in user-data. +- ({"mounts": []}, re.escape("mounts: [] is too short")), ++ # ({"mounts": []}, re.escape("mounts: [] is too short")), + # Disallow less than 1 item per mount entry +- ({"mounts": [[]]}, re.escape("mounts.0: [] is too short")), ++ # ({"mounts": [[]]}, re.escape("mounts.0: [] is too short")), + # Disallow more than 6 items per mount entry + ({"mounts": [["1"] * 7]}, "mounts.0:.* is too long"), + # Disallow mount_default_fields will anything other than 6 items +--- tests/unittests/config/test_cc_package_update_upgrade_install.py.orig ++++ tests/unittests/config/test_cc_package_update_upgrade_install.py +@@ -17,7 +17,7 @@ class TestPackageUpdateUpgradeSchema: + # packages list with three entries (2 required) + ({"packages": ["p1", ["p2", "p3", "p4"]]}, ""), + # empty packages list +- ({"packages": []}, "is too short"), ++ # ({"packages": []}, "is too short"), + ( + {"apt_update": False}, + ( +--- tests/unittests/config/test_cc_runcmd.py.orig ++++ tests/unittests/config/test_cc_runcmd.py +@@ -90,7 +90,7 @@ class TestRunCmdSchema: + ({"runcmd": ["echo bye", "echo bye"]}, None), + # Invalid schemas + ({"runcmd": 1}, "1 is not of type 'array'"), +- ({"runcmd": []}, r"runcmd: \[\] is too short"), ++ # ({"runcmd": []}, r"runcmd: \[\] is too short"), + ( + { + "runcmd": [ +--- tests/unittests/config/test_cc_set_passwords.py.orig ++++ tests/unittests/config/test_cc_set_passwords.py +@@ -715,12 +715,12 @@ class TestSetPasswordsSchema: + {"chpasswd": {"list": ["user"]}}, + pytest.raises(SchemaValidationError), + ), +- ( +- {"chpasswd": {"list": []}}, +- pytest.raises( +- SchemaValidationError, match=r"\[\] is too short" +- ), +- ), ++ # ( ++ # {"chpasswd": {"list": []}}, ++ # pytest.raises( ++ # SchemaValidationError, match=r"\[\] is too short" ++ # ), ++ # ), + ], + ) + @skipUnlessJsonSchema() +--- tests/unittests/config/test_cc_snap.py.orig ++++ tests/unittests/config/test_cc_snap.py +@@ -279,16 +279,17 @@ class TestSnapSchema: + {"snap": {"commands": ["ls"], "invalid-key": ""}}, + "Additional properties are not allowed", + ), +- ({"snap": {}}, "{} does not have enough properties"), ++ # ({"snap": {}}, "{} does not have enough properties"), + ( + {"snap": {"commands": "broken"}}, + "'broken' is not of type 'object', 'array'", + ), +- ({"snap": {"commands": []}}, r"snap.commands: \[\] is too short"), +- ( +- {"snap": {"commands": {}}}, +- r"snap.commands: {} does not have enough properties", +- ), ++ # ({"snap": { ++ # "commands": []}}, r"snap.commands: \[\] is too short"), ++ # ( ++ # {"snap": {"commands": {}}}, ++ # r"snap.commands: {} does not have enough properties", ++ # ), + ({"snap": {"commands": [123]}}, ""), + ({"snap": {"commands": {"01": 123}}}, ""), + ({"snap": {"commands": [["snap", "install", 123]]}}, ""), +@@ -302,11 +303,11 @@ class TestSnapSchema: + {"snap": {"assertions": "broken"}}, + "'broken' is not of type 'object', 'array'", + ), +- ({"snap": {"assertions": []}}, r"\[\] is too short"), +- ( +- {"snap": {"assertions": {}}}, +- r"\{} does not have enough properties", +- ), ++ # ({"snap": {"assertions": []}}, r"\[\] is too short"), ++ # ( ++ # {"snap": {"assertions": {}}}, ++ # r"\{} does not have enough properties", ++ # ), + ], + ) + @skipUnlessJsonSchema() +--- tests/unittests/config/test_cc_write_files.py.orig ++++ tests/unittests/config/test_cc_write_files.py +@@ -222,7 +222,7 @@ class TestWriteFilesSchema: + [ + # Top-level write_files type validation + ({"write_files": 1}, "write_files: 1 is not of type 'array'"), +- ({"write_files": []}, re.escape("write_files: [] is too short")), ++ # ({"write_files": []}, re.escape("write_files: [] is too short")), + ( + {"write_files": [{}]}, + "write_files.0: 'path' is a required property", diff --git a/cloud-init-sysconf-path.patch b/cloud-init-sysconf-path.patch new file mode 100644 index 0000000..50aaf97 --- /dev/null +++ b/cloud-init-sysconf-path.patch @@ -0,0 +1,12 @@ +--- cloudinit/net/sysconfig.py.orig ++++ cloudinit/net/sysconfig.py +@@ -1056,8 +1056,7 @@ def available(target=None): + return False + + expected_paths = [ +- "etc/sysconfig/network-scripts/network-functions", +- "etc/sysconfig/config", ++ 'etc/sysconfig/network/scripts/functions.netconfig' + ] + for p in expected_paths: + if os.path.isfile(subp.target_path(target, p)): diff --git a/cloud-init-write-routes.patch b/cloud-init-write-routes.patch new file mode 100644 index 0000000..4c07d1c --- /dev/null +++ b/cloud-init-write-routes.patch @@ -0,0 +1,177 @@ +--- cloudinit/distros/__init__.py.orig ++++ cloudinit/distros/__init__.py +@@ -287,6 +287,15 @@ class Distro(persistence.CloudInitPickle + + network_state = parse_net_config_data(netconfig, renderer=renderer) + self._write_network_state(network_state, renderer) ++ # The sysconfig renderer has no route writing implementation ++ # for SUSE yet use the old code for now that depends on the ++ # raw config. ++ try: ++ # Only exists for SUSE distro via this patch all other ++ # implementations throw which breaks testing ++ self._write_routes(netconfig) ++ except AttributeError: ++ pass + + # Now try to bring them up + if bring_up: +--- cloudinit/distros/opensuse.py.orig ++++ cloudinit/distros/opensuse.py +@@ -10,7 +10,7 @@ + + import os + +-from cloudinit import distros, helpers ++from cloudinit import distros, helpers, net + from cloudinit import log as logging + from cloudinit import subp, util + from cloudinit.distros import rhel_util as rhutil +@@ -238,6 +238,147 @@ class Distro(distros.Distro): + conf.set_hostname(hostname) + util.write_file(filename, str(conf), 0o644) + ++ def _write_routes_v1(self, netconfig): ++ """Write route files, not part of the standard distro interface""" ++ # Due to the implementation of the sysconfig renderer default routes ++ # are setup in ifcfg-* files. But this does not work on SLES or ++ # openSUSE https://bugs.launchpad.net/cloud-init/+bug/1812117 ++ # this is a very hacky way to get around the problem until a real ++ # solution is found in the sysconfig renderer ++ device_configs = netconfig.get('config', []) ++ default_nets = ('::', '0.0.0.0') ++ for config in device_configs: ++ if_name = config.get('name') ++ subnets = config.get('subnets', []) ++ config_routes = '' ++ has_default_route = False ++ seen_default_gateway = None ++ for subnet in subnets: ++ # Render the default gateway if it is present ++ gateway = subnet.get('gateway') ++ if gateway: ++ config_routes += ' '.join( ++ ['default', gateway, '-', '-\n'] ++ ) ++ has_default_route = True ++ if not seen_default_gateway: ++ seen_default_gateway = gateway ++ # Render subnet routes ++ routes = subnet.get('routes', []) ++ for route in routes: ++ dest = route.get('destination') or route.get('network') ++ if not dest or dest in default_nets: ++ dest = 'default' ++ if not has_default_route: ++ has_default_route = True ++ if dest != 'default': ++ netmask = route.get('netmask') ++ if netmask: ++ if net.is_ipv4_network(netmask): ++ prefix = net.ipv4_mask_to_net_prefix(netmask) ++ if net.is_ipv6_network(netmask): ++ prefix = net.ipv6_mask_to_net_prefix(netmask) ++ dest += '/' + str(prefix) ++ if '/' not in dest: ++ LOG.warning( ++ 'Skipping route; has no prefix "%s"', dest ++ ) ++ continue ++ gateway = route.get('gateway') ++ if not gateway: ++ LOG.warning( ++ 'Missing gateway for "%s", skipping', dest ++ ) ++ continue ++ if ( ++ dest == 'default' ++ and has_default_route ++ and gateway == seen_default_gateway ++ ): ++ dest_info = dest ++ if gateway: ++ dest_info = ' '.join([dest, gateway, '-', '-']) ++ LOG.warning( ++ '%s already has default route, skipping "%s"', ++ if_name, dest_info ++ ) ++ continue ++ config_routes += ' '.join( ++ [dest, gateway, '-', '-\n'] ++ ) ++ if config_routes: ++ route_file = '/etc/sysconfig/network/ifroute-%s' % if_name ++ util.write_file(route_file, config_routes) ++ ++ def _render_route_string(self, netconfig_route): ++ route_to = netconfig_route.get('to', None) ++ route_via = netconfig_route.get('via', None) ++ route_metric = netconfig_route.get('metric', None) ++ route_string = '' ++ ++ if route_to and route_via: ++ route_string = ' '.join([route_to, route_via, '-', '-']) ++ if route_metric: ++ route_string += ' metric {}\n'.format(route_metric) ++ else: ++ route_string += '\n' ++ else: ++ LOG.warning('invalid route definition, skipping route') ++ ++ return route_string ++ ++ def _write_routes_v2(self, netconfig): ++ for device_type in netconfig: ++ if device_type == 'version': ++ continue ++ ++ if device_type == 'routes': ++ # global static routes ++ config_routes = '' ++ for route in netconfig['routes']: ++ config_routes += self._render_route_string(route) ++ if config_routes: ++ route_file = '/etc/sysconfig/network/routes' ++ util.write_file(route_file, config_routes) ++ else: ++ devices = netconfig[device_type] ++ for device_name in devices: ++ config_routes = '' ++ device_config = devices[device_name] ++ try: ++ gateways = [ ++ v for k, v in device_config.items() ++ if 'gateway' in k ++ ] ++ for gateway in gateways: ++ config_routes += ' '.join( ++ ['default', gateway, '-', '-\n'] ++ ) ++ for route in device_config.get('routes', []): ++ config_routes += self._render_route_string(route) ++ if config_routes: ++ route_file = \ ++ '/etc/sysconfig/network/ifroute-{}'.format( ++ device_name ++ ) ++ util.write_file(route_file, config_routes) ++ except Exception: ++ # the parser above epxects another level of nesting ++ # which should be there in case it's properly ++ # formatted; if not we may get an exception on items() ++ pass ++ ++ def _write_routes(self, netconfig): ++ netconfig_ver = netconfig.get('version') ++ if netconfig_ver == 1: ++ self._write_routes_v1(netconfig) ++ elif netconfig_ver == 2: ++ self._write_routes_v2(netconfig) ++ else: ++ LOG.warning( ++ 'unsupported or missing netconfig version, not writing routes' ++ ) ++ + @property + def preferred_ntp_clients(self): + """The preferred ntp client is dependent on the version.""" diff --git a/cloud-init.changes b/cloud-init.changes new file mode 100644 index 0000000..42f8f3f --- /dev/null +++ b/cloud-init.changes @@ -0,0 +1,4972 @@ +------------------------------------------------------------------- +Tue Apr 9 16:00:13 UTC 2024 - Robert Schweikert + +- Update cloud-init-no-openstack-guess.patch + + Do not enable cloud-init on systems where there is no DMI just + because no data source has been found. No data source means + cloud-init will not run. + +------------------------------------------------------------------- +Fri Apr 5 18:01:39 UTC 2024 - Robert Schweikert + +- Add cloud-init-no-nmcfg-needed.patch (bsc#1221726) + + Do not require a NetworkManager config file in order to detect + NetworkManager as the renderer + +------------------------------------------------------------------- +Fri Apr 5 14:27:16 UTC 2024 - Robert Schweikert + +- Add cloud-init-no-openstack-guess.patch (bsc#1222113) + + Do not guess if we are running on OpenStack or not. Only recognize + the known markers and enable cloud-init if we know for sure. + +------------------------------------------------------------------- +Thu Mar 28 12:22:05 UTC 2024 - Robert Schweikert + +- Add cloud-init-ds-deterministic.patch (bsc#1221132) + + Do not guess a data source when checking for a CloudStack + environment + +------------------------------------------------------------------- +Wed Mar 6 08:42:20 UTC 2024 - Frederic Crozat + +- Hardcode distribution to suse for proper cloud.cfg generation + (bsc#1220132). + +------------------------------------------------------------------- +Tue Feb 20 20:29:27 UTC 2024 - Robert Schweikert + +- Prepare for RPM 4.20 switch patch syntax + +------------------------------------------------------------------- +Sat Jan 20 09:20:42 UTC 2024 - Robert Schweikert + +- Add cloud-init-skip-empty-conf.patch + + Skip tests with empty config + +------------------------------------------------------------------- +Fri Jan 19 19:19:49 UTC 2024 - Robert Schweikert + +- Add cloud-init-pckg-reboot.patch (boo#1198533, bsc#1218952, jsc#SMO-326) + + Support reboot on package update/upgrade via the cloud-init config + +------------------------------------------------------------------- +Fri Dec 15 14:09:36 UTC 2023 - Robert Schweikert + +- Switch build dependency to the generic distribution-release package + +------------------------------------------------------------------- +Fri Dec 1 23:16:08 UTC 2023 - Michal Vyskocil + +- Move fdupes call back to %install (boo#1214169) + +------------------------------------------------------------------- +Mon Oct 9 14:26:40 UTC 2023 - Robert Schweikert + +- Update to version 23.3 (bsc#1216011, bsc#1215794, bsc#1215740) + + Remove patches included upstream: + - cloud-init-fix-ca-test.patch + - cloud-init-cve-2023-1786-redact-instance-data-json-main.patch + - cloud-init-power-rhel-only.patch + - cloud-init-flake8-fixes.patch + + Add + - cloud-init-keep-flake.patch + - cloud-init-lint-fixes.patch + + Update + - cloud-init-write-routes.patch (bsc#1216007) + + Bump pycloudlib to 1!5.1.0 for ec2 mantic daily image support (#4390) + + Fix cc_keyboard in mantic (LP: #2030788) + + ec2: initialize get_instance_userdata return value to bytes (#4387) + [Noah Meyerhans] + + cc_users_groups: Add doas/opendoas support (#4363) [dermotbradley] + + Fix pip-managed ansible + + status: treat SubState=running and MainPID=0 as service exited + + azure/imds: increase read-timeout to 30s (#4372) [Chris Patterson] + + collect-logs fix memory usage (SC-1590) (#4289) + [Alec Warren] (LP: #1980150) + + cc_mounts: Use fallocate to create swapfile on btrfs (#4369) [王煎饼] + + Undocument nocloud-net (#4318) + + feat(akamai): add akamai to settings.py and apport.py (#4370) + + read-version: fallback to get_version when git describe fails (#4366) + + apt: fix cloud-init status --wait blocking on systemd v 253 (#4364) + + integration tests: Pass username to pycloudlib (#4324) + + Bump pycloudlib to 1!5.1.0 (#4353) + + cloud.cfg.tmpl: reorganise, minimise/reduce duplication (#4272) + [dermotbradley] + + analyze: fix (unexpected) timestamp parsing (#4347) [Mina Galić] + + cc_growpart: fix tests to run on FreeBSD (#4351) [Mina Galić] + + subp: Fix spurious test failure on FreeBSD (#4355) [Mina Galić] + + cmd/clean: fix tests on non-Linux platforms (#4352) [Mina Galić] + + util: Fix get_proc_ppid() on non-Linux systems (#4348) [Mina Galić] + + cc_wireguard: make tests pass on FreeBSD (#4346) [Mina Galić] + + unittests: fix breakage in test_read_cfg_paths_fetches_cached_datasource + (#4328) [Ani Sinha] + + Fix test_tools.py collection (#4315) + + cc_keyboard: add Alpine support (#4278) [dermotbradley] + + Flake8 fixes (#4340) [Robert Schweikert] + + cc_mounts: Fix swapfile not working on btrfs (#4319) [王煎饼] (LP: #1884127) + + ds-identify/CloudStack: $DS_MAYBE if vm running on vmware/xen (#4281) + [Wei Zhou] + + ec2: Support double encoded userdata (#4276) [Noah Meyerhans] + + cc_mounts: xfs is a Linux only FS (#4334) [Mina Galić] + + tests/net: fix TestGetInterfaces' mock coverage for get_master (#4336) + [Chris Patterson] + + change openEuler to openeuler and fix some bugs in openEuler (#4317) + [sxt1001] + + Replace flake8 with ruff (#4314) + + NM renderer: set default IPv6 addr-gen-mode for all interfaces to eui64 + (#4291) [Ani Sinha] + + cc_ssh_import_id: add Alpine support and add doas support (#4277) + [dermotbradley] + + sudoers not idempotent (SC-1589) (#4296) [Alec Warren] (LP: #1998539) + + Added support for Akamai Connected Cloud (formerly Linode) (#4167) + [Will Smith] + + Fix reference before assignment (#4292) + + Overhaul module reference page (#4237) [Sally] + + replaced spaces with commas for setting passenv (#4269) [Alec Warren] + + DS VMware: modify a few log level (#4284) [PengpengSun] + + tools/read-version refactors and unit tests (#4268) + + Ensure get_features() grabs all features (#4285) + + Don't always require passlib dependency (#4274) + + tests: avoid leaks into host system checking of ovs-vsctl cmd (#4275) + + Fix NoCloud kernel commandline key parsing (#4273) + + testing: Clear all LRU caches after each test (#4249) + + Remove the crypt dependency (#2139) [Gonéri Le Bouder] + + logging: keep current file mode of log file if its stricter than the + new mode (#4250) [Ani Sinha] + + Remove default membership in redundant groups (#4258) + [Dave Jones] (LP: #1923363) + + doc: improve datasource_creation.rst (#4262) + + Remove duplicate Integration testing button (#4261) [Rishita Shaw] + + tools/read-version: fix the tool so that it can handle version parsing + errors (#4234) [Ani Sinha] + + net/dhcp: add udhcpc support (#4190) [Jean-François Roche] + + DS VMware: add i386 arch dir to deployPkg plugin search path + [PengpengSun] + + LXD moved from linuxcontainers.org to Canonical [Simon Deziel] + + cc_mounts.py: Add note about issue with creating mounts inside mounts + (#4232) [dermotbradley] + + lxd: install lxd from snap, not deb if absent in image + + landscape: use landscape-config to write configuration + + Add deprecation log during init of DataSourceDigitalOcean (#4194) + [tyb-truth] + + doc: fix typo on apt.primary.arches (#4238) [Dan Bungert] + + Inspect systemd state for cloud-init status (#4230) + + instance-data: add system-info and features to combined-cloud-config + (#4224) + + systemd: Block login until config stage completes (#2111) (LP: #2013403) + + tests: proposed should invoke apt-get install -t=-proposed + (#4235) + + cloud.cfg.tmpl: reinstate ca_certs entry (#4236) [dermotbradley] + + Remove feature flag override ability (#4228) + + tests: drop stray unrelated file presence test (#4227) + + Update LXD URL (#4223) [Sally] + + schema: add network v1 schema definition and validation functions + + tests: daily PPA for devel series is version 99.daily update tests to + match (#4225) + + instance-data: write /run/cloud-init/combined-cloud-config.json + + mount parse: Fix matching non-existent directories (#4222) [Mina Galić] + + Specify build-system for pep517 (#4218) + + Fix network v2 metric rendering (#4220) + + Migrate content out of FAQ page (SD-1187) (#4205) [Sally] + + setup: fix generation of init templates (#4209) [Mina Galić] + + docs: Correct some bootcmd example wording + + fix changelog + + tests: reboot client to assert x-shellscript-per-boot is triggered + + nocloud: parse_cmdline no longer detects nocloud-net datasource (#4204) + (LP: 4203, #2025180) + + Add docstring and typing to mergemanydict (#4200) + + BSD: add dsidentify to early startup scripts (#4182) [Mina Galić] + + handler: report errors on skipped merged cloud-config.txt parts + (LP: #1999952) + + Add cloud-init summit writeups (#4179) [Sally] + + tests: Update test_clean_log for oci (#4187) + + gce: improve ephemeral fallback NIC selection (CPC-2578) (#4163) + + tests: pin pytest 7.3.1 to avoid adverse testpaths behavior (#4184) + + Ephemeral Networking for FreeBSD (#2165) [Mina Galić] + + Clarify directory syntax for nocloud local filesystem. (#4178) + + Set default renderer as sysconfig for centos/rhel (#4165) [Ani Sinha] + + Test static routes and netplan 0.106 + + FreeBSD fix parsing of mount and mount options (#2146) [Mina Galić] + + test: add tracking bug id (#4164) + + tests: can't match MAC for LXD container veth due to netplan 0.106 + (#4162) + + Add kaiwalyakoparkar as a contributor (#4156) [Kaiwalya Koparkar] + + BSD: remove datasource_list from cloud.cfg template (#4159) [Mina Galić] + + launching salt-minion in masterless mode (#4110) [Denis Halturin] + + tools: fix run-container builds for rockylinux/8 git hash mismatch + (#4161) + + fix doc lint: spellchecker tripped up (#4160) [Mina Galić] + + Support Ephemeral Networking for BSD (#2127) + + Added / fixed support for static routes on OpenBSD and FreeBSD (#2157) + [Kadir Mueller] + + cc_rsyslog: Refactor for better multi-platform support (#4119) + [Mina Galić] (LP: #1798055) + + tests: fix test_lp1835584 (#4154) + + cloud.cfg mod names: docs and rename salt_minion and set_password (#4153) + + tests: apt support for deb822 format .sources files on mantic + + vultr: remove check_route check (#2151) [Jonas Chevalier] + + Update SECURITY.md (#4150) [Indrranil Pawar] + + Update CONTRIBUTING.rst (#4149) [Indrranil Pawar] + + Update .github-cla-signers (#4151) [Indrranil Pawar] + + Standardise module names in cloud.cfg.tmpl to only use underscore + (#4128) [dermotbradley] + + tests: update test_webhook_reporting + + Modify PR template so autoclose works + + doc: add missing semi-colon to nocloud cmdline docs (#4120) + + .gitignore: extend coverage pattern (#4143) [Mina Galić] + +From 23.2.2 + + Fix NoCloud kernel commandline key parsing (#4273) (Fixes: #4271) + (LP: #2028562) + + Fix reference before assignment (#4292) (Fixes: #4288) (LP: #2028784) + +From 23.2.1 + + nocloud: Fix parse_cmdline detection of nocloud-net datasource (#4204) + (Fixes: 4203) (LP: #2025180) + +From 23.2 + + BSD: simplify finding MBR partitions by removing duplicate code + [Mina Galić] + + tests: bump pycloudlib version for mantic builds + + network-manager: Set higher autoconnect priority for nm keyfiles (#3671) + [Ani Sinha] + + alpine.py: change the locale file used (#4139) [dermotbradley] + + cc_ntp: Sync up with current FreeBSD ntp.conf (#4122) [Mina Galić] + + config: drop refresh_rmc_and_interface as RHEL 7 no longer supported + [Robert Schweikert] + + docs: Add feedback button to docs + + net/sysconfig: enable sysconfig renderer if network manager has ifcfg-rh + plugin (#4132) [Ani Sinha] + + For Alpine use os-release PRETTY_NAME (#4138) [dermotbradley] + + network_manager: add a method for ipv6 static IP configuration (#4127) + [Ani Sinha] + + correct misnamed template file host.mariner.tmpl (#4124) [dermotbradley] + + nm: generate ipv6 stateful dhcp config at par with sysconfig (#4115) + [Ani Sinha] + + Add templates for GitHub Issues + + Add 'peers' and 'allow' directives in cc_ntp (#3124) [Jacob Salmela] + + FreeBSD: Fix user account locking (#4114) [Mina Galić] (GH: #1854594) + + FreeBSD: add ResizeGrowFS class to cc_growpart (#2334) [Mina Galić] + + Update tests in Azure TestCanDevBeReformatted class (#2771) + [Ksenija Stanojevic] + + Replace Launchpad references with GitHub Issues + + Fix KeyError in iproute pformat (#3287) [Dmitry Zykov] + + schema: read_cfg_paths call init.fetch to lookup /v/l/c/instance + + azure/errors: introduce reportable errors for imds (#3647) + [Chris Patterson] + + FreeBSD (and friends): better identify MBR slices (#2168) + [Mina Galić] (LP: #2016350) + + azure/errors: add host reporting for dhcp errors (#2167) + [Chris Patterson] + + net: purge blacklist_drivers across net and azure (#2160) + [Chris Patterson] + + net: refactor hyper-v VF filtering and apply to get_interfaces() (#2153) + [Chris Patterson] + + tests: avoid leaks to underlying filesystem for /etc/cloud/clean.d + (#2251) + + net: refactor find_candidate_nics_on_linux() to use get_interfaces() + (#2159) [Chris Patterson] + + resolv_conf: Allow > 3 nameservers (#2152) [Major Hayden] + + Remove mount NTFS error message (#2134) [Ksenija Stanojevic] + + integration tests: fix image specification parsing (#2166) + + ci: add hypothesis scheduled GH check (#2149) + + Move supported distros list to docs (#2162) + + Fix logger, use instance rather than module function (#2163) + + README: Point to Github Actions build status (#2158) + + Revert "fix linux-specific code on bsd (#2143)" (#2161) + + Do not generate dsa and ed25519 key types when crypto FIPS mode is + enabled (#2142) [Ani Sinha] (LP: 2017761) + + Add documentation label automatically (#2156) + + sources/azure: report success to host and introduce kvp module (#2141) + [Chris Patterson] + + setup.py: use pkg-config for udev/rules path (#2137) [dankm] + + openstack/static: honor the DNS servers associated with a network + (#2138) [Gonéri Le Bouder] + + fix linux-specific code on bsd (#2143) + + cli: schema validation of jinja template user-data (SC-1385) (#2132) + (LP: #1881925) + + gce: activate network discovery on every boot (#2128) + + tests: update integration test to assert 640 across reboots (#2145) + + Make user/vendor data sensitive and remove log permissions (#2144) + (LP: #2013967) + + Update kernel command line docs (SC-1457) (#2133) + + docs: update network configuration path links (#2140) [d1r3ct0r] + + sources/azure: report failures to host via kvp (#2136) [Chris Patterson] + + net: Document use of `ip route append` to add routes (#2130) + + dhcp: Add missing mocks (#2135) + + azure/imds: retry fetching metadata up to 300 seconds (#2121) + [Chris Patterson] + + [1/2] DHCP: Refactor dhcp client code (#2122) + + azure/errors: treat traceback_base64 as string (#2131) [Chris Patterson] + + azure/errors: introduce reportable errors (#2129) [Chris Patterson] + + users: schema permit empty list to indicate create no users + + azure: introduce identity module (#2116) [Chris Patterson] + + Standardize disabling cloud-init on non-systemd (#2112) + + Update .github-cla-signers (#2126) [Rob Tongue] + + NoCloud: Use seedfrom protocol to determine mode (#2107) + + rhel: Remove sysvinit files. (#2114) + + tox.ini: set -vvvv --showlocals for pytest (#2104) [Chris Patterson] + + Fix NoCloud kernel commandline semi-colon args + + run-container: make the container/VM timeout configurable (#2118) + [Paride Legovini] + + suse: Remove sysvinit files. (#2115) + + test: Backport assert_call_count for old requests (#2119) + + Add "licebmi" as contributor (#2113) [Mark Martinez] + + Adapt DataSourceScaleway to upcoming IPv6 support (#2033) + [Louis Bouchard] + + rhel: make sure previous-hostname file ends with a new line (#2108) + [Ani Sinha] + + Adding contributors for DataSourceAkamai (#2110) [acourdavAkamai] + + Cleanup ephemeral IP routes on exception (#2100) [sxt1001] + + commit 09a64badfb3f51b1b391fa29be19962381a4bbeb [sxt1001] (LP: #2011291) + + Standardize kernel commandline user interface (#2093) + + config/cc_resizefs: fix do_resize arguments (#2106) [Chris Patterson] + + Fix test_dhclient_exits_with_error (#2105) + + net/dhcp: catch dhclient failures and raise NoDHCPLeaseError (#2083) + [Chris Patterson] + + sources/azure: move pps handling out of _poll_imds() (#2075) + [Chris Patterson] + + tests: bump pycloudlib version (#2102) + + schema: do not manipulate draft4 metaschema for jsonschema 2.6.0 (#2098) + + sources/azure/imds: don't count timeout errors as connection errors + (#2074) [Chris Patterson] + + Fix Python 3.12 unit test failures (#2099) + + integration tests: Refactor instance checking (#1989) + + ci: migrate remaining jobs from travis to gh (#2085) + + missing ending quote in instancedata docs(#2094) [Hong L] + + refactor: stop passing log instances to cc_* handlers (#2016) [d1r3ct0r] + + tests/vmware: fix test_no_data_access_method failure (#2092) + [Chris Patterson] + + Don't change permissions of netrules target (#2076) (LP: #2011783) + + tests/sources: patch util.get_cmdline() for datasource tests (#2091) + [Chris Patterson] + + macs: ignore duplicate MAC for devs with driver driver qmi_wwan (#2090) + (LP: #2008888) + + Fedora: Enable CA handling (#2086) [František Zatloukal] + + Send dhcp-client-identifier for InfiniBand ports (#2043) [Waleed Mousa] + + cc_ansible: complete the examples and doc (#2082) [Yves] + + bddeb: for dev package, derive debhelper-compat from host system + + apport: only prompt for cloud_name when instance-data.json is absent + + datasource: Optimize datasource detection, fix bugs (#2060) + + Handle non existent ca-cert-config situation (#2073) [Shreenidhi Shedi] + + sources/azure: add networking check for all source PPS (#2061) + [Chris Patterson] + + do not attempt dns resolution on ip addresses (#2040) + + chore: fix style tip (#2071) + + Fix metadata IP in instancedata.rst (#2063) [Brian Haley] + + util: Pass deprecation schedule in deprecate_call() (#2064) + + config: Update grub-dpkg docs (#2058) + + docs: Cosmetic improvements and styling (#2057) [s-makin] + + cc_grub_dpkg: Added UEFI support (#2029) [Alexander Birkner] + + tests: Write to /var/spool/rsyslog to adhere to apparmor profile (#2059) + + oracle-ds: prefer system_cfg over ds network config source (#1998) + (LP: #1956788) + + Remove dead code (#2038) + + source: Force OpenStack when it is only option (#2045) (LP: #2008727) + + cc_ubuntu_advantage: improve UA logs discovery + + sources/azure: fix regressions in IMDS behavior (#2041) [Chris Patterson] + + tests: fix test_schema (#2042) + + dhcp: Cleanup unused kwarg (#2037) + + sources/vmware/imc: fix-missing-catch-few-negtive-scenarios (#2027) + [PengpengSun] + + dhclient_hook: remove vestigal dhclient_hook command (#2015) + + log: Add standardized deprecation tooling (SC-1312) (#2026) + + Enable SUSE based distros for ca handling (#2036) [Robert Schweikert] + +From 23.1.2 + + Make user/vendor data sensitive and remove log permissions + (LP: #2013967) (CVE-2023-1786) + +From 23.1.1 + + source: Force OpenStack when it is only option (#2045) + + sources/azure: fix regressions in IMDS behavior (#2041) + [Chris Patterson] + +------------------------------------------------------------------- +Mon Aug 14 12:05:01 UTC 2023 - Robert Schweikert + +- Add cloud-init-flake8-fixes.patch +- Revert chnages from previous commit + + Disabling checks the primary maintainer enabled for specific reasons + is not a fix. + +------------------------------------------------------------------- +Sun Aug 13 21:02:31 UTC 2023 - Dirk Müller + +- update to 23.1.2: + * Make user/vendor data sensitive and remove log permissions + * source: Force OpenStack when it is only option (#2045) + * sources/azure: fix regressions in IMDS behavior +- drop + cloud-init-cve-2023-1786-redact-instance-data-json-main.patch (upstream) +- spec-file cleanups, including dropping flake8 (as build fails + with newer flake8 versions) + +------------------------------------------------------------------- +Thu Jul 6 12:06:22 UTC 2023 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1212879) + + Add necessary import statement +- Enable flake8 linting, fix up patches + + cloud-init-cve-2023-1786-redact-instance-data-json-main.patch + + cloud-init-power-rhel-only.patch + + cloud-init-write-routes.patch + + datasourceLocalDisk.patch + +------------------------------------------------------------------- +Thu Apr 27 12:22:11 UTC 2023 - Robert Schweikert + +- Add cloud-init-power-rhel-only.patch (bsc#1210273) + + Config module cc_refresh_rmc_and_interface is implemented such that + it will only work on RH distros. Set the module availability accordingly. + +------------------------------------------------------------------- +Tue Apr 11 18:48:30 UTC 2023 - Robert Schweikert + +- Sensitive data exposure (bsc#1210277, CVE-2023-1786) + + Add hidesensitivedata + + Add cloud-init-cve-2023-1786-redact-inst-data.patch + + Do not expose sensitive data gathered from the CSP + +------------------------------------------------------------------- +Thu Feb 23 13:38:43 UTC 2023 - Robert Schweikert + +- Update to version 23.1 + + Remove patches included upstream: + - cloud-init-btrfs-queue-resize.patch + - cloud-init-micro-is-suse.patch + - cloud-init-suse-afternm.patch + - cloud-init-prefer-nm.patch + - cloud-init-transact-up.patch + + Forward port + - cloud-init-write-routes.patch + + Added + - cloud-init-fix-ca-test.patch + + Support transactional-updates for SUSE based distros (#1997) + [Robert Schweikert] + + Set ownership for new folders in Write Files Module (#1980) + [Jack] (LP: #1990513) + + add OpenCloudOS and TencentOS support (#1964) [wynnfeng] + + lxd: Retry if the server isn't ready (#2025) + + test: switch pycloudlib source to pypi (#2024) + + test: Fix integration test deprecation message (#2023) + + Recognize opensuse-microos, dev tooling fixes [Robert Schweikert] + + sources/azure: refactor imds handler into own module (#1977) + [Chris Patterson] + + docs: deprecation generation support [1/2] (#2013) + + add function is_virtual to distro/FreeBSD (#1957) [Mina Galić] + + cc_ssh: support multiple hostcertificates (#2018) (LP: #1999164) + + Fix minor schema validation regression and fixup typing (#2017) + + doc: Reword user data debug section (#2019) + + Overhaul/rewrite of certificate handling as follows: (#1962) + [dermotbradley] (LP: #1931174) + + disk_setup: use byte string when purging the partition table (#2012) + [Stefan Prietl] + + cli: schema also validate vendordata*. + + ci: sort and add checks for cla signers file [Stefan Prietl] + + Add "ederst" as contributor (#2010) [Stefan Prietl] + + readme: add reference to packages dir (#2001) + + docs: update downstream package list (#2002) + + docs: add google search verification (#2000) [s-makin] + + docs: fix 404 render use default notfound_urls_prefix in RTD conf (#2004) + + Fix OpenStack datasource detection on bare metal (#1923) + [Alexander Birkner] (LP: #1815990) + + docs: add themed RTD 404 page and pointer to readthedocs-hosted (#1993) + + schema: fix gpt labels, use type string for GUID (#1995) + + cc_disk_setup: code cleanup (#1996) + + netplan: keep custom strict perms when 50-cloud-init.yaml exists + + cloud-id: better handling of change in datasource files + [d1r3ct0r] (LP: #1998998) + + tests: Remove restart check from test + + Ignore duplicate macs from mscc_felix and fsl_enetc (LP: #1997922) + + Warn on empty network key (#1990) + + Fix Vultr cloud_interfaces usage (#1986) [eb3095] + + cc_puppet: Update puppet service name (#1970) [d1r3ct0r] (LP: #2002969) + + docs: Clarify networking docs (#1987) + + lint: remove httpretty (#1985) [sxt1001] + + cc_set_passwords: Prevent traceback when restarting ssh (#1981) + + tests: fix lp1912844 (#1978) + + tests: Skip ansible test on bionic (#1984) + + Wait for NetworkManager (#1983) [Robert Schweikert] + + docs: minor polishing (#1979) [s-makin] + + CI: migrate integration-test to GH actions (#1969) + + Fix permission of SSH host keys (#1971) [Ron Gebauer] + + Fix default route rendering on v2 ipv6 (#1973) (LP: #2003562) + + doc: fix path in net_convert command (#1975) + + docs: update net_convert docs (#1974) + + doc: fix dead link + + cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it's empty + (#1967) [Emanuele Giuseppe Esposito] + + distros/rhel.py: _read_hostname() missing strip on "hostname" (#1941) + [Mark Mielke] + + integration tests: add IBM VPC support (SC-1352) (#1915) + + machine-id: set to uninitialized to trigger regeneration on clones + (LP: #1999680) + + sources/azure: retry on connection error when fetching metdata (#1968) + [Chris Patterson] + + Ensure ssh state accurately obtained (#1966) + + bddeb: drop dh-systemd dependency on newer deb-based releases [d1r3ct0r] + + doc: fix `config formats` link in cloudsigma.rst (#1960) + + Fix wrong subp syntax in cc_set_passwords.py (#1961) + + docs: update the PR template link to readthedocs (#1958) [d1r3ct0r] + + ci: switch unittests to gh actions (#1956) + + Add mount_default_fields for PhotonOS. (#1952) [Shreenidhi Shedi] + + sources/azure: minor refactor for metadata source detection logic + (#1936) [Chris Patterson] + + add "CalvoM" as contributor (#1955) [d1r3ct0r] + + ci: doc to gh actions (#1951) + + lxd: handle 404 from missing devices route for LXD 4.0 (LP: #2001737) + + docs: Diataxis overhaul (#1933) [s-makin] + + vultr: Fix issue regarding cache and region codes (#1938) [eb3095] + + cc_set_passwords: Move ssh status checking later (SC-1368) (#1909) + (LP: #1998526) + + Improve Wireguard module idempotency (#1940) [Fabian Lichtenegger-Lukas] + + network/netplan: add gateways as on-link when necessary (#1931) + [Louis Sautier] (LP: #2000596) + + tests: test_lxd assert features.networks.zones when present (#1939) + + Use btrfs enquque when available (#1926) [Robert Schweikert] + + sources/azure: drop description for report_failure_to_fabric() (#1934) + [Chris Patterson] + + cc_disk_setup.py: fix MBR single partition creation (#1932) + [dermotbradley] (LP: #1851438) + + Fix typo with package_update/package_upgrade (#1927) [eb3095] + + sources/azure: fix device driver matching for net config (#1914) + [Chris Patterson] + + BSD: fix duplicate macs in Ifconfig parser (#1917) [Mina Galić] + + test: mock dns calls (#1922) + + pycloudlib: add lunar support for integration tests (#1928) + + nocloud: add support for dmi variable expansion for seedfrom URL + (LP: #1994980) + + tools: read-version drop extra call to git describe --long + + doc: improve cc_write_files doc (#1916) + + read-version: When insufficient tags, use cloudinit.version.get_version + + mounts: document weird prefix in schema (#1913) + + add utility function test cases (#1910) [sxt1001] + + test: mock file deletion in dhcp tests (#1911) + + Ensure network ready before cloud-init service runs on RHEL (#1893) + (LP: #1998655) + + docs: add copy button to code blocks (#1890) [s-makin] + + netplan: define features.NETPLAN_CONFIG_ROOT_READ_ONLY flag + + azure: fix support for systems without az command installed (#1908) + + Networking Clarification (#1892) + + Fix the distro.osfamily output problem in the openEuler system. (#1895) + [sxt1001] (LP: #1999042) + + pycloudlib: bump commit dropping azure api smoke test + + net: netplan config root read-only as wifi config can contain creds + + autoinstall: clarify docs for users + + sources/azure: encode health report as utf-8 (#1897) [Chris Patterson] + + Add back gateway4/6 deprecation to docs (#1898) + + networkd: Add support for multiple [Route] sections (#1868) + [Nigel Kukard] + + doc: add qemu tutorial (#1863) + + lint: fix tip-flake8 and tip-mypy (#1896) + + Add support for setting uid when creating users on FreeBSD (#1888) + [einsibjarni] + + Fix exception in BSD networking code-path (#1894) [Mina Galić] + + Append derivatives to is_rhel list in cloud.cfg.tmpl (#1887) [Louis Abel] + + FreeBSD init: use cloudinit_enable as only rcvar (#1875) [Mina Galić] + + feat: add support aliyun metadata security harden mode (#1865) + [Manasseh Zhou] + + docs: uprate analyze to performance page [s-makin] + + test: fix lxd preseed managed network config (#1881) + + Add support for static IPv6 addresses for FreeBSD (#1839) [einsibjarni] + + Make 3.12 failures not fail the build (#1873) + + Docs: adding relative links [s-makin] + + Update read-version + + Fix setup.py to align with PEP 440 versioning replacing trailing + + travis: promote 3.11-dev to 3.11 (#1866) + + test_cloud_sigma: delete useless test (#1828) [sxt1001] + + Add "nkukard" as contributor (#1864) [Nigel Kukard] + + tests: ds-id mocks for vmware-rpctool as utility may not exist in env + + doc: add how to render new module doc (#1855) + + doc: improve module creation explanation (#1851) + + Add Support for IPv6 metadata to OpenStack (#1805) + [Marvin Vogt] (LP: #1906849) + + add xiaoge1001 to .github-cla-signers (#1854) [sxt1001] + + network: Deprecate gateway{4,6} keys in network config v2 (#1794) + (LP: #1992512) + + VMware: Move Guest Customization transport from OVF to VMware (#1573) + [PengpengSun] + + doc: home page links added (#1852) [s-makin] + +From 22.4.2 + + status: handle ds not defined in status.json (#1876) (LP: #1997559) + +From 22.4.1 + + net: skip duplicate mac check for netvsc nic and its VF (#1853) + [Anh Vo] (LP: #1844191) + + ChangeLog: whitespace cleanup (#1850) + + changelog: capture 22.3.1-4 releases + +------------------------------------------------------------------- +Fri Feb 3 22:02:32 UTC 2023 - Robert Schweikert + +- Add cloud-init-transact-up.patch to support transactional-updates + +------------------------------------------------------------------- +Tue Jan 31 19:47:23 UTC 2023 - Robert Schweikert + +- Add cloud-init-prefer-nm.patch + + Prefer NetworkManager of sysconfig when available +- Remove six dependency (bsc#1198269) + +------------------------------------------------------------------- +Thu Dec 22 18:10:45 UTC 2022 - Robert Schweikert + +- Update to version 22.4 (bsc#1201010) + + Remove patches included upstream: + - cloud-init-vmware-test.patch + - cloud-init-sysctl-not-in-bin.patch + + Forward port: + - cloud-init-write-routes.patch + - cloud-init-break-resolv-symlink.patch + - cloud-init-sysconf-path.patch + - cloud-init-no-tempnet-oci.patch + + Add cloud-init-btrfs-queue-resize.patch (bsc#1171511) + + Add cloud-init-micro-is-suse.patch (bsc#1203393) [Martin Petersen] + + Add cloud-init-suse-afternm.patch + + test: fix pro integration test [Alberto Contreras] + + cc_disk_setup: pass options in correct order to utils (#1829) + [dermotbradley] + + tests: text_lxd basic_preseed verify_clean_log (#1826) + + docs: switch sphinx theme to furo (SC-1327) (#1821) [Alberto Contreras] + + tests: activate Ubuntu Pro tests (only on Jenkins) (#1777) + [Alberto Contreras] + + tests: test_lxd assert features.storage.buckets when present (#1827) + + tests: replace missed ansible install-method with underscore (#1825) + + tests: replace ansible install-method with underscore + + ansible: standardize schema keys + + ci: run json tool on 22.04 rather than 20.04 (#1823) + + Stop using devices endpoint for LXD network config (#1819) + + apport: address new curtin log and config locations (#1812) + + cc_grub: reword docs for clarity (#1818) + + tests: Fix preseed test (#1820) + + Auto-format schema (#1810) + + Ansible Control Module (#1778) + + Fix last reported event possibly not being sent (#1796) (LP: #1993836) + + tests: Ignore unsupported lxd project keys (#1817) [Alberto Contreras] + + udevadm settle should handle non-udev system gracefully (#1806) + [dermotbradley] + + add mariner support (#1780) [Minghe Ren] + + Net: add BSD ifconfig(8) parser and state class (#1779) [Mina Galić] + + adding itjamie to .github-cla-signers [Jamie (Bear) Murphy] + + Fix inconsistency between comment and statement (#1809) [Guillaume Gay] + + Update .github-cla-signers (#1811) [Guillaume Gay] + + alpine.py: Add Alpine-specific manage_service function and update tests + (#1804) [dermotbradley] + + test: add 3.12-dev to Travis CI (#1798) [Alberto Contreras] + + add NWCS datasource (#1793) [shell-skrimp] + + Adding myself as CLA signer (#1799) [s-makin] + + apport: fix some data collection failures due to symlinks (#1797) + [Dan Bungert] + + read-version: Make it compatible with bionic (#1795) [Alberto Contreras] + + lxd: add support for lxd preseed config(#1789) + + Enable hotplug for LXD datasource (#1787) + + cli: collect logs and apport subiquity support + + add support for Container-Optimized OS (#1748) [vteratipally] + + test: temporarily disable failing integration test (#1792) + + Fix LXD/nocloud detection on lxd vm tests (#1791) + + util: Implement __str__ and __iter__ for Version (#1790) + + cc_ua: consume ua json api for enable commands [Alberto Contreras] + + Add clarity to cc_final_message docs (#1788) + + cc_ntp: add support for BSDs (#1759) [Mina Galić] (LP: #1990041) + + make Makefile make agnostic (#1786) [Mina Galić] + + Remove hardcoding and unnecessary overrides in Makefile (#1783) + [Joseph Mingrone] + + Add my username (Jehops) to .github-cla-signers (#1784) [Joseph Mingrone] + + Temporarily remove broken test (#1781) + + Create reference documentation for base config + + cc_ansible: add support for galaxy install (#1736) + + distros/manage_services: add support to disable service (#1772) + [Mina Galić] (LP: #1991024) + + OpenBSD: remove pkg_cmd_environ function (#1773) + [Mina Galić] (LP: 1991567) + + docs: Correct typo in the FAQ (#1774) [Maximilian Wörner] + + tests: Use LXD metadata to determine NoCloud status (#1776) + + analyze: use init-local as start of boot record (#1767) [Chris Patterson] + + docs: use opensuse for distro name in package doc (#1771) + + doc: clarify packages as dev only (#1769) [Alberto Contreras] + + Distro manage service: Improve BSD support (#1758) + [Mina Galić] (LP: #1990070) + + testing: check logs for critical errors (#1765) [Chris Patterson] + + cc_ubuntu_advantage: Handle already attached on Pro [Alberto Contreras] + + doc: Add configuration explanation (SC-1169) + + Fix Oracle DS primary interface when using IMDS (#1757) (LP: #1989686) + + style: prefer absolute imports over relative imports [Mina Galić] + + tests: Fix ip log during instance destruction (#1755) [Alberto Contreras] + + cc_ubuntu_advantage: add ua_config in auto-attach [Alberto Contreras] + + apt configure: sources write/append mode (#1738) + [Fabian Lichtenegger-Lukas] + + networkd: Add test and improve typing. (#1747) [Alberto Contreras] + + pycloudlib: bump commit for gce cpu architecture support (#1750) + + commit ffcb29bc8315d1e1d6244eeb1cbd8095958f7bad (LP: #1307667) + + testing: workaround LXD vendor data (#1740) + + support dhcp{4,6}-overrides in networkd renderer (#1710) [Aidan Obley] + + tests: Drop httpretty in favor of responses (#1720) [Alberto Contreras] + + cc_ubuntu_advantage: Implement custom auto-attach behaviors (#1583) + [Alberto Contreras] + + Fix Oracle DS not setting subnet when using IMDS (#1735) (LP: #1989686) + + testing: focal lxd datasource discovery (#1734) + + cc_ubuntu_advantage: Redact token from logs (#1726) [Alberto Contreras] + + docs: make sure echo properly evaluates the string (#1733) [Mina Galić] + + net: set dhclient lease and pid files (#1715) + + cli: status machine-readable output --format yaml/json (#1663) + (LP: #1883122) + + tests: Simplify does_not_raise (#1731) [Alberto Contreras] + + Refactor: Drop inheritance from object (#1728) [Alberto Contreras] + + testing: LXD datasource now supported on Focal (#1732) + + Allow jinja templating in /etc/cloud (SC-1170) (#1722) (LP: #1913461) + + sources/azure: ensure instance id is always correct (#1727) + [Chris Patterson] + + azure: define new attribute for pre-22.3 pickles (#1725) + + doc: main page Diátaxis rewording (SC-967) (#1701) + + ubuntu advantage: improved idempotency, enable list is now strict + + [Fabian Lichtenegger-Lukas] + + test: bump pycloudlib (#1724) [Alberto Contreras] + + cloud.cfg.tmpl: make sure "centos" settings are identical to "rhel" + (#1639) [Emanuele Giuseppe Esposito] + + lxd: fetch 1.0/devices content (#1712) [Alberto Contreras] + + Update docs according to ad8f406a (#1719) + + testing: Port unittests/analyze to pytest (#1708) [Alberto Contreras] + + doc: Fix rtd builds. (#1718) [Alberto Contreras] + + testing: fully mock noexec calls (#1717) [Alberto Contreras] + + typing: Add types to cc_.handle (#1700) [Alberto Contreras] + + Identify 3DS Outscale Datasource as Ec2 (#1686) [Maxime Dufour] + + config: enable bootstrapping pip in ansible (#1707) + + Fix cc_chef typing issue (#1716) + + Refactor instance json files to use Paths (SC-1238) (#1709) + + tools: read-version check GITHUB_REF and git branch --show-current + (#1677) + + net: Ensure a tmp with exec permissions for dhcp (#1690) + [Alberto Contreras] (LP: #1962343) + + testing: Fix test regression in test_combined (#1713) [Alberto Contreras] + + Identify Huawei Cloud as OpenStack (#1689) [huang xinjie] + + doc: add reporting suggestion to FAQ (SC-1236) (#1698) + +From 22.3 + + sources: obj.pkl cache should be written anyime get_data is run (#1669) + + schema: drop release number from version file (#1664) + + pycloudlib: bump to quiet azure HTTP info logs (#1668) + + test: fix wireguard integration tests (#1666) + + Github is deprecating the 18.04 runner starting 12.1 (#1665) + + integration tests: Ensure one setup for all tests (#1661) + + tests: ansible test fixes (#1660) + + Prevent concurrency issue in test_webhook_hander.py (#1658) + + Workaround net_setup_link race with udev (#1655) (LP: #1983516) + + test: drop erroneous lxd assertion, verify command succeeded (#1657) + + Fix Chrony usage on Centos Stream (#1648) [Sven Haardiek] (LP: #1885952) + + sources/azure: handle network unreachable errors for savable PPS (#1642) + [Chris Patterson] + + Return cc_set_hostname to PER_INSTANCE frequency (#1651) (LP: #1983811) + + test: Collect integration test time by default (#1638) + + test: Drop forced package install hack in lxd integration test (#1649) + + schema: Resolve user-data if --system given (#1644) + [Alberto Contreras] (LP: #1983306) + + test: use fake filesystem to avoid file removal (#1647) + [Alberto Contreras] + + tox: Fix tip-flake8 and tip-mypy (#1635) [Alberto Contreras] + + config: Add wireguard config module (#1570) [Fabian Lichtenegger-Lukas] + + tests: can run without azure-cli, tests expect inactive ansible (#1643) + + typing: Type UrlResponse.contents (#1633) [Alberto Contreras] + + testing: fix references to `DEPRECATED.` (#1641) [Alberto Contreras] + + ssh_util: Handle sshd_config.d folder [Alberto Contreras] (LP: #1968873) + + schema: Enable deprecations in cc_update_etc_hosts (#1631) + [Alberto Contreras] + + Add Ansible Config Module (#1579) + + util: Support Idle process state in get_proc_ppid() (#1637) + + schema: Enable deprecations in cc_growpart (#1628) [Alberto Contreras] + + schema: Enable deprecations in cc_users_groups (#1627) + [Alberto Contreras] + + util: Fix error path and parsing in get_proc_ppid() + + main: avoid downloading full contents cmdline urls (#1606) + [Alberto Contreras] (LP: #1937319) + + schema: Enable deprecations in cc_scripts_vendor (#1629) + [Alberto Contreras] + + schema: Enable deprecations in cc_set_passwords (#1630) + [Alberto Contreras] + + sources/azure: add experimental support for preprovisioned os disks + (#1622) [Chris Patterson] + + Remove configobj a_to_u calls (#1632) [Stefano Rivera] + + cc_debug: Drop this module (#1614) [Alberto Contreras] + + schema: add aggregate descriptions in anyOf/oneOf (#1636) + + testing: migrate test_sshutil to pytest (#1617) [Alberto Contreras] + + testing: Fix test_ca_certs integration test (#1626) [Alberto Contreras] + + testing: add support for pycloudlib's pro images (#1604) + [Alberto Contreras] + + testing: migrate test_cc_set_passwords to pytest (#1615) + [Alberto Contreras] + + network: add system_info network activator cloud.cfg overrides (#1619) + (LP: #1958377) + + docs: Align git remotes with uss-tableflip setup (#1624) + [Alberto Contreras] + + testing: cover active config module checks (#1609) [Alberto Contreras] + + lxd: lvm avoid thinpool when kernel module absent + + lxd: enable MTU configuration in cloud-init + + doc: pin doc8 to last passing version + + cc_set_passwords fixes (#1590) + + Modernise importer.py and type ModuleDetails (#1605) [Alberto Contreras] + + config: Def activate_by_schema_keys for t-z (#1613) [Alberto Contreras] + + config: define activate_by_schema_keys for p-r mods (#1611) + [Alberto Contreras] + + clean: add param to remove /etc/machine-id for golden image creation + + config: define `activate_by_schema_keys` for a-f mods (#1608) + [Alberto Contreras] + + config: define activate_by_schema_keys for s mods (#1612) + [Alberto Contreras] + + sources/azure: reorganize tests for network config (#1586) + + [Chris Patterson] + + config: Define activate_by_schema_keys for g-n mods (#1610) + [Alberto Contreras] + + meta-schema: add infra to skip inapplicable modules [Alberto Contreras] + + sources/azure: don't set cfg["password"] for default user pw (#1592) + [Chris Patterson] + + schema: activate grub-dpkg deprecations (#1600) [Alberto Contreras] + + docs: clarify user password purposes (#1593) + + cc_lxd: Add btrfs and lvm lxd storage options (SC-1026) (#1585) + + archlinux: Fix distro naming[1] (#1601) [Kristian Klausen] + + cc_ubuntu_autoinstall: support live-installer autoinstall config + + clean: allow third party cleanup scripts in /etc/cloud/clean.d (#1581) + + sources/azure: refactor chassis asset tag handling (#1574) + [Chris Patterson] + + Add "netcho" as contributor (#1591) [Kaloyan Kotlarski] + + testing: drop impish support (#1596) [Alberto Contreras] + + black: fix missed formatting issue which landed in main (#1594) + + bsd: Don't assume that root user is in root group (#1587) + + docs: Fix comment typo regarding use of packages (#1582) + [Peter Mescalchin] + + Update govc command in VMWare walkthrough (#1576) [manioo8] + + Update .github-cla-signers (#1588) [Daniel Mullins] + + Rename the openmandriva user to omv (#1575) [Bernhard Rosenkraenzer] + + sources/azure: increase read-timeout to 60 seconds for wireserver + (#1571) [Chris Patterson] + + Resource leak cleanup (#1556) + + testing: remove appereances of FakeCloud (#1584) [Alberto Contreras] + + Fix expire passwords for hashed passwords (#1577) + [Sadegh Hayeri] (LP: #1979065) + + mounts: fix suggested_swapsize for > 64GB hosts (#1569) [Steven Stallion] + + Update chpasswd schema to deprecate password parsing (#1517) + + tox: Remove entries from default envlist (#1578) (LP: #1980854) + + tests: add test for parsing static dns for existing devices (#1557) + [Jonas Konrad] + + testing: port cc_ubuntu_advantage test to pytest (#1559) + [Alberto Contreras] + + Schema deprecation handling (#1549) [Alberto Contreras] + + Enable pytest to run in parallel (#1568) + + sources/azure: refactor ovf-env.xml parsing (#1550) [Chris Patterson] + + schema: Force stricter validation (#1547) + + ubuntu advantage config: http_proxy, https_proxy (#1512) + [Fabian Lichtenegger-Lukas] + + net: fix interface matching support (#1552) (LP: #1979877) + + Fuzz testing jsonchema (#1499) [Alberto Contreras] + + testing: Wait for changed boot-id in test_status.py (#1548) + + CI: Fix GH pinned-format jobs (#1558) [Alberto Contreras] + + Typo fix (#1560) [Jaime Hablutzel] + + tests: mock dns lookup that causes long timeouts (#1555) + + tox: add unpinned env for do_format and check_format (#1554) + + cc_ssh_import_id: Substitute deprecated warn (#1553) [Alberto Contreras] + + Remove schema errors from log (#1551) (LP: #1978422) (CVE-2022-2084) + + Update WebHookHandler to run as background thread (SC-456) (#1491) + (LP: #1910552) + + testing: Don't run custom cloud dir test on Bionic (#1542) + + bash completion: update schema command (#1543) (LP: #1979547) + + CI: add non-blocking run against the linters tip versions (#1531) + [Paride Legovini] + + Change groups within the users schema to support lists and strings + (#1545) [RedKrieg] + + make it clear which username should go in the contributing doc (#1546) + + Pin setuptools for Travis (SC-1136) (#1540) + + Fix LXD datasource crawl when BOOT enabled (#1537) + + testing: Fix wrong path in dual stack test (#1538) + + cloud-config: honor cloud_dir setting (#1523) + [Alberto Contreras] (LP: #1976564) + + Add python3-debconf to pkg-deps.json Build-Depends (#1535) + [Alberto Contreras] + + redhat spec: udev/rules.d lives under /usr/lib on rhel-based systems + (#1536) + + tests/azure: add test coverage for DisableSshPasswordAuthentication + (#1534) [Chris Patterson] + + summary: Add david-caro to the cla signers (#1527) [David Caro] + + Add support for OpenMandriva (https://openmandriva.org/) (#1520) + [Bernhard Rosenkraenzer] + + tests/azure: refactor ovf creation (#1533) [Chris Patterson] + + Improve DataSourceOVF error reporting when script disabled (#1525) [rong] + + tox: integration-tests-jenkins: softfail if only some test failed + (#1528) [Paride Legovini] + + CI: drop linters from Travis CI (moved to GH Actions) (#1530) + [Paride Legovini] + + sources/azure: remove unused encoding support for customdata (#1526) + [Chris Patterson] + + sources/azure: remove unused metadata captured when parsing ovf (#1524) + [Chris Patterson] + + sources/azure: remove dscfg parsing from ovf-env.xml (#1522) + [Chris Patterson] + + Remove extra space from ec2 dual stack crawl message (#1521) + + tests/azure: use namespaces in generated ovf-env.xml documents (#1519) + [Chris Patterson] + + setup.py: adjust udev/rules default path (#1513) + [Emanuele Giuseppe Esposito] + + Add python3-deconf dependency (#1506) [Alberto Contreras] + + Change match macadress param for network v2 config (#1518) + [Henrique Caricatti Capozzi] + + sources/azure: remove unused userdata property from ovf (#1516) + [Chris Patterson] + + sources/azure: minor refactoring to network config generation (#1497) + [Chris Patterson] + + net: Implement link-local ephemeral ipv6 + + Rename function to avoid confusion (#1501) + + Fix cc_phone_home requiring 'tries' (#1500) (LP: #1977952) + + datasources: replace networking functions with stdlib and cloudinit.net + + code + + Remove xenial references (#1472) [Alberto Contreras] + + Oracle ds changes (#1474) [Alberto Contreras] (LP: #1967942) + + improve runcmd docs (#1498) + + add 3.11-dev to Travis CI (#1493) + + Only run github actions on pull request (#1496) + + Fix integration test client creation (#1494) [Alberto Contreras] + + tox: add link checker environment, fix links (#1480) + + cc_ubuntu_advantage: Fix doc (#1487) [Alberto Contreras] + + cc_yum_add_repo: Fix repo id canonicalization (#1489) + [Alberto Contreras] (LP: #1975818) + + Add linitio as contributor in the project (#1488) [Kevin Allioli] + + net-convert: use yaml.dump for debugging python NetworkState obj (#1484) + (LP: #1975907) + + test_schema: no relative $ref URLs, replace $ref with local path (#1486) + + cc_set_hostname: do not write "localhost" when no hostname is given + + (#1453) [Emanuele Giuseppe Esposito] + + Update .github-cla-signers (#1478) [rong] + + schema: write_files defaults, versions $ref full URL and add vscode + (#1479) + + docs: fix external links, add one more to the list (#1477) + + doc: Document how to change module frequency (#1481) + + tests: bump pycloudlib (#1482) + + tests: bump pycloudlib pinned commit for kinetic Azure (#1476) + + testing: fix test_status.py (#1475) + + integration tests: If KEEP_INSTANCE = True, log IP (#1473) + + Drop mypy excluded files (#1454) [Alberto Contreras] + + Docs additions (#1470) + + Add "formatting tests" to Github Actions + + Remove unused arguments in function signature (#1471) + + Changelog: correct errant classification of LP issues as GH (#1464) + + Use Network-Manager and Netplan as default renderers for RHEL and Fedora + (#1465) [Emanuele Giuseppe Esposito] + +From 22.2 + + Fix test due to caplog incompatibility (#1461) [Alberto Contreras] + + Align rhel custom files with upstream (#1431) + [Emanuele Giuseppe Esposito] + + cc_write_files: Improve schema. (#1460) [Alberto Contreras] + + cli: Redact files with permission errors in commands (#1440) + + [Alberto Contreras] (LP: #1953430) + + Improve cc_set_passwords. (#1456) [Alberto Contreras] + + testing: make fake cloud-init wait actually wait (#1459) + + Scaleway: Fix network configuration for netplan 0.102 and later (#1455) + [Maxime Corbin] + + Fix 'ephmeral' typos in disk names(#1452) [Mike Hucka] + + schema: version schema-cloud-config-v1.json (#1424) + + cc_modules: set default meta frequency value when no config available + (#1457) + + Log generic warning on non-systemd systems. (#1450) [Alberto Contreras] + + cc_snap.maybe_install_squashfuse no longer needed in Bionic++. (#1448) + [Alberto Contreras] + + Drop support of *-sk keys in cc_ssh (#1451) [Alberto Contreras] + + testing: Fix console_log tests (#1437) + + tests: cc_set_passoword update for systemd, non-systemd distros (#1449) + + Fix bug in url_helper/dual_stack() logging (#1426) + + schema: render schema paths from _CustomSafeLoaderWithMarks (#1391) + + testing: Make integration tests kinetic friendly (#1441) + + Handle error if SSH service no present. (#1422) + [Alberto Contreras] (LP: #1969526) + + Fix network-manager activator availability and order (#1438) + + sources/azure: remove reprovisioning marker (#1414) [Chris Patterson] + + upstart: drop vestigial support for upstart (#1421) + + testing: Ensure NoCloud detected in test (#1439) + + Update .github-cla-signers kallioli [Kevin Allioli] + + Consistently strip top-level network key (#1417) (LP: #1906187) + + testing: Fix LXD VM metadata test (#1430) + + testing: Add NoCloud setup for NoCloud test (#1425) + + Update linters and adapt code for compatibility (#1434) [Paride Legovini] + + run-container: add support for LXD VMs (#1428) [Paride Legovini] + + integration-reqs: bump pycloudlib pinned commit (#1427) [Paride Legovini] + + Fix NoCloud docs (#1423) + + Docs fixes (#1406) + + docs: Add docs for module creation (#1415) + + Remove cheetah from templater (#1416) + + tests: verify_ordered_items fallback to re.escape if needed (#1420) + + Misc module cleanup (#1418) + + docs: Fix doc warnings and enable errors (#1419) + [Alberto Contreras] (LP: #1876341) + + Refactor cloudinit.sources.NetworkConfigSource to enum (#1413) + [Alberto Contreras] (LP: #1874875) + + Don't fail if IB and Ethernet devices 'collide' (#1411) + + Use cc_* module meta defintion over hardcoded vars (SC-888) (#1385) + + Fix cc_rsyslog.py initialization (#1404) [Alberto Contreras] + + Promote cloud-init schema from devel to top level subcommand (#1402) + + mypy: disable missing imports warning for httpretty (#1412) + [Chris Patterson] + + users: error when home should not be created AND ssh keys provided + [Jeffrey 'jf' Lim] + + Allow growpart to resize encrypted partitions (#1316) + + Fix typo in integration_test.rst (#1405) [Alberto Contreras] + + cloudinit.net refactor: apply_network_config_names (#1388) + [Alberto Contreras] (LP: #1884602) + + tests/azure: add fixtures for hardcoded paths (markers and data_dir) + (#1399) [Chris Patterson] + + testing: Add responses workaround for focal/impish (#1403) + + cc_ssh_import_id: fix is_key_in_nested_dict to avoid early False + + Fix ds-identify not detecting NoCloud seed in config (#1381) + (LP: #1876375) + + sources/azure: retry dhcp for failed processes (#1401) [Chris Patterson] + + Move notes about refactorization out of CONTRIBUTING.rst (#1389) + + Shave ~8ms off generator runtime (#1387) + + Fix provisioning dhcp timeout to 20 minutes (#1394) [Chris Patterson] + + schema: module example strict testing fix seed_random + + cc_set_hostname: examples small typo (perserve vs preserve) + [Wouter Schoot] + + sources/azure: refactor http_with_retries to remove **kwargs (#1392) + [Chris Patterson] + + declare dependency on ssh-import-id (#1334) + + drop references to old dependencies and old centos script + + sources/azure: only wait for primary nic to be attached during restore + (#1378) [Anh Vo] + + cc_ntp: migrated legacy schema to cloud-init-schema.json (#1384) + + Network functions refactor and bugfixes (#1383) + + schema: add JSON defs for modules cc_users_groups (#1379) + (LP: #1858930) + + Fix doc typo (#1382) [Alberto Contreras] + + Add support for dual stack IPv6/IPv4 IMDS to Ec2 (#1160) + + Fix KeyError when rendering sysconfig IPv6 routes (#1380) (LP: #1958506) + + Return a namedtuple from subp() (#1376) + + Mypy stubs and other tox maintenance (SC-920) (#1374) + + Distro Compatibility Fixes (#1375) + + Pull in Gentoo patches (#1372) + + schema: add json defs for modules U-Z (#1360) + (LP: #1858928, #1858929, #1858931, #1858932) + + util: atomically update sym links to avoid Suppress FileNotFoundError + + when reading status (#1298) [Adam Collard] (LP: #1962150) + + schema: add json defs for modules scripts-timezone (SC-801) (#1365) + + docs: Add first tutorial (SC-900) (#1368) + + BUG 1473527: module ssh-authkey-fingerprints fails Input/output error… + (#1340) [Andrew Lee] (LP: #1473527) + + add arch hosts template (#1371) + + ds-identify: detect LXD for VMs launched from host with > 5.10 kernel + (#1370) (LP: #1968085) + + Support EC2 tags in instance metadata (#1309) [Eduardo Dobay] + + schema: add json defs for modules e-install (SC-651) (#1366) + + Improve "(no_create_home|system): true" test (#1367) [Jeffrey 'jf' Lim] + + Expose https_proxy env variable to ssh-import-id cmd (#1333) + [Michael Rommel] + + sources/azure: remove bind/unbind logic for hot attached nic (#1332) + [Chris Patterson] + + tox: add types-* packages to check_format env (#1362) + + tests: python 3.10 is showing up in cloudimages (#1364) + + testing: add additional mocks to test_net tests (#1356) [yangzz-97] + + schema: add JSON schema for mcollective, migrator and mounts modules + (#1358) + + Honor system locale for RHEL (#1355) [Wei Shi] + + doc: Fix typo in cloud-config-run-cmds.txt example (#1359) [Ali Shirvani] + + ds-identify: also discover LXD by presence from DMI board_name = LXD + (#1311) + + black: bump pinned version to 22.3.0 to avoid click dependency issues + (#1357) + + Various doc fixes (#1330) + + testing: Add missing is_FreeBSD mock to networking test (#1353) + + Add --no-update to add-apt-repostory call (SC-880) (#1337) + + schema: add json defs for modules K-L (#1321) + (LP: #1858899, #1858900, #1858901, #1858902) + + docs: Re-order readthedocs install (#1354) + + Stop cc_ssh_authkey_fingerprints from ALWAYS creating home (#1343) + [Jeffrey 'jf' Lim] + + docs: add jinja2 pin (#1352) + + Vultr: Use find_candidate_nics, use ipv6 dns (#1344) [eb3095] + + sources/azure: move get_ip_from_lease_value out of shim (#1324) + [Chris Patterson] + + Fix cloud-init status --wait when no datasource found (#1349) + (LP: #1966085) + + schema: add JSON defs for modules resize-salt (SC-654) (#1341) + + Add myself as a future contributor (#1345) [Neal Gompa (ニール・ゴンパ)] + + Update .github-cla-signers (#1342) [Jeffrey 'jf' Lim] + + add Requires=cloud-init-hotplugd.socket in cloud-init-hotplugd.service + + file (#1335) [yangzz-97] + + Fix sysconfig render when set-name is missing (#1327) + [Andrew Kutz] (LP: #1855945) + + Refactoring helper funcs out of NetworkState (#1336) [Andrew Kutz] + + url_helper: add tuple support for readurl timeout (#1328) + [Chris Patterson] + + Make fs labels match for ds-identify and docs (#1329) + + Work around bug in LXD VM detection (#1325) + + Remove redundant generator logs (#1318) + + tox: set verbose flags for integration tests (#1323) [Chris Patterson] + + net: introduce find_candidate_nics() (#1313) [Chris Patterson] + + Revert "Ensure system_cfg read before ds net config on Oracle (#1174)" + (#1326) + + Add vendor_data2 support for ConfigDrive source (#1307) [cvstealth] + + Make VMWare data source test host independent and expand testing (#1308) + [Robert Schweikert] + + Add json schemas for modules starting with P + + sources/azure: remove lease file parsing (#1302) [Chris Patterson] + + remove flaky test from ci (#1322) + + ci: Switch to python 3.10 in Travis CI (#1320) + + Better interface handling for Vultr, expect unexpected DHCP servers + (#1297) [eb3095] + + Remove unused init local artifact (#1315) + + Doc cleanups (#1317) + + docs improvements (#1312) + + add support for jinja do statements, add unit test (#1314) + [Paul Bruno] (LP: #1962759) + + sources/azure: prevent tight loops for DHCP retries (#1285) + [Chris Patterson] + + net/dhcp: surface type of DHCP lease failure to caller (#1276) + [Chris Patterson] + + Stop hardcoding systemctl location (#1278) [Robert Schweikert] + + Remove python2 syntax from docs (#1310) + + [tools/migrate-lp-user-to-github] Rename master branch to main (#1301) + [Adam Collard] + + redhat: Depend on "hostname" package (#1288) [Lubomir Rintel] + + Add native NetworkManager support (#1224) [Lubomir Rintel] + + Fix link in CLA check to point to contribution guide. (#1299) + [Adam Collard] + + check for existing symlink while force creating symlink (#1281) + [Shreenidhi Shedi] + + Do not silently ignore integer uid (#1280) (LP: #1875772) + + tests: create a IPv4/IPv6 VPC in Ec2 integration tests (#1291) + + Integration test fix ppa (#1296) + + tests: on official EC2. cloud-id actually startswith aws not ec2 (#1289) + + test_ppa_source: accept both http and https URLs (#1292) + [Paride Legovini] + + Fix apt test on azure + + add "lkundrak" as contributor [Lubomir Rintel] + + Holmanb/integration test fix ppa (#1287) + + Include missing subcommand in manpage (#1279) + + Clean up artifacts from pytest, packaging, release with make clean + (#1277) + + sources/azure: ensure retries on IMDS request failure (#1271) + [Chris Patterson] + + sources/azure: removed unused savable PPS paths (#1268) [Chris Patterson] + + integration tests: fix Azure failures (#1269) + +From 22.1 + + sources/azure: report ready in local phase (#1265) [Chris Patterson] + + sources/azure: validate IMDS network configuration metadata (#1257) + [Chris Patterson] + + docs: Add more details to runcmd docs (#1266) + + use PEP 589 syntax for TypeDict (#1253) + + mypy: introduce type checking (#1254) [Chris Patterson] + + Fix extra ipv6 issues, code reduction and simplification (#1243) [eb3095] + + tests: when generating crypted password, generate in target env (#1252) + + sources/azure: address mypy/pyright typing complaints (#1245) + [Chris Patterson] + + Docs for x-shellscript* userdata (#1260) + + test_apt_security: azure platform has specific security URL overrides + (#1263) + + tests: lsblk --json output changes mountpoint key to mountpoinst [] + (#1261) + + mounts: fix mount opts string for ephemeral disk (#1250) + [Chris Patterson] + + Shell script handlers by freq (#1166) [Chris Lalos] + + minor improvements to documentation (#1259) [Mark Esler] + + cloud-id: publish /run/cloud-init/cloud-id- files (#1244) + + add "eslerm" as contributor (#1258) [Mark Esler] + + sources/azure: refactor ssh key handling (#1248) [Chris Patterson] + + bump pycloudlib (#1256) + + sources/hetzner: Use EphemeralDHCPv4 instead of static configuration + (#1251) [Markus Schade] + + bump pycloudlib version (#1255) + + Fix IPv6 netmask format for sysconfig (#1215) [Harald] (LP: #1959148) + + sources/azure: drop debug print (#1249) [Chris Patterson] + + tests: do not check instance.pull_file().ok() (#1246) + + sources/azure: consolidate ephemeral DHCP configuration (#1229) + [Chris Patterson] + + cc_salt_minion freebsd fix for rc.conf (#1236) + + sources/azure: fix metadata check in _check_if_nic_is_primary() (#1232) + [Chris Patterson] + + Add _netdev option to mount Azure ephemeral disk (#1213) [Eduardo Otubo] + + testing: stop universally overwriting /etc/cloud/cloud.cfg.d (#1237) + + Integration test changes (#1240) + + Fix Gentoo Locales (#1205) + + Add "slingamn" as contributor (#1235) [Shivaram Lingamneni] + + integration: do not LXD bind mount /etc/cloud/cloud.cfg.d (#1234) + + Integration testing docs and refactor (#1231) + + vultr: Return metadata immediately when found (#1233) [eb3095] + + spell check docs with spellintian (#1223) + + docs: include upstream python version info (#1230) + + Schema a d (#1211) + + Move LXD to end ds-identify DSLIST (#1228) (LP: #1959118) + + fix parallel tox execution (#1214) + + sources/azure: refactor _report_ready_if_needed and _poll_imds (#1222) + [Chris Patterson] + + Do not support setting up archive.canonical.com as a source (#1219) + [Steve Langasek] (LP: #1959343) + + Vultr: Fix lo being used for DHCP, try next on cmd fail (#1208) [eb3095] + + sources/azure: refactor _should_reprovision[_after_nic_attach]() logic + (#1206) [Chris Patterson] + + update ssh logs to show ssh private key gens pub and simplify code + (#1221) [Steve Weber] + + Remove mitechie from stale PR github action (#1217) + + Include POST format in cc_phone_home docs (#1218) (LP: #1959149) + + Add json parsing of ip addr show (SC-723) (#1210) + + cc_rsyslog: fix typo in docstring (#1207) [Louis Sautier] + + Update .github-cla-signers (#1204) [Chris Lalos] + + sources/azure: drop unused case in _report_failure() (#1200) + [Chris Patterson] + + sources/azure: always initialize _ephemeral_dhcp_ctx on unpickle (#1199) + [Chris Patterson] + + Add support for gentoo templates and cloud.cfg (#1179) [vteratipally] + + sources/azure: unpack ret tuple in crawl_metadata() (#1194) + [Chris Patterson] + + tests: focal caplog has whitespace indentation for multi-line logs + (#1201) + + Seek interfaces, skip dummy interface, fix region codes (#1192) [eb3095] + + integration: test against the Ubuntu daily images (#1198) + [Paride Legovini] + + cmd: status and cloud-id avoid change in behavior for 'not run' (#1197) + + tox: pass PYCLOUDLIB_* env vars into integration tests when present + (#1196) + + sources/azure: set ovf_is_accessible when OVF is read successfully + (#1193) [Chris Patterson] + + Enable OVF environment transport via ISO in example (#1195) [Megian] + + sources/azure: consolidate DHCP variants to EphemeralDHCPv4WithReporting + (#1190) [Chris Patterson] + + Single JSON schema validation in early boot (#1175) + + Add DatasourceOVF network-config propery to Ubuntu OVF example (#1184) + [Megian] + + testing: support pycloudlib config file (#1189) + + Ensure system_cfg read before ds net config on Oracle (SC-720) (#1174) + (LP: #1956788) + + Test Optimization Proposal (SC-736) (#1188) + + cli: cloud-id report not-run or disabled state as cloud-id (#1162) + + Remove distutils usage (#1177) [Shreenidhi Shedi] + + add .python-version to gitignore (#1186) + + print error if datasource import fails (#1170) + [Emanuele Giuseppe Esposito] + + Add new config module to set keyboard layout (#1176) + [maxnet] (LP: #1951593) + + sources/azure: rename metadata_type -> MetadataType (#1181) + [Chris Patterson] + + Remove 3.5 and xenial support (SC-711) (#1167) + + tests: mock LXD datasource detection in ds-identify on LXD containers + (#1178) + + pylint: silence errors on compat code for old jsonschema (#1172) + [Paride Legovini] + + testing: Add 3.10 Test Coverage (#1173) + + Remove unittests from integration test job in travis (#1141) + + Don't throw exceptions for empty cloud config (#1130) + + bsd/resolv.d/ avoid duplicated entries (#1163) [Gonéri Le Bouder] + + sources/azure: do not persist failed_desired_api_version flag (#1159) + [Chris Patterson] + + Update cc_ubuntu_advantage calls to assume-yes (#1158) + [John Chittum] (LP: #1954842) + + openbsd: properly restart the network on 7.0 (#1150) [Gonéri Le Bouder] + + Add .git-blame-ignore-revs (#1161) + + Adopt Black and isort (SC-700) (#1157) + + Include dpkg frontend lock in APT_LOCK_FILES (#1153) + + tests/cmd/query: fix test run as root and add coverage for defaults + (#1156) [Chris Patterson] (LP: #1825027) + + Schema processing changes (SC-676) (#1144) + + Add dependency workaround for impish in bddeb (#1148) + + netbsd: install new dep packages (#1151) [Gonéri Le Bouder] + + find_devs_with_openbsd: ensure we return the last entry (#1149) + [Gonéri Le Bouder] + + sources/azure: remove unnecessary hostname bounce (#1143) + [Chris Patterson] + + find_devs/openbsd: accept ISO on disk (#1132) + [Gonéri Le Bouder] + + Improve error log message when mount failed (#1140) [Ksenija Stanojevic] + + add KsenijaS as a contributor (#1145) [Ksenija Stanojevic] + + travis - don't run integration tests if no deb (#1139) + + factor out function for getting top level directory of cloudinit (#1136) + + testing: Add deterministic test id (#1138) + + mock sleep() in azure test (#1137) + + Add miraclelinux support (#1128) [Haruki TSURUMOTO] + + docs: Make MACs lowercase in network config (#1135) (LP: #1876941) + + Add Strict Metaschema Validation (#1101) + + update dead link (#1133) + + cloudinit/net: handle two different routes for the same ip (#1124) + [Emanuele Giuseppe Esposito] + + docs: pin mistune dependency (#1134) + + Reorganize unit test locations under tests/unittests (#1126) + + Fix exception when no activator found (#1129) (LP: #1948681) + + jinja: provide and document jinja-safe key aliases in instance-data + (SC-622) (#1123) + + testing: Remove date from final_message test (SC-638) (#1127) + + Move GCE metadata fetch to init-local (SC-502) (#1122) + + Fix missing metadata routes for vultr (#1125) [eb3095] + + cc_ssh_authkey_fingerprints.py: prevent duplicate messages on console + (#1081) [dermotbradley] + + sources/azure: remove unused remnants related to agent command (#1119) + [Chris Patterson] + + github: update PR template's contributing URL (#1120) [Chris Patterson] + + docs: Rename HACKING.rst to CONTRIBUTING.rst (#1118) + + testing: monkeypatch system_info call in unit tests (SC-533) (#1117) + + Fix Vultr timeout and wait values (#1113) [eb3095] + + lxd: add preference for LXD cloud-init.* config keys over user keys + (#1108) + + VMware: source /etc/network/interfaces.d/* on Debian + [chengcheng-chcheng] (LP: #1950136) + + Add cjp256 as contributor (#1109) [Chris Patterson] + + integration_tests: Ensure log directory exists before symlinking to it + (#1110) + + testing: add growpart integration test (#1104) + + integration_test: Speed up CI run time (#1111) + + Some miscellaneous integration test fixes (SC-606) (#1103) + + tests: specialize lxd_discovery test for lxd_vm vendordata (#1106) + + Add convenience symlink to integration test output (#1105) + + Fix for set-name bug in networkd renderer (#1100) + [Andrew Kutz] (LP: #1949407) + + Wait for apt lock (#1034) (LP: #1944611) + + testing: stop chef test from running on openstack (#1102) + + alpine.py: add options to the apk upgrade command (#1089) [dermotbradley] + +------------------------------------------------------------------- +Fri Feb 18 19:08:21 UTC 2022 - Robert Schweikert + +- Update to version 21.4 (bsc#1192343, jsc#PM-3181) + + Also include VMWare functionality for (jsc#PM-3175) + + Remove patches included upstream: + - cloud-init-purge-cache-py-ver-change.patch + - cloud-init-update-test-characters-in-substitution-unit-test.patch + + Forward port: + - cloud-init-write-routes.patch + - cloud-init-no-tempnet-oci.patch + + Add cloud-init-vmware-test.patch + - Test is system dependend, not properly mocked + + Azure: fallback nic needs to be reevaluated during reprovisioning + (#1094) [Anh Vo] + + azure: pps imds (#1093) [Anh Vo] + + testing: Remove calls to 'install_new_cloud_init' (#1092) + + Add LXD datasource (#1040) + + Fix unhandled apt_configure case. (#1065) [Brett Holman] + + Allow libexec for hotplug (#1088) + + Add necessary mocks to test_ovf unit tests (#1087) + + Remove (deprecated) apt-key (#1068) [Brett Holman] (LP: #1836336) + + distros: Remove a completed "TODO" comment (#1086) + + cc_ssh.py: Add configuration for controlling ssh-keygen output (#1083) + [dermotbradley] + + Add "install hotplug" module (SC-476) (#1069) (LP: #1946003) + + hosts.alpine.tmpl: rearrange the order of short and long hostnames + (#1084) [dermotbradley] + + Add max version to docutils + + cloudinit/dmi.py: Change warning to debug to prevent console display + (#1082) [dermotbradley] + + remove unnecessary EOF string in + disable-sshd-keygen-if-cloud-init-active.conf (#1075) [Emanuele + Giuseppe Esposito] + + Add module 'write-files-deferred' executed in stage 'final' (#916) + [Lucendio] + + Bump pycloudlib to fix CI (#1080) + + Remove pin in dependencies for jsonschema (#1078) + + Add "Google" as possible system-product-name (#1077) [vteratipally] + + Update Debian security suite for bullseye (#1076) [Johann Queuniet] + + Leave the details of service management to the distro (#1074) + [Andy Fiddaman] + + Fix typos in setup.py (#1059) [Christian Clauss] + + Update Azure _unpickle (SC-500) (#1067) (LP: #1946644) + + cc_ssh.py: fix private key group owner and permissions (#1070) + [Emanuele Giuseppe Esposito] + + VMware: read network-config from ISO (#1066) [Thomas Weißschuh] + + testing: mock sleep in gce unit tests (#1072) + + CloudStack: fix data-server DNS resolution (#1004) + [Olivier Lemasle] (LP: #1942232) + + Fix unit test broken by pyyaml upgrade (#1071) + + testing: add get_cloud function (SC-461) (#1038) + + Inhibit sshd-keygen@.service if cloud-init is active (#1028) + [Ryan Harper] + + VMWARE: search the deployPkg plugin in multiarch dir (#1061) + [xiaofengw-vmware] (LP: #1944946) + + Fix set-name/interface DNS bug (#1058) [Andrew Kutz] (LP: #1946493) + + Use specified tmp location for growpart (#1046) [jshen28] + + .gitignore: ignore tags file for ctags users (#1057) [Brett Holman] + + Allow comments in runcmd and report failed commands correctly (#1049) + [Brett Holman] (LP: #1853146) + + tox integration: pass the *_proxy, GOOGLE_*, GCP_* env vars (#1050) + [Paride Legovini] + + Allow disabling of network activation (SC-307) (#1048) (LP: #1938299) + + renderer: convert relative imports to absolute (#1052) [Paride Legovini] + + Support ETHx_IP6_GATEWAY, SET_HOSTNAME on OpenNebula (#1045) + [Vlastimil Holer] + + integration-requirements: bump the pycloudlib commit (#1047) + [Paride Legovini] + + Allow Vultr to set MTU and use as-is configs (#1037) [eb3095] + + pin jsonschema in requirements.txt (#1043) + + testing: remove cloud_tests (#1020) + + Add andgein as contributor (#1042) [Andrew Gein] + + Make wording for module frequency consistent (#1039) [Nicolas Bock] + + Use ascii code for growpart (#1036) [jshen28] + + Add jshen28 as contributor (#1035) [jshen28] + + Skip test_cache_purged_on_version_change on Azure (#1033) + + Remove invalid ssh_import_id from examples (#1031) + + Cleanup Vultr support (#987) [eb3095] + + docs: update cc_disk_setup for fs to raw disk (#1017) + + HACKING.rst: change contact info to James Falcon (#1030) + + tox: bump the pinned flake8 and pylint version (#1029) + [Paride Legovini] (LP: #1944414) + + Add retries to DataSourceGCE.py when connecting to GCE (#1005) + [vteratipally] + + Set Azure to apply networking config every BOOT (#1023) + + Add connectivity_url to Oracle's EphemeralDHCPv4 (#988) (LP: #1939603) + + docs: fix typo and include sudo for report bugs commands (#1022) + [Renan Rodrigo] (LP: #1940236) + + VMware: Fix typo introduced in #947 and add test (#1019) [PengpengSun] + + Update IPv6 entries in /etc/hosts (#1021) [Richard Hansen] (LP: #1943798) + + Integration test upgrades for the 21.3-1 SRU (#1001) + + Add Jille to tools/.github-cla-signers (#1016) [Jille Timmermans] + + Improve ug_util.py (#1013) [Shreenidhi Shedi] + + Support openEuler OS (#1012) [zhuzaifangxuele] + + ssh_utils.py: ignore when sshd_config options are not key/value pairs + (#1007) [Emanuele Giuseppe Esposito] + + Set Azure to only update metadata on BOOT_NEW_INSTANCE (#1006) + + cc_update_etc_hosts: Use the distribution-defined path for the hosts + file (#983) [Andy Fiddaman] + + Add CloudLinux OS support (#1003) [Alexandr Kravchenko] + + puppet config: add the start_agent option (#1002) [Andrew Bogott] + + Fix `make style-check` errors (#1000) [Shreenidhi Shedi] + + Make cloud-id copyright year (#991) [Andrii Podanenko] + + Add support to accept-ra in networkd renderer (#999) [Shreenidhi Shedi] + + Update ds-identify to pass shellcheck (#979) [Andrew Kutz] + + Azure: Retry dhcp on timeouts when polling reprovisiondata (#998) + [aswinrajamannar] + + testing: Fix ssh keys integration test (#992) + +- From 21.3 + + Azure: During primary nic detection, check interface status continuously + before rebinding again (#990) [aswinrajamannar] + + Fix home permissions modified by ssh module (SC-338) (#984) + (LP: #1940233) + + Add integration test for sensitive jinja substitution (#986) + + Ignore hotplug socket when collecting logs (#985) (LP: #1940235) + + testing: Add missing mocks to test_vmware.py (#982) + + add Zadara Edge Cloud Platform to the supported clouds list (#963) + [sarahwzadara] + + testing: skip upgrade tests on LXD VMs (#980) + + Only invoke hotplug socket when functionality is enabled (#952) + + Revert unnecesary lcase in ds-identify (#978) [Andrew Kutz] + + cc_resolv_conf: fix typos (#969) [Shreenidhi Shedi] + + Replace broken httpretty tests with mock (SC-324) (#973) + + Azure: Check if interface is up after sleep when trying to bring it up + (#972) [aswinrajamannar] + + Update dscheck_VMware's rpctool check (#970) [Shreenidhi Shedi] + + Azure: Logging the detected interfaces (#968) [Moustafa Moustafa] + + Change netifaces dependency to 0.10.4 (#965) [Andrew Kutz] + + Azure: Limit polling network metadata on connection errors (#961) + [aswinrajamannar] + + Update inconsistent indentation (#962) [Andrew Kutz] + + cc_puppet: support AIO installations and more (#960) [Gabriel Nagy] + + Add Puppet contributors to CLA signers (#964) [Noah Fontes] + + Datasource for VMware (#953) [Andrew Kutz] + + photon: refactor hostname handling and add networkd activator (#958) + [sshedi] + + Stop copying ssh system keys and check folder permissions (#956) + [Emanuele Giuseppe Esposito] + + testing: port remaining cloud tests to integration testing framework + (SC-191) (#955) + + generate contents for ovf-env.xml when provisioning via IMDS (#959) + [Anh Vo] + + Add support for EuroLinux 7 && EuroLinux 8 (#957) [Aleksander Baranowski] + + Implementing device_aliases as described in docs (#945) + [Mal Graty] (LP: #1867532) + + testing: fix test_ssh_import_id.py (#954) + + Add ability to manage fallback network config on PhotonOS (#941) [sshedi] + + Add VZLinux support (#951) [eb3095] + + VMware: add network-config support in ovf-env.xml (#947) [PengpengSun] + + Update pylint to v2.9.3 and fix the new issues it spots (#946) + [Paride Legovini] + + Azure: mount default provisioning iso before try device listing (#870) + [Anh Vo] + + Document known hotplug limitations (#950) + + Initial hotplug support (#936) + + Fix MIME policy failure on python version upgrade (#934) + + run-container: fixup the centos repos baseurls when using http_proxy + (#944) [Paride Legovini] + + tools: add support for building rpms on rocky linux (#940) + + ssh-util: allow cloudinit to merge all ssh keys into a custom user + file, defined in AuthorizedKeysFile (#937) [Emanuele Giuseppe Esposito] + (LP: #1911680) + + VMware: new "allow_raw_data" switch (#939) [xiaofengw-vmware] + + bump pycloudlib version (#935) + + add renanrodrigo as a contributor (#938) [Renan Rodrigo] + + testing: simplify test_upgrade.py (#932) + + freebsd/net_v1 format: read MTU from root (#930) [Gonéri Le Bouder] + + Add new network activators to bring up interfaces (#919) + + Detect a Python version change and clear the cache (#857) + [Robert Schweikert] + + cloud_tests: fix the Impish release name (#931) [Paride Legovini] + + Removed distro specific network code from Photon (#929) [sshedi] + + Add support for VMware PhotonOS (#909) [sshedi] + + cloud_tests: add impish release definition (#927) [Paride Legovini] + + docs: fix stale links rename master branch to main (#926) + + Fix DNS in NetworkState (SC-133) (#923) + + tests: Add 'adhoc' mark for integration tests (#925) + + Fix the spelling of "DigitalOcean" (#924) [Mark Mercado] + + Small Doc Update for ReportEventStack and Test (#920) [Mike Russell] + + Replace deprecated collections.Iterable with abc replacement (#922) + (LP: #1932048) + + testing: OCI availability domain is now required (SC-59) (#910) + + add DragonFlyBSD support (#904) [Gonéri Le Bouder] + + Use instance-data-sensitive.json in jinja templates (SC-117) (#917) + (LP: #1931392) + + doc: Update NoCloud docs stating required files (#918) (LP: #1931577) + + build-on-netbsd: don't pin a specific py3 version (#913) + [Gonéri Le Bouder] + + Create the log file with 640 permissions (#858) [Robert Schweikert] + + Allow braces to appear in dhclient output (#911) [eb3095] + + Docs: Replace all freenode references with libera (#912) + + openbsd/net: flush the route table on net restart (#908) + [Gonéri Le Bouder] + + Add Rocky Linux support to cloud-init (#906) [Louis Abel] + + Add "esposem" as contributor (#907) [Emanuele Giuseppe Esposito] + + Add integration test for #868 (#901) + + Added support for importing keys via primary/security mirror clauses + (#882) [Paul Goins] (LP: #1925395) + + [examples] config-user-groups expire in the future (#902) + [Geert Stappers] + + BSD: static network, set the mtu (#894) [Gonéri Le Bouder] + + Add integration test for lp-1920939 (#891) + + Fix unit tests breaking from new httpretty version (#903) + + Allow user control over update events (#834) + + Update test characters in substitution unit test (#893) + + cc_disk_setup.py: remove UDEVADM_CMD definition as not used (#886) + [dermotbradley] + + Add AlmaLinux OS support (#872) [Andrew Lukoshko] + +------------------------------------------------------------------- +Thu Feb 17 18:01:31 UTC 2022 - Robert Schweikert + +- systemctl location (bsc#1193531) + - Add cloud-init-sysctl-not-in-bin.patch + - The sytemctl executable is not necessarily in '/bin' + +------------------------------------------------------------------- +Wed Nov 24 04:17:30 UTC 2021 - Steve Kowalik + +- Remove unneeded BuildRequires on python3-nose. + +------------------------------------------------------------------- +Thu Aug 12 11:27:19 UTC 2021 - Robert Schweikert + +- Update to version 21.2 (bsc#1186004) + + Remove patches included upstream: + - cloud-init-azure-def-usr-pass.patch + - cloud-init-after-kvp.diff + - cloud-init-recognize-hpc.patch + - use_arroba_to_include_sudoers_directory-bsc_1181283.patch + - cloud-init-bonding-opts.patch + - cloud-init-log-file-mode.patch + - cloud-init-no-pwd-in-log.patch + - 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch + + Remove cloud-init-sle12-compat.patch, version in SLE 12 is frozen to 20.2 + + Remove cloud-init-tests-set-exec.patch no longer needed + + Forward port: + - cloud-init-write-routes.patch + - cloud-init-break-resolv-symlink.patch + - cloud-init-sysconf-path.patch + - cloud-init-no-tempnet-oci.patch + + Add \r\n check for SSH keys in Azure (#889) + + Revert "Add support to resize rootfs if using LVM (#721)" (#887) + (LP: #1922742) + + Add Vultaire as contributor (#881) [Paul Goins] + + Azure: adding support for consuming userdata from IMDS (#884) [Anh Vo] + + test_upgrade: modify test_upgrade_package to run for more sources (#883) + + Fix chef module run failure when chef_license is set (#868) [Ben Hughes] + + Azure: Retry net metadata during nic attach for non-timeout errs (#878) + [aswinrajamannar] + + Azure: Retrieve username and hostname from IMDS (#865) [Thomas Stringer] + + Azure: eject the provisioning iso before reporting ready (#861) [Anh Vo] + + Use `partprobe` to re-read partition table if available (#856) + [Nicolas Bock] (LP: #1920939) + + fix error on upgrade caused by new vendordata2 attributes (#869) + (LP: #1922739) + + add prefer_fqdn_over_hostname config option (#859) + [hamalq] (LP: #1921004) + + Emit dots on travis to avoid timeout (#867) + + doc: Replace remaining references to user-scripts as a config module + (#866) [Ryan Harper] + + azure: Removing ability to invoke walinuxagent (#799) [Anh Vo] + + Add Vultr support (#827) [David Dymko] + + Fix unpickle for source paths missing run_dir (#863) + [lucasmoura] (LP: #1899299) + + sysconfig: use BONDING_MODULE_OPTS on SUSE (#831) [Jens Sandmann] + + bringup_static_routes: fix gateway check (#850) [Petr Fedchenkov] + + add hamalq user (#860) [hamalq] + + Add support to resize rootfs if using LVM (#721) + [Eduardo Otubo] (LP: #1799953) + + Fix mis-detecting network configuration in initramfs cmdline (#844) + (LP: #1919188) + + tools/write-ssh-key-fingerprints: do not display empty header/footer + (#817) [dermotbradley] + + Azure helper: Ensure Azure http handler sleeps between retries (#842) + [Johnson Shi] + + Fix chef apt source example (#826) [timothegenzmer] + + .travis.yml: generate an SSH key before running tests (#848) + + write passwords only to serial console, lock down cloud-init-output.log + (#847) (LP: #1918303) + + Fix apt default integration test (#845) + + integration_tests: bump pycloudlib dependency (#846) + + Fix stack trace if vendordata_raw contained an array (#837) [eb3095] + + archlinux: Fix broken locale logic (#841) + [Kristian Klausen] (LP: #1402406) + + Integration test for #783 (#832) + + integration_tests: mount more paths IN_PLACE (#838) + + Fix requiring device-number on EC2 derivatives (#836) (LP: #1917875) + + Remove the vi comment from the part-handler example (#835) + + net: exclude OVS internal interfaces in get_interfaces (#829) + (LP: #1912844) + + tox.ini: pass OS_* environment variables to integration tests (#830) + + integration_tests: add OpenStack as a platform (#804) + + Add flexibility to IMDS api-version (#793) [Thomas Stringer] + + Fix the TestApt tests using apt-key on Xenial and Hirsute (#823) + [Paride Legovini] (LP: #1916629) + + doc: remove duplicate "it" from nocloud.rst (#825) [V.I. Wood] + + archlinux: Use hostnamectl to set the transient hostname (#797) + [Kristian Klausen] + + cc_keys_to_console.py: Add documentation for recently added config key + (#824) [dermotbradley] + + Update cc_set_hostname documentation (#818) [Toshi Aoyama] + +From 21.1 + + Azure: Support for VMs without ephemeral resource disks. (#800) + [Johnson Shi] (LP: #1901011) + + cc_keys_to_console: add option to disable key emission (#811) + [Michael Hudson-Doyle] (LP: #1915460) + + integration_tests: introduce lxd_use_exec mark (#802) + + azure: case-insensitive UUID to avoid new IID during kernel upgrade + (#798) (LP: #1835584) + + stale.yml: don't ask submitters to reopen PRs (#816) + + integration_tests: fix use of SSH agent within tox (#815) + + integration_tests: add UPGRADE CloudInitSource (#812) + + integration_tests: use unique MAC addresses for tests (#813) + + Update .gitignore (#814) + + Port apt cloud_tests to integration tests (#808) + + integration_tests: fix test_gh626 on LXD VMs (#809) + + Fix attempting to decode binary data in test_seed_random_data test (#806) + + Remove wait argument from tests with session_cloud calls (#805) + + Datasource for UpCloud (#743) [Antti Myyrä] + + test_gh668: fix failure on LXD VMs (#801) + + openstack: read the dynamic metadata group vendor_data2.json (#777) + [Andrew Bogott] (LP: #1841104) + + includedir in suoders can be prefixed by "arroba" (#783) + [Jordi Massaguer Pla] + + [VMware] change default max wait time to 15s (#774) [xiaofengw-vmware] + + Revert integration test associated with reverted #586 (#784) + + Add jordimassaguerpla as contributor (#787) [Jordi Massaguer Pla] + + Add Rick Harding to CLA signers (#792) [Rick Harding] + + HACKING.rst: add clarifying note to LP CLA process section (#789) + + Stop linting cloud_tests (#791) + + cloud-tests: update cryptography requirement (#790) [Joshua Powers] + + Remove 'remove-raise-on-failure' calls from integration_tests (#788) + + Use more cloud defaults in integration tests (#757) + + Adding self to cla signers (#776) [Andrew Bogott] + + doc: avoid two warnings (#781) [Dan Kenigsberg] + + Use proper spelling for Red Hat (#778) [Dan Kenigsberg] + + Add antonyc to .github-cla-signers (#747) [Anton Chaporgin] + + integration_tests: log image serial if available (#772) + + [VMware] Support cloudinit raw data feature (#691) [xiaofengw-vmware] + + net: Fix static routes to host in eni renderer (#668) [Pavel Abalikhin] + + .travis.yml: don't run cloud_tests in CI (#756) + + test_upgrade: add some missing commas (#769) + + cc_seed_random: update documentation and fix integration test (#771) + (LP: #1911227) + + Fix test gh-632 test to only run on NoCloud (#770) (LP: #1911230) + + archlinux: fix package upgrade command handling (#768) [Bao Trinh] + + integration_tests: add integration test for LP: #1910835 (#761) + + Fix regression with handling of IMDS ssh keys (#760) [Thomas Stringer] + + integration_tests: log cloud-init version in SUT (#758) + + Add ajmyyra as contributor (#742) [Antti Myyrä] + + net_convert: add some missing help text (#755) + + Missing IPV6_AUTOCONF=no to render sysconfig dhcp6 stateful on RHEL + (#753) [Eduardo Otubo] + + doc: document missing IPv6 subnet types (#744) [Antti Myyrä] + + Add example configuration for datasource `AliYun` (#751) [Xiaoyu Zhong] + + integration_tests: add SSH key selection settings (#754) + + fix a typo in man page cloud-init.1 (#752) [Amy Chen] + + network-config-format-v2.rst: add Netplan Passthrough section (#750) + + stale: re-enable post holidays (#749) + + integration_tests: port ca_certs tests from cloud_tests (#732) + + Azure: Add telemetry for poll IMDS (#741) [Johnson Shi] + + doc: move testing section from HACKING to its own doc (#739) + + No longer allow integration test failures on travis (#738) + + stale: fix error in definition (#740) + + integration_tests: set log-cli-level to INFO by default (#737) + + PULL_REQUEST_TEMPLATE.md: use backticks around commit message (#736) + + stale: disable check for holiday break (#735) + + integration_tests: log the path we collect logs into (#733) + + .travis.yml: add (most) supported Python versions to CI (#734) + + integration_tests: fix IN_PLACE CLOUD_INIT_SOURCE (#731) + + cc_ca_certs: add RHEL support (#633) [cawamata] + + Azure: only generate config for NICs with addresses (#709) + [Thomas Stringer] + + doc: fix CloudStack configuration example (#707) [Olivier Lemasle] + + integration_tests: restrict test_lxd_bridge appropriately (#730) + + Add integration tests for CLI functionality (#729) + + Integration test for gh-626 (#728) + + Some test_upgrade fixes (#726) + + Ensure overriding test vars with env vars works for booleans (#727) + + integration_tests: port lxd_bridge test from cloud_tests (#718) + + Integration test for gh-632. (#725) + + Integration test for gh-671 (#724) + + integration-requirements.txt: bump pycloudlib commit (#723) + + Drop unnecessary shebang from cmd/main.py (#722) [Eduardo Otubo] + + Integration test for LP: #1813396 and #669 (#719) + + integration_tests: include timestamp in log output (#720) + + integration_tests: add test for LP: #1898997 (#713) + + Add integration test for power_state_change module (#717) + + Update documentation for network-config-format-v2 (#701) [ggiesen] + + sandbox CA Cert tests to not require ca-certificates (#715) + [Eduardo Otubo] + + Add upgrade integration test (#693) + + Integration test for 570 (#712) + + Add ability to keep snapshotted images in integration tests (#711) + + Integration test for pull #586 (#706) + + integration_tests: introduce skipping of tests by OS (#702) + + integration_tests: introduce IntegrationInstance.restart (#708) + + Add lxd-vm to list of valid integration test platforms (#705) + + Adding BOOTPROTO = dhcp to render sysconfig dhcp6 stateful on RHEL + (#685) [Eduardo Otubo] + + Delete image snapshots created for integration tests (#682) + + Parametrize ssh_keys_provided integration test (#700) [lucasmoura] + + Drop use_sudo attribute on IntegrationInstance (#694) [lucasmoura] + + cc_apt_configure: add riscv64 as a ports arch (#687) + [Dimitri John Ledkov] + + cla: add xnox (#692) [Dimitri John Ledkov] + + Collect logs from integration test runs (#675) + +From 20.4.1 + + Revert "ssh_util: handle non-default AuthorizedKeysFile config (#586)" + +From 20.4 + + tox: avoid tox testenv subsvars for xenial support (#684) + + Ensure proper root permissions in integration tests (#664) [James Falcon] + + LXD VM support in integration tests (#678) [James Falcon] + + Integration test for fallocate falling back to dd (#681) [James Falcon] + + .travis.yml: correctly integration test the built .deb (#683) + + Ability to hot-attach NICs to preprovisioned VMs before reprovisioning + (#613) [aswinrajamannar] + + Support configuring SSH host certificates. (#660) [Jonathan Lung] + + add integration test for LP: #1900837 (#679) + + cc_resizefs on FreeBSD: Fix _can_skip_ufs_resize (#655) + [Mina Galić] (LP: #1901958, #1901958) + + DataSourceAzure: push dmesg log to KVP (#670) [Anh Vo] + + Make mount in place for tests work (#667) [James Falcon] + + integration_tests: restore emission of settings to log (#657) + + DataSourceAzure: update password for defuser if exists (#671) [Anh Vo] + + tox.ini: only select "ci" marked tests for CI runs (#677) + + Azure helper: Increase Azure Endpoint HTTP retries (#619) [Johnson Shi] + + DataSourceAzure: send failure signal on Azure datasource failure (#594) + [Johnson Shi] + + test_persistence: simplify VersionIsPoppedFromState (#674) + + only run a subset of integration tests in CI (#672) + + cli: add + -system param to allow validating system user-data on a + machine (#575) + + test_persistence: add VersionIsPoppedFromState test (#673) + + introduce an upgrade framework and related testing (#659) + + add + -no-tty option to gpg (#669) [Till Riedel] (LP: #1813396) + + Pin pycloudlib to a working commit (#666) [James Falcon] + + DataSourceOpenNebula: exclude SRANDOM from context output (#665) + + cloud_tests: add hirsute release definition (#662) + + split integration and cloud_tests requirements (#652) + + faq.rst: add warning to answer that suggests running `clean` (#661) + + Fix stacktrace in DataSourceRbxCloud if no metadata disk is found (#632) + [Scott Moser] + + Make wakeonlan Network Config v2 setting actually work (#626) + [dermotbradley] + + HACKING.md: unify network-refactoring namespace (#658) [Mina Galić] + + replace usage of dmidecode with kenv on FreeBSD (#621) [Mina Galić] + + Prevent timeout on travis integration tests. (#651) [James Falcon] + + azure: enable pushing the log to KVP from the last pushed byte (#614) + [Moustafa Moustafa] + + Fix launch_kwargs bug in integration tests (#654) [James Falcon] + + split read_fs_info into linux & freebsd parts (#625) [Mina Galić] + + PULL_REQUEST_TEMPLATE.md: expand commit message section (#642) + + Make some language improvements in growpart documentation (#649) + [Shane Frasier] + + Revert ".travis.yml: use a known-working version of lxd (#643)" (#650) + + Fix not sourcing default 50-cloud-init ENI file on Debian (#598) + [WebSpider] + + remove unnecessary reboot from gpart resize (#646) [Mina Galić] + + cloudinit: move dmi functions out of util (#622) [Scott Moser] + + integration_tests: various launch improvements (#638) + + test_lp1886531: don't assume /etc/fstab exists (#639) + + Remove Ubuntu restriction from PR template (#648) [James Falcon] + + util: fix mounting of vfat on *BSD (#637) [Mina Galić] + + conftest: improve docstring for disable_subp_usage (#644) + + doc: add example query commands to debug Jinja templates (#645) + + Correct documentation and testcase data for some user-data YAML (#618) + [dermotbradley] + + Hetzner: Fix instance_id / SMBIOS serial comparison (#640) + [Markus Schade] + + .travis.yml: use a known-working version of lxd (#643) + + tools/build-on-freebsd: fix comment explaining purpose of the script + (#635) [Mina Galić] + + Hetzner: initialize instance_id from system-serial-number (#630) + [Markus Schade] (LP: #1885527) + + Explicit set IPV6_AUTOCONF and IPV6_FORCE_ACCEPT_RA on static6 (#634) + [Eduardo Otubo] + + get_interfaces: don't exclude Open vSwitch bridge/bond members (#608) + [Lukas Märdian] (LP: #1898997) + + Add config modules for controlling IBM PowerVM RMC. (#584) + [Aman306] (LP: #1895979) + + Update network config docs to clarify MAC address quoting (#623) + [dermotbradley] + + gentoo: fix hostname rendering when value has a comment (#611) + [Manuel Aguilera] + + refactor integration testing infrastructure (#610) [James Falcon] + + stages: don't reset permissions of cloud-init.log every boot (#624) + (LP: #1900837) + + docs: Add how to use cloud-localds to boot qemu (#617) [Joshua Powers] + + Drop vestigial update_resolve_conf_file function (#620) [Scott Moser] + + cc_mounts: correctly fallback to dd if fallocate fails (#585) + (LP: #1897099) + + .travis.yml: add integration-tests to Travis matrix (#600) + + ssh_util: handle non-default AuthorizedKeysFile config (#586) + [Eduardo Otubo] + + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + + bddeb: new + -packaging-branch argument to pull packaging from branch + (#576) [Paride Legovini] + + Add more integration tests (#615) [lucasmoura] + + DataSourceAzure: write marker file after report ready in preprovisioning + (#590) [Johnson Shi] + + integration_tests: emit settings to log during setup (#601) + + integration_tests: implement citest tests run in Travis (#605) + + Add Azure support to integration test framework (#604) [James Falcon] + + openstack: consider product_name as valid chassis tag (#580) + [Adrian Vladu] (LP: #1895976) + + azure: clean up and refactor report_diagnostic_event (#563) [Johnson Shi] + + net: add the ability to blacklist network interfaces based on driver + during enumeration of physical network devices (#591) [Anh Vo] + + integration_tests: don't error on cloud-init failure (#596) + + integration_tests: improve cloud-init.log assertions (#593) + + conftest.py: remove top-level import of httpretty (#599) + + tox.ini: add integration-tests testenv definition (#595) + + PULL_REQUEST_TEMPLATE.md: empty checkboxes need a space (#597) + + add integration test for LP: #1886531 (#592) + + Initial implementation of integration testing infrastructure (#581) + [James Falcon] + + Fix name of ntp and chrony service on CentOS and RHEL. (#589) + [Scott Moser] (LP: #1897915) + + Adding a PR template (#587) [James Falcon] + + Azure parse_network_config uses fallback cfg when generate IMDS network + cfg fails (#549) [Johnson Shi] + + features: refresh docs for easier out-of-context reading (#582) + + Fix typo in resolv_conf module's description (#578) [Wacław Schiller] + + cc_users_groups: minor doc formatting fix (#577) + + Fix typo in disk_setup module's description (#579) [Wacław Schiller] + + Add vendor-data support to seedfrom parameter for NoCloud and OVF (#570) + [Johann Queuniet] + + boot.rst: add First Boot Determination section (#568) (LP: #1888858) + + opennebula.rst: minor readability improvements (#573) [Mina Galić] + + cloudinit: remove unused LOG variables (#574) + + create a shutdown_command method in distro classes (#567) + [Emmanuel Thomé] + + user_data: remove unused constant (#566) + + network: Fix type and respect name when rendering vlan in + sysconfig. (#541) [Eduardo Otubo] (LP: #1788915, #1826608) + + Retrieve SSH keys from IMDS first with OVF as a fallback (#509) + [Thomas Stringer] + + Add jqueuniet as contributor (#569) [Johann Queuniet] + + distros: minor typo fix (#562) + + Bump the integration-requirements versioned dependencies (#565) + [Paride Legovini] + + network-config-format-v1: fix typo in nameserver example (#564) + [Stanislas] + + Run cloud-init-local.service after the hv_kvp_daemon (#505) + [Robert Schweikert] + + Add method type hints for Azure helper (#540) [Johnson Shi] + + systemd: add Before=shutdown.target when Conflicts=shutdown.target is + used (#546) [Paride Legovini] + + LXD: detach network from profile before deleting it (#542) + [Paride Legovini] (LP: #1776958) + + redhat spec: add missing BuildRequires (#552) [Paride Legovini] + + util: remove debug statement (#556) [Joshua Powers] + + Fix cloud config on chef example (#551) [lucasmoura] + +From 20.3 + + Azure: Add netplan driver filter when using hv_netvsc driver (#539) + [James Falcon] (LP: #1830740) + + query: do not handle non-decodable non-gzipped content (#543) + + DHCP sandboxing failing on noexec mounted /var/tmp (#521) [Eduardo Otubo] + + Update the list of valid ssh keys. (#487) + [Ole-Martin Bratteng] (LP: #1877869) + + cmd: cloud-init query to handle compressed userdata (#516) (LP: #1889938) + + Pushing cloud-init log to the KVP (#529) [Moustafa Moustafa] + + Add Alpine Linux support. (#535) [dermotbradley] + + Detect kernel version before swap file creation (#428) [Eduardo Otubo] + + cli: add devel make-mime subcommand (#518) + + user-data: only verify mime-types for TYPE_NEEDED and x-shellscript + (#511) (LP: #1888822) + + DataSourceOracle: retry twice (and document why we retry at all) (#536) + + Refactor Azure report ready code (#468) [Johnson Shi] + + tox.ini: pin correct version of httpretty in xenial{,-dev} envs (#531) + + Support Oracle IMDSv2 API (#528) [James Falcon] + + .travis.yml: run a doc build during CI (#534) + + doc/rtd/topics/datasources/ovf.rst: fix doc8 errors (#533) + + Fix 'Users and Groups' configuration documentation (#530) [sshedi] + + cloudinit.distros: update docstrings of add_user and create_user (#527) + + Fix headers for device types in network v2 docs (#532) + [Caleb Xavier Berger] + + Add AlexBaranowski as contributor (#508) [Aleksander Baranowski] + + DataSourceOracle: refactor to use only OPC v1 endpoint (#493) + + .github/workflows/stale.yml: s/Josh/Rick/ (#526) + + Fix a typo in apt pipelining module (#525) [Xiao Liang] + + test_util: parametrize devlist tests (#523) [James Falcon] + + Recognize LABEL_FATBOOT labels (#513) [James Falcon] (LP: #1841466) + + Handle additional identifier for SLES For HPC (#520) [Robert Schweikert] + + Revert "test-requirements.txt: pin pytest to <6 (#512)" (#515) + + test-requirements.txt: pin pytest to <6 (#512) + + Add "tsanghan" as contributor (#504) [tsanghan] + + fix brpm building (LP: #1886107) + + Adding eandersson as a contributor (#502) [Erik Olof Gunnar Andersson] + + azure: disable bouncing hostname when setting hostname fails (#494) + [Anh Vo] + + VMware: Support parsing DEFAULT-RUN-POST-CUST-SCRIPT (#441) + [xiaofengw-vmware] + + DataSourceAzure: Use ValueError when JSONDecodeError is not available + (#490) [Anh Vo] + + cc_ca_certs.py: fix blank line problem when removing CAs and adding + new one (#483) [dermotbradley] + + freebsd: py37-serial is now py37-pyserial (#492) [Gonéri Le Bouder] + + ssh exit with non-zero status on disabled user (#472) + [Eduardo Otubo] (LP: #1170059) + + cloudinit: remove global disable of pylint W0107 and fix errors (#489) + + networking: refactor wait_for_physdevs from cloudinit.net (#466) + (LP: #1884626) + + HACKING.rst: add pytest.param pytest gotcha (#481) + + cloudinit: remove global disable of pylint W0105 and fix errors (#480) + + Fix two minor warnings (#475) + + test_data: fix faulty patch (#476) + + cc_mounts: handle missing fstab (#484) (LP: #1886531) + + LXD cloud_tests: support more lxd image formats (#482) [Paride Legovini] + + Add update_etc_hosts as default module on *BSD (#479) [Adam Dobrawy] + + cloudinit: fix tip-pylint failures and bump pinned pylint version (#478) + + Added BirknerAlex as contributor and sorted the file (#477) + [Alexander Birkner] + + Update list of types of modules in cli.rst [saurabhvartak1982] + + tests: use markers to configure disable_subp_usage (#473) + + Add mention of vendor-data to no-cloud format documentation (#470) + [Landon Kirk] + + Fix broken link to OpenStack metadata service docs (#467) + [Matt Riedemann] + + Disable ec2 mirror for non aws instances (#390) + [lucasmoura] (LP: #1456277) + + cloud_tests: don't pass + -python-version to read-dependencies (#465) + + networking: refactor is_physical from cloudinit.net (#457) (LP: #1884619) + + Enable use of the caplog fixture in pytest tests, and add a + cc_final_message test using it (#461) + + RbxCloud: Add support for FreeBSD (#464) [Adam Dobrawy] + + Add schema for cc_chef module (#375) [lucasmoura] (LP: #1858888) + + test_util: add (partial) testing for util.mount_cb (#463) + + .travis.yml: revert to installing ubuntu-dev-tools (#460) + + HACKING.rst: add details of net refactor tracking (#456) + + .travis.yml: rationalise installation of dependencies in host (#449) + + Add dermotbradley as contributor. (#458) [dermotbradley] + + net/networking: remove unused functions/methods (#453) + + distros.networking: initial implementation of layout (#391) + + cloud-init.service.tmpl: use "rhel" instead of "redhat" (#452) + + Change from redhat to rhel in systemd generator tmpl (#450) + [Eduardo Otubo] + + Hetzner: support reading user-data that is base64 encoded. (#448) + [Scott Moser] (LP: #1884071) + + HACKING.rst: add strpath gotcha to testing gotchas section (#446) + + cc_final_message: don't create directories when writing boot-finished + (#445) (LP: #1883903) + + .travis.yml: only store new schroot if something has changed (#440) + + util: add ensure_dir_exists parameter to write_file (#443) + + printing the error stream of the dhclient process before killing it + (#369) [Moustafa Moustafa] + + Fix link to the MAAS documentation (#442) + [Paride Legovini] (LP: #1883666) + + RPM build: disable the dynamic mirror URLs when using a proxy (#437) + [Paride Legovini] + + util: rename write_file's copy_mode parameter to preserve_mode (#439) + + .travis.yml: use $TRAVIS_BUILD_DIR for lxd_image caching (#438) + + cli.rst: alphabetise devel subcommands and add net-convert to list (#430) + + Default to UTF-8 in /var/log/cloud-init.log (#427) [James Falcon] + + travis: cache the chroot we use for package builds (#429) + + test: fix all flake8 E126 errors (#425) [Joshua Powers] + + Fixes KeyError for bridge with no "parameters:" setting (#423) + [Brian Candler] (LP: #1879673) + + When tools.conf does not exist, running cmd "vmware-toolbox-cmd + config get deployPkg enable-custom-scripts", the return code will + be EX_UNAVAILABLE(69), on this condition, it should not take it as + error. (#413) [chengcheng-chcheng] + + Document CloudStack data-server well-known hostname (#399) [Gregor Riepl] + + test: move conftest.py to top-level, to cover tests/ also (#414) + + Replace cc_chef is_installed with use of subp.is_exe. (#421) + [Scott Moser] + + Move runparts to subp. (#420) [Scott Moser] + + Move subp into its own module. (#416) [Scott Moser] + + readme: point at travis-ci.com (#417) [Joshua Powers] + + New feature flag functionality and fix includes failing silently (#367) + [James Falcon] (LP: #1734939) + + Enhance poll imds logging (#365) [Moustafa Moustafa] + + test: fix all flake8 E121 and E123 errors (#404) [Joshua Powers] + + test: fix all flake8 E241 (#403) [Joshua Powers] + + test: ignore flake8 E402 errors in main.py (#402) [Joshua Powers] + + cc_grub_dpkg: determine idevs in more robust manner with grub-probe + (#358) [Matthew Ruffell] (LP: #1877491) + + test: fix all flake8 E741 errors (#401) [Joshua Powers] + + tests: add groovy integration tests for ubuntu (#400) + + Enable chef_license support for chef infra client (#389) [Bipin Bachhao] + + testing: use flake8 again (#392) [Joshua Powers] + + enable Puppet, Chef mcollective in default config (#385) + [Mina Galić (deprecated: Igor Galić)] (LP: #1880279) + + HACKING.rst: introduce .net + > Networking refactor section (#384) + + Travis: do not install python3-contextlib2 (dropped dependency) (#388) + [Paride Legovini] + + HACKING: mention that .github-cla-signers is alpha-sorted (#380) + + Add bipinbachhao as contributor (#379) [Bipin Bachhao] + + cc_snap: validate that assertions property values are strings (#370) + + conftest: implement partial disable_subp_usage (#371) + + test_resolv_conf: refresh stale comment (#374) + + cc_snap: apply validation to snap.commands properties (#364) + + make finding libc platform independent (#366) + [Mina Galić (deprecated: Igor Galić)] + + doc/rtd/topics/faq: Updates LXD docs links to current site (#368) [TomP] + + templater: drop Jinja Python 2 compatibility shim (#353) + + cloudinit: minor pylint fixes (#360) + + cloudinit: remove unneeded __future__ imports (#362) + + migrating momousta lp user to Moustafa-Moustafa GitHub user (#361) + [Moustafa Moustafa] + + cloud_tests: emit dots on Travis while fetching images (#347) + + Add schema to apt configure config (#357) [lucasmoura] (LP: #1858884) + + conftest: add docs and tests regarding CiTestCase's subp functionality + (#343) + + analyze/dump: refactor shared string into variable (#350) + + doc: update boot.rst with correct timing of runcmd (#351) + + HACKING.rst: change contact info to Rick Harding (#359) [lucasmoura] + + HACKING.rst: guide people to add themselves to the CLA file (#349) + + HACKING.rst: more unit testing documentation (#354) + + .travis.yml: don't run lintian during integration test package builds + (#352) + + Add test to ensure docs examples are valid cloud-init configs (#355) + [James Falcon] (LP: #1876414) + + make suse and sles support 127.0.1.1 (#336) [chengcheng-chcheng] + + Create tests to validate schema examples (#348) + [lucasmoura] (LP: #1876412) + + analyze/dump: add support for Amazon Linux 2 log lines (#346) + (LP: #1876323) + + bsd: upgrade support (#305) [Gonéri Le Bouder] + + Add lucasmoura as contributor (#345) [lucasmoura] + + Add "therealfalcon" as contributor (#344) [James Falcon] + + Adapt the package building scripts to use Python 3 (#231) + [Paride Legovini] + + DataSourceEc2: use metadata's NIC ordering to determine route-metrics + (#342) (LP: #1876312) + + .travis.yml: introduce caching (#329) + + cc_locale: introduce schema (#335) + + doc/rtd/conf.py: bump copyright year to 2020 (#341) + + yum_add_repo: Add Centos to the supported distro list (#340) + +------------------------------------------------------------------- +Thu Aug 12 02:16:08 UTC 2021 - Fusion Future + +- Add cloud-init-update-test-characters-in-substitution-unit-test.patch + to fix unit test fail in TestGetPackageMirrorInfo::test_substitution. + +------------------------------------------------------------------- +Fri Jul 9 10:45:23 UTC 2021 - Antonio Larrosa + +- Add patch from upstream to remove python2 compatibility so + cloud-init builds fine in Tumbleweed with a recent Jinja2 + version. This patch is only applied in TW. + * 0001-templater-drop-Jinja-Python-2-compatibility-shim.patch + +------------------------------------------------------------------- +Wed Jun 2 12:13:54 UTC 2021 - Robert Schweikert + +- Add cloud-init-log-file-mode.patch (bsc#1183939) + + Change log file creation mode to 640 +- Add cloud-init-no-pwd-in-log.patch (bsc#1184758, CVE-2021-3429) + + Do not write the generated password to the log file +- Add cloud-init-purge-cache-py-ver-change.patch + +------------------------------------------------------------------- +Wed Apr 7 17:35:46 UTC 2021 - Robert Schweikert + +- Add cloud-init-bonding-opts.patch (bsc#1184085) + + Write proper bonding option configuration for SLE/openSUSE +- Fix application and inclusion of + use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283) + +------------------------------------------------------------------- +Fri Jan 22 16:27:17 UTC 2021 - Jordi Massaguer + +- Add use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283) + - Do not including sudoers.d directory twice + +------------------------------------------------------------------- +Mon Jan 4 22:27:22 UTC 2021 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1180176) + + Follow up to previous changes. Fix order of operations + error to make gateway comparison between subnet configuration and + route configuration valuable rather than self-comparing. + +------------------------------------------------------------------- +Mon Jan 4 19:52:33 UTC 2021 - Robert Schweikert + +- Add cloud-init-sle12-compat.patch (jsc#PM-2335) + - Python 3.4 compatibility in setup.py + - Disable some test for mock version compatibility + +------------------------------------------------------------------- +Tue Nov 24 21:14:56 UTC 2020 - Robert Schweikert + +- Add wget as a requirement (bsc#1178029) + + wget is used in the CloudStack data source + +------------------------------------------------------------------- +Tue Nov 24 12:40:00 UTC 2020 - Robert Schweikert + +- Add cloud-init-azure-def-usr-pass.patch (bsc#1179150, bsc#1179151) + + Properly set the password for the default user in all circumstances + +------------------------------------------------------------------- +Fri Nov 13 19:44:11 UTC 2020 - Robert Schweikert + +- Patch the full package version into the cloud-init version file + +------------------------------------------------------------------- +Tue Nov 10 11:39:09 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1177526) + + Fix missing default route when dual stack network setup is used. Once + a default route was configured for Ipv6 or IPv4 the default route + configuration for the othre protocol was skipped. + +------------------------------------------------------------------- +Sat Oct 17 10:25:30 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1177526) + + Avoid exception if no gateway information is present and warning + is triggered for existing routing. + +------------------------------------------------------------------- +Fri Jul 24 19:55:40 UTC 2020 - Robert Schweikert + +- Update to version 20.2 (bsc#1174443, bsc#1174444) + + Remove patches included upstream: + - 0001-Make-tests-work-with-Python-3.8-139.patch + - cloud-init-ostack-metadat-dencode.patch + - cloud-init-use-different-random-src.diff + - cloud-init-long-pass.patch + - cloud-init-mix-static-dhcp.patch + + Remove patches build switched to Python 3 for all distributions + (jsc#PM-2335) + - cloud-init-python2-sigpipe.patch + - cloud-init-template-py2.patch + + Add + - cloud-init-after-kvp.diff + - cloud-init-recognize-hpc.patch + + doc/format: reference make-mime.py instead of an inline script (#334) + + Add docs about creating parent folders (#330) [Adrian Wilkins] + + DataSourceNoCloud/OVF: drop claim to support FTP (#333) (LP: #1875470) + + schema: ignore spurious pylint error (#332) + + schema: add json schema for write_files module (#152) + + BSD: find_devs_with_ refactoring (#298) [Gonéri Le Bouder] + + nocloud: drop work around for Linux 2.6 (#324) [Gonéri Le Bouder] + + cloudinit: drop dependencies on unittest2 and contextlib2 (#322) + + distros: handle a potential mirror filtering error case (#328) + + log: remove unnecessary import fallback logic (#327) + + .travis.yml: don't run integration test on ubuntu/* branches (#321) + + More unit test documentation (#314) + + conftest: introduce disable_subp_usage autouse fixture (#304) + + YAML align indent sizes for docs readability (#323) [Tak Nishigori] + + network_state: add missing space to log message (#325) + + tests: add missing mocks for get_interfaces_by_mac (#326) (LP: #1873910) + + test_mounts: expand happy path test for both happy paths (#319) + + cc_mounts: fix incorrect format specifiers (#316) (LP: #1872836) + + swap file "size" being used before checked if str (#315) [Eduardo Otubo] + + HACKING.rst: add pytest version gotchas section (#311) + + docs: Add steps to re-run cloud-id and cloud-init (#313) [Joshua Powers] + + readme: OpenBSD is now supported (#309) [Gonéri Le Bouder] + + net: ignore 'renderer' key in netplan config (#306) (LP: #1870421) + + Add support for NFS/EFS mounts (#300) [Andrew Beresford] (LP: #1870370) + + openbsd: set_passwd should not unlock user (#289) [Gonéri Le Bouder] + + tools/.github-cla-signers: add beezly as CLA signer (#301) + + util: remove unnecessary lru_cache import fallback (#299) + + HACKING.rst: reorganise/update CLA signature info (#297) + + distros: drop leading/trailing hyphens from mirror URL labels (#296) + + HACKING.rst: add note about variable annotations (#295) + + CiTestCase: stop using and remove sys_exit helper (#283) + + distros: replace invalid characters in mirror URLs with hyphens (#291) + (LP: #1868232) + + rbxcloud: gracefully handle arping errors (#262) [Adam Dobrawy] + + Fix cloud-init ignoring some misdeclared mimetypes in user-data. + [Kurt Garloff] + + net: ubuntu focal prioritize netplan over eni even if both present + (#267) (LP: #1867029) + + cloudinit: refactor util.is_ipv4 to net.is_ipv4_address (#292) + + net/cmdline: replace type comments with annotations (#294) + + HACKING.rst: add Type Annotations design section (#293) + + net: introduce is_ip_address function (#288) + + CiTestCase: remove now-unneeded parse_and_read helper method (#286) + + .travis.yml: allow 30 minutes of inactivity in cloud tests (#287) + + sources/tests/test_init: drop use of deprecated inspect.getargspec (#285) + + setup.py: drop NIH check_output implementation (#282) + + Identify SAP Converged Cloud as OpenStack [Silvio Knizek] + + add Openbsd support (#147) [Gonéri Le Bouder] + + HACKING.rst: add examples of the two test class types (#278) + + VMWware: support to update guest info gc status if enabled (#261) + [xiaofengw-vmware] + + Add lp-to-git mapping for kgarloff (#279) + + set_passwords: avoid chpasswd on BSD (#268) [Gonéri Le Bouder] + + HACKING.rst: add Unit Testing design section (#277) + + util: read_cc_from_cmdline handle urlencoded yaml content (#275) + + distros/tests/test_init: add tests for _get_package_mirror_info (#272) + + HACKING.rst: add links to new Code Review Process doc (#276) + + freebsd: ensure package update works (#273) [Gonéri Le Bouder] + + doc: introduce Code Review Process documentation (#160) + + tools: use python3 (#274) + + cc_disk_setup: fix RuntimeError (#270) (LP: #1868327) + + cc_apt_configure/util: combine search_for_mirror implementations (#271) + + bsd: boottime does not depend on the libc soname (#269) + [Gonéri Le Bouder] + + test_oracle,DataSourceOracle: sort imports (#266) + + DataSourceOracle: update .network_config docstring (#257) + + cloudinit/tests: remove unneeded with_logs configuration (#263) + + .travis.yml: drop stale comment (#255) + + .gitignore: add more common directories (#258) + + ec2: render network on all NICs and add secondary IPs as static (#114) + (LP: #1866930) + + ec2 json validation: fix the reference to the 'merged_cfg' key (#256) + [Paride Legovini] + + releases.yaml: quote the Ubuntu version numbers (#254) [Paride Legovini] + + cloudinit: remove six from packaging/tooling (#253) + + util/netbsd: drop six usage (#252) + + workflows: introduce stale pull request workflow (#125) + + cc_resolv_conf: introduce tests and stabilise output across Python + versions (#251) + + fix minor issue with resolv_conf template (#144) [andreaf74] + + doc: CloudInit also support NetBSD (#250) [Gonéri Le Bouder] + + Add Netbsd support (#62) [Gonéri Le Bouder] + + tox.ini: avoid substition syntax that causes a traceback on xenial (#245) + + Add pub_key_ed25519 to cc_phone_home (#237) [Daniel Hensby] + + Introduce and use of a list of GitHub usernames that have signed CLA + (#244) + + workflows/cla.yml: use correct username for CLA check (#243) + + tox.ini: use xenial version of jsonpatch in CI (#242) + + workflows: CLA validation altered to fail status on pull_request (#164) + + tox.ini: bump pyflakes version to 2.1.1 (#239) + + cloudinit: move to pytest for running tests (#211) + + instance-data: add cloud-init merged_cfg and sys_info keys to json + (#214) (LP: #1865969) + + ec2: Do not fallback to IMDSv1 on EC2 (#216) + + instance-data: write redacted cfg to instance-data.json (#233) + (LP: #1865947) + + net: support network-config:disabled on the kernel commandline (#232) + (LP: #1862702) + + ec2: only redact token request headers in logs, avoid altering request + (#230) (LP: #1865882) + + docs: typo fixed: dta → data [Alexey Vazhnov] + + Fixes typo on Amazon Web Services (#217) [Nick Wales] + + Fix docs for OpenStack DMI Asset Tag (#228) + [Mark T. Voelker] (LP: #1669875) + + Add physical network type: cascading to openstack helpers (#200) + [sab-systems] + + tests: add focal integration tests for ubuntu (#225) + +- From 20.1 (first vesrion after 19.4) + + ec2: Do not log IMDSv2 token values, instead use REDACTED (#219) + (LP: #1863943) + + utils: use SystemRandom when generating random password. (#204) + [Dimitri John Ledkov] + + docs: mount_default_files is a list of 6 items, not 7 (#212) + + azurecloud: fix issues with instances not starting (#205) (LP: #1861921) + + unittest: fix stderr leak in cc_set_password random unittest + output. (#208) + + cc_disk_setup: add swap filesystem force flag (#207) + + import sysvinit patches from freebsd-ports tree (#161) [Igor Galić] + + docs: fix typo (#195) [Edwin Kofler] + + sysconfig: distro-specific config rendering for BOOTPROTO option (#162) + [Robert Schweikert] (LP: #1800854) + + cloudinit: replace "from six import X" imports (except in util.py) (#183) + + run-container: use 'test -n' instead of 'test ! -z' (#202) + [Paride Legovini] + + net/cmdline: correctly handle static ip= config (#201) + [Dimitri John Ledkov] (LP: #1861412) + + Replace mock library with unittest.mock (#186) + + HACKING.rst: update CLA link (#199) + + Scaleway: Fix DatasourceScaleway to avoid backtrace (#128) + [Louis Bouchard] + + cloudinit/cmd/devel/net_convert.py: add missing space (#191) + + tools/run-container: drop support for python2 (#192) [Paride Legovini] + + Print ssh key fingerprints using sha256 hash (#188) (LP: #1860789) + + Make the RPM build use Python 3 (#190) [Paride Legovini] + + cc_set_password: increase random pwlength from 9 to 20 (#189) + (LP: #1860795) + + .travis.yml: use correct Python version for xenial tests (#185) + + cloudinit: remove ImportError handling for mock imports (#182) + + Do not use fallocate in swap file creation on xfs. (#70) + [Eduardo Otubo] (LP: #1781781) + + .readthedocs.yaml: install cloud-init when building docs (#181) + (LP: #1860450) + + Introduce an RTD config file, and pin the Sphinx version to the RTD + default (#180) + + Drop most of the remaining use of six (#179) + + Start removing dependency on six (#178) + + Add Rootbox & HyperOne to list of cloud in README (#176) [Adam Dobrawy] + + docs: add proposed SRU testing procedure (#167) + + util: rename get_architecture to get_dpkg_architecture (#173) + + Ensure util.get_architecture() runs only once (#172) + + Only use gpart if it is the BSD gpart (#131) [Conrad Hoffmann] + + freebsd: remove superflu exception mapping (#166) [Gonéri Le Bouder] + + ssh_auth_key_fingerprints_disable test: fix capitalization (#165) + [Paride Legovini] + + util: move uptime's else branch into its own boottime function (#53) + [Igor Galić] (LP: #1853160) + + workflows: add contributor license agreement checker (#155) + + net: fix rendering of 'static6' in network config (#77) (LP: #1850988) + + Make tests work with Python 3.8 (#139) [Conrad Hoffmann] + + fixed minor bug with mkswap in cc_disk_setup.py (#143) [andreaf74] + + freebsd: fix create_group() cmd (#146) [Gonéri Le Bouder] + + doc: make apt_update example consistent (#154) + + doc: add modules page toc with links (#153) (LP: #1852456) + + Add support for the amazon variant in cloud.cfg.tmpl (#119) + [Frederick Lefebvre] + + ci: remove Python 2.7 from CI runs (#137) + + modules: drop cc_snap_config config module (#134) + + migrate-lp-user-to-github: ensure Launchpad repo exists (#136) + + docs: add initial troubleshooting to FAQ (#104) [Joshua Powers] + + doc: update cc_set_hostname frequency and descrip (#109) + [Joshua Powers] (LP: #1827021) + + freebsd: introduce the freebsd renderer (#61) [Gonéri Le Bouder] + + cc_snappy: remove deprecated module (#127) + + HACKING.rst: clarify that everyone needs to do the LP->GH dance (#130) + + freebsd: cloudinit service requires devd (#132) [Gonéri Le Bouder] + + cloud-init: fix capitalisation of SSH (#126) + + doc: update cc_ssh clarify host and auth keys + [Joshua Powers] (LP: #1827021) + + ci: emit names of tests run in Travis (#120) + + + +------------------------------------------------------------------- +Thu Jun 18 12:11:49 UTC 2020 - Robert Schweikert + +- Disable testing to aid elimination of unittest2 in Factory + +------------------------------------------------------------------- +Wed May 20 11:23:04 UTC 2020 - Martin Loviska + +- bsc#1170154: rsyslog warning, '~' is deprecated + + replace deprecated syntax '& ~' by '& stop' + for more information please see https://www.rsyslog.com/rsyslog-error-2307/ + +------------------------------------------------------------------- +Tue May 19 11:51:18 UTC 2020 - Joachim Gleissner + +- Update cloud-init-write-routes.patch + + Explicitly test for netconfig version 1 as well as 2 + +------------------------------------------------------------------- +Mon May 18 14:37:30 UTC 2020 - Joachim Gleissner + +- Update cloud-init-write-routes.patch + + Handle netconfig v2 device configurations (bsc#1171546, bsc#1171995) + +------------------------------------------------------------------- +Fri Mar 27 12:21:00 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch + + In cases where the config contains 2 or more default gateway + specifications for an interface only write the first default route, + log warning message about skipped routes + + Avoid writing invalid route specification if neither the network + nor destination is specified in the route configuration + +------------------------------------------------------------------- +Thu Mar 26 17:20:12 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch + + Still need to consider the "network" configuration option + for the v1 config implementation. Fixes regression + introduced with update from Wed Feb 12 19:30:42 + +------------------------------------------------------------------- +Wed Mar 25 18:31:32 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1165296) + + Add the default gateway to the ifroute config file when specified + as part of the subnet configuration + + Fix typo to properly extrakt provided netmask data (bsc#1163178) + +------------------------------------------------------------------- +Thu Feb 13 14:07:50 UTC 2020 - Robert Schweikert + +- Add cloud-init-long-pass.patch (bsc#1162936, CVE-2020-8632) + + Increase the default length of generated passwords + +------------------------------------------------------------------- +Wed Feb 12 22:37:57 UTC 2020 - Robert Schweikert + +- Add cloud-init-use-different-random-src.diff (bsc#1162937, CVE-2020-8631) + + Use non-deterministic generator for password generation. + +------------------------------------------------------------------- +Wed Feb 12 19:30:42 UTC 2020 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1163178) + + Entries in the routes definition have changed causing a traceback + during rout config file writing. This patch update addresses the + issue by extracting the new entries properly. + +------------------------------------------------------------------- +Fri Jan 24 14:49:35 UTC 2020 - Dominique Leuenberger + +- BuildRequire pkgconfig(udev) instead of udev: allow OBS to + shortcut through the -mini flavor. + +------------------------------------------------------------------- +Fri Jan 17 18:55:41 UTC 2020 - Robert Schweikert + +- Add cloud-init-no-tempnet-oci.patch (bsc#1161132, bsc#1161133) + + Do not attempt to configure an ephemeral network on OCI. We + boot off iSCSI and the network is up. Just read the data. + +------------------------------------------------------------------- +Tue Jan 14 15:14:52 UTC 2020 - Tomáš Chvátal + +- Add patch to build properly with python 3.8: + * 0001-Make-tests-work-with-Python-3.8-139.patch + +------------------------------------------------------------------- +Thu Jan 9 18:56:26 UTC 2020 - Robert Schweikert + +- Update to version 19.4 + + Remove patches included upstream: + - cloud-init-after-wicked.patch + - cloud-init-noresolv-merge-no-dns-data.diff + - cloud-init-renderer-detect.patch + - cloud-init-trigger-udev.patch + + Removed patches merged with cloud-init-mix-static-dhcp.patch + - cloud-init-proper-ipv6-setting.patch + - cloud-init-static-net.patch + + Added cloud-init-mix-static-dhcp.patch (bsc#1157894) + + Forward port cloud-init-sysconf-path.patch + + doc: specify _ over - in cloud config modules + + [Joshua Powers] (LP: #1293254) + + tools: Detect python to use via env in migrate-lp-user-to-github + + [Adam Dobrawy] + + Partially revert "fix unlocking method on FreeBSD" (#116) + + tests: mock uid when running as root (#113) + + [Joshua Powers] (LP: #1856096) + + cloudinit/netinfo: remove unused getgateway (#111) + + docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823) + + doc: add kernel command line option to user data (#105) + + [Joshua Powers] (LP: #1846524) + + config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006) + + azure: avoid re-running cloud-init when instance-id is byte-swapped + + (#84) [AOhassan] + + fix unlocking method on FreeBSD [Igor Galić] (LP: #1854594) + + debian: add reference to the manpages [Joshua Powers] + + ds_identify: if /sys is not available use dmidecode (#42) + + [Igor Galić] (LP: #1852442) + + docs: add cloud-id manpage [Joshua Powers] + + docs: add cloud-init-per manpage [Joshua Powers] + + docs: add cloud-init manpage [Joshua Powers] + + docs: add additional details to per-instance/once [Joshua Powers] + + Update doc-requirements.txt [Joshua Powers] + + doc-requirements: add missing dep [Joshua Powers] + + dhcp: Support RedHat dhcp rfc3442 lease format for option 121 (#76) + + [Eric Lafontaine] (LP: #1850642) + + network_state: handle empty v1 config (#45) (LP: #1852496) + + docs: Add document on how to report bugs [Joshua Powers] + + Add an Amazon distro in the redhat OS family [Frederick Lefebvre] + + removed a couple of "the"s [gaughen] + + docs: fix line length and remove highlighting [Joshua Powers] + + docs: Add security.md to readthedocs [Joshua Powers] + + Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo] + + Revert "travis: only run CI on pull requests" + + doc: update links on README.md [Joshua Powers] + + doc: Updates to wording of README.md [Joshua Powers] + + Add security.md [Joshua Powers] + + setup.py: Amazon Linux sets libexec to /usr/libexec (#52) + + [Frederick Lefebvre] + + Fix linting failure in test_url_helper (#83) [Eric Lafontaine] + + url_helper: read_file_or_url should pass headers param into readurl + + (#66) (LP: #1854084) + + dmidecode: log result *after* stripping n [Igor Galić] + + cloud_tests: add azure platform support to integration tests + + [ahosmanmsft] + + set_passwords: support for FreeBSD (#46) [Igor Galić] + + tools: migrate-lp-user-to-github removes repo_dir if created (#35) + + Correct jumbled documentation for cc_set_hostname module (#64) + + [do3meli] (LP: #1853543) + + FreeBSD: fix for get_linux_distro() and lru_cache (#59) + + [Igor Galić] (LP: #1815030) + + ec2: Add support for AWS IMDS v2 (session-oriented) (#55) + + tests: Fix cloudsigma tests when no dmidecode data is present. (#57) + + [Scott Moser] + + net: IPv6, accept_ra, slaac, stateless (#51) + + [Harald] (LP: #1806014, #1808647) + + docs: Update the configdrive datasource links (#44) + + [Joshua Powers] (LP: #1852461) + + distro: correctly set usr_lib_exec path for FreeBSD distro (#40) + + [Igor Galić] (LP: #1852491) + + azure: support secondary ipv6 addresses (#33) + + Fix metadata check when local-hostname is null (#32) + + [Mark Goddard] (LP: #1852100) + + switch default FreeBSD salt minion pkg from py27 to py36 + + [Dominic Schlegel] + + travis: only run CI on pull requests + + add data-server dns entry as new metadata server detection [Joshua Hügli] + + pycodestyle: remove unused local variable + + reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta] + + docs: touchups in rtd intro and README.md + + doc: update launchpad git refs to github + + github: drop pull-request template to prepare for migration + + tools: add migrate-lp-user-to-github script to link LP to github + + github: new basic project readme + +- From 19.3 + + azure: support matching dhcp route-metrics for dual-stack ipv4 ipv6 + + (LP: #1850308) + + configdrive: fix subplatform config-drive for /config-drive source + + [David Kindred] (LP: #1849731) + + DataSourceSmartOS: reconfigure network on each boot + + [Mike Gerdts] (LP: #1765801) + + Add config for ssh-key import and consuming user-data [Pavel Zakharov] + + net: fix subnet_is_ipv6() for stateless|stateful + + [Harald Jensås] (LP: #1848690) + + OVF: disable custom script execution by default [Xiaofeng Wang] + + cc_puppet: Implement csr_attributes.yaml support [Matthias Baur] + + cloud-init.service: on centos/fedora/redhat wait on NetworkManager.service + + (LP: #1843334) + + azure: Do not lock user on instance id change [Sam Eiderman] (LP: #1849677) + + net/netplan: use ipv6-mtu key for specifying ipv6 mtu values + + Fix usages of yaml, and move yaml_dump to safeyaml.dumps. (LP: #1849640) + + exoscale: Increase url_max_wait to 120s. [Chris Glass] + + net/sysconfig: fix available check on SUSE distros + + [Robert Schweikert] (LP: #1849378) + + docs: Fix incorrect Azure IMDS IP address [Joshua Powers] (LP: #1849508) + + introduce .travis.yml + + net: enable infiniband support in eni and sysconfig renderers + + [Darren Birkett] (LP: #1847114) + + guestcust_util: handle special characters in config file [Xiaofeng Wang] + + fix some more typos in comments [Dominic Schlegel] + + replace any deprecated log.warn with log.warning + + [Dominic Schlegel] (LP: #1508442) + + net: handle openstack dhcpv6-stateless configuration + + [Harald Jensås] (LP: #1847517) + + Add .venv/ to .gitignore [Dominic Schlegel] + + Small typo fixes in code comments. [Dominic Schlegel] + + cloud_test/lxd: Retry container delete a few times + + Add Support for e24cloud to Ec2 datasource. (LP: #1696476) + + Add RbxCloud datasource [Adam Dobrawy] + + get_interfaces: don't exclude bridge and bond members (LP: #1846535) + + Add support for Arch Linux in render-cloudcfg [Conrad Hoffmann] + + util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary + + (LP: #1801364) + + debian/ubuntu: add missing word to netplan/ENI header (LP: #1845669) + + ovf: do not generate random instance-id for IMC customization path + + sysconfig: only write resolv.conf if network_state has DNS values + + (LP: #1843634) + + sysconfig: use distro variant to check if available (LP: #1843584) + + systemd/cloud-init.service.tmpl: start after wicked.service + + [Robert Schweikert] + + docs: fix zstack documentation lints + + analyze/show: remove trailing space in output + + Add missing space in warning: "not avalid seed" [Brian Candler] + + pylintrc: add 'enter_context' to generated-members list + + Add datasource for ZStack platform. [Shixin Ruan] (LP: #1841181) + + docs: organize TOC and update summary of project [Joshua Powers] + + tools: make clean now cleans the dev directory, not the system + + docs: create cli specific page [Joshua Powers] + + docs: added output examples to analyze.rst [Joshua Powers] + + docs: doc8 fixes for instancedata page [Joshua Powers] + + docs: clean up formatting, organize boot page [Joshua Powers] + + net: add is_master check for filtering device list (LP: #1844191) + + docs: more complete list of availability [Joshua Powers] + + docs: start FAQ page [Joshua Powers] + + docs: cleanup output & order of datasource page [Joshua Powers] + + Brightbox: restrict detection to require full domain match .brightbox.com + + VMWware: add option into VMTools config to enable/disable custom script. + + [Xiaofeng Wang] + + net,Oracle: Add support for netfailover detection + + atomic_helper: add DEBUG logging to write_file (LP: #1843276) + + doc: document doc, create makefile and tox target [Joshua Powers] + + .gitignore: ignore files produced by package builds + + docs: fix whitespace, spelling, and line length [Joshua Powers] + + docs: remove unnecessary file in doc directory [Joshua Powers] + + Oracle: Render secondary vnic IP and MTU values only + + exoscale: fix sysconfig cloud_config_modules overrides (LP: #1841454) + + net/cmdline: refactor to allow multiple initramfs network config sources + + ubuntu-drivers: call db_x_loadtemplatefile to accept NVIDIA EULA + + (LP: #1840080) + + Add missing #cloud-config comment on first example in documentation. + + [Florian Müller] + + ubuntu-drivers: emit latelink=true debconf to accept nvidia eula + + (LP: #1840080) + + DataSourceOracle: prefer DS network config over initramfs + + format.rst: add text/jinja2 to list of content types (+ cleanups) + + Add GitHub pull request template to point people at hacking doc + + cloudinit/distros/parsers/sys_conf: add docstring to SysConf + + pyflakes: remove unused variable [Joshua Powers] + + Azure: Record boot timestamps, system information, and diagnostic events + + [Anh Vo] + + DataSourceOracle: configure secondary NICs on Virtual Machines + + distros: fix confusing variable names + + azure/net: generate_fallback_nic emits network v2 config instead of v1 + + Add support for publishing host keys to GCE guest attributes [Rick Wright] + + New data source for the Exoscale.com cloud platform [Chris Glass] + + doc: remove intersphinx extension + + cc_set_passwords: rewrite documentation (LP: #1838794) + + net/cmdline: split interfaces_by_mac and init network config determination + + stages: allow data sources to override network config source order + + cloud_tests: updates and fixes + + Fix bug rendering MTU on bond or vlan when input was netplan. (LP: #1836949) + + net: update net sequence, include wait on netdevs, opensuse netrules path + (LP: #1817368) + +------------------------------------------------------------------- +Mon Nov 25 19:34:52 UTC 2019 - Robert Schweikert + +- Add cloud-init-proper-ipv6-setting.patch (bsc#1156139) + + Set proper IPv6 interface variable in ifcfg file + +------------------------------------------------------------------- +Wed Nov 6 14:43:54 UTC 2019 - Petr Pavlu + +- Update cloud-init-write-routes.patch (bsc#1155376) + + Write a route's destination network in CIDR notation instead of using the + netmask. This provides support for correctly recording IPv6 routes. + +------------------------------------------------------------------- +Tue Oct 22 19:57:22 UTC 2019 - Robert Schweikert + +- Add cloud-init-renderer-detect.patch (bsc#1154092, boo#1142988) + + Short curcuit the conditional for identifying the sysconfig renderer. + If we find ifup/ifdown accept the renderer as available. + +------------------------------------------------------------------- +Tue Oct 22 12:13:59 UTC 2019 - Robert Schweikert + +- Add cloud-init-break-resolv-symlink.patch (bsc#1151488) + + If /etc/resolv.conf is a symlink break it. This will avoid netconfig + from clobbering the changes cloud-init applied. + +------------------------------------------------------------------- +Thu Sep 26 12:15:50 UTC 2019 - Robert Schweikert + +- Update to cloud-init 19.2 (bsc#1099358, bsc#1145622) + + Remove, included upstream + - cloud-init-detect-nova.diff + - cloud-init-add-static-routes.diff + + net: add rfc3442 (classless static routes) to EphemeralDHCP + (LP: #1821102) + + templates/ntp.conf.debian.tmpl: fix missing newline for pools + (LP: #1836598) + + Support netplan renderer in Arch Linux [Conrad Hoffmann] + + Fix typo in publicly viewable documentation. [David Medberry] + + Add a cdrom size checker for OVF ds to ds-identify + [Pengpeng Sun] (LP: #1806701) + + VMWare: Trigger the post customization script via cc_scripts module. + [Xiaofeng Wang] (LP: #1833192) + + Cloud-init analyze module: Added ability to analyze boot events. + [Sam Gilson] + + Update debian eni network configuration location, retain Ubuntu setting + [Janos Lenart] + + net: skip bond interfaces in get_interfaces + [Stanislav Makar] (LP: #1812857) + + Fix a couple of issues raised by a coverity scan + + Add missing dsname for Hetzner Cloud datasource [Markus Schade] + + doc: indicate that netplan is default in Ubuntu now + + azure: add region and AZ properties from imds compute location metadata + + sysconfig: support more bonding options [Penghui Liao] + + cloud-init-generator: use libexec path to ds-identify on redhat systems + (LP: #1833264) + + tools/build-on-freebsd: update to python3 [Gonéri Le Bouder] + + Allow identification of OpenStack by Asset Tag + [Mark T. Voelker] (LP: #1669875) + + Fix spelling error making 'an Ubuntu' consistent. [Brian Murray] + + run-container: centos: comment out the repo mirrorlist [Paride Legovini] + + netplan: update netplan key mappings for gratuitous-arp (LP: #1827238) + + freebsd: fix the name of cloudcfg VARIANT [Gonéri Le Bouder] + + freebsd: ability to grow root file system [Gonéri Le Bouder] + + freebsd: NoCloud data source support [Gonéri Le Bouder] (LP: #1645824) + + Azure: Return static fallback address as if failed to find endpoint + [Jason Zions (MSFT)] + +------------------------------------------------------------------- +Tue Sep 24 19:50:33 UTC 2019 - Robert Schweikert + +- Add cloud-init-after-wicked.patch + - Change the service order, the cloud-init service wants to run after + networking is started + +------------------------------------------------------------------- +Tue Sep 24 18:46:00 UTC 2019 - Robert Schweikert + +- Add cloud-init-noresolv-merge-no-dns-data.diff + - Avoid writing resolv.conf if the network configuration contains no + dns entries. + +------------------------------------------------------------------- +Mon Sep 23 13:05:03 UTC 2019 - Robert Schweikert + +- Follow up to update cloud-init-trigger-udev.patch (bsc#1144363) + - In this implementation the "name" is not yet an attribute, use + get() to obtain the value from a dict. Source code version confusion. + +------------------------------------------------------------------- +Mon Aug 19 16:46:35 UTC 2019 - Robert Schweikert + +- Add cloud-init-add-static-routes.diff (bsc#1141969) + + Properly handle static routes. The EphemeralDHCP context manager did + not parse or handle rfc3442 classless static routes which prevented + reading datasource metadata in some clouds. + +------------------------------------------------------------------- +Mon Aug 19 15:24:26 UTC 2019 - Robert Schweikert + +- Update cloud-init-trigger-udev.patch (bsc#1144363) + - The __str__ implementation no longer delivers the name of the interface, + use the "name" attribute instead to form a proper path in the + sysfs tree + +------------------------------------------------------------------- +Fri Aug 16 19:54:28 UTC 2019 - Robert Schweikert + +- Update cloud-init-write-routes.patch (boo#1144881, bsc#1148645) + + If no routes are set for a subnet but the subnet has a gateway + specified, set the gateway as the default route for the interface + +------------------------------------------------------------------- +Fri Jul 5 18:58:22 UTC 2019 - Robert Schweikert + +- Follow the ever changing inconsistencies of version definitions and + detection in the build service. + + No more suse_version in SUSE internal instance for SLES 15 SP1 + +------------------------------------------------------------------- +Tue Jun 11 12:37:16 UTC 2019 - Dominique Leuenberger + +- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to + shortcut the build queues by allowing usage of systemd-mini + +------------------------------------------------------------------- +Fri May 31 12:42:49 UTC 2019 - Robert Schweikert + +- Update to version 19.1 (bsc#1136440, bsc#1129124) + + Remove, included upstream + - fix-default-systemd-unit-dir.patch + - cloud-init-sysconf-ethsetup.patch + - cloud-init-handle-def-route-set.patch + - cloud-init-no-empty-resolv.patch + - cloud-init-proper-ipv6-varname.patch + + Forward port + - cloud-init-trigger-udev.patch + + Add cloud-init-detect-nova.diff (bsc#1136440) + + Modify cloud-init-python2-sigpipe.patch, import signal and constants + + Update spec to account for new location of bash completion + + freebsd: add chpasswd pkg in the image [Gonéri Le Bouder] + + tests: add Eoan release [Paride Legovini] + + cc_mounts: check if mount -a on no-change fstab path + [Jason Zions (MSFT)] (LP: #1825596) + + replace remaining occurrences of LOG.warn [Daniel Watkins] + + DataSourceAzure: Adjust timeout for polling IMDS [Anh Vo] + + Azure: Changes to the Hyper-V KVP Reporter [Anh Vo] + + git tests: no longer show warning about safe yaml. + + tools/read-version: handle errors [Chad Miller] + + net/sysconfig: only indicate available on known sysconfig distros + (LP: #1819994) + + packages: update rpm specs for new bash completion path + [Daniel Watkins] (LP: #1825444) + + test_azure: mock util.SeLinuxGuard where needed + [Jason Zions (MSFT)] (LP: #1825253) + + setup.py: install bash completion script in new location [Daniel Watkins] + + mount_cb: do not pass sync and rw options to mount + [Gonéri Le Bouder] (LP: #1645824) + + cc_apt_configure: fix typo in apt documentation [Dominic Schlegel] + + Revert "DataSource: move update_events from a class to an instance..." + [Daniel Watkins] + + Change DataSourceNoCloud to ignore file system label's case. + [Risto Oikarinen] + + cmd:main.py: Fix missing 'modules-init' key in modes dict + [Antonio Romito] (LP: #1815109) + + ubuntu_advantage: rewrite cloud-config module + + Azure: Treat _unset network configuration as if it were absent + [Jason Zions (MSFT)] (LP: #1823084) + + DatasourceAzure: add additional logging for azure datasource [Anh Vo] + + cloud_tests: fix apt_pipelining test-cases + + Azure: Ensure platform random_seed is always serializable as JSON. + [Jason Zions (MSFT)] + + net/sysconfig: write out SUSE-compatible IPv6 config [Robert Schweikert] + + tox: Update testenv for openSUSE Leap to 15.0 [Thomas Bechtold] + + net: Fix ipv6 static routes when using eni renderer + [Raphael Glon] (LP: #1818669) + + Add ubuntu_drivers config module [Daniel Watkins] + + doc: Refresh Azure walinuxagent docs [Daniel Watkins] + + tox: bump pylint version to latest (2.3.1) [Daniel Watkins] + + DataSource: move update_events from a class to an instance attribute + [Daniel Watkins] (LP: #1819913) + + net/sysconfig: Handle default route setup for dhcp configured NICs + [Robert Schweikert] (LP: #1812117) + + DataSourceEc2: update RELEASE_BLOCKER to be more accurate + [Daniel Watkins] + + cloud-init-per: POSIX sh does not support string subst, use sed + (LP: #1819222) + + Support locking user with usermod if passwd is not available. + + Example for Microsoft Azure data disk added. [Anton Olifir] + + clean: correctly determine the path for excluding seed directory + [Daniel Watkins] (LP: #1818571) + + helpers/openstack: Treat unknown link types as physical + [Daniel Watkins] (LP: #1639263) + + drop Python 2.6 support and our NIH version detection [Daniel Watkins] + + tip-pylint: Fix assignment-from-return-none errors + + net: append type:dhcp[46] only if dhcp[46] is True in v2 netconfig + [Kurt Stieger] (LP: #1818032) + + cc_apt_pipelining: stop disabling pipelining by default + [Daniel Watkins] (LP: #1794982) + + tests: fix some slow tests and some leaking state [Daniel Watkins] + + util: don't determine string_types ourselves [Daniel Watkins] + + cc_rsyslog: Escape possible nested set [Daniel Watkins] (LP: #1816967) + + Enable encrypted_data_bag_secret support for Chef + [Eric Williams] (LP: #1817082) + + azure: Filter list of ssh keys pulled from fabric [Jason Zions (MSFT)] + CVE-2019-0816 + + doc: update merging doc with fixes and some additional details/examples + + tests: integration test failure summary to use traceback if empty error + + This is to fix https://bugs.launchpad.net/cloud-init/+bug/1812676 + [Vitaly Kuznetsov] + + EC2: Rewrite network config on AWS Classic instances every boot + [Guilherme G. Piccoli] (LP: #1802073) + + netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries + (LP: #1779672) + + netplan: Don't render yaml aliases when dumping netplan (LP: #1815051) + + add PyCharm IDE .idea/ path to .gitignore [Dominic Schlegel] + + correct grammar issue in instance metadata documentation + [Dominic Schlegel] (LP: #1802188) + + clean: cloud-init clean should not trace when run from within cloud_dir + (LP: #1795508) + + Resolve flake8 comparison and pycodestyle over-ident issues + [Paride Legovini] + + opennebula: also exclude epochseconds from changed environment vars + (LP: #1813641) + + systemd: Render generator from template to account for system + differences. [Robert Schweikert] + + sysconfig: On SUSE, use STARTMODE instead of ONBOOT + [Robert Schweikert] (LP: #1799540) + + flake8: use ==/!= to compare str, bytes, and int literals + [Paride Legovini] + + opennebula: exclude EPOCHREALTIME as known bash env variable with a + delta (LP: #1813383) + + tox: fix disco httpretty dependencies for py37 (LP: #1813361) + + run-container: uncomment baseurl in yum.repos.d/*.repo when using a + proxy [Paride Legovini] + + lxd: install zfs-linux instead of zfs meta package + [Johnson Shi] (LP: #1799779) + + net/sysconfig: do not write a resolv.conf file with only the header. + [Robert Schweikert] + + net: Make sysconfig renderer compatible with Network Manager. + [Eduardo Otubo] + + cc_set_passwords: Fix regex when parsing hashed passwords + [Marlin Cremers] (LP: #1811446) + + net: Wait for dhclient to daemonize before reading lease file + [Jason Zions] (LP: #1794399) + + [Azure] Increase retries when talking to Wireserver during metadata walk + [Jason Zions] + + Add documentation on adding a datasource. + + doc: clean up some datasource documentation. + + ds-identify: fix wrong variable name in ovf_vmware_transport_guestinfo. + + Scaleway: Support ssh keys provided inside an instance tag. [PORTE Loïc] + + OVF: simplify expected return values of transport functions. + + Vmware: Add support for the com.vmware.guestInfo OVF transport. + (LP: #1807466) + + HACKING.rst: change contact info to Josh Powers + + Update to pylint 2.2.2. + +------------------------------------------------------------------- +Wed Apr 24 18:37:32 UTC 2019 - Robert Schweikert + +- Update cloud-init-write-routes.patch (bsc#1132692) + + Properly accumulate all the defined routes for a given network device. + Previously only the last defined route was written to the routes file. + +------------------------------------------------------------------- +Sat Mar 30 12:42:27 UTC 2019 - Robert Schweikert + +- Update cloud-init-trigger-udev.patch (bsc#1125950) + + Write the udev rules to a different file than the default + + Settle udev if not all configured devices are in the device tree to + avoid race condition between udev and cloud-init + +------------------------------------------------------------------- +Fri Feb 22 22:11:20 UTC 2019 - Robert Schweikert + +- Add cloud-init-trigger-udev.patch (bsc#1125950) + + When the user configures a new rules file for network devices + the rules may not apply immediately, trigger udevadm + +------------------------------------------------------------------- +Fri Feb 22 16:20:28 UTC 2019 - Robert Schweikert + +- Modify cloud-init-write-routes.patch (bsc#1125992) + + Fix the order of calls, the SUSE implementation of route config file + writing must clobber the default implementation. + +------------------------------------------------------------------- +Fri Feb 22 00:42:14 UTC 2019 - Robert Schweikert + +- Add cloud-init-proper-ipv6-varname.patch (bsc#1126101) + + Use the proper name to designate IPv6 addresses in ifcfg-* files + +------------------------------------------------------------------- +Thu Jan 31 17:13:21 UTC 2019 - Robert Schweikert + +- Modify cloud-init-write-routes.patch (boo#1123694) + + Drop a '-' in the route file for the last column + +------------------------------------------------------------------- +Tue Jan 22 13:04:40 UTC 2019 - Robert Schweikert + +- Add cloud-init-no-empty-resolv.patch (bsc#1119397) + +------------------------------------------------------------------- +Mon Jan 7 20:22:39 UTC 2019 - Robert Schweikert + +- Update to version 18.5 (bsc#1121878, boo#1116767) + + Remove + 0001-Fix-the-service-order-for-SUSE-distributions.patch + 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch + 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch + included upstream + + Forward port cloud-init-sysconf-ethsetup.patch + + Add cloud-init-write-routes.patch + + Add cloud-init-handle-def-route-set.patch + + tests: add Disco release [Joshua Powers] + + net: render 'metric' values in per-subnet routes (LP: #1805871) + + write_files: add support for appending to files. [James Baxter] + + config: On ubuntu select cloud archive mirrors for armel, armhf, arm64. + (LP: #1805854) + + dhclient-hook: cleanups, tests and fix a bug on 'down' event. + + NoCloud: Allow top level 'network' key in network-config. (LP: #1798117) + + ovf: Fix ovf network config generation gateway/routes (LP: #1806103) + + azure: detect vnet migration via netlink media change event + [Tamilmani Manoharan] + + Azure: fix copy/paste error in error handling when reading azure ovf. + + [Adam DePue] + + tests: fix incorrect order of mocks in test_handle_zfs_root. + + doc: Change dns_nameserver property to dns_nameservers. [Tomer Cohen] + + OVF: identify label iso9660 filesystems with label 'OVF ENV'. + + logs: collect-logs ignore instance-data-sensitive.json on non-root user + (LP: #1805201) + + net: Ephemeral*Network: add connectivity check via URL + + azure: _poll_imds only retry on 404. Fail on Timeout (LP: #1803598) + + resizefs: Prefix discovered devpath with '/dev/' when path does not + exist [Igor Galić] + + azure: retry imds polling on requests.Timeout (LP: #1800223) + + azure: Accept variation in error msg from mount for ntfs volumes + [Jason Zions] (LP: #1799338) + + azure: fix regression introduced when persisting ephemeral dhcp lease + [asakkurr] + + azure: add udev rules to create cloud-init Gen2 disk name symlinks + (LP: #1797480) + + tests: ec2 mock missing httpretty user-data and instance-identity routes + + azure: remove /etc/netplan/90-hotplug-azure.yaml when net from IMDS + + azure: report ready to fabric after reprovision and reduce logging + [asakkurr] (LP: #1799594) + + query: better error when missing read permission on instance-data + + instance-data: fallback to instance-data.json if sensitive is absent. + (LP: #1798189) + + docs: remove colon from network v1 config example. [Tomer Cohen] + + Add cloud-id binary to packages for SUSE [Jason Zions] + + systemd: On SUSE ensure cloud-init.service runs before wicked + [Robert Schweikert] (LP: #1799709) + + update detection of openSUSE variants [Robert Schweikert] + + azure: Add apply_network_config option to disable network from IMDS + (LP: #1798424) + + Correct spelling in an error message (udevadm). [Katie McLaughlin] + + tests: meta_data key changed to meta-data in ec2 instance-data.json + (LP: #1797231) + + tests: fix kvm integration test to assert flexible config-disk path + (LP: #1797199) + + tools: Add cloud-id command line utility + + instance-data: Add standard keys platform and subplatform. Refactor ec2. + + net: ignore nics that have "zero" mac address. (LP: #1796917) + + tests: fix apt_configure_primary to be more flexible + + Ubuntu: update sources.list to comment out deb-src entries. (LP: #74747) + +------------------------------------------------------------------- +Fri Nov 2 14:13:42 UTC 2018 - Robert Schweikert + +- Add cloud-init-ostack-metadat-dencode.patch (bsc#1101894) + +------------------------------------------------------------------- +Wed Oct 31 14:27:32 UTC 2018 - Robert Schweikert + +- Add cloud-init-static-net.patch (boo#1114160) + +------------------------------------------------------------------- +Thu Oct 25 18:56:13 UTC 2018 - Robert Schweikert + +- Update to version 18.4 (bsc#1087331, bsc#1097388, boo#1111427, bsc#1095627) + + Remove cloud-init-no-user-lock-if-already-locked.patch + cloud-init 18.4 is not supported on SLE 11 code base + + Remove 0001-Support-chrony-configuration-lp-1731619.patch + Included upstream + + Remove 0003-Distro-dependent-chrony-config-file.patch + Included upstream + + Remove 0001-switch-to-using-iproute2-tools.patch + Included upstream + + Remove cloud-init-no-python-linux-dist.patch + Included upstream + + Remove cloud-init-no-trace-empt-sect.patch + Included upstream + + Remove cloud-init-setpath-dsitentify.patch + Included upstream + + Modify fix-default-systemd-unit-dir.patch + Use pkg-config, only modify the generator + + Remove cloud-init-sysconfig-netpathfix.patch + Fixed upstream + + Removed cloud-init-skip-ovf-tests.patch + Fixed upstream + + Removed cloud-init-translate-netconf-ipv4-keep-gw.patch + Fixed upstream + + Add cloud-init-template-py2.patch avoid Python 3 dependency when we build + for distros with Python 2 support + + Add 0001-Follow-the-ever-bouncing-ball-for-openSUSE-distribut.patch + + Add 0002-Add-tests-for-additional-openSUSE-distro-condition-m.patch + + Add cloud-init-sysconf-path.patch + + Add cloud-init-sysconf-ethsetup.patch + + Add 0001-Fix-the-service-order-for-SUSE-distributions.patch + + Add dhcp-client as requirement + cloud-init uses dhclient to setup temporary network for + metadata retrieval. THis is needed until lp#1733226 is addressed + + add rtd example docs about new standardized keys + + use ds._crawled_metadata instance attribute if set when writing + instance-data.json + + ec2: update crawled metadata. add standardized keys + + tests: allow skipping an entire cloud_test without running. + + tests: disable lxd tests on cosmic + + cii-tests: use unittest2.SkipTest in ntp_chrony due to new deps + + lxd: adjust to snap installed lxd. + + docs: surface experimental doc in instance-data.json + + tests: fix ec2 integration tests. process meta_data instead of meta-data + + Add support for Infiniband network interfaces (IPoIB). [Mark Goddard] + + cli: add cloud-init query subcommand to query instance metadata + + tools/tox-venv: update for new features. + + pylint: ignore warning assignment-from-no-return for _write_network + + stages: Fix bug causing datasource to have incorrect sys_cfg. + (LP: #1787459) + + Remove dead-code _write_network distro implementations. + + net_util: ensure static configs have netmask in translate_network result + [Thomas Berger] (LP: #1792454) + + Fall back to root:root on syslog permissions if other options fail. + [Robert Schweikert] + + tests: Add mock for util.get_hostname. [Robert Schweikert] (LP: #1792799) + + ds-identify: doc string cleanup. + + OpenStack: Support setting mac address on bond. + [Fabian Wiesel] (LP: #1682064) + + bash_completion/cloud-init: fix shell syntax error. + + EphemeralIPv4Network: Be more explicit when adding default route. + (LP: #1792415) + + OpenStack: support reading of newer versions of metdata. + + OpenStack: fix bug causing 'latest' version to be used from network. + (LP: #1792157) + + user-data: jinja template to render instance-data.json in cloud-config + (LP: #1791781) + + config: disable ssh access to a configured user account + + tests: print failed testname instead of docstring upon failure + + tests: Disallow use of util.subp except for where needed. + + sysconfig: refactor sysconfig to accept distro specific templates paths + + Add unit tests for config/cc_ssh.py [Francis Ginther] + + Fix the built-in cloudinit/tests/helpers:skipIf + + read-version: enhance error message [Joshua Powers] + + hyperv_reporting_handler: simplify threaded publisher + + VMWare: Fix a network config bug in vm with static IPv4 and no gateway. + [Pengpeng Sun] (LP: #1766538) + + logging: Add logging config type hyperv for reporting via Azure KVP + [Andy Liu] + + tests: disable other snap test as well [Joshua Powers] + + tests: disable snap, fix write_files binary [Joshua Powers] + + Add datasource Oracle Compute Infrastructure (OCI). + + azure: allow azure to generate network configuration from IMDS per boot. + + Scaleway: Add network configuration to the DataSource [Louis Bouchard] + + docs: Fix example cloud-init analyze command to match output. + [Wesley Gao] + + netplan: Correctly render macaddress on a bonds and bridges when + provided. (LP: #1784699) + + tools: Add 'net-convert' subcommand command to 'cloud-init devel'. + + redhat: remove ssh keys on new instance. (LP: #1781094) + + Use typeset or local in profile.d scripts. (LP: #1784713) + + OpenNebula: Fix null gateway6 [Akihiko Ota] (LP: #1768547) + + oracle: fix detect_openstack to report True on OracleCloud.com DMI data + (LP: #1784685) + + tests: improve LXDInstance trying to workaround or catch bug. + + update_metadata re-config on every boot comments and tests not quite + right [Mike Gerdts] + + tests: Collect build_info from system if available. + + pylint: Fix pylint warnings reported in pylint 2.0.0. + + get_linux_distro: add support for rhel via redhat-release. + + get_linux_distro: add support for centos6 and rawhide flavors of redhat + (LP: #1781229) + + tools: add '--debug' to tools/net-convert.py + + tests: bump the version of paramiko to 2.4.1. + + docs: note in rtd about avoiding /tmp when writing files (LP: #1727876) + + ubuntu,centos,debian: get_linux_distro to align with platform.dist + (LP: #1780481) + + Fix boothook docs on environment variable name (INSTANCE_I -> + INSTANCE_ID) [Marc Tamsky] + + update_metadata: a datasource can support network re-config every boot + + tests: drop salt-minion integration test (LP: #1778737) + + Retry on failed import of gpg receive keys. + + tools: Fix run-container when neither source or binary package requested. + + docs: Fix a small spelling error. [Oz N Tiram] + + tox: use simplestreams from git repository rather than bzr. +- From 18.3 + + docs: represent sudo:false in docs for user_groups config module + + Explicitly prevent `sudo` access for user module + [Jacob Bednarz] (LP: #1771468) + + lxd: Delete default network and detach device if lxd-init created them. + (LP: #1776958) + + openstack: avoid unneeded metadata probe on non-openstack platforms + (LP: #1776701) + + stages: fix tracebacks if a module stage is undefined or empty + [Robert Schweikert] (LP: #1770462) + + Be more safe on string/bytes when writing multipart user-data to disk. + (LP: #1768600) + + Fix get_proc_env for pids that have non-utf8 content in environment. + (LP: #1775371) + + tests: fix salt_minion integration test on bionic and later + + tests: provide human-readable integration test summary when --verbose + + tests: skip chrony integration tests on lxd running artful or older + + test: add optional --preserve-instance arg to integraiton tests + + netplan: fix mtu if provided by network config for all rendered types + (LP: #1774666) + + tests: remove pip install workarounds for pylxd, take upstream fix. + + subp: support combine_capture argument. + + tests: ordered tox dependencies for pylxd install + + util: add get_linux_distro function to replace platform.dist + [Robert Schweikert] (LP: #1745235) + + pyflakes: fix unused variable references identified by pyflakes 2.0.0. + + Do not use the systemd_prefix macro, not available in this environment + [Robert Schweikert] + + doc: Add config info to ec2, openstack and cloudstack datasource docs + + Enable SmartOS network metadata to work with netplan via per-subnet + routes [Dan McDonald] (LP: #1763512) + + openstack: Allow discovery in init-local using dhclient in a sandbox. + (LP: #1749717) + + tests: Avoid using https in httpretty, improve HttPretty test case. + (LP: #1771659) + + yaml_load/schema: Add invalid line and column nums to error message + + Azure: Ignore NTFS mount errors when checking ephemeral drive + [Paul Meyer] + + packages/brpm: Get proper dependencies for cmdline distro. + + packages: Make rpm spec files patch in package version like in debs. + + tools/run-container: replace tools/run-centos with more generic. + + Update version.version_string to contain packaged version. (LP: #1770712) + + cc_mounts: Do not add devices to fstab that are already present. + [Lars Kellogg-Stedman] + + ds-identify: ensure that we have certain tokens in PATH. (LP: #1771382) + + tests: enable Ubuntu Cosmic in integration tests [Joshua Powers] + + read_file_or_url: move to url_helper, fix bug in its FileResponse. + + cloud_tests: help pylint [Ryan Harper] + + flake8: fix flake8 errors in previous commit. + + typos: Fix spelling mistakes in cc_mounts.py log messages [Stephen Ford] + + tests: restructure SSH and initial connections [Joshua Powers] + + ds-identify: recognize container-other as a container, test SmartOS. + + cloud-config.service: run After snap.seeded.service. (LP: #1767131) + + tests: do not rely on host /proc/cmdline in test_net.py + [Lars Kellogg-Stedman] (LP: #1769952) + + ds-identify: Remove dupe call to is_ds_enabled, improve debug message. + + SmartOS: fix get_interfaces for nics that do not have addr_assign_type. + + tests: fix package and ca_cert cloud_tests on bionic + (LP: #1769985) + + ds-identify: make shellcheck 0.4.6 happy with ds-identify. + + pycodestyle: Fix deprecated string literals, move away from flake8. + + azure: Add reported ready marker file. [Joshua Chan] (LP: #1765214) + + tools: Support adding a release suffix through packages/bddeb. + + FreeBSD: Invoke growfs on ufs filesystems such that it does not prompt. + [Harm Weites] (LP: #1404745) + + tools: Re-use the orig tarball in packages/bddeb if it is around. + + netinfo: fix netdev_pformat when a nic does not have an address + assigned. (LP: #1766302) + + collect-logs: add -v flag, write to stderr, limit journal to single + boot. (LP: #1766335) + + IBMCloud: Disable config-drive and nocloud only if IBMCloud is enabled. + (LP: #1766401) + + Add reporting events and log_time around early source of blocking time + [Ryan Harper] + + IBMCloud: recognize provisioning environment during debug boots. + (LP: #1767166) + + net: detect unstable network names and trigger a settle if needed + [Ryan Harper] (LP: #1766287) + + IBMCloud: improve documentation in datasource. + + sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov] + + packages/debian/control.in: add missing dependency on iproute2. + (LP: #1766711) + + DataSourceSmartOS: add locking of serial device. + [Mike Gerdts] (LP: #1746605) + + DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] (LP: #1765085) + + DataSourceSmartOS: list() should always return a list + [Mike Gerdts] (LP: #1763480) + + schema: in validation, raise ImportError if strict but no jsonschema. + + set_passwords: Add newline to end of sshd config, only restart if + updated. (LP: #1677205) + + pylint: pay attention to unused variable warnings. + + doc: Add documentation for AliYun datasource. [Junjie Wang] + + Schema: do not warn on duplicate items in commands. (LP: #1764264) + + net: Depend on iproute2's ip instead of net-tools ifconfig or route + + DataSourceSmartOS: fix hang when metadata service is down + [Mike Gerdts] (LP: #1667735) + + DataSourceSmartOS: change default fs on ephemeral disk from ext3 to + ext4. [Mike Gerdts] (LP: #1763511) + + pycodestyle: Fix invalid escape sequences in string literals. + + Implement bash completion script for cloud-init command line + [Ryan Harper] + + tools: Fix make-tarball cli tool usage for development + + renderer: support unicode in render_from_file. + + Implement ntp client spec with auto support for distro selection + [Ryan Harper] (LP: #1749722) + + Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds. + + tests: fix ec2 integration network metadata validation + + tests: fix integration tests to support lxd 3.0 release + + correct documentation to match correct attribute name usage. + [Dominic Schlegel] (LP: #1420018) + + cc_resizefs, util: handle no /dev/zfs [Ryan Harper] + + doc: Fix links in OpenStack datasource documentation. + [Dominic Schlegel] (LP: #1721660) + +------------------------------------------------------------------- +Fri Aug 24 21:42:43 UTC 2018 - rjschwei@suse.com + +- Add a modified version of fix-default-systemd-unit-dir.patch + + Removed pre-maturely, still needs 1 part of the patch + +------------------------------------------------------------------- +Fri Aug 24 19:29:03 UTC 2018 - rjschwei@suse.com + +- Remove fix-default-systemd-unit-dir.patch + + No longer needed, proper systemd config dir is queried from pckg-config + +------------------------------------------------------------------- +Thu Jul 5 17:59:12 UTC 2018 - rjschwei@suse.com + +- The distribution inidcator is set to suse during template expansion, + we do not replace anything set to ubuntu +- Do not run cloud-init after network-online, this breaks functionality in + cloud-init. Certain parts of the code running in this phase expect to run + before the network is on-line. This "re-introduces" boo#1097388. But the + changes made are not generic enough. +- Root should not be enabled by default. For image builders/users that want + root access by default they should provide an appropriate configuration + file during image build or image setup + +------------------------------------------------------------------- +Wed Jun 27 15:42:34 UTC 2018 - bwiedemann@suse.com + +- Let distribution default to opensuse/sles (boo#1099340) +- do not disable root user to make it easier to work with +- Run metadata detection after network-online (boo#1097388) + +------------------------------------------------------------------- +Tue May 22 18:12:43 UTC 2018 - rjschwei@suse.com + +- Re-add generator (bsc#1089824, boo#1093501) + + Add cloud-init-setpath-dsitentify.patch, upstream solution to + hanle PATH issue + + Re-enable th egenerator to reduce effort in cloud-init configuration + +------------------------------------------------------------------- +Wed May 16 15:21:33 UTC 2018 - rjschwei@suse.com + +- Drop the generator (bsc#1089824, boo#1093501) + + The generator spawns a script called ds-identify which in turn calls + blkid. When the generator executes the environment may or may not be + ready. The generator speeds up the boot process in cases where + cloud-init is enabled but we are not in an environment where cloud-init + should run -> Don't do that. + +------------------------------------------------------------------- +Fri May 11 14:20:28 UTC 2018 - rjschwei@suse.com + +- Update to version 18.2 (bsc#1092637, bsc#1084509) + + Forward port cloud-init-python2-sigpipe.patch + + Forward port cloud-init-no-python-linux-dist.patch + + Add cloud-init-no-trace-empt-sect.patch + + Hetzner: Exit early if dmi system-manufacturer is not Hetzner. + + Add missing dependency on isc-dhcp-client to trunk ubuntu packaging. + + (LP: #1759307) + + FreeBSD: resizefs module now able to handle zfs/zpool. + + [Dominic Schlegel] (LP: #1721243) + + cc_puppet: Revert regression of puppet creating ssl and ssl_cert dirs + + Enable IBMCloud datasource in settings.py. + + IBMCloud: Initial IBM Cloud datasource. + + tests: remove jsonschema from xenial tox environment. + + tests: Fix newly added schema unit tests to skip if no jsonschema. + + ec2: Adjust ec2 datasource after exception_cb change. + + Reduce AzurePreprovisioning HTTP timeouts. + + [Douglas Jordan] (LP: #1752977) + + Revert the logic of exception_cb in read_url. + + [Kurt Garloff] (LP: #1702160, #1298921) + + ubuntu-advantage: Add new config module to support + + ubuntu-advantage-tools + + Handle global dns entries in netplan (LP: #1750884) + + Identify OpenTelekomCloud Xen as OpenStack DS. + + [Kurt Garloff] (LP: #1756471) + + datasources: fix DataSource subclass get_hostname method signature + + (LP: #1757176) + + OpenNebula: Update network to return v2 config rather than ENI. + + [Akihiko Ota] + + Add Hetzner Cloud DataSource + + net: recognize iscsi root cases without ip= on kernel command line. + + (LP: #1752391) + + tests: fix flakes warning for unused variable + + tests: patch leaked stderr messages from snap unit tests + + cc_snap: Add new module to install and configure snapd and snap + + packages. + + tests: Make pylint happy and fix python2.6 uses of assertRaisesRegex. + + netplan: render bridge port-priority values (LP: #1735821) + + util: Fix subp regression. Allow specifying subp command as a string. + + (LP: #1755965) + + doc: fix all warnings issued by 'tox -e doc' + + FreeBSD: Set hostname to FQDN. [Dominic Schlegel] (LP: #1753499) + + tests: fix run_tree and bddeb + + tests: Fix some warnings in tests that popped up with newer python. + + set_hostname: When present in metadata, set it before network bringup. + + (LP: #1746455) + + tests: Centralize and re-use skipTest based on json schema presense. + + This commit fixes get_hostname on the AzureDataSource. + + [Douglas Jordan] (LP: #1754495) + + shellify: raise TypeError on bad input. + + Make salt minion module work on FreeBSD. + + [Dominic Schlegel] (LP: #1721503) + + Simplify some comparisions. [Rémy Léone] + + Change some list creation and population to literal. [Rémy Léone] + + GCE: fix reading of user-data that is not base64 encoded. (LP: #1752711) + + doc: fix chef install from apt packages example in RTD. + + Implement puppet 4 support [Romanos Skiadas] (LP: #1446804) + + subp: Fix subp usage with non-ascii characters when no system locale. + + (LP: #1751051) + + salt: configure grains in grains file rather than in minion config. + [Daniel Wallace] + +------------------------------------------------------------------- +Wed Mar 21 22:27:40 UTC 2018 - rjschwei@suse.com + +- Update to version 18.1 (bsc#1085787, bsc#1084749) + + Forward port cloud-init-python2-sigpipe.patch + + Forward port 0003-Distro-dependent-chrony-config-file.patch + partial integration into 0001-Support-chrony-configuration-lp-1731619.patch + + Forward port cloud-init-no-python-linux-dist.patch + + Remove 0002-Disable-method-deprecation-warning-for-pylint.patch + use new cloud-init internal distro detection code + + Remove cloud-init-resize-ro-btrfs.patch included upstream + + Remove 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch + included upstream + + OVF: Fix VMware support for 64-bit platforms. [Sankar Tanguturi] + + ds-identify: Fix searching for iso9660 OVF cdroms. (LP: #1749980) + + SUSE: Fix groups used for ownership of cloud-init.log [Robert Schweikert] + + ds-identify: check /writable/system-data/ for nocloud seed. + (LP: #1747070) + + tests: run nosetests in cloudinit/ directory, fix py26 fallout. + + tools: run-centos: git clone rather than tar. + + tests: add support for logs with lxd from snap and future lxd 3. + (LP: #1745663) + + EC2: Fix get_instance_id called against cached datasource pickle. + (LP: #1748354) + + cli: fix cloud-init status to report running when before result.json + (LP: #1747965) + + net: accept network-config in netplan format for renaming interfaces + (LP: #1709715) + + Fix ssh keys validation in ssh_util [Tatiana Kholkina] + + docs: Update RTD content for cloud-init subcommands. + + OVF: Extend well-known labels to include OVFENV. (LP: #1698669) + + Fix potential cases of uninitialized variables. (LP: #1744796) + + tests: Collect script output as binary, collect systemd journal, fix lxd. + + HACKING.rst: mention setting user name and email via git config. + + Azure VM Preprovisioning support. [Douglas Jordan] (LP: #1734991) + + tools/read-version: Fix read-version when in a git worktree. + + docs: Fix typos in docs and one debug message. [Florian Grignon] + + btrfs: support resizing if root is mounted ro. + [Robert Schweikert] (LP: #1734787) + + OpenNebula: Improve network configuration support. + [Akihiko Ota] (LP: #1719157, #1716397, #1736750) + + tests: Fix EC2 Platform to return console output as bytes. + + tests: Fix attempted use of /run in a test case. + + GCE: Improvements and changes to ssh key behavior for default user. + [Max Illfelder] (LP: #1670456, #1707033, #1707037, #1707039) + + subp: make ProcessExecutionError have expected types in stderr, stdout. + + tests: when querying ntp server, do not do dns resolution. + + Recognize uppercase vfat disk labels [James Penick] (LP: #1598783) + + tests: remove zesty as supported OS to test [Joshua Powers] + + Do not log warning on config files that represent None. (LP: #1742479) + + tests: Use git hash pip dependency format for pylxd. + + tests: add integration requirements text file [Joshua Powers] + + MAAS: add check_instance_id based off oauth tokens. (LP: #1712680) + + tests: update apt sources list test [Joshua Powers] + + tests: clean up image properties [Joshua Powers] + + tests: rename test ssh keys to avoid appearance of leaking private keys. + [Joshua Powers] + + tests: Enable AWS EC2 Integration Testing [Joshua Powers] + + cli: cloud-init clean handles symlinks (LP: #1741093) + + SUSE: Add a basic test of network config rendering. [Robert Schweikert] + + Azure: Only bounce network when necessary. (LP: #1722668) + + lint: Fix lints seen by pylint version 1.8.1. + + cli: Fix error in cloud-init modules --mode=init. (LP: #1736600) + +------------------------------------------------------------------- +Fri Feb 16 13:23:00 UTC 2018 - dmueller@suse.com + +- update cloud-init-sysconfig-netpathfix.patch: + * skip checking for files in /etc/sysconfig that never exist + on a wickedd based system + +------------------------------------------------------------------- +Tue Feb 13 19:39:50 UTC 2018 - rjschwei@suse.com + +- Fix logfile permission settings (bsc#1080595) + + Add 0001-Set-syslog_fix_perms-for-SUSE-distro-addresses-bsc-1.patch + +------------------------------------------------------------------- +Tue Jan 30 13:20:57 UTC 2018 - dmueller@suse.com + +- drop dependency on boto (only used in examples, and + should really be ported to botocore/boto3 instead) + +------------------------------------------------------------------- +Mon Jan 29 18:35:49 UTC 2018 - rjschwei@suse.com + +- Update to version 17.2 (boo#1069635, bsc#1072811) + + Add cloud-init-skip-ovf-tests.patch + + Add cloud-init-no-python-linux-dist.patch + + Add 0001-switch-to-using-iproute2-tools.patch + + Add 0001-Support-chrony-configuration-lp-1731619.patch + + Add 0002-Disable-method-deprecation-warning-for-pylint.patch + + Add 0003-Distro-dependent-chrony-config-file.patch + + removed cloud-init-add-variant-cloudcfg.patch replaced by + cloud-init-no-python-linux-dist.patch + + removed zypp_add_repos.diff included upstream + + removed zypp_add_repo_test.patch included upstream + + removed cloud-init-hosts-template.patch included upstream + + removed cloud-init-more-tasks.patch included upstream + + removed cloud-init-final-no-apt.patch included upstream + + removed cloud-init-ntp-conf-suse.patch included upstream + + removed cloud-init-break-cycle-local-service.patch included upstream + + removed cloud-init-reproduce-build.patch included upstream + + For the complete changelog see https://launchpad.net/cloud-init/trunk/17.2 + +------------------------------------------------------------------- +Thu Jan 18 09:57:10 UTC 2018 - gmoro@suse.com + +- patch distribution detection until a fix is delivered to python3 (bsc#997614) + add cloud-init-add-variant-cloudcfg.patch + +------------------------------------------------------------------- +Tue Jan 16 10:03:00 UTC 2018 - dimstar@opensuse.org + +- Fix usage of fdupes macro: there is no '-n' parameter to the + macro (there would be to fdupes, the command, though). + +------------------------------------------------------------------- +Wed Dec 6 13:08:04 UTC 2017 - rjschwei@suse.com + +- Add cloud-init-reproduce-build.patch (boo#1069635) + + Make builds reproducible + +------------------------------------------------------------------- +Mon Nov 27 13:21:13 CET 2017 - kukuk@suse.de + +- Add cloud-init-resize-ro-btrfs.patch + + cc_resizefs fails if the current root is a read-only btrfs + subvolume, use an always writeable subvolume instead [bsc#1042913] + +------------------------------------------------------------------- +Sun Nov 19 20:43:46 UTC 2017 - rjschwei@suse.com + +- Add cloud-init-break-cycle-local-service.patch + + Let systemd pull in the default targets. This breaks a cycle + +------------------------------------------------------------------- +Fri Nov 17 17:10:09 UTC 2017 - rjschwei@suse.com + +- Fix variable name in cloud-init-translate-netconf-ipv4-keep-gw.patch + +------------------------------------------------------------------- +Thu Nov 16 22:48:40 UTC 2017 - rjschwei@suse.com + +- Add cloud-init-translate-netconf-ipv4-keep-gw.patch (boo#1064854) + + Properly insert the gateway information for v1 json network config data + +------------------------------------------------------------------- +Sat Nov 11 12:32:54 UTC 2017 - rjschwei@suse.com + +- Add cloud-init-ntp-conf-suse.patch + + ntp configuration was broken on sles and opensuse lp#1726572 + +------------------------------------------------------------------- +Wed Nov 8 21:26:15 UTC 2017 - rjschwei@suse.com + +- Add cloud-init-hosts-template.patch (bsc#1064594) + + Properly expand the /etc/hosst file when manage_etc_hosts is set + +------------------------------------------------------------------- +Thu Nov 2 13:16:49 UTC 2017 - rjschwei@suse.com + +- Fix sed expression to set distro properly (boo#1063716) + +------------------------------------------------------------------- +Thu Sep 21 17:32:55 EDT 2017 - rjschwei@suse.com + +- Update to version 17.1 (bsc#1035106) + + Version numbering scheme change now YY.NUMBER_OF_RELESE_THAT_YEAR + + Remove cloud.cfg.suse, use generated default config file + + Remove addopenSUSEBase.patch, included upstream + + Remove suseIntegratedHandler.patch, included upstream + + Remove openSUSEhostsTemplate.diff, included upstream + + Remove cloud-init-handle-no-carrier.patch, included upstream + + Remove cloud-init-digital-ocean-datasource.patch, + use upstream implementation + + Remove cloud-init-digital-ocean-datasource-enable-by-default.patch, + use upstream implementation + + Remove cloud-init-fix-unicode-handling-binarydecode.patch, + included upstream + + Remove cloud-init-no-dmidecode-on-ppc64.patch, included upstream + + Remove dataSourceOpenNebula.patch, use upstream implementation + + Remove setupSUSEsysVInit.diff, included upstream + + Remove suseSysVInit.diff, included upstream + + Remove cloud-init-finalbeforelogin.patch, don't block login + + Remove cloud-init-handle-not-implemented-query.patch, query option removed + + Remove cloud-init-spceandtabs-clean.patch, indentation fixed upstream + + Remove dynamicInitCmd.diff, different solution from upstream + + Added cloud-init-more-tasks.patch, (bsc#1047363) + replace cloud-init-finalbeforelogin.patch + + Forward port cloud-init-python2-sigpipe.patch + + Remove cloud-init-net-eni.patch, included upstream + + Remove cloud-init-service.patch, included upstream + + Forward port cloud-init-sysconfig-netpathfix.patch + + Remove cloud-init-net-sysconfig-lp1665441.patch, included upstream + + Remove cloud-init-python26.patch, included upstream + + Remove skip-argparse-on-python3.patch + + Add cloud-init-tests-set-exec.patch + + Add cloud-init-final-no-apt.patch + + Add zypp_add_repo_test.patch + + doc: document GCE datasource. [Arnd Hannemann] + + suse: updates to templates to support openSUSE and SLES. + + [Robert Schweikert] (LP: #1718640) + + suse: Copy sysvinit files from redhat with slight changes. + + [Robert Schweikert] (LP: #1718649) + + docs: fix sphinx module schema documentation [Chad Smith] + + tests: Add cloudinit package to all test targets [Chad Smith] + + Makefile: No longer look for yaml files in obsolete ./bin/. + + tests: fix ds-identify unit tests to set EC2_STRICT_ID_DEFAULT. + + ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir + + [Chad Smith] (LP: #1717627) + + Azure: wait longer for SSH pub keys to arrive. + + [Paul Meyer] (LP: #1717611) + + GCE: Fix usage of user-data. (LP: #1717598) + + cmdline: add collect-logs subcommand. [Chad Smith] (LP: #1607345) + + CloudStack: consider dhclient lease files named with a hyphen. + + (LP: #1717147) + + resizefs: Drop check for read-only device file, do not warn on + + overlayroot. [Chad Smith] + + Do not provide systemd-fsck drop-in which could cause ordering cycles. + + [Balint Reczey] (LP: #1717477) + + tests: Enable the NoCloud KVM platform [Joshua Powers] + + resizefs: pass mount point to xfs_growfs [Dusty Mabe] + + vmware: Enable nics before sending the SUCCESS event. [Sankar Tanguturi] + + cloud-config modules: honor distros definitions in each module + + [Chad Smith] (LP: #1715738, #1715690) + + chef: Add option to pin chef omnibus install version + + [Ethan Apodaca] (LP: #1462693) + + tests: execute: support command as string [Joshua Powers] + + schema and docs: Add jsonschema to resizefs and bootcmd modules + + [Chad Smith] + + tools: Add xkvm script, wrapper around qemu-system [Joshua Powers] + + vmware customization: return network config format + + [Sankar Tanguturi] (LP: #1675063) + + Ec2: only attempt to operate at local mode on known platforms. + + (LP: #1715128) + + Use /run/cloud-init for tempfile operations. (LP: #1707222) + + ds-identify: Make OpenStack return maybe on arch other than intel. + + (LP: #1715241) + + tests: mock missed openstack metadata uri network_data.json + + [Chad Smith] (LP: #1714376) + + relocate tests/unittests/helpers.py to cloudinit/tests + + [Lars Kellogg-Stedman] + + tox: add nose timer output [Joshua Powers] + + upstart: do not package upstart jobs, drop ubuntu-init-switch module. + + tests: Stop leaking calls through unmocked metadata addresses + + [Chad Smith] (LP: #1714117) + + distro: allow distro to specify a default locale [Ryan Harper] + + tests: fix two recently added tests for sles distro. + + url_helper: dynamically import oauthlib import from inside oauth_headers + + [Chad Smith] + + tox: make xenial environment run with python3.6 + + suse: Add support for openSUSE and return SLES to a working state. + + [Robert Schweikert] + + GCE: Add a main to the GCE Datasource. + + ec2: Add IPv6 dhcp support to Ec2DataSource. [Chad Smith] (LP: #1639030) + + url_helper: fail gracefully if oauthlib is not available + + [Lars Kellogg-Stedman] (LP: #1713760) + + cloud-init analyze: fix issues running under python 2. [Andrew Jorgensen] + + Configure logging module to always use UTC time. + + [Ryan Harper] (LP: #1713158) + + Log a helpful message if a user script does not include shebang. + + [Andrew Jorgensen] + + cli: Fix command line parsing of coniditionally loaded subcommands. + + [Chad Smith] (LP: #1712676) + + doc: Explain error behavior in user data include file format. + + [Jason Butz] + + cc_landscape & cc_puppet: Fix six.StringIO use in writing configs + + [Chad Smith] (LP: #1699282, #1710932) + + schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema + + [Chad Smith] + + Debian: Remove non-free repositories from apt sources template. + + [Joonas Kylmälä] (LP: #1700091) + + tools: Add tooling for basic cloud-init performance analysis. + + [Chad Smith] (LP: #1709761) + + network: add v2 passthrough and fix parsing v2 config with bonds/bridge + + params [Ryan Harper] (LP: #1709180) + + doc: update capabilities with features available, link doc reference, + + cli example [Ryan Harper] + + vcloud directory: Guest Customization support for passwords + + [Maitreyee Saikia] + + ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. + + [Chad Smith] (LP: #1709772) + + cc_ntp: fallback on timesyncd configuration if ntp is not installable + + [Ryan Harper] (LP: #1686485) + + net: Reduce duplicate code. Have get_interfaces_by_mac use + + get_interfaces. + + tests: Fix build tree integration tests [Joshua Powers] + + sysconfig: Dont repeat header when rendering resolv.conf + + [Ryan Harper] (LP: #1701420) + + archlinux: Fix bug with empty dns, do not render 'lo' devices. + + (LP: #1663045, #1706593) + + cloudinit.net: add initialize_network_device function and tests + + [Chad Smith] + + makefile: fix ci-deps-ubuntu target [Chad Smith] + + tests: adjust locale integration test to parse default locale. + + tests: remove 'yakkety' from releases as it is EOL. + + tests: Add initial tests for EC2 and improve a docstring. + + locale: Do not re-run locale-gen if provided locale is system default. + + archlinux: fix set hostname usage of write_file. + + [Joshua Powers] (LP: #1705306) + + sysconfig: support subnet type of 'manual'. + + tools/run-centos: make running with no argument show help. + + Drop rand_str() usage in DNS redirection detection + + [Bob Aman] (LP: #1088611) + + sysconfig: use MACADDR on bonds/bridges to configure mac_address + + [Ryan Harper] (LP: #1701417) + + net: eni route rendering missed ipv6 default route config + + [Ryan Harper] (LP: #1701097) + + sysconfig: enable mtu set per subnet, including ipv6 mtu + + [Ryan Harper] (LP: #1702513) + + sysconfig: handle manual type subnets [Ryan Harper] (LP: #1687725) + + sysconfig: fix ipv6 gateway routes [Ryan Harper] (LP: #1694801) + + sysconfig: fix rendering of bond, bridge and vlan types. + + [Ryan Harper] (LP: #1695092) + + Templatize systemd unit files for cross distro deltas. [Ryan Harper] + + sysconfig: ipv6 and default gateway fixes. [Ryan Harper] (LP: #1704872) + + net: fix renaming of nics to support mac addresses written in upper + + case. (LP: #1705147) + + tests: fixes for issues uncovered when moving to python 3.6. + + (LP: #1703697) + + sysconfig: include GATEWAY value if set in subnet + + [Ryan Harper] (LP: #1686856) + + Scaleway: add datasource with user and vendor data for Scaleway. + + [Julien Castets] + + Support comments in content read by load_shell_content. + + cloudinitlocal fail to run during boot [Hongjiang Zhang] + + doc: fix disk setup example table_type options + + [Sandor Zeestraten] (LP: #1703789) + + tools: Fix exception handling. [Joonas Kylmälä] (LP: #1701527) + + tests: fix usage of mock in GCE test. + + test_gce: Fix invalid mock of platform_reports_gce to return False + + [Chad Smith] + + test: fix incorrect keyid for apt repository. + + [Joshua Powers] (LP: #1702717) + + tests: Update version of pylxd [Joshua Powers] + + write_files: Remove log from helper function signatures. + + [Andrew Jorgensen] + + doc: document the cmdline options to NoCloud [Brian Candler] + + read_dmi_data: always return None when inside a container. (LP: #1701325) + + requirements.txt: remove trailing white space. + + Azure: Add network-config, Refactor net layer to handle duplicate macs. + + [Ryan Harper] + + Tests: Simplify the check on ssh-import-id [Joshua Powers] + + tests: update ntp tests after sntp added [Joshua Powers] + + FreeBSD: Make freebsd a variant, fix unittests and + + tools/build-on-freebsd. + + FreeBSD: fix test failure + + FreeBSD: replace ifdown/ifup with "ifconfig down" and "ifconfig up". + + [Hongjiang Zhang] (LP: #1697815) + + FreeBSD: fix cdrom mounting failure if /mnt/cdrom/secure did not exist. + + [Hongjiang Zhang] (LP: #1696295) + + main: Don't use templater to format the welcome message + + [Andrew Jorgensen] + + docs: Automatically generate module docs form schema if present. + + [Chad Smith] + + debian: fix path comment in /etc/hosts template. + + [Jens Sandmann] (LP: #1606406) + + suse: add hostname and fully qualified domain to template. + + [Jens Sandmann] + + write_file(s): Print permissions as octal, not decimal [Andrew Jorgensen] + + ci deps: Add --test-distro to read-dependencies to install all deps + + [Chad Smith] + + tools/run-centos: cleanups and move to using read-dependencies + + pkg build ci: Add make ci-deps- target to install pkgs + + [Chad Smith] + + systemd: make cloud-final.service run before apt daily services. + + (LP: #1693361) + + selinux: Allow restorecon to be non-fatal. [Ryan Harper] (LP: #1686751) + + net: Allow netinfo subprocesses to return 0 or 1. + + [Ryan Harper] (LP: #1686751) + + net: Allow for NetworkManager configuration [Ryan McCabe] (LP: #1693251) + + Use distro release version to determine if we use systemd in redhat spec + + [Ryan Harper] + + net: normalize data in network_state object + + Integration Testing: tox env, pyxld 2.2.3, and revamp framework + + [Wesley Wiedenmeier] + + Chef: Update omnibus url to chef.io, minor doc changes. [JJ Asghar] + + tools: add centos scripts to build and test [Joshua Powers] + + Drop cheetah python module as it is not needed by trunk [Ryan Harper] + + rhel/centos spec cleanups. + + cloud.cfg: move to a template. setup.py changes along the way. + + Makefile: add deb-src and srpm targets. use PYVER more places. + + makefile: fix python 2/3 detection in the Makefile [Chad Smith] + + snap: Removing snapcraft plug line [Joshua Powers] (LP: #1695333) + + RHEL/CentOS: Fix default routes for IPv4/IPv6 configuration. + + [Andreas Karis] (LP: #1696176) + + test: Fix pyflakes complaint of unused import. + + [Joshua Powers] (LP: #1695918) + + NoCloud: support seed of nocloud from smbios information + + [Vladimir Pouzanov] (LP: #1691772) + + net: when selecting a network device, use natural sort order + + [Marc-Aurèle Brothier] + + fix typos and remove whitespace in various docs [Stephan Telling] + + systemd: Fix typo in comment in cloud-init.target. [Chen-Han Hsiao] + + Tests: Skip jsonschema related unit tests when dependency is absent. + + [Chad Smith] (LP: #1695318) + + azure: remove accidental duplicate line in merge. + + azure: identify platform by well known value in chassis asset tag. + + [Chad Smith] (LP: #1693939) + + tools/net-convert.py: support old cloudinit versions by using kwargs. + + ntp: Add schema definition and passive schema validation. + + [Chad Smith] (LP: #1692916) + + Fix eni rendering for bridge params that require repeated key for + + values. [Ryan Harper] + + net: remove systemd link file writing from eni renderer [Ryan Harper] + + AliYun: Enable platform identification and enable by default. + + [Junjie Wang] (LP: #1638931) + + net: fix reading and rendering addresses in cidr format. + + [Dimitri John Ledkov] (LP: #1689346, #1684349) + + disk_setup: udev settle before attempting partitioning or fs creation. + + (LP: #1692093) + + GCE: Update the attribute used to find instance SSH keys. + + [Daniel Watkins] (LP: #1693582) + + nplan: For bonds, allow dashed or underscore names of keys. + + [Dimitri John Ledkov] (LP: #1690480) + + python2.6: fix unit tests usage of assertNone and format. + + test: update docstring on test_configured_list_with_none + + fix tools/ds-identify to not write None twice. + + tox/build: do not package depend on style requirements. + + cc_ntp: Restructure cc_ntp unit tests. [Chad Smith] (LP: #1692794) + + flake8: move the pinned version of flake8 up to 3.3.0 + + tests: Apply workaround for snapd bug in test case. [Joshua Powers] + + RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. + + [Andreas Karis] (LP: #1679817, #1685534, #1685532) + + disk_setup: fix several issues with gpt disk partitions. (LP: #1692087) + + function spelling & docstring update [Joshua Powers] + + Fixing wrong file name regression. [Joshua Powers] + + tox: move pylint target to 1.7.1 + + Fix get_interfaces_by_mac for empty macs (LP: #1692028) + + DigitalOcean: remove routes except for the public interface. + + [Ben Howard] (LP: #1681531.) + + netplan: pass macaddress, when specified, for vlans + + [Dimitri John Ledkov] (LP: #1690388) + + doc: various improvements for the docs on cc_users_groups. + + [Felix Dreissig] + + cc_ntp: write template before installing and add service restart + + [Ryan Harper] (LP: #1645644) + + cloudstack: fix tests to avoid accessing /var/lib/NetworkManager + + [Lars Kellogg-Stedman] + + tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517) + + Actually skip warnings when .skip file is present. + + [Chris Brinker] (LP: #1691551) + + netplan: fix netplan render_network_state signature. + + [Dimitri John Ledkov] (LP: #1685944) + + Azure: fix reformatting of ephemeral disks on resize to large types. + + (LP: #1686514) + + Revert "tools/net-convert: fix argument order for render_network_state" + + make deb: Add devscripts dependency for make deb. Cleanup + + packages/bddeb. [Chad Smith] (LP: #1685935) + + tools/net-convert: fix argument order for render_network_state + + [Ryan Harper] (LP: #1685944) + + openstack: fix log message copy/paste typo in _get_url_settings + + [Lars Kellogg-Stedman] + + unittests: fix unittests run on centos [Joshua Powers] + + Improve detection of snappy to include os-release and kernel cmdline. + + (LP: #1689944) + + Add address to config entry generated by _klibc_to_config_entry. + + [Julien Castets] (LP: #1691135) + + sysconfig: Raise ValueError when multiple default gateways are present. + + [Chad Smith] (LP: #1687485) + + FreeBSD: improvements and fixes for use on Azure + + [Hongjiang Zhang] (LP: #1636345) + + Add unit tests for ds-identify, fix Ec2 bug found. + + fs_setup: if cmd is specified, use shell interpretation. + + [Paul Meyer] (LP: #1687712) + + doc: document network configuration defaults policy and formats. + + [Ryan Harper] + + Fix name of "uri" key in docs for "cc_apt_configure" module + + [Felix Dreissig] + + tests: Enable artful [Joshua Powers] + + nova-lxd: read product_name from environment, not platform. + + (LP: #1685810) + + Fix yum repo config where keys contain array values + + [Dylan Perry] (LP: #1592150) + + template: Update debian backports template [Joshua Powers] (LP: #1627293) + + rsyslog: replace ~ with stop [Joshua Powers] (LP: #1367899) + + Doc: add additional RTD examples [Joshua Powers] (LP: #1459604) + + Fix growpart for some cases when booted with root=PARTUUID. + + (LP: #1684869) + + pylint: update output style to parseable [Joshua Powers] + + pylint: fix all logging warnings [Joshua Powers] + + CloudStack: Add NetworkManager to list of supported DHCP lease dirs. + + [Syed] + + net: kernel lies about vlans not stealing mac addresses, when they do + + [Dimitri John Ledkov] (LP: #1682871) + + ds-identify: Check correct path for "latest" config drive + + [Daniel Watkins] (LP: #1673637) + + doc: Fix example for resolve.conf configuration. + + [Jon Grimm] (LP: #1531582) + + Fix examples that reference upstream chef repository. + + [Jon Grimm] (LP: #1678145) + + doc: correct grammar and improve clarity in merging documentation. + + [David Tagatac] + + doc: Add missing doc link to snap-config module. [Ryan Harper] + + snap: allows for creating cloud-init snap [Joshua Powers] + + DigitalOcean: assign IPv4ll address to lowest indexed interface. + + [Ben Howard] + + DigitalOcean: configure all NICs presented in meta-data. [Ben Howard] + + Remove (and/or fix) URL shortener references [Jon Grimm] (LP: #1669727) + + HACKING.rst: more info on filling out contributors agreement. + + util: teach write_file about copy_mode option + + [Lars Kellogg-Stedman] (LP: #1644064) + + DigitalOcean: bind resolvers to loopback interface. [Ben Howard] + + tests: fix AltCloud tests to not rely on blkid (LP: #1636531) + + OpenStack: add 'dvs' to the list of physical link types. (LP: #1674946) + + Fix bug that resulted in an attempt to rename bonds or vlans. + + (LP: #1669860) + + tests: update OpenNebula and Digital Ocean to not rely on host + + interfaces. + + net: in netplan renderer delete known image-builtin content. + + (LP: #1675576) + + doc: correct grammar in capabilities.rst [David Tagatac] + + ds-identify: fix detecting of maas datasource. (LP: #1677710) + + netplan: remove debugging prints, add debug logging [Ryan Harper] + + ds-identify: do not write None twice to datasource_list. + + support resizing partition and rootfs on system booted without + + initramfs. [Steve Langasek] (LP: #1677376) + + apt_configure: run only when needed. (LP: #1675185) + + OpenStack: identify OpenStack by product 'OpenStack Compute'. + + (LP: #1675349) + + GCE: Search GCE in ds-identify, consider serial number in check. + + (LP: #1674861) + + Add support for setting hashed passwords [Tore S. Lonoy] (LP: #1570325) + + Fix filesystem creation when using "partition: auto" + + [Jonathan Ballet] (LP: #1634678) + + ConfigDrive: support reading config drive data from /config-drive. + + (LP: #1673411) + + ds-identify: fix detection of Bigstep datasource. (LP: #1674766) + + test: add running of pylint [Joshua Powers] + + ds-identify: fix bug where filename expansion was left on. + + advertise network config v2 support (NETWORK_CONFIG_V2) in features. + + Bigstep: fix bug when executing in python3. [root] + + Fix unit test when running in a system deployed with cloud-init. + + Bounce network interface for Azure when using the built-in path. + + [Brent Baude] (LP: #1674685) + + cloudinit.net: add network config v2 parsing and rendering [Ryan Harper] + + net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317) + + net: add renderers for automatically selecting the renderer. + + doc: fix config drive doc with regard to unpartitioned disks. + + (LP: #1673818) + + test: Adding integratiron test for password as list [Joshua Powers] + + render_network_state: switch arguments around, do not require target + + support 'loopback' as a device type. + + Integration Testing: improve testcase subclassing [Wesley Wiedenmeier] + + gitignore: adding doc/rtd_html [Joshua Powers] + + doc: add instructions for running integration tests via tox. + + [Joshua Powers] + + test: avoid differences in 'date' output due to daylight savings. + + Fix chef config module in omnibus install. [Jeremy Melvin] (LP: #1583837) + + Add feature flags to cloudinit.version. [Wesley Wiedenmeier] + + tox: add a citest environment + + Further fix regression to support 'password' for default user. + + fix regression when no chpasswd/list was provided. + + Support chpasswd/list being a list in addition to a string. + + [Sergio Lystopad] (LP: #1665694) + + doc: Fix configuration example for cc_set_passwords module. + + [Sergio Lystopad] (LP: #1665773) + + net: support both ipv4 and ipv6 gateways in sysconfig. + + [Lars Kellogg-Stedman] (LP: #1669504) + + net: do not raise exception for > 3 nameservers + + [Lars Kellogg-Stedman] (LP: #1670052) + + ds-identify: report cleanups for config and exit value. (LP: #1669949) + + ds-identify: move default setting for Ec2/strict_id to a global. + + ds-identify: record not found in cloud.cfg and always add None. + + Support warning if the used datasource is not in ds-identify's list. + + tools/ds-identify: make report mode write namespaced results. + + Move warning functionality to cloudinit/warnings.py + + Add profile.d script for showing warnings on login. + + Z99-cloud-locale-test.sh: install and make consistent. + + tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id. + + tools/ds-identify: disable vmware_guest_customization by default. + + tools/ds-identify: ovf identify vmware guest customization. + + Identify Brightbox as an Ec2 datasource user. (LP: #1661693) + + DatasourceEc2: add warning message when not on AWS. + + ds-identify: add reading of datasource/Ec2/strict_id + + tools/ds-identify: add support for found or maybe contributing config. + + tools/ds-identify: read the seed directory on Ec2 + + tools/ds-identify: use quotes in local declarations. + + tools/ds-identify: fix documentation of policy setting in a comment. + + ds-identify: only run once per boot unless --force is given. + + flake8: fix flake8 complaints in previous commit. + + net: correct errors in cloudinit/net/sysconfig.py + + [Lars Kellogg-Stedman] (LP: #1665441) + + ec2_utils: fix MetadataLeafDecoder that returned bytes on empty + + apply the runtime configuration written by ds-identify. + + ds-identify: fix checking for filesystem label (LP: #1663735) + + ds-identify: read ds=nocloud properly (LP: #1663723) + + support nova-lxd by reading platform from environment of pid 1. + + (LP: #1661797) + + ds-identify: change aarch64 to use the default for non-dmi systems. + + Remove style checking during build and add latest style checks to tox + + [Joshua Powers] (LP: #1652329) + + code-style: make master pass pycodestyle (2.3.1) cleanly, currently: + + [Joshua Powers] + + manual_cache_clean: When manually cleaning touch a file in instance dir. + + Add tools/ds-identify to identify datasources available. + + Fix small typo and change iso-filename for consistency [Robin Naundorf] + + Fix eni rendering of multiple IPs per interface + + [Ryan Harper] (LP: #1657940) + + tools/mock-meta: support python2 or python3 and ipv6 in both. + + tests: remove executable bit on test_net, so it runs, and fix it. + + tests: No longer monkey patch httpretty for python 3.4.2 + + Add 3 ecdsa-sha2-nistp* ssh key types now that they are standardized + + [Lars Kellogg-Stedman] (LP: #1658174) + + reset httppretty for each test [Lars Kellogg-Stedman] (LP: #1658200) + + build: fix running Make on a branch with tags other than master + + EC2: Do not cache security credentials on disk + + [Andrew Jorgensen] (LP: #1638312) + + doc: Fix typos and clarify some aspects of the part-handler + + [Erik M. Bray] + + doc: add some documentation on OpenStack datasource. + + OpenStack: Use timeout and retries from config in get_data. + + [Lars Kellogg-Stedman] (LP: #1657130) + + Fixed Misc issues related to VMware customization. [Sankar Tanguturi] + + Fix minor docs typo: perserve > preserve [Jeremy Bicha] + + Use dnf instead of yum when available + + [Lars Kellogg-Stedman] (LP: #1647118) + + validate-yaml: use python rather than explicitly python3 + + Get early logging logged, including failures of cmdline url. +- From 0.7.9 + + doc: adjust headers in tests documentation for consistency. + + pep8: fix issue found in zesty build with pycodestyle. + + integration test: initial commit of integration test framework + + [Wesley Wiedenmeier] + + LICENSE: Allow dual licensing GPL-3 or Apache 2.0 [Jon Grimm] + + Fix config order of precedence, putting kernel command line over system. + + [Wesley Wiedenmeier] (LP: #1582323) + + pep8: whitespace fix + + Update the list of valid ssh keys. [Michael Felt] + + network: add ENI unit test for statically rendered routes. + + set_hostname: avoid erroneously appending domain to fqdn + + [Lars Kellogg-Stedman] (LP: #1647910) + + doc: change 'nobootwait' to 'nofail' in docs [Anhad Jai Singh] + + Replace an expired bit.ly link in code comment. + + user-groups: fix bug when groups was provided as string and had spaces + + (LP: #1354694) + + mounts: use mount -a again to accomplish mounts (LP: #1647708) + + CloudSigma: Fix bug where datasource was not loaded in local search. + + (LP: #1648380) + + when adding a user, strip whitespace from group list [Lars Kellogg-Stedman] + + (LP: #1354694) + + fix decoding of utf-8 chars in yaml test + + Replace usage of sys_netdev_info with read_sys_net (LP: #1625766) + + fix problems found in python2.6 test. + + OpenStack: extend physical types to include hyperv, hw_veb, vhost_user. + + (LP: #1642679) + + tests: fix assumptions that expected no eth0 in system. (LP: #1644043) + + net/cmdline: Consider ip= or ip6= on command line not only ip= + + (LP: #1639930) + + Just use file logging by default (LP: #1643990) + + Improve formatting for ProcessExecutionError [Wesley Wiedenmeier] + + flake8: fix trailing white space + + Doc: various documentation fixes [Sean Bright] + + cloudinit/config/cc_rh_subscription.py: Remove repos before adding + + [Brent Baude] + + packages/redhat: fix rpm spec file. + + main: set TZ in environment if not already set. [Ryan Harper] + + Azure: No longer rely on walinux agent. (LP: #1538522) + + disk_setup: Use sectors as unit when formatting MBR disks with sfdisk. + + [Daniel Watkins] (LP: #1460715) + + Add activate_datasource, for datasource specific code paths. (LP: #1611074) + + systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud + + (LP: #1642062) + + systemd: cloud-init remove After=systemd-networkd-wait-online + + systemd: cloud-init-local change Before basic to sysinit + + pep8: fix style errors reported by pycodestyle 2.1.0 + + systemd: drop both Wants and After local-fs.target + + systemd: networking service adjustments. (LP: #1636912) + + systemd: replace Before=basic.target, dbus.target with sysinit.target + + (LP: #1629797) + + doc: Add documentation on stages of boot. + + doc: make the RST files consistently formated and other improvements. + + Ec2: fix syntax and tox in previous commit. + + Ec2: protect against non-dictionary in block-device-mapping. + + doc: fixed example to not overwrite /etc/hosts [Chris Glass] + + Doc: fix spelling / typos in ca_certs and scripts_vendor. + + pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed. + + net/cmdline: Further adjustments to ipv6 support [LaMont Jones] + + (LP: #1621615) + + Add coverage dependency to bddeb to fix package build. + + doc: improve HACKING.rst file + + dmidecode: Allow dmidecode to be used on aarch64 [Robert Schweikert] + + AliYun: Add new datasource for Ali-Cloud ECS [kaihuan.pkh] + + Add coverage collection to tox unit tests. [Joshua Powers] + + cc_users_groups: fix remaing call to ds.normalize_user_groups [Ryan Harper] + + disk-config: udev settle after partitioning in gpt format. (LP: #1626243) + + unittests: do not read system /etc/cloud/cloud.cfg.d (LP: #1635350) + + Add documentation for logging features. [Wesley Wiedenmeier] + + Add support for snap create-user on Ubuntu Core images. [Ryan Harper] + + Fix sshd restarts for rhel distros. [Jim Gorz] + + OpenNebula: replace 'ip' parsing with cloudinit.net usage. + + Fix python2.6 things found running in centos 6. + + Move user/group functions to new ug_util file + + DigitalOcean: enable usage of data source by default. + + update Gentoo initscripts to run in the correct order [Matthew Thode] + + MAAS: improve the main of datasource to look at kernel cmdline config. + + tests: silence the Cheetah UserWarning about NameMapper C version. + + systemd: Run cloud-init.service Before dbus.socket not dbus.target + + [Daniel Watkins] (LP: #1629797) + + systemd: run cloud-init.service Before dbus.service (LP: #1629797) + + unittests: fix use of mock 2.0 'assert_called' when running make check + + [Ryan Harper] + + Improve module documentation and doc cleanup. [Wesley Wiedenmeier] + + lxd: Update network config for LXD 2.3 [Stéphane Graber] + + DigitalOcean: use meta-data for network configruation [Ben Howard] + + ntp: move to run after apt configuration (LP: #1628337) + + Decode unicode types in decode_binary [Robert Schweikert] + + systemd: Ensure that cloud-init-local happens before NetworkManager + + Allow ephemeral drive to be unpartitioned [Paul Meyer] + + subp: add 'update_env' argument + + net: support reading ipv6 dhcp config from initramfs [LaMont Jones] + + (LP: #1621615, #1621507) + + Adjust mounts and disk configuration for systemd. (LP: #1611074) + + dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert] + + systemd: put cloud-init.target After multi-user.target (LP: #1623868) + +------------------------------------------------------------------- +Wed Sep 20 10:11:42 UTC 2017 - dmueller@suse.com + +- add skip-argparse-on-python3.patch: don't depend on argparse + for python3, it is builtin there (as of python 3.2, so the + patch should be good enough) + +------------------------------------------------------------------- +Mon Sep 18 09:39:26 CEST 2017 - kukuk@suse.de + +- python_sitelib does not seem to exist for non single-spec + python modules, use python2_sitelib and python3_sitelib instead. + +------------------------------------------------------------------- +Mon Sep 11 18:21:54 UTC 2017 - rjschwei@suse.com + +- Drop python-cheetah as requirement + + Cheetah is no maintained and cloud-init switches to Jinja2 as + templating engine if Cheetah is not available +- Drop argparse as dependency for Py3 build + + argparse is built into Python + +------------------------------------------------------------------- +Fri Aug 25 23:11:41 UTC 2017 - rjschwei@suse.com + +- Modify cloud-init-finalbeforelogin.patch (bsc#1047363) + + Support user processes running in coud-init-final to consume a + large number of threads. +- Modify cloud-init-service.patch (bsc#1055649) + + Start after dbus.service, needed by hotnamectl +- Modify cloud-init-handle-not-implemented-query.patch + + print needs () for Python3 +- Add cloud-init-spceandtabs-clean.patch + + Fix inconsistent use of spaces and tabs in various files +- Modify suseIntegratedHandler.patch + + Fix mode setting passed to function for file writing +- Set packag up to build with Python 3 for distros later than SLE 12 + +------------------------------------------------------------------- +Sat Mar 11 12:04:21 CET 2017 - kukuk@suse.de + +- On Tumbleweed we need net-tools-deprecated to setup the network + +------------------------------------------------------------------- +Mon Feb 27 11:45:05 UTC 2017 - dmueller@suse.com + +- add cloud-init-net-sysconfig-lp1665441.patch (lp#1665441) + +------------------------------------------------------------------- +Mon Feb 20 10:00:42 CET 2017 - kukuk@suse.de + +- Don't call insserv if we use systemd + +------------------------------------------------------------------- +Thu Feb 16 20:56:03 UTC 2017 - rjschwei@suse.com + +- Do not set mount options for ephemeral drive, use the defaults + that are built into the code (bsc#930524) + +------------------------------------------------------------------- +Thu Feb 16 19:39:16 UTC 2017 - rjschwei@suse.com + +- Update fix-default-systemd-unit-dir.patch (bsc#1024709) + + based on work by Thomas Abraham +- Add cloud-init-handle-not-implemented-query.patch (boo#1017832) + +------------------------------------------------------------------- +Mon Jan 23 20:52:03 CET 2017 - kukuk@suse.de + +- Require net-tools for network setup + +------------------------------------------------------------------- +Sat Dec 17 13:15:26 UTC 2016 - rjschwei@suse.com + +- Configuration split (bsc#1016160) + +------------------------------------------------------------------- +Tue Dec 13 12:42:18 CET 2016 - kukuk@suse.de + +- fix syntax error in datasource LocalDisk (fix got somehow lost) + +------------------------------------------------------------------- +Mon Dec 12 12:47:09 UTC 2016 - dmueller@suse.com + +- adjust license (as of 0.7.8 AGPL-3.0 was added) + +------------------------------------------------------------------- +Mon Dec 12 11:25:03 UTC 2016 - dmueller@suse.com + +- fix unintentional edit in last change again + +------------------------------------------------------------------- +Fri Dec 9 09:50:50 UTC 2016 - jgleissner@suse.com + +- Modify suseIntegratedHandler.patch (bsc#998103) + + Store previous hostname so update_hostname module does not + overwrite manually set hostnames +- cloud-init-python26.patch + + Compatibility fixes with Python 2.6 + +------------------------------------------------------------------- +Thu Dec 8 12:35:51 UTC 2016 - dmueller@suse.com + +- fix the cloud.cfg split, cyclic non-versioned dependencies are + bad. also fix changelog entries + +------------------------------------------------------------------- +Thu Dec 1 12:31:09 CET 2016 - kukuk@suse.de + +- add datasourceLocalDisk.patch: + * Fix datasourceLocalDisk module in case directory exists but is + empty. + +------------------------------------------------------------------- +Wed Nov 30 08:48:11 UTC 2016 - kukuk@suse.com + +- Add Conflicts for otherproviders of cloud-init-config. +- Add require for python-six (used by several modules) + +------------------------------------------------------------------- +Mon Nov 28 07:20:13 UTC 2016 - kukuk@suse.com + +- Add LocalDisk datasource datasourceLocalDisk.patch [FATE#321107] + +------------------------------------------------------------------- +Wed Nov 23 15:05:06 CET 2016 - kukuk@suse.de + +- Reworked zypp_add_repos.diff to behave similar to zypper ar + +------------------------------------------------------------------- +Tue Nov 22 10:57:01 CET 2016 - kukuk@suse.de + +- Move cloud.cfg into an own sub-package, so that we can have + a product specific version. [FATE#322039] + +------------------------------------------------------------------- +Sun Nov 13 13:33:41 CET 2016 - kukuk@suse.de + +- Add zypp_add_repos.diff to support repos for zypper [FATE#322038] + +------------------------------------------------------------------- +Tue Nov 1 15:56:50 UTC 2016 - rjschwei@suse.com + +- Modify suseIntegratedHandler.patch (bsc#1007529) + + Fall back to the previous method of writing network information + We have to work out upstream how to have distro specific renderer + for sysconfig + +------------------------------------------------------------------- +Mon Oct 31 12:44:21 UTC 2016 - rjschwei@suse.com + +- Add cloud-init-sysconfig-netpathfix.patch (bsc#1007529) + + Fix the default path for network scripts +- Cosmetic changes to suseIntegratedHandler.patch + +------------------------------------------------------------------- +Sat Oct 29 13:24:13 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-no-dmidecode-on-ppc64.patch (bsc#1005616) + + aarch64 does support dmidecode + +------------------------------------------------------------------- +Sat Oct 29 12:40:38 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch + + Break another cycle this one in -final + +------------------------------------------------------------------- +Fri Oct 28 20:14:48 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch + + Better match upstream intend Ubuntu networking.service is equivalent + to SUSE wicked, thus we cannot translate networking to network, but need + to translate it to wicked + +------------------------------------------------------------------- +Fri Oct 28 19:37:24 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch + + We need the following order: + - something brings networking fully up (in our case wicked) + - cloud-init.service runs + - network-online.target is reached + +------------------------------------------------------------------- +Fri Oct 28 19:20:32 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch + + The network must be up an running in order to get ssh key injected + +------------------------------------------------------------------- +Fri Oct 28 15:21:39 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch + + Had self reference and thus cloud-init.service was never executed + which caused ssh key loading failure + +------------------------------------------------------------------- +Fri Oct 28 04:56:29 UTC 2016 - bwiedemann@suse.com + +- Do not own /lib/udev to not conflict with udev rpm + +------------------------------------------------------------------- +Thu Oct 27 19:40:31 UTC 2016 - rjschwei@suse.com + +- Forward port suseIntegratedHandler.patch + + Implement new abstract interfaces + + Some minor implementation fixes + +------------------------------------------------------------------- +Wed Oct 26 14:27:55 UTC 2016 - rjschwei@suse.com + +- Appease the build service, differences between OBS and IBS, + and own the directories + +------------------------------------------------------------------- +Wed Oct 26 11:31:34 UTC 2016 - rjschwei@suse.com + +- Fix package, udev rules should be in /usr for distros after + SLES 11 + +------------------------------------------------------------------- +Wed Oct 19 13:23:35 UTC 2016 - dmueller@suse.com + +- add cloud-init-digital-ocean-datasource-enable-by-default.patch, + cloud-init-digital-ocean-datasource.patch: add DigitalOcean support +- run tests on build + +------------------------------------------------------------------- +Tue Oct 11 15:42:35 UTC 2016 - rjschwei@suse.com + +- Add cloud-init-handle-no-carrier.patch (boo#1003977) + - Handle the exception when attempting to detect if the network + device is up when it is not + +------------------------------------------------------------------- +Mon Oct 10 20:28:47 UTC 2016 - rjschwei@suse.com + +- Update cloud-init-service.patch (boo#999942) + - Backport upstream commits 3705bb5964a and 6e45ffb21e96 + +------------------------------------------------------------------- +Thu Sep 15 13:01:35 UTC 2016 - rjschwei@suse.com + +- Decoding error (boo#998843) + + Added cloud-init-fix-unicode-handling-binarydecode.patch +- Fix dependencies, depends on oauthlib instead of oauth + +------------------------------------------------------------------- +Wed Sep 14 14:24:07 UTC 2016 - rjschwei@suse.com + +- Fix dataSourceOpenNebula.patch, missing closing paren (boo#998836) + +------------------------------------------------------------------- +Wed Sep 14 12:24:55 UTC 2016 - rjschwei@suse.com + +- Fix typo in cloud-init-service.patch + +------------------------------------------------------------------- +Tue Sep 13 13:19:51 UTC 2016 - rjschwei@suse.com + +- update to version 0.7.8 (bsc#998103) + + added cloud-init-net-eni.patch based on work by eblock + - Using config-drive instead of metadata failed because the network + translation to Ubuntu-style did not return gateway information to + opensuse.py + + added cloud-init-service.patch based on work by eblock + - The service file cloud-init.service referenced networking.service + which on SUSE is network.service + + remove no_logic_change.patch included in updated upstream source + + forward port suseIntegratedHandler.patch + + forward port setupSUSEsysVInit.diff + + forward port cloud-init-no-dmidecode-on-ppc64.patch + + foward port dataSourceOpenNebula.patch + + forward port fix-default-systemd-unit-dir.patch + + forward port cloud-init-finalbeforelogin.patch + + forward port cloud-init-python2-sigpipe.patch + + SmartOS: more improvements for network configuration + + add ntp config module [Ryan Harper] + + ChangeLog: update changelog for previous commit. + + Add distro tags on config modules that should have it. + + NoCloud: fix bug providing network-interfaces via meta-data. (LP: 1577982) + + ConfigDrive: recognize 'tap' as a link type. (LP: #1610784) + + Upgrade to a configobj package new enough to work + + MAAS: add vendor-data support (LP: #1612313) + + DigitalOcean: use the v1.json endpoint [Ben Howard] + + Get Azure endpoint server from DHCP client [Brent Baude] + + Apt: add new apt configuration format [Christian Ehrhardt] + + distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen] + + Fix Gentoo net config generation [Matthew Thode] + + Minor cleanups to atomic_helper and add unit tests. + + azure dhclient-hook cleanups + + network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR + + Generate a dummy bond name for OpenStack (LP: #1605749) + + add install option for openrc [Matthew Thode] + + Add a module that can configure spacewalk. + + python2.6: fix dict comprehension usage in _lsb_release. + + apt-config: allow both old and new format to be present. + [Christian Ehrhardt] (LP: #1616831) + + bddeb: add --release flag to specify the release in changelog. + + salt minion: update default pki directory for newer salt minion. + (LP: #1609899) + + Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810) + + apt config conversion: treat empty string as not provided. (LP: #1621180) + + tests: cleanup tempdirs in apt_source tests + + systemd: Better support package and upgrade. (LP: #1576692, #1621336) + + remove obsolete .bzrignore + + DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394) + + Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968) +from 0.7.7: + + Digital Ocean: add datasource for Digital Ocean. [Neal Shrader] + + expose uses_systemd as a distro function (fix rhel7) + + fix broken 'output' config (LP: #1387340) + + begin adding cloud config module docs to config modules (LP: #1383510) + + retain trailing eol from template files (sources.list) when + rendered with jinja (LP: #1355343) + + Only use datafiles and initsys addon outside virtualenvs + + Fix the digital ocean test case on python 2.6 + + Increase the usefulness, robustness, configurability of the chef module + so that it is more useful, more documented and better for users + + Fix how '=' signs are not handled that well in ssh_utils (LP: #1391303) + + Be more tolerant of ssh keys passed into 'ssh_authorized_keys'; allowing + for list, tuple, set, dict, string types and warning on other unexpected + types + + Update to use newer/better OMNIBUS_URL for chef module + + GCE: Allow base64 encoded user-data (LP: #1404311) [Wayne Witzell III] + + GCE: use short hostname rather than fqdn (LP: #1383794) [Ben Howard] + + systemd: make init stage run before login prompts shown [Steve Langasek] + + hostname: on first boot apply hostname to be same as is written for + persistent hostname. (LP: #1246485) + + remove usage of dmidecode on linux in favor of /sys interface [Ben Howard] + + python3 support [Barry Warsaw, Daniel Watkins, Josh Harlow] (LP: #1247132) + + support managing gpt partitions in disk config [Daniel Watkins] + + Azure: utilze gpt support for ephemeral formating [Daniel Watkins] + + CloudStack: support fetching password from virtual router [Daniel Watkins] + (LP: #1422388) + + readurl, read_file_or_url returns bytes, user must convert as necessary + + SmartOS: use v2 metadata service (LP: #1436417) [Daniel Watkins] + + NoCloud: fix local datasource claiming found without explicit dsmode + + Snappy: add support for installing snappy packages and configuring. + + systemd: use network-online instead of network.target (LP: #1440180) + [Steve Langasek] + + Add functionality to fixate the uid of a newly added user. + + Don't overwrite the hostname if the user has changed it after we set it. + + GCE datasource does not handle instance ssh keys (LP: 1403617) + + sysvinit: make cloud-init-local run before network (LP: #1275098) + [Surojit Pathak] + + Azure: do not re-set hostname if user has changed it (LP: #1375252) + + Fix exception when running with no arguments on Python 3. [Daniel Watkins] + + Centos: detect/expect use of systemd on centos 7. [Brian Rak] + + Azure: remove dependency on walinux-agent [Daniel Watkins] + + EC2: know about eu-central-1 availability-zone (LP: #1456684) + + Azure: remove password from on-disk ovf-env.xml (LP: #1443311) [Ben Howard] + + Doc: include information on user-data in OpenStack [Daniel Watkins] + + Systemd: check for systemd using sd_booted symantics (LP: #1461201) + [Lars Kellogg-Stedman] + + Add an rh_subscription module to handle registration of Red Hat instances. + [Brent Baude] + + cc_apt_configure: fix importing keys under python3 (LP: #1463373) + + cc_growpart: fix specification of 'devices' list (LP: #1465436) + + CloudStack: fix password setting on cloudstack > 4.5.1 (LP: #1464253) + + GCE: fix determination of availability zone (LP: #1470880) + + ssh: generate ed25519 host keys (LP: #1461242) + + distro mirrors: provide datasource to mirror selection code to support + GCE regional mirrors. (LP: #1470890) + + add udev rules that identify ephemeral device on Azure (LP: #1411582) + + _read_dmi_syspath: fix bad log message causing unintended exception + + rsyslog: add additional configuration mode (LP: #1478103) + + status_wrapper in main: fix use of print_exc when handling exception + + reporting: add reporting module for web hook or logging of events. + + NoCloud: fix consumption of vendordata (LP: #1493453) + + power_state_change: support 'condition' to disable or enable poweroff + + ubuntu fan: support for config and installing of ubuntu fan (LP: #1504604) + + Azure: support extracting SSH key values from ovf-env.xml (LP: #1506244) + + AltCloud: fix call to udevadm settle (LP: #1507526) + + Ubuntu templates: modify sources.list template to provide same sources + as install from server or desktop ISO. (LP: #1177432) + + cc_mounts: use 'nofail' if system uses systemd. (LP: #1514485) + + Azure: get instance id from dmi instead of SharedConfig (LP: #1506187) + + systemd/power_state: fix power_state to work even if cloud-final + exited non-zero (LP: #1449318) + + SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965) + [Robert C Jennings] + + systemd: support using systemd-detect-virt to detect container + (LP: #1539016) [Martin Pitt] + + docs: fix lock_passwd documentation [Robert C Jennings] + + Azure: Handle escaped quotes in WALinuxAgentShim.find_endpoint. + (LP: #1488891) [Dan Watkins] + + lxd: add support for setting up lxd using 'lxd init' (LP: #1522879) + + Add Image Customization Parser for VMware vSphere Hypervisor + Support. [Sankar Tanguturi] + + timezone: use a symlink rather than copy for /etc/localtime + unless it is already a file (LP: #1543025). + + Enable password changing via a hashed string [Alex Sirbu] + + Added BigStep datasource [Alex Sirbu] + + No longer run pollinate in seed_random (LP: #1554152) + + groups: add defalt user to 'lxd' group. Create groups listed + for a user if they do not exist. (LP: #1539317) + + dmi data: fix failure of reading dmi data for unset dmi values + + doc: mention label for nocloud datasource must be 'cidata' [Peter Hurley] + + ssh_pwauth: fix module to support 'unchanged' and match behavior + described in documentation [Chris Cosby] + + quickly check to see if the previous instance id is still valid to + avoid dependency on network metadata service on every boot (LP: #1553815) + + support network configuration in cloud-init --local with support + device naming via systemd.link. + + FreeBSD: add support for installing packages, setting password and + timezone. Change default user to 'freebsd'. [Ben Arblaster] + + locale: list unsupported environment settings in warning (LP: #1558069) + + disk_setup: correctly send --force to mkfs on block devices (LP: #1548772) + + chef: fix chef install from gems (LP: #1553345) + + systemd: do not specify After of obsolete syslog.target (LP: #1536964) + + centos: Ensure that resolve conf object is written as a str (LP: #1479988) + + chef: straighten out validation_cert and validation_key (LP: #1568940) + + phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong] + + cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273) + [Wido den Hollander] + + Paths: fix instance path if datasource's id has a '/'. (LP: #1575938) + [Robert Jennings] + + Ec2: do not retry requests for user-data path on 404. + + settings on the kernel command line (cc:) override all local settings + rather than only those in /etc/cloud/cloud.cfg (LP: #1582323) + + Improve merging documentation [Daniel Watkins] + + apt sources: support inserting key/key-id only, custom sources.list, + long gpg key fingerprints with spaces, and dictionary format (LP: #1574113) + + SmartOS: datasource improvements and support for metadata service + providing networking information. + + Datasources: centrally handle 'dsmode' and no longer require datasources + to "pass" if modules_init should be executed with network access. + + ConfigDrive: improved support for networking information from + a network_data.json or older interfaces formated network_config. + + Change missing Cheetah log warning to debug [Andrew Jorgensen] + + Remove trailing dot from GCE metadata URL (LP: #1581200) [Phil Roche] + + support network rendering to sysconfig (for centos and RHEL) + + write_files: if no permissions are given, just use default without warn. + + user_data: fix error when user-data is not utf-8 decodable (LP: #1532072) + + fix mcollective module with python3 (LP: #1597699) [Sergii Golovatiuk] + +------------------------------------------------------------------- +Mon Jun 6 09:43:12 UTC 2016 - joachim.gleissner@suse.com + +- Add cloud-init-python2-sigpipe.patch (bsc#903449) + + Restore SIGPIPE default handler when executing shell scripts + +------------------------------------------------------------------- +Tue May 3 21:49:47 UTC 2016 - rjschwei@suse.com + +- Add cloud-init-finalbeforelogin.patch (bsc#978048) + + Ordering issue, avoid login prompt before cloud-init is finished + +------------------------------------------------------------------- +Tue Mar 15 21:40:25 UTC 2016 - rjschwei@suse.com + +- Update suseIntegratedHandler.patch (bsc#971275) + + Properly handle the package_upgrade configuration option + +------------------------------------------------------------------- +Tue Oct 6 10:53:11 UTC 2015 - rjschwei@suse.com + +- Add dependency on jinja2 (bsc#948995,bsc#948996) + +------------------------------------------------------------------- +Mon Jun 29 14:51:15 UTC 2015 - rjschwei@suse.com + +- Add no_logic_change.patch to undo upstream logic changes introduced during + style clean up + +------------------------------------------------------------------- +Wed May 20 18:27:02 UTC 2015 - rjschwei@suse.com + +- Properly write the routes file for static networks (bnc#920190) + + modify suseIntegratedHandler.patch +- Remove suseSetInitCmd.patch + + is now integrated with suseIntegratedHandler.patch + +------------------------------------------------------------------- +Mon Apr 27 12:26:32 UTC 2015 - rjschwei@suse.com + +- pmtools only exist on Intel architecture (bnc#928552) + +------------------------------------------------------------------- +Mon Apr 13 08:46:40 UTC 2015 - tbechtold@suse.com + +- update to 0.7.6: + - open 0.7.6 + - Enable vendordata on CloudSigma datasource (LP: #1303986) + - Poll on /dev/ttyS1 in CloudSigma datasource only if dmidecode says + we're running on cloudsigma (LP: #1316475) [Kiril Vladimiroff] + - SmartOS test: do not require existance of /dev/ttyS1. [LP: #1316597] + - doc: fix user-groups doc to reference plural ssh-authorized-keys + (LP: #1327065) [Joern Heissler] + - fix 'make test' in python 2.6 + - support jinja2 as a templating engine. Drop the hard requirement on + cheetah. This helps in python3 effort. (LP: #1219223) + - change install path for systemd files to /lib/systemd/system + [Dimitri John Ledkov] + - change trunk debian packaging to use pybuild and drop cdbs. + [Dimitri John Ledkov] + - SeLinuxGuard: remove invalid check that looked for stat.st_mode in os.lstat. + - do not write comments in /etc/timezone (LP: #1341710) + - ubuntu: provide 'ubuntu-init-switch' module to aid in systemd testing. + - status/result json: remove 'end' entry which was always null + - systemd: make cloud-init block ssh service startup to guarantee keys + are generated. [Jordan Evans] (LP: #1333920) + - default settings: fix typo resulting in OpenStack and GCE not working + unless config explicitly provided (LP: #1329583) [Garrett Holmstrom]) + - fix rendering resolv.conf if no 'options' are provided (LP: #1328953) + - docs: fix disk-setup to reference 'table_type' [Rail Aliiev] (LP: #1313114) + - ssh_authkey_fingerprints: fix bug that prevented disabling the module. + (LP: #1340903) [Patrick Lucas] + - no longer use pylint as a checker, fix pep8 [Jay Faulkner]. + - Openstack: do not load some urls twice. + - FreeBsd: fix initscripts and add working config file [Harm Weites] + - Datasource: fix broken logic to provide hostname if datasource does not + provide one + - Improved and less verbose logging. + - resizefs: first check that device is writable. + - configdrive: fix reading of vendor data to be like metadata service reader. + [Jay Faulkner] + - resizefs: fix broken background resizing [Jay Faulkner] (LP: #1338614) + - cc_grub_dpkg: fix EC2 hvm instances to avoid prompt on grub update. + (LP: #1336855) + - FreeBsd: support config drive datasource [Joseph bajin] + - cc_mounts: support creating a swap file +- Refresh addopenSUSEBase.patch +- Refresh setupSUSEsysVInit.diff +- Removed cloudinit-datasources.patch. Applied upstream +- BuildRequires pkg-config. Needed to find correct systemd unit dir. +- Add fix-default-systemd-unit-dir.patch . Use better default for + systemd system unit dir. + +------------------------------------------------------------------- +Tue Feb 24 15:52:13 UTC 2015 - rjschwei@suse.com + +- Fix (bnc#919305 & bnc#918952) + - Properly handle persistent network device names for OpenNebula + + add dataSourceOpenNebula.patch + - Properly set up network mode if interface config file + + modified suseIntegratedHandler.patch + +------------------------------------------------------------------- +Thu Feb 5 10:16:54 UTC 2015 - tbechtold@suse.com + +- Require e2fsprogs for filesystem resizing + +------------------------------------------------------------------- +Tue Feb 3 15:28:37 UTC 2015 - tbechtold@suse.com + +- Remove Requires for python-yaml . There's already the right + requirement for python-PyYAML + +------------------------------------------------------------------- +Mon Nov 21 12:04:28 UTC 2014 - reik.keutterling@nodefall.de + +- fixed syntax error in dmidecode on ppc64 patch (bnc#914920) + +------------------------------------------------------------------- +Tue Sep 16 11:09:01 CEST 2014 - ms@suse.de + +- users-groups module checks if the account is locked by + calling 'passwd -l' which is ok but it should not raise + if the account is already locked. This patch will cause + lock_passwd to raise only if the account locking failed + cloud-init-no-user-lock-if-already-locked.patch + +------------------------------------------------------------------- +Sat Aug 9 12:35:16 UTC 2014 - dvlaeev@suse.com + +- Make package Arch dependent otherwise package is not installable + on architectures where dmidecode is not available. + +- Avoid to run dmidecode on PowerPC as well + cloud-init-no-dmidecode-on-ppc64.patch + +------------------------------------------------------------------- +Mon Jul 28 15:54:32 UTC 2014 - rschweikert@suse.com + +- declare rsyslog.d only for distros where it is created + fixes build error on SLE 11 + +------------------------------------------------------------------- +Mon Jul 28 15:14:02 UTC 2014 - rschweikert@suse.com + +- add dmidecode (pmtools SLE 11) as dependency (bnc #888345) + +------------------------------------------------------------------- +Tue Jul 22 22:31:17 UTC 2014 - dmueller@suse.com + +- fix typo in cloud.cfg (gowpart -> growpart) +- add cloudinit-datasources.patch: Fixes datasource list + +------------------------------------------------------------------- +Mon Jul 7 17:21:54 UTC 2014 - rschweikert@suse.com + +- fix "typo" the rhel_util module is imported as rhutil, use the + proper name when accessing (modifies suseIntegratedHandler.patch) + +------------------------------------------------------------------- +Thu Jun 26 18:53:21 UTC 2014 - rschweikert@suse.com + +- add rsyslog filter rule to send cloud-init messages to + /var/log/cloud-init.log + +------------------------------------------------------------------- +Wed Jun 25 22:24:31 UTC 2014 - rschweikert@suse.com + +- initialize variable in method setting the instance hostname (BNC #884392) + modifies: suseIntegratedHandler.patch + +------------------------------------------------------------------- +Tue Jun 24 19:49:34 UTC 2014 - rschweikert@suse.com + +- add the python magic for package build on SLE 11 + +------------------------------------------------------------------- +Tue Jun 24 19:23:07 UTC 2014 - rschweikert@suse.com + +- add more dependencies to ensure commands used by the scripts are present +- add dynamicInitCmd.diff + + support diffirent init systems across distribution versions for + service restart +- add suseSetInitCmd.patch + + properly setup the init command to support proper service restart + +------------------------------------------------------------------- +Fri Jun 20 17:59:37 UTC 2014 - rschweikert@suse.com + +- integrate openSUSE and SLE handler code + + remove openSUSEHandler.diff + + add suseIntegratedHandler.patch + +------------------------------------------------------------------- +Mon Apr 14 18:58:18 UTC 2014 - rschweikert@suse.com + +- update to version 0.7.5 + - open 0.7.5 + - Add a debug log message around import failures + - add a 'debug' module for easily printing out some information about + datasource and cloud-init [Shraddha Pandhe] + - support running apt with 'eatmydata' via configuration token + apt_get_wrapper (LP: #1236531). + - convert paths provided in config-drive 'files' to string before writing + (LP: #1260072). + - Azure: minor changes in logging output. ensure filenames are strings (not + unicode). + - config/cloud.cfg.d/05_logging.cfg: provide a default 'output' setting, to + redirect cloud-init stderr and stdout /var/log/cloud-init-output.log. + - drop support for resizing partitions with parted entirely (LP: #1212492). + This was broken as it was anyway. + - add support for vendordata in SmartOS and NoCloud datasources. + - drop dependency on boto for crawling ec2 metadata service. + - add 'Requires' on sudo (for OpenNebula datasource) in rpm specs, and + 'Recommends' in the debian/control.in [Vlastimil Holer] + - if mount_info reports /dev/root is a device path for /, then convert + that to a device via help of kernel cmdline. + - configdrive: consider partitions as possible datasources if they have + theh correct filesystem label. [Paul Querna] + - initial freebsd support [Harm Weites] + - fix in is_ipv4 to accept IP addresses with a '0' in them. + - Azure: fix issue when stale data in /var/lib/waagent (LP: #1269626) + - skip config_modules that declare themselves only verified on a set of + distros. Add them to 'unverified_modules' list to run anyway. + - Add CloudSigma datasource [Kiril Vladimiroff] + - Add initial support for Gentoo and Arch distributions [Nate House] + - Add GCE datasource [Vaidas Jablonskis] + - Add native Openstack datasource which reads openstack metadata + rather than relying on EC2 data in openstack metadata service. + - SmartOS, AltCloud: disable running on arm systems due to bug + (LP: #1243287, #1285686) [Oleg Strikov] + - Allow running a command to seed random, default is 'pollinate -q' + (LP: #1286316) [Dustin Kirkland] + - Write status to /run/cloud-init/status.json for consumption by + other programs (LP: #1284439) + - Azure: if a reboot causes ephemeral storage to be re-provisioned + Then we need to re-format it. (LP: #1292648) + - OpenNebula: support base64 encoded user-data + [Enol Fernandez, Peter Kotcauer] +- remove azure_1269626.diff, fix integrated in new version +- rename addopenSUSEBase.diff to addopenSUSEBase.patch, forward port + +------------------------------------------------------------------- +Sat Mar 29 21:40:00 UTC 2014 - rschweikert@suse.com + +- fix implementation of the openSUSE handler, properly read the configuration + from sysconfig + +------------------------------------------------------------------- +Wed Mar 19 21:36:19 UTC 2014 - rschweikert@suse.com + +- do not package any none SUSE/openSUSE templates bnc#839707 +- add patch openSUSEhostsTemplate.diff to add an openSUSE hosts template + +------------------------------------------------------------------- +Wed Mar 19 20:49:32 UTC 2014 - rschweikert@suse.com + +- enable growing of root partition by default bnc#861473 + +------------------------------------------------------------------- +Tue Mar 18 15:01:51 UTC 2014 - rschweikert@suse.com + +- include the LICENSE + +------------------------------------------------------------------- +Mon Mar 17 18:37:58 UTC 2014 - rschweikert@suse.com + +- include in SLE 12 (FATE #315990, #315991, and 316167) +- add patch azure_1269626.diff, fix for upstream bug 1269626 + + Azure instance do not boot properly after a capture operation + +------------------------------------------------------------------- +Mon Mar 17 17:58:23 UTC 2014 - rschweikert@suse.com + +- add dependency on growpart to support root partition expansion + +------------------------------------------------------------------- +Mon Jan 20 17:51:24 UTC 2014 - dmueller@suse.com + +- add python-jsonpatch, python-pyserial, python-PyYAML requires, + otherwise it immediately traces on startup + +------------------------------------------------------------------- +Sat Jan 4 16:03:57 UTC 2014 - rschweikert@suse.com + +- update to version 0.7.4 + + fix issue mounting 'ephemeral0' if ephemeral0 was an alias for a + partitioned block device with target filesystem on ephemeral0.1. + (LP: #1236594) + + fix DataSourceAzure incompatibility with 2.6 (LP: #1232175) + + fix power_state_change config module so that example works. Improve + its documentation and add reference to 'timeout' + + support apt-add-archive with 'cloud-archive:' format. (LP: #1244355) + + Change SmartOS verb for availability zone (LP: #1249124) + + documentation fix for boothooks to use 'cloud-init-per' + + fix resizefs module by supporting kernels that do not have + /proc/PID/mountinfo. (LP: #1248625) [Tim Daly Jr.] + + fix 'make rpm' by removing 0.6.4 entry from ChangeLog (LP: #1241834) + + fix omnibus chef installer (LP: #1182265) [Chris Wing] + + small fix for OVF datasource for iso transport on non-iso9660 filesystem + + determine if upstart version is suitable for + 'initctl reload-configuration' (LP: #1124384). If so, then invoke it. + supports setting up instance-store disk with partition table and filesystem. + + add Azure datasource. + + add support for SuSE / SLES [Juerg Haefliger] + + add a trailing carriage return to chpasswd input, which reportedly + caused a problem on rhel5 if missing. + + support individual MIME segments to be gzip compressed (LP: #1203203) + + always finalize handlers even if processing failed (LP: #1203368) + + support merging into cloud-config via jsonp. (LP: #1200476) + + add datasource 'SmartOS' for Joyent Cloud. Adds a dependency on serial. + + add 'log_time' helper to util for timing how long things take + which also reads from uptime. uptime is useful as clock may change during + boot due to ntp. + + prefer growpart resizer to 'parted resizepart' (LP: #1212492) + + support random data seed from config drive or azure, and a module + 'seed_random' to read that and write it to /dev/urandom. + + add OpenNebula Datasource [Vlastimil Holer] + + add 'cc_disk_setup' config module for paritioning disks and creating + filesystems. Useful if attached disks are not formatted (LP: #1218506) + + Fix usage of libselinux-python when selinux is disabled. [Garrett Holmstrom] + + multi_log: only write to /dev/console if it exists [Garrett Holmstrom] + + config/cloud.cfg: add 'sudo' to list groups for the default user + (LP: #1228228) + + documentation fix for use of 'mkpasswd' [Eric Nordlund] + + respect /etc/growroot-disabled file (LP: #1234331) +- replace fixupSysVinit.patch with suseSysVInit.diff + + sysV init files are now maintained by distribution, thus we need a patch + that has the complete sysV init files rather then modifying existing files +- remove slesHandler.patch + + SLES support is now integrated upstream +- add addopenSUSEBase.diff + + remnants of the slesHandler.patch that add information about openSUSE +- add setupSUSEsysVInit.diff + + integrate the SUSE sysV init scripts into setup.py + +------------------------------------------------------------------- +Fri Aug 2 06:57:30 UTC 2013 - rschweikert@suse.com + +- remove the "nofail" option for the ephemeral storage + + when using nofail an attempt is made to mount the filesystem twice + once via udev and once through localfs, this results in a hanging + system if fsck needs to run on the device + +------------------------------------------------------------------- +Thu Jul 11 08:00:50 UTC 2013 - speilicke@suse.com + +- Install service files into /lib/systemd/system on 12.2, the UsrMove + happened afterwards + +------------------------------------------------------------------- +Wed Jul 10 07:15:50 UTC 2013 - speilicke@suse.com + +- Re-imported from IBS and some cleanup +- Package LICENSE +- Install service files to /usr/lib/systemd/system, not /etc/... +- Drop %py_requires, there are several autorequires for SLES and openSUSE +- Drop $all facility Required-Start in sysvinit/cloud-final + +------------------------------------------------------------------- +Wed Jun 26 15:41:24 UTC 2013 - bwiedemann@suse.com + +- require python-boto >= 2.7 because it fails with 2.5.2 + +------------------------------------------------------------------- +Wed Jun 26 13:07:41 UTC 2013 - rschweikert@suse.com + +- fix stray character in patch introduced by previous changes + +------------------------------------------------------------------- +Wed Jun 26 12:37:10 UTC 2013 - rschweikert@suse.com + +- fix zypper command in slesHandler, use non-interactive mode + +------------------------------------------------------------------- +Wed Jun 19 17:32:11 UTC 2013 - rschweikert@suse.com + +- fix duplicate entry in the config w.r.t. ssh key generation +- fix distro indicator setting, sles vs. opensuse + +------------------------------------------------------------------- +Tue Jun 18 21:48:21 UTC 2013 - rschweikert@suse.com + +- Integrate the sysV init script changes from Jens + +------------------------------------------------------------------- +Tue Jun 18 21:23:46 UTC 2013 - rschweikert@suse.com + +- integrate changes from HP + + update the sles handler, do not modify the util code integrate + routines directky into the sles handler + ~ add patch slesHandler.patch + ~ remove patch openSUSEHandler.diff + + add python dependencies + ~ python-argparse + ~ python-configobj + ~ python-oauth + + update the cloud-init config file + +------------------------------------------------------------------- +Sat Jun 15 10:40:42 UTC 2013 - rschweikert@suse.com + +- add the distro specific handler for openSUSE + + patch openSUSEHandler.diff +- fix syntax in SLE handler + + dict access uses [] not {}, duh + +------------------------------------------------------------------- +Fri Jun 14 00:57:18 UTC 2013 - rschweikert@suse.com + +- add the distro specific handler for SLE + + patch slesHandler.diff + +------------------------------------------------------------------- +Wed Jun 5 15:12:52 UTC 2013 - rschweikert@suse.com + +- update to version 0.7.2, see Changelog in source for fixes +- use the upstream sysvinit and systemd files +- remove all previously created patches + + drop-MAAS-datasource.diff + + drop-python27-only-code.diff + + drop-ubuntu-default-username.diff + + relative-authorized-keys-file.diff +- create a doc and test package to reduce size of main package +- add patch (fixupSysVinit.patch) to fix the upstream sysvinit LSB headers + +------------------------------------------------------------------- +Mon May 6 14:50:17 UTC 2013 - jdsn@suse.de + +- support relative path for authorized_keys file + backport fix from upstream version 0.7.1 (bnc#818306) + +------------------------------------------------------------------- +Wed Sep 19 12:42:07 UTC 2012 - jdsn@suse.de + +- fix usage of patches for openSUSE builds + +------------------------------------------------------------------- +Thu Sep 13 16:44:26 UTC 2012 - jdsn@suse.de + +- drop ubuntu as default user name +- disable ssh ecdsa host key creation on SLE11 + +------------------------------------------------------------------- +Wed Sep 12 16:28:01 UTC 2012 - jdsn@suse.de + +- replace python 2.7 code with 2.5 compliant code + +------------------------------------------------------------------- +Tue Sep 11 13:32:34 UTC 2012 - jdsn@suse.de + +- drop debian specific checks (bnc#779553) + +------------------------------------------------------------------- +Mon Sep 10 14:32:27 UTC 2012 - jdsn@suse.com + +- Add python-xml Requires that was missing (bnc#779588). + +------------------------------------------------------------------- +Fri Jul 20 13:04:01 UTC 2012 - jdsn@suse.com + +- fix init script, use killproc for stop operation (bnc#771803) + +------------------------------------------------------------------- +Tue Jul 3 15:51:01 UTC 2012 - cthiel@suse.com + +- change license to SPDX format + +------------------------------------------------------------------- +Wed Jun 27 09:34:01 UTC 2012 - jdsn@suse.de + +- rename to cloud-init +- drop MAAS support to avoid oauth dependency + diff --git a/cloud-init.spec b/cloud-init.spec new file mode 100644 index 0000000..c880def --- /dev/null +++ b/cloud-init.spec @@ -0,0 +1,275 @@ +# +# spec file for package cloud-init +# +# Copyright (c) 2023 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# +# change this whenever config changes incompatible +%global configver 0.7 + +Name: cloud-init +Version: 23.3 +Release: 0 +License: GPL-3.0 +Summary: Cloud node initialization tool +Url: https://github.com/canonical/cloud-init +Group: System/Management +Source0: %{name}-%{version}.tar.gz +Source1: rsyslog-cloud-init.cfg +Source2: hidesensitivedata +Patch1: datasourceLocalDisk.patch +# FIXME (lp#1849296) +Patch2: cloud-init-break-resolv-symlink.patch +# FIXME no proposed solution +Patch3: cloud-init-sysconf-path.patch +# FIXME (lp#1860164) +Patch4: cloud-init-no-tempnet-oci.patch +# FIXME (lp#1812117) +Patch6: cloud-init-write-routes.patch +# FIXME (https://github.com/canonical/cloud-init/issues/4339) +Patch7: cloud-init-keep-flake.patch +Patch8: cloud-init-lint-fixes.patch +# FIXME (https://github.com/canonical/cloud-init/pull/4788) +Patch9: cloud-init-pckg-reboot.patch +# FIXME +Patch10: cloud-init-skip-empty-conf.patch +# FIXME (https://github.com/canonical/cloud-init/commit/d0f00bd54649e527d69ad597cbcad6efa8548e58) +Patch11: cloud-init-ds-deterministic.patch +# FIXME https://github.com/canonical/cloud-init/issues/5152 adn LP#1715241 +Patch12: cloud-init-no-openstack-guess.patch +# FIXME upstream comit 812df5038 +Patch13: cloud-init-no-nmcfg-needed.patch +BuildRequires: fdupes +BuildRequires: filesystem +# pkg-config is needed to find correct systemd unit dir +BuildRequires: pkg-config +# needed for /lib/udev +BuildRequires: pkgconfig(udev) +BuildRequires: procps +BuildRequires: python-rpm-macros +BuildRequires: python3-devel +BuildRequires: python3-setuptools +# Test requirements +BuildRequires: python3-Jinja2 +BuildRequires: python3-PyYAML +BuildRequires: python3-configobj >= 5.0.2 +BuildRequires: python3-flake8 +BuildRequires: python3-httpretty +BuildRequires: python3-jsonpatch +BuildRequires: python3-jsonschema +BuildRequires: python3-netifaces +BuildRequires: python3-oauthlib +BuildRequires: python3-passlib +BuildRequires: python3-pytest +BuildRequires: python3-pytest-cov +BuildRequires: python3-pytest-mock +BuildRequires: python3-requests +BuildRequires: python3-responses +BuildRequires: python3-serial +BuildRequires: system-user-nobody +BuildRequires: distribution-release +BuildRequires: util-linux +Requires: bash +Requires: dhcp-client +Requires: file +Requires: growpart +Requires: e2fsprogs +Requires: net-tools +Requires: openssh +Requires: procps +Requires: python3-configobj >= 5.0.2 +Requires: python3-Jinja2 +Requires: python3-jsonpatch +Requires: python3-jsonschema +Requires: python3-netifaces +Requires: python3-oauthlib +Requires: python3-passlib +Requires: python3-pyserial +Requires: python3-PyYAML +Requires: python3-requests +Requires: python3-serial +Requires: python3-setuptools +Requires: python3-xml +Requires: sudo +Requires: util-linux +Requires: wget +%if 0%{?suse_version} && 0%{?suse_version} <= 1500 +Requires: wicked-service +%endif +Requires: cloud-init-config = %configver +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%define docdir %{_defaultdocdir}/%{name} +%ifarch %ix86 x86_64 +Requires: dmidecode +%endif +%define initsys systemd +BuildRequires: pkgconfig(systemd) +%{?systemd_requires} +%if 0%{?suse_version} && 0%{?suse_version} == 1220 +%define systemd_prefix /lib +%else +%define systemd_prefix /usr/lib +%endif + +%description +Cloud-init is an init script that initializes a cloud node (VM) +according to the fetched configuration data from the admin node. + +%package config-suse +Summary: Configuration file for Cloud node initialization tool +Provides: cloud-init-config = %configver +Group: System/Management +Conflicts: otherproviders(cloud-init-config) + +%description config-suse +This package contains the product specific configuration file +for cloud-init. + +%package doc +Summary: Cloud node initialization tool - Documentation +Group: System/Management +Recommends: cloud-init = %{version} + +%description doc +Cloud-init is an init script that initializes a cloud node (VM) +according to the fetched configuration data from the admin node. + +Documentation and examples for cloud-init tools + +%prep +%setup -q +%patch -P 1 -p0 +%patch -P 2 +%patch -P 3 +%patch -P 4 +%patch -P 6 +%patch -P 7 +%patch -P 8 +%patch -P 9 +%patch -P 10 +%patch -P 11 +%patch -P 12 +%patch -P 13 + +# patch in the full version to version.py +version_pys=$(find . -name version.py -type f) +[ -n "$version_pys" ] || + { echo "failed to find 'version.py' to patch with version." 1>&2; exit 1; } +sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $version_pys + +%build +python3 setup.py build + +%check +make unittest +make lint + +%install +python3 setup.py install --root=%{buildroot} --prefix=%{_prefix} --install-lib=%{python3_sitelib} --init-system=%{initsys} --distro=suse +find %{buildroot} \( -name .gitignore -o -name .placeholder \) -delete +# from debian install script +for x in "%{buildroot}%{_bindir}/"*.py; do + [ -f "${x}" ] && mv "${x}" "${x%.py}" +done +mkdir -p %{buildroot}%{_localstatedir}/lib/cloud +# move documentation +mkdir -p %{buildroot}%{_defaultdocdir} +mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{_defaultdocdir} +# man pages +mkdir -p %{buildroot}%{_mandir}/man1 +mv doc/man/* %{buildroot}%{_mandir}/man1 +# copy the LICENSE +mkdir -p %{buildroot}%{_defaultlicensedir}/%{name} +cp LICENSE %{buildroot}%{_defaultlicensedir}/%{name} +cp LICENSE-GPLv3 %{buildroot}%{_defaultlicensedir}/%{name} +# Set the distribution indicator +%if 0%{?suse_version} +%if 0%{?is_opensuse} +sed -i s/suse/opensuse/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg +%else +sed -i s/suse/sles/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg +%endif +%endif +mkdir -p %{buildroot}/%{_sysconfdir}/rsyslog.d +mkdir -p %{buildroot}/usr/lib/udev/rules.d/ +cp -a %{SOURCE1} %{buildroot}/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf +mkdir -p %{buildroot}%{_sbindir} +install -m 755 %{SOURCE2} %{buildroot}%{_sbindir} + +# remove debian/ubuntu specific profile.d file (bnc#779553) +rm -f %{buildroot}%{_sysconfdir}/profile.d/Z99-cloud-locale-test.sh + +# Remove non-SUSE templates +rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.debian.* +rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.redhat.* +rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.ubuntu.* + +# remove duplicate files +%if 0%{?suse_version} +%fdupes %{buildroot}%{python3_sitelib} +%endif + +%post +/usr/sbin/hidesensitivedata + +%files +%defattr(-,root,root) +%license LICENSE LICENSE-GPLv3 +%{_bindir}/cloud-id +%{_bindir}/cloud-init +%{_bindir}/cloud-init-per +%{_sbindir}/hidesensitivedata +%dir %{_sysconfdir}/cloud +%dir %{_sysconfdir}/cloud/clean.d +%{_sysconfdir}/cloud/clean.d/README +%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d +%config(noreplace) %{_sysconfdir}/cloud/templates +%{_sysconfdir}/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf +%{_mandir}/man*/* +%if 0%{?suse_version} && 0%{?suse_version} < 1500 +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%endif +%{_datadir}/bash-completion/completions/cloud-init +%{python3_sitelib}/cloudinit +%{python3_sitelib}/cloud_init-%{version}*.egg-info +%{_prefix}/lib/cloud-init +%{systemd_prefix}/systemd/system-generators/cloud-init-generator +%{systemd_prefix}/systemd/system/cloud-config.service +%{systemd_prefix}/systemd/system/cloud-config.target +%{systemd_prefix}/systemd/system/cloud-init-local.service +%{systemd_prefix}/systemd/system/cloud-init.service +%{systemd_prefix}/systemd/system/cloud-init.target +%{systemd_prefix}/systemd/system/cloud-final.service +%dir %{_sysconfdir}/rsyslog.d +%{_sysconfdir}/rsyslog.d/21-cloudinit.conf +/usr/lib/udev/rules.d/66-azure-ephemeral.rules +# We use cloud-netconfig to handle new interfaces added to the instance +%exclude %{systemd_prefix}/systemd/system/cloud-init-hotplugd.service +%exclude %{systemd_prefix}/systemd/system/cloud-init-hotplugd.socket +%dir %attr(0755, root, root) %{_localstatedir}/lib/cloud +%dir %{docdir} +%dir /etc/systemd/system/sshd-keygen@.service.d + + +%files config-suse +%defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg + +%files doc +%defattr(-,root,root) +%{docdir}/examples/* +%{docdir}/*.txt +%dir %{docdir}/examples + +%changelog diff --git a/datasourceLocalDisk.patch b/datasourceLocalDisk.patch new file mode 100644 index 0000000..44ad172 --- /dev/null +++ b/datasourceLocalDisk.patch @@ -0,0 +1,110 @@ +--- /dev/null ++++ cloudinit/sources/DataSourceLocalDisk.py +@@ -0,0 +1,107 @@ ++# vi: ts=4 expandtab ++# ++# Copyright (C) 2016 SUSE Linux GmbH ++# ++# Author: Thorsten Kukuk ++# ++# This program is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License version 3, as ++# published by the Free Software Foundation. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++import os ++ ++from cloudinit import log as logging ++from cloudinit import sources ++from cloudinit import util ++ ++LOG = logging.getLogger(__name__) ++ ++DEFAULT_IID = "iid-localdisk" ++ ++ ++class DataSourceLocalDisk(sources.DataSource): ++ def __init__(self, sys_cfg, distro, paths): ++ sources.DataSource.__init__(self, sys_cfg, distro, paths) ++ self.seed = None ++ self.seed_dir = os.path.join(paths.seed_dir, 'localdisk') ++ ++ def __str__(self): ++ root = sources.DataSource.__str__(self) ++ return "%s [seed=%s][dsmode=%s]" % (root, self.seed, self.dsmode) ++ ++ def get_data(self): ++ if not os.path.isdir('/cloud-init-config'): ++ return False ++ ++ defaults = {"instance-id": DEFAULT_IID} ++ ++ found = [] ++ mydata = {'meta-data': {}, 'user-data': "", 'vendor-data': ""} ++ ++ # Check to see if the seed dir has data. ++ try: ++ seeded = util.pathprefix2dict( ++ self.seed_dir, ['user-data', 'meta-data'], ['vendor-data'] ++ ) ++ found.append(self.seed_dir) ++ mydata = _merge_new_seed(mydata, seeded) ++ except ValueError: ++ pass ++ ++ try: ++ seeded = util.pathprefix2dict( ++ '/cloud-init-config', ['user-data', 'meta-data'], ++ ['vendor-data'] ++ ) ++ found.append('/cloud-init-config') ++ mydata = _merge_new_seed(mydata, seeded) ++ except ValueError: ++ return False ++ ++ # Merge in the defaults ++ mydata['meta-data'] = util.mergemanydict([mydata['meta-data'], ++ defaults]) ++ ++ self.seed = ",".join(found) ++ self.metadata = mydata['meta-data'] ++ self.userdata_raw = mydata['user-data'] ++ self.vendordata_raw = mydata['vendor-data'] ++ return True ++ ++ def check_instance_id(self, sys_cfg): ++ # quickly (local check only) if self.instance_id is still valid ++ return sources.instance_id_matches_system_uuid(self.get_instance_id()) ++ ++ ++def _merge_new_seed(cur, seeded): ++ ret = cur.copy() ++ ++ newmd = seeded.get('meta-data', {}) ++ if not isinstance(seeded['meta-data'], dict): ++ newmd = util.load_yaml(seeded['meta-data']) ++ ret['meta-data'] = util.mergemanydict([cur['meta-data'], newmd]) ++ ++ if 'user-data' in seeded: ++ ret['user-data'] = seeded['user-data'] ++ if 'vendor-data' in seeded: ++ ret['vendor-data'] = seeded['vendor-data'] ++ return ret ++ ++ ++# Used to match classes to dependencies ++datasources = [ ++ (DataSourceLocalDisk, (sources.DEP_FILESYSTEM, )), ++] ++ ++ ++# Return a list of data sources that match this set of dependencies ++def get_datasource_list(depends): ++ return sources.list_from_depends(depends, datasources) diff --git a/hidesensitivedata b/hidesensitivedata new file mode 100644 index 0000000..be635ce --- /dev/null +++ b/hidesensitivedata @@ -0,0 +1,36 @@ +#!/usr/bin/python3 + +import json +import os +import sys + +from pathlib import Path + +from cloudinit.atomic_helper import write_json +from cloudinit.sources import ( + DataSource, + process_instance_metadata, + redact_sensitive_keys, +) + +from cloudinit.stages import Init + +init = Init() +log_file = init.cfg["def_log_file"] +if os.path.exists(log_file): + os.chmod(log_file, 0o640) + +rundir = init.paths.run_dir +instance_data_path = Path(rundir, "instance-data.json") +if not os.path.exists(str(instance_data_path)): + sys.exit(0) +instance_json = json.load(instance_data_path.open(encoding="utf-8")) + +sensitive_keys = DataSource.sensitive_metadata_keys + +processed_json = process_instance_metadata( + instance_json, sensitive_keys=sensitive_keys +) +redacted_json = redact_sensitive_keys(processed_json) + +write_json(str(instance_data_path), redacted_json) diff --git a/rsyslog-cloud-init.cfg b/rsyslog-cloud-init.cfg new file mode 100644 index 0000000..6e8cc7f --- /dev/null +++ b/rsyslog-cloud-init.cfg @@ -0,0 +1,6 @@ +# Log cloudinit generated log messages to file +:syslogtag, isequal, "[CLOUDINIT]" /var/log/cloud-init.log + +# comment out the following line to allow CLOUDINIT messages through. +# Doing so means you'll also get CLOUDINIT messages in /var/log/syslog +& stop