diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py index 261993fe1ce..23347e82961 100644 --- a/cloudinit/sources/DataSourceAzure.py +++ b/cloudinit/sources/DataSourceAzure.py @@ -335,12 +335,16 @@ def __init__(self, sys_cfg, distro, paths): ) self._iso_dev = None self._network_config = None + self._ovf_network_config = None self._ephemeral_dhcp_ctx: Optional[EphemeralDHCPv4] = None self._reported_ready_marker_file = os.path.join( paths.cloud_dir, "data", "reported_ready" ) self._route_configured_for_imds = False self._route_configured_for_wireserver = False + self._is_azure_stack = False + self._disable_imds = False + self._disable_wireserver = False self._system_uuid = None self._vm_id = None self._wireserver_endpoint = DEFAULT_WIRESERVER_ENDPOINT @@ -350,11 +354,15 @@ def _unpickle(self, ci_pkl_version: int) -> None: self._ephemeral_dhcp_ctx = None self._iso_dev = None + self._ovf_network_config = None self._reported_ready_marker_file = os.path.join( self.paths.cloud_dir, "data", "reported_ready" ) self._route_configured_for_imds = False self._route_configured_for_wireserver = False + self._is_azure_stack = False + self._disable_imds = False + self._disable_wireserver = False self._system_uuid = None self._vm_id = None self._wireserver_endpoint = DEFAULT_WIRESERVER_ENDPOINT @@ -705,17 +713,38 @@ def crawl_metadata(self): ) report_diagnostic_event(msg, logger_func=LOG.warning) + # Azure Stack may opt out of IMDS and/or Wireserver via ovf-env.xml. + self._disable_imds = bool(cfg.get("DisableIMDS")) + self._disable_wireserver = bool(cfg.get("DisableWireserver")) + + # Azure Stack may provide a native v2 network config in ovf-env.xml. + self._ovf_network_config = cfg.get("Network") + # If we read OVF from attached media, we are provisioning. If OVF # is not found, we are probably provisioning on a system which does # not have UDF support. In either case, require IMDS metadata. # If we require IMDS metadata, try harder to obtain networking, waiting - # for at least 20 minutes. Otherwise only wait 5 minutes. - requires_imds_metadata = bool(self._iso_dev) or ovf_source is None - timeout_minutes = 20 if requires_imds_metadata else 5 - try: - self._setup_ephemeral_networking(timeout_minutes=timeout_minutes) - except NoDHCPLeaseError: - pass + # for at least 20 minutes. Otherwise only wait 5 minutes. With IMDS + # disabled we never query it, so do not wait longer on its behalf. + # Networking only exists to reach IMDS and/or Wireserver, so skip DHCP + # entirely when both are disabled. + if self._disable_imds and self._disable_wireserver: + report_diagnostic_event( + "Skipping DHCP setup: DisableIMDS and DisableWireserver are " + "set in ovf-env.xml.", + logger_func=LOG.info, + ) + else: + requires_imds_metadata = not self._disable_imds and ( + bool(self._iso_dev) or ovf_source is None + ) + timeout_minutes = 20 if requires_imds_metadata else 5 + try: + self._setup_ephemeral_networking( + timeout_minutes=timeout_minutes + ) + except NoDHCPLeaseError: + pass imds_md = {} if self._is_ephemeral_networking_up(): @@ -858,6 +887,13 @@ def crawl_metadata(self): @azure_ds_telemetry_reporter def get_metadata_from_imds(self, report_failure: bool) -> Dict: + if self._disable_imds: + report_diagnostic_event( + "Skipping IMDS query: DisableIMDS is set in ovf-env.xml.", + logger_func=LOG.info, + ) + return {} + start_time = monotonic() retry_deadline = start_time + 300 @@ -914,6 +950,9 @@ def ds_detect(self): """ chassis_tag = identity.ChassisAssetTag.query_system() if chassis_tag is not None: + self._is_azure_stack = ( + chassis_tag is identity.ChassisAssetTag.AZURE_STACK + ) return True # If no valid chassis tag, check for seeded ovf-env.xml. @@ -1415,6 +1454,14 @@ def _report_failure( if host_only: return reported + if self._disable_wireserver: + report_diagnostic_event( + "Skipping failure report to Wireserver: DisableWireserver is " + "set in ovf-env.xml.", + logger_func=LOG.info, + ) + return reported + if self._is_ephemeral_networking_up(): try: report_diagnostic_event( @@ -1475,6 +1522,17 @@ def _report_ready( report_dmesg_to_kvp() kvp.report_success_to_host(vm_id=self._vm_id) + if self._disable_wireserver: + report_diagnostic_event( + "Skipping Wireserver report ready: DisableWireserver is set " + "in ovf-env.xml.", + logger_func=LOG.info, + ) + # Reporting ready ejects OVF media; skip since we did not report. + self._iso_dev = None + self._negotiated = True + return None + try: data = get_metadata_from_fabric( endpoint=self._wireserver_endpoint, @@ -1616,6 +1674,12 @@ def _generate_network_config(self): str(e), ) + # Use native v2 network config provided in ovf-env.xml, if configured. + if self._ovf_network_config and self.ds_cfg.get( + "apply_network_config" + ): + return self._ovf_network_config + # Generate fallback configuration. try: return _generate_network_config_from_fallback_config() @@ -1962,6 +2026,15 @@ def read_azure_ovf(contents): :raises NonAzureDataSource: if XML is not in Azure's format. :raises errors.ReportableError: if XML is unparsable or invalid. """ + # DEBUG: DO NOT MERGE -- logs raw ovf-env.xml (may contain secrets) to + # diagnose provisioning. Logged before parse so it survives a parse + # failure. Remove before production. + LOG.warning( + "Reading ovf-env.xml: %s", + contents.decode("utf-8", "ignore") + if isinstance(contents, bytes) + else contents, + ) ovf_env = OvfEnvXml.parse_text(contents) md: Dict[str, Any] = {} cfg = {} @@ -2006,6 +2079,25 @@ def read_azure_ovf(contents): "ProvisionGuestProxyAgent: %s" % ovf_env.provision_guest_proxy_agent, logger_func=LOG.info, ) + + cfg["DisableIMDS"] = ovf_env.disable_imds + report_diagnostic_event( + "DisableIMDS: %s" % ovf_env.disable_imds, + logger_func=LOG.info, + ) + + cfg["DisableWireserver"] = ovf_env.disable_wireserver + report_diagnostic_event( + "DisableWireserver: %s" % ovf_env.disable_wireserver, + logger_func=LOG.info, + ) + + if ovf_env.network is not None: + cfg["Network"] = ovf_env.network + report_diagnostic_event( + "Network config provided in ovf-env.xml.", + logger_func=LOG.info, + ) return (md, ud, cfg) @@ -2079,6 +2171,10 @@ def load_azure_ds_dir(source_dir): with performance.Timed("Reading ovf-env.xml"), open(ovf_file, "rb") as fp: contents = fp.read() + # DEBUG: DO NOT MERGE -- dumps raw provisioning media (may contain + # secrets) to diagnose provisioning. Remove before production. + Path("/run/cloud-init/ovf-env.xml").write_bytes(contents) + md, ud, cfg = read_azure_ovf(contents) return (md, ud, cfg, {"ovf-env.xml": contents}) diff --git a/cloudinit/sources/azure/identity.py b/cloudinit/sources/azure/identity.py index 88d162e4650..325ec10c350 100644 --- a/cloudinit/sources/azure/identity.py +++ b/cloudinit/sources/azure/identity.py @@ -80,6 +80,7 @@ def query_vm_id() -> str: class ChassisAssetTag(enum.Enum): AZURE_CLOUD = "7783-7084-3265-9085-8269-3286-77" + AZURE_STACK = "4860-8370-5222-2345-9626-0897-77" @classmethod def query_system(cls) -> Optional["ChassisAssetTag"]: diff --git a/cloudinit/sources/helpers/azure.py b/cloudinit/sources/helpers/azure.py index 84f8f10e57d..bc360cf1caa 100644 --- a/cloudinit/sources/helpers/azure.py +++ b/cloudinit/sources/helpers/azure.py @@ -16,6 +16,8 @@ from xml.etree import ElementTree as ET # nosec B405 from xml.sax.saxutils import escape # nosec B406 +import yaml + from cloudinit import distros, subp, temp_utils, url_helper, util, version from cloudinit.reporting import events from cloudinit.sources.azure import errors @@ -1000,6 +1002,9 @@ def __init__( preprovisioned_vm: bool = False, preprovisioned_vm_type: Optional[str] = None, provision_guest_proxy_agent: bool = False, + disable_imds: bool = False, + disable_wireserver: bool = False, + network: Optional[dict] = None, ) -> None: self.username = username self.password = password @@ -1010,6 +1015,9 @@ def __init__( self.preprovisioned_vm = preprovisioned_vm self.preprovisioned_vm_type = preprovisioned_vm_type self.provision_guest_proxy_agent = provision_guest_proxy_agent + self.disable_imds = disable_imds + self.disable_wireserver = disable_wireserver + self.network = network def __eq__(self, other) -> bool: return self.__dict__ == other.__dict__ @@ -1036,6 +1044,7 @@ def parse_text(cls, ovf_env_xml: str) -> "OvfEnvXml": instance = OvfEnvXml() instance._parse_linux_configuration_set_section(root) instance._parse_platform_settings_section(root) + instance._parse_azure_stack_configuration_section(root) return instance @@ -1070,6 +1079,7 @@ def _parse_property( required: bool, decode_base64: bool = False, parse_bool: bool = False, + parse_yaml: bool = False, default=None, ): matches = node.findall("./wa:" + name, OvfEnvXml.NAMESPACES) @@ -1098,6 +1108,14 @@ def _parse_property( if parse_bool: value = util.translate_bool(value) + if parse_yaml and value is not None: + try: + value = yaml.safe_load(value) + except yaml.YAMLError as e: + raise errors.ReportableErrorOvfInvalidMetadata( + "failed to parse %r as YAML" % name + ) from e + return value def _parse_linux_configuration_set_section(self, root): @@ -1162,6 +1180,36 @@ def _parse_platform_settings_section(self, root): required=False, ) + def _parse_azure_stack_configuration_section(self, root): + """Parse the optional Azure Stack configuration section.""" + section = self._find( + root, "AzureStackConfigurationSection", required=False + ) + if section is None: + return + + self.disable_imds = self._parse_property( + section, + "DisableIMDS", + parse_bool=True, + default=False, + required=False, + ) + self.disable_wireserver = self._parse_property( + section, + "DisableWireserver", + parse_bool=True, + default=False, + required=False, + ) + self.network = self._parse_property( + section, + "Network", + decode_base64=True, + parse_yaml=True, + required=False, + ) + def _parse_ssh_section(self, config_set): self.public_keys = [] diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 00000000000..3db12bd8e42 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,30 @@ +=== General Info === +Packaging branches for the Ubuntu development release are maintained in +upstream git under ubuntu/devel branch. + + git clone git://git.launchpad.net/cloud-init -b ubuntu/devel + +Stable release branches are also available in ubuntu/ + $ git clone git://git.launchpad.net/cloud-init + $ cd cloud-init + $ git branch -r + origin/HEAD -> origin/master + origin/master + origin/ubuntu/devel + origin/ubuntu/precise + origin/ubuntu/trusty + origin/ubuntu/xenial + +Patches in debian/patches are stored un-applied. + +== New snapshot == +Upstream maintains a script to handle new upstream snapshots at: + https://github.com/cloud-init/qa-scripts/ +Its usage is like: + new-upstream-snapshot master + +== Cherry Pick == +To cherry pick an upstream commit: + ./debian/cherry-pick + +That will add a patch to debian/patches/ and debian/patches/series. diff --git a/debian/apport-general-hook.py b/debian/apport-general-hook.py new file mode 100644 index 00000000000..5f614baa33b --- /dev/null +++ b/debian/apport-general-hook.py @@ -0,0 +1,12 @@ +"""General Apport hook for all reports that are using cloud-init.""" + +from cloudinit.apport import general_add_info + + +def add_info(report, ui) -> None: + """Entry point for Apport. + + Add a subset of non-sensitive cloud-init data from + /run/cloud/instance-data.json that will be helpful for debugging. + """ + general_add_info(report, ui) diff --git a/debian/apport-launcher.py b/debian/apport-launcher.py new file mode 100644 index 00000000000..9fce9997558 --- /dev/null +++ b/debian/apport-launcher.py @@ -0,0 +1,7 @@ +"""Wrapper for cloudinit apport interface""" + +from cloudinit.apport import add_info as cloudinit_add_info + + +def add_info(report, ui): + return cloudinit_add_info(report, ui) diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000000..9b16d3cb067 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6946 @@ +cloud-init (26.1-0ubuntu1~24.04.1) noble; urgency=medium + + * d/rules: replace DOWNSTREAM_VERSION with packaged DEB_VERSION value + * d/p/0001-Revert-fix-DNS-resolution-performance-regression-dur.patch revert Ec2 URL change + * d/p/0001-Revert-fix-support-bond-names-in-network_data.patch revert bond name change + * refresh patches: + - d/p/no-nocloud-network.patch + - d/p/no-single-process.patch + - d/p/grub-dpkg-support.patch + - d/p/retain-setuptools.patch. Use PACKAGED_VERSION environment variable. + build tools and tests. + * Upstream snapshot based on upstream/main at 090026a3. + * Upstream snapshot based on 26.1. (LP: #2146833). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/26.1/ChangeLog + + -- Chad Smith Mon, 30 Mar 2026 12:55:18 -0600 + +cloud-init (25.3-0ubuntu1~24.04.1) noble; urgency=medium + + * d/p/retain-setuptools.patch: avoid upstream switch to meson build backend. + * refresh patches: + - d/p/no-nocloud-network.patch + - d/p/no-single-process.patch + - d/p/grub-dpkg-support.patch + * Upstream snapshot based on 25.3. (LP: #2131604). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.3/ChangeLog + + -- Chad Smith Sat, 15 Nov 2025 11:02:56 -0700 + +cloud-init (25.2-0ubuntu1~24.04.1) noble; urgency=medium + + * add d/p/strip-invalid-mtu.patch + - Provides backwards compatibility for an otherwise invalid + MTU in a netplan config. (GH-6239) + * d/cloud-init.templates: + - Move VMware before OVF. See GH-4030 + - Enable CloudCIX by default + * refresh patches: + - d/p/no-single-process.patch + * Upstream snapshot based on 25.2. (LP: #2120495). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.2/ChangeLog + + -- James Falcon Tue, 12 Aug 2025 16:19:32 -0500 + +cloud-init (25.1.4-0ubuntu0~24.04.1) noble-security; urgency=medium + + * Upstream snapshot based on 25.1.4. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.1.4/ChangeLog + - Bugs fixed in this snapshot: + + fix: disable cloud-init when non-x86 environments have no DMI-data + and no strict datasources detected (LP: #2069607) (CVE-2024-6174) + + -- Chad Smith Tue, 24 Jun 2025 15:14:03 -0600 + +cloud-init (25.1.3-0ubuntu0~24.04.1) noble-security; urgency=medium + + * d/cloud-init-base.postinst: move existing hotplug-cmd fifo to root-only + share dir (CVE-2024-11584) + * Upstream security bugfix release based on 25.1.3. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.1.3/ChangeLog + - Bugs fixed in this snapshot: + - security: make hotplug socket only writable by root (LP: #2114229) + (CVE-2024-11584) + - security: make ds-identify behavior strict datasource discovery on + non-x86 platforms without DMI data (LP: #2069607) (CVE-2024-6174) + + -- Chad Smith Thu, 12 Jun 2025 20:24:45 -0600 + +cloud-init (25.1.2-0ubuntu0~24.04.1) noble; urgency=medium + + * Upstream snapshot based on 25.1.2. (LP: #2104165). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.1.2/ChangeLog + + -- James Falcon Mon, 19 May 2025 15:00:58 -0500 + +cloud-init (25.1.1-0ubuntu1~24.04.1) noble; urgency=medium + + * Drop cpicks which are now upstream: + - cpick-d75840be-fix-retry-AWS-hotplug-for-async-IMDS-5995 + - cpick-84806336-chore-Add-feature-flag-for-manual-network-waiting + - d/p/cpick-c60771d8-test-pytestify-test_url_helper.py + - d/p/cpick-8810a2dc-test-Remove-CiTestCase-from-test_url_helper.py + - d/p/cpick-582f16c1-test-add-OauthUrlHelper-tests + - d/p/cpick-9311e066-fix-Update-OauthUrlHelper-to-use-readurl-exception_cb + * refresh patches + - d/p/deprecation-version-boundary.patch + - d/p/grub-dpkg-support.patch + - d/p/no-nocloud-network.patch + - d/p/no-single-process.patch + * sort hunks within all patches (--sort on quilt refresh) + * Upstream snapshot based on 25.1.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/25.1.1/ChangeLog + + -- Chad Smith Tue, 25 Mar 2025 11:02:28 -0600 + +cloud-init (24.4.1-0ubuntu0~24.04.3) noble; urgency=medium + + * d/control: Fix how cloud-init-base overwrites cloud-init files. + (LP: #2092333) + + -- James Falcon Wed, 02 Apr 2025 10:09:15 -0500 + +cloud-init (24.4.1-0ubuntu0~20.04.2) noble; urgency=medium + + * cherry-pick fixes for MAAS traceback (LP: #2100963) + - cherry-pick c60771d8: test: pytestify test_url_helper.py + - cherry-pick 8810a2dc: test: Remove CiTestCase from + test_url_helper.py + - cherry-pick 582f16c1: test: add OauthUrlHelper tests + - cherry-pick 9311e066: fix: Update OauthUrlHelper to use readurl + exception_cb + + -- James Falcon Thu, 13 Mar 2025 11:28:57 -0500 + +cloud-init (24.4.1-0ubuntu0~24.04.1) noble; urgency=medium + + * Add d/p/cpick-84806336-chore-Add-feature-flag-for-manual-network-waiting + - Pull in the upstream commit that makes it easier to patch out the + new systemd-networkd-wait-online behavior in e30549e8 + * Add d/p/cpick-b817a679-fix-retry-AWS-hotplug-for-async-IMDS.patch + - Pull in the upstream commit works around a limitation in AWS's IMDS + (GH-5971) (LP: #2097319) + * Add d/p/no-remove-networkd-online.patch + - Revert breaking change on stable release (LP: #2094149) + * Update d/p/no-single-process.patch + - This patch missed waiting for mounts (LP: #2097441) + * Upstream snapshot based on 24.4.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.4.1/ChangeLog + (LP: #2094179, #2094208, #2094857, #2094858) + + -- Brett Holman Tue, 04 Feb 2025 15:36:06 -0700 + +cloud-init (24.4-0ubuntu1~24.04.2) noble; urgency=medium + + * Fix d/p/no-single-process.patch + - It didn't contain removal of cloud-init-network.service nor + the removal of the network.service reference + + -- James Falcon Mon, 02 Dec 2024 13:09:22 -0600 + +cloud-init (24.4-0ubuntu1~24.04.1) noble; urgency=medium + + * add d/p/grub-dpkg-support.patch + - Revert the removal of grub-dpkg from default modules + * refresh patches: + - d/p/deprecation-version-boundary.patch + - d/p/no-nocloud-network.patch + - d/p/no-single-process.patch + * Upstream snapshot based on 24.4. (LP: #2089577). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.4/ChangeLog + + -- James Falcon Tue, 26 Nov 2024 07:46:41 -0600 + +cloud-init (24.3.1-0ubuntu0~24.04.1) noble; urgency=medium + + * d/p/no-single-process.patch: Remove single process optimization + * d/p/no-nocloud-network.patch: Remove nocloud network feature + * Upstream snapshot based on upstream/main at acf04d61. + * Upstream snapshot based on 24.3.1. (LP: #2079224). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.3.1/ChangeLog + + -- Chad Smith Thu, 05 Sep 2024 12:30:45 -0600 + +cloud-init (24.2-0ubuntu1~24.04.2) noble; urgency=medium + + * Declare breaks on the python3-minimal version that is affected by the + py3clean failure when using alternate character set (LP: #2075337) + + -- Benjamin Drung Wed, 07 Aug 2024 20:54:01 +0200 + +cloud-init (24.2-0ubuntu1~24.04.1) noble; urgency=medium + + * d/control: Remove netifaces + * d/p/deprecation-version-boundary.patch: Pin deprecation version to 24.1 + * Upstream snapshot based on 24.2. (LP: #2071762). + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.2/ChangeLog + * drop all d/p/cpick-* files as they are included in upstream snapshot + + -- Chad Smith Wed, 03 Jul 2024 06:02:13 -0600 + +cloud-init (24.1.3-0ubuntu3.3) noble; urgency=medium + + * Upstream bug fix release based on 24.1.7 + + functional fixes in debian/patches: + - cpick-417ee551: fix(ec2): Ensure metadata exists before configuring PBR. + (LP: #2066979) + - cpick-d6776632: fix: Check renderer for netplan-specific code (#5321) + - cpick d771d1f4: fix(ec2): Correctly identify netplan renderer (#5361) + (LP: #2066985) + + test fixes in debian/patches: + - cpick-74dc7cce: test: Fix failing test_ec2.py test (#5324) + + -- James Falcon Wed, 05 Jun 2024 12:37:32 -0500 + +cloud-init (24.1.3-0ubuntu3.2) noble; urgency=medium + + * cherry-pick 51c6569f: fix(snapd): ubuntu do not snap refresh when + snap absent (LP: #2064132) + - fix in 24.1.3-0ubuntu3.1did not handle package_upgrade case + + -- Chad Smith Mon, 06 May 2024 12:17:34 -0600 + +cloud-init (24.1.3-0ubuntu3.1) noble; urgency=medium + + * cherry-pick a6f7577d: bug(package_update): avoid snap refresh in + images without (LP: #2064132) + + -- Chad Smith Mon, 29 Apr 2024 09:45:39 -0600 + +cloud-init (24.1.3-0ubuntu3) noble; urgency=medium + + * cherry-pick 516fad6d: fix(url_helper): fix TCP connection leak on + readurl() retries + + -- Brett Holman Fri, 05 Apr 2024 17:18:48 -0600 + +cloud-init (24.1.3-0ubuntu2) noble; urgency=medium + + * Upstream bug fix release based on 24.1.4. + + functional fixes in debian/patches: + - cpick-f74b61ea-ephemeral-dhcpcd-Set-dhcpcd-interface-down + When dhcpcd client sets up a device to discover IMDS, ensure + link is set back down to avoid interface rename failures (GH-5019) + - cpick-372e80f8-net-dhcp-bump-dhcpcd-timeout-to-300s-5127 + Extend default timeout of dhcpcd command to 300 seconds + - cpick-77771023-net-dhcp-raise-InvalidDHCPLeaseFileError-on-error + Raise any dhcpcd lease parse failures as InvalidDHCPLeaseFileError + (GH-5128) + - cpick-f6ac6ee8-fix-dhcpcd-Make-lease-parsing-more-robust-5129 + Avoid tracebacks on empty invalid lease content from dhcpcd + and raise InvalidDHCPLeaseFileError with full lease parsed when errors + occur. (GH-5128) + + test fixes in debian/patches: + - d/p/cpick-accdfe6a-refactor-Import-log-module-rather-than-functions-5074 + Avoid mock failures in unit tests by module-level import of log + - cpick-144782a8-test-Remove-side-effects-from-tests-5074 + + -- Chad Smith Wed, 03 Apr 2024 12:26:52 -0600 + +cloud-init (24.1.3-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on 24.1.3. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.1.3/ChangeLog + + -- James Falcon Wed, 27 Mar 2024 08:27:29 -0500 + +cloud-init (24.1.2-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on 24.1.2. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.1.2/ChangeLog + - Bugs fixed in this snapshot: (LP: #2057763) + + -- Chad Smith Thu, 21 Mar 2024 07:53:15 -0600 + +cloud-init (24.1.1-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on 24.1.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.1.1/ChangeLog + - Bugs fixed in this snapshot: (LP: #2056439, #2056460, #2055077) + (LP: #2056194) + + -- Brett Holman Mon, 11 Mar 2024 21:09:37 -0600 + +cloud-init (24.1-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on 24.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/24.1/ChangeLog + + -- Brett Holman Thu, 29 Feb 2024 19:57:05 -0700 + +cloud-init (24.1~7g54599148-0ubuntu1) noble; urgency=medium + + * d/cloud-init.templates: enable WSL datasource by default. + * Restore upstream ChangeLog without any merges. + We have been merging an upstream ChangeLog spelling difference + downstream for no good reason. + * Upstream snapshot based on upstream/main at 54599148. + - Bugs fixed in this snapshot: (LP: #2055081, #2055219) + + -- James Falcon Tue, 27 Feb 2024 17:42:55 -0600 + +cloud-init (24.1~6ga4140119-0ubuntu1) noble; urgency=medium + + * d/control: Replace isc-dhcp-client with dhcpcd-base + * d/p/do-not-block-user-login.patch: + - Remove patch, snapd no longer blocks ssh + * d/s/: Move apport hook to main branch + * d/cloud-init.postinst: change priority of hotplug rules. + Avoids LP #1946003 on upgraded systems. References: + [0] https://github.com/canonical/cloud-init/pull/4799 + [1] commit/b519d861aff8b44a0610c176cb34adcbe28df144 + * Upstream snapshot based on upstream/main at a4140119. + + -- Brett Holman Fri, 16 Feb 2024 08:18:39 -0500 + +cloud-init (24.1~5g1f6eddd5-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on upstream/main at 1f6eddd5. + - Bugs fixed in this snapshot: (LP: #2046483) + + -- Chad Smith Fri, 02 Feb 2024 14:39:53 -0700 + +cloud-init (24.1~4gd9677655-0ubuntu1) noble; urgency=medium + + * d/cloud-init.maintscript: remove /etc/cloud/clean.d/README + * d/cloud-init.logrotate: add logrotate config for cloud-init + * Upstream snapshot based on upstream/main at d9677655. + - Bugs fixed in this snapshot: (LP: #2051147) + + -- Alberto Contreras Wed, 24 Jan 2024 18:45:19 +0100 + +cloud-init (24.1~3gb729a4c4-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on upstream/main at b729a4c4. + + -- Chad Smith Tue, 09 Jan 2024 15:38:50 -0700 + +cloud-init (24.1~2gb6a1c635-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on upstream/main at b6a1c635. + - Bugs fixed in this snapshot: (LP: #2045086, #1951639) + + -- Alberto Contreras Thu, 04 Jan 2024 10:16:55 +0100 + +cloud-init (24.1~1g1003d438-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on upstream/main at 1003d438. + - Bugs fixed in this snapshot: (LP: #2040325) + + -- Alberto Contreras Fri, 15 Dec 2023 11:34:16 +0100 + +cloud-init (23.4-0ubuntu1) noble; urgency=medium + + * Upstream snapshot based on 23.4. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/23.4/ChangeLog + + -- Alberto Contreras Mon, 04 Dec 2023 18:51:25 +0100 + +cloud-init (23.4~3g0cb0b80f-0ubuntu1) noble; urgency=medium + + * d/p/do-not-block-user-login.patch: + - Revert behavior, allow user login after cloud-init stage (LP: #2039505) + * d/control: add python3-apt as Recommends to read APT config from apt_pkg + * drop the following cherry-picks now included: + + d/p/cpick-0d9f149a-Pytestify-apt-config-test-modules-4424 + + d/p/cpick-5023e9f9-Refactor-test_apt_source_v1.py-to-use-pytest-4427 + + d/p/cpick-e9cdd7e3-Install-gnupg-if-gpg-not-found-4431 + + d/p/cpick-015543d3-apt-install-software-properties-common-when-absent-but + * Upstream snapshot based on upstream/main at 0cb0b80f. + - Bugs fixed in this snapshot: (LP: #2034273, #2030729) + (LP: #2038945, #2039453) + + -- Chad Smith Wed, 08 Nov 2023 22:24:09 -0700 + +cloud-init (23.3.1-0ubuntu2) mantic; urgency=medium + + * New upstream bug fix release based on 23.3.1. + + Install missing dependencies in apt module if required for minimal images. + - d/p/cpick-0d9f149a-Pytestify-apt-config-test-modules-4424 + - d/p/cpick-5023e9f9-Refactor-test_apt_source_v1.py-to-use-pytest-4427 + - d/p/cpick-e9cdd7e3-Install-gnupg-if-gpg-not-found-4431 + - d/p/cpick-015543d3-apt-install-software-properties-common-when-absent-but + + -- Brett Holman Thu, 28 Sep 2023 12:00:23 -0500 + +cloud-init (23.3.1-0ubuntu1) mantic; urgency=medium + + * New upstream bug fix release based on 23.3.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/23.3.1/ChangeLog + - Bugs fixed in this snapshot: (LP: #2034273) + + -- Chad Smith Tue, 05 Sep 2023 17:03:59 -0600 + +cloud-init (23.3-0ubuntu1) mantic; urgency=medium + + * d/po/templates.pot: refresh with debconf-updatepo + * d/cloud-init.templates: enable Akamai by default. + Add Akamai to the default templates to allow datasource discovery. + * Upstream snapshot based on 23.3. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/23.3/ChangeLog + - Bugs fixed in this snapshot: (LP: #2030788, #1980150, #1884127) + (LP: #1998539) + + -- Chad Smith Mon, 28 Aug 2023 12:33:17 -0600 + +cloud-init (23.3~4ga31370af-0ubuntu1) mantic; urgency=medium + + * Upstream snapshot based on upstream/main at a31370af. + - Bugs fixed in this snapshot: (LP: #1923363, #2028562, #2028784) + * d/cloud-init.maintscript: Remove the unused hook-network-manager + conffile. (LP: #2027861) + * d/control: Add python3-passlib as needed for testing + + -- James Falcon Mon, 31 Jul 2023 11:38:42 -0500 + +cloud-init (23.3~3gebd7b2b6-0ubuntu1) mantic; urgency=medium + + * Upstream snapshot based on upstream/main at ebd7b2b6. + + -- Alberto Contreras Tue, 18 Jul 2023 17:37:07 +0200 + +cloud-init (23.3~2gcf474da7-0ubuntu1) mantic; urgency=medium + + * Upstream snapshot based on upstream/main at cf474da7. + - Bugs fixed in this snapshot: (LP: #2013403) + + -- Alberto Contreras Tue, 11 Jul 2023 10:22:04 +0200 + +cloud-init (23.3~1ge5a617fe-0ubuntu1) mantic; urgency=medium + + * Upstream snapshot based on upstream/main at e5a617fe. + - Bugs fixed in this snapshot: (LP: #2025180, #2025180, #1999952) + (LP: #1798055) + + -- Chad Smith Wed, 28 Jun 2023 09:57:55 -0600 + +cloud-init (23.2-0ubuntu1) mantic; urgency=medium + + * d/control: Remove pep8 dependency. It is no longer used. + * Upstream snapshot based on 23.2. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/23.2/ChangeLog + - Bugs fixed in this snapshot: (LP: #2011783, #2008888, #1854594, #2016350) + (LP: #1881925, #2013967, #2011291) + + -- Alberto Contreras Wed, 24 May 2023 19:06:03 +0200 + +cloud-init (23.1.1-0ubuntu2) lunar; urgency=medium + + * d/apport-general-hook.py: Add general apport hook to append cloud type, + image and instance size information to bug reports (LP: #1724623) + * d/cloud-init.postinst: MAAS prefer yaml.safe_load over yaml.load + (LP: #2009746) + * d/cloud-init.preinst: Oracle to remove vestigial /etc/cloud.cloud.cfg.d/ + 99-disable-network-config.cfg because system config is now honored before + datasource config (LP: #1956788) + * Upstream snapshot based on upstream/main at 85b2fbc2. + - Bugs fixed in this snapshot: (LP: #1956788) + + -- Chad Smith Tue, 21 Mar 2023 14:43:55 -0600 + +cloud-init (23.1.1-0ubuntu1) lunar; urgency=medium + + * Upstream snapshot based on main at 4896402b. + + -- James Falcon Thu, 02 Mar 2023 16:46:05 -0600 + +cloud-init (23.1-0ubuntu2) lunar; urgency=medium + + * Upstream snapshot based on main at d1ffbea5. + - Bugs fixed in this snapshot: (LP: #2008727) + + -- James Falcon Thu, 02 Mar 2023 14:05:48 -0600 + +cloud-init (23.1-0ubuntu1) lunar; urgency=medium + + * Upstream snapshot based on 23.1. + List of changes from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/23.1/ChangeLog + - Bugs fixed in this snapshot: (LP: #1990513, #1999164, #1931174) + (LP: #1815990) + + -- Alberto Contreras Wed, 22 Feb 2023 18:15:10 +0100 + +cloud-init (22.4.2-0ubuntu3) lunar; urgency=medium + + * Upstream snapshot based on upstream/main at bdc7b040. + - Bugs fixed in this snapshot: (LP: #2001737, #1998526, #2000596) + (LP: #1851438) + * Upstream snapshot based on upstream/main at 3b8b4692. + - Bugs fixed in this snapshot: (LP: #1998998, #1997922, #2002969) + (LP: #2003562, #1999680) + + -- James Falcon Fri, 03 Feb 2023 15:36:12 -0600 + +cloud-init (22.4.2-0ubuntu2) lunar; urgency=medium + + * Upstream snapshot based on upstream/main at 040090a3. + - Bugs fixed in this snapshot: (LP: #1994980, #1998655, #1999042) + (LP: #1997559) + + -- Chad Smith Thu, 15 Dec 2022 16:11:37 -0700 + +cloud-init (22.4.2-0ubuntu1) lunar; urgency=medium + + * Upstream snapshot based on upstream commit 893df0d6. + - Bugs fixed in this snapshot: (LP: #1997559) + + -- Alberto Contreras Thu, 24 Nov 2022 08:39:08 +0100 + +cloud-init (22.4.1-0ubuntu1) lunar; urgency=medium + + * Upstream snapshot based on upstream commit c038808e. + + -- James Falcon Mon, 21 Nov 2022 15:02:34 -0600 + +cloud-init (22.4-0ubuntu4) lunar; urgency=medium + + * Upstream snapshot based on upstream commit 74ed1387. + - Bugs fixed in this snapshot: (LP: #1844191, #1906849, #1992512) + + -- James Falcon Fri, 18 Nov 2022 16:41:49 -0600 + +cloud-init (22.4-0ubuntu3) lunar; urgency=medium + + * d/changelog: Sync released d/changelog entries + - 22.3.4-0ubuntu1 and 22.3.3-0ubuntu1~22.10.1 + * Changelog: Sync release entries in Changlog: + - 22.3.1, 22.3.2, 22.3.3 and 22.3.4 + + -- Chad Smith Tue, 15 Nov 2022 19:08:24 -0700 + +cloud-init (22.4-0ubuntu2) lunar; urgency=medium + + * d/changelog: account for closed bugs released in 22.4-0ubuntu1 + + -- Chad Smith Tue, 15 Nov 2022 16:34:07 -0700 + +cloud-init (22.4-0ubuntu1) lunar; urgency=medium + + * d/control: drop python3-httpretty from Build-Depends + * d/cloud-init.templates: Add NWCS to datasource list + * Upstream snapshot based on 22.4 upstream release. List of changes + from upstream can be found at + https://raw.githubusercontent.com/canonical/cloud-init/22.4/ChangeLog + * Bugs fixed in this snapshot: + (LP: #1962343, #1913461, #1883122, #1989686, #1307667, #1990070, #1991567) + (LP: #1991024, #1990041, #1993836) + + -- James Falcon Tue, 15 Nov 2022 14:23:44 -0600 + +cloud-init (22.3.4-0ubuntu1) kinetic; urgency=medium + + * New upstream bug fix release. + + Release 22.3.4 (LP: #1986703) + + Fix Oracle DS primary interface when using IMDS (#1757) + (LP: #1989686) + + -- Brett Holman Fri, 30 Sep 2022 16:07:44 -0600 + +cloud-init (22.3.3-0ubuntu1~22.10.1) kinetic; urgency=medium + + * New upstream bug fix release. + + Release 22.3.3 (LP: #1986703) + + Fix Oracle DS not setting subnet when using IMDS (#1735) + (LP: #1989686) + + azure: define new attribute for pre-22.3 pickles (#1725) + + sources/azure: ensure instance id is always correct (#1727) + [Chris Patterson] + + -- Brett Holman Mon, 19 Sep 2022 13:13:06 -0600 + +cloud-init (22.3-13-g70ce6442-0ubuntu1~22.10.1) kinetic; urgency=medium + + * New upstream snapshot. + + Fix v2 interface matching when no MAC (LP: #1986551) + + test: reduce number of network dependencies in flaky test (#1702) + + docs: publish cc_ubuntu_autoinstall docs to rtd (#1696) + + net: Fix EphemeraIPNetwork (#1697) + + test: make ansible test work across older versions (#1691) + + Networkd multi-address support/fix (#1685) [Teodor Garzdin] + + make: drop broken targets (#1688) + + net: Passthough v2 netconfigs in netplan systems (#1650) + (LP: #1978543) + + NM ipv6 connection does not work on Azure and Openstack (#1616) + [Emanuele Giuseppe Esposito] + + Fix check_format_tip (#1679) + + -- Brett Holman Tue, 30 Aug 2022 14:28:27 -0600 + +cloud-init (22.3-3-g9f0efc47-0ubuntu1~22.10.1) kinetic; urgency=medium + + * New upstream snapshot. + + DataSourceVMware: fix var use before init (#1674) (LP: #1987005) + [Andrew Kutz] + + rpm/copr: ensure RPM represents new clean.d dir artifacts (#1680) + + test: avoid centos leaked check of /etc/yum.repos.d/epel-testing.repo + (#1676) + + typo correction in Changelog + + -- Chad Smith Tue, 23 Aug 2022 14:30:10 -0600 + +cloud-init (22.3-0ubuntu1~22.10.1) kinetic; urgency=medium + + * New upstream release. + + Release 22.3 (#1662) (LP: #1986703) + + 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) (LP: #1885952) + [Sven Haardiek] + + 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) (LP: #1983306) + + -- Brett Holman Fri, 19 Aug 2022 10:49:08 -0600 + +cloud-init (22.2-139-gb64ba456-0ubuntu1~22.10.1) kinetic; urgency=medium + + * New upstream snapshot. + + test: use fake filesystem to avoid file removal (#1647) + + tox: Fix tip-flake8 and tip-mypy (#1635) + + 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) + + testing: fix references to `DEPRECATED.` (#1641) + + ssh_util: Handle sshd_config.d folder (LP: #1968873) + + schema: Enable deprecations in cc_update_etc_hosts (#1631) + + Add Ansible Config Module (#1579) + + util: Support Idle process state in get_proc_ppid() (#1637) + + schema: Enable deprecations in cc_growpart (#1628) + + schema: Enable deprecations in cc_users_groups (#1627) + + util: Fix error path and parsing in get_proc_ppid() + + main: avoid downloading full contents cmdline urls (#1606) + (LP: #1937319) + + schema: Enable deprecations in cc_scripts_vendor (#1629) + + schema: Enable deprecations in cc_set_passwords (#1630) + + 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) + + schema: add aggregate descriptions in anyOf/oneOf (#1636) + + testing: migrate test_sshutil to pytest (#1617) + + testing: Fix test_ca_certs integration test (#1626) + + testing: add support for pycloudlib's pro images (#1604) + + testing: migrate test_cc_set_passwords to pytest (#1615) + + -- Alberto Contreras Wed, 10 Aug 2022 22:23:47 +0200 + +cloud-init (22.2-115-g6e498773-0ubuntu1~22.10.1) kinetic; urgency=medium + + * d/control: lintian fixes: + + Drop deprecated keys: XS-Python-Version and XB-Python-Version. + * d/cloud-init.lintian-overrides: lintian fixes: + + Fix systemd-service-file-refers-to-unusual-wantedby-target format. + * d/cloud-init.postinst: lintian fixes: + + Fix command-with-path-in-maintainer-script for grub-install. + * d/source/lintian-overrides: lintian fixes: + + silence binary-nmu-debian-revision-in-source bug: + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014584 + * d/gbp_format_changelog: add alberto as filtered contributor + * New upstream snapshot. + + network: add system_info network activator cloud.cfg overrides (#1619) + (LP: #1982857) + + lxd: lvm avoid thinpool when kernel module absent + + lxd: enable MTU configuration in cloud-init + + cc_set_passwords fixes (#1590) + + Modernise importer.py and type ModuleDetails (#1605) + + config: Def activate_by_schema_keys for t-z (#1613) + + config: define activate_by_schema_keys for p-r mods (#1611) + + clean: add param to remove /etc/machine-id for golden image creation + + config: define `activate_by_schema_keys` for a-f mods (#1608) + + config: define activate_by_schema_keys for s mods (#1612) + + config: Define activate_by_schema_keys for g-n mods (#1610) + + meta-schema: add infra to skip inapplicable modules + + sources/azure: don't set cfg["password"] for default user pw (#1592) + [Chris Patterson] + + schema: activate grub-dpkg deprecations (#1600) + + cc_lxd: Add btrfs and lvm lxd storage options (SC-1026) (#1585) + + 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] + + bsd: Don't assume that root user is in root group (#1587) + + Update govc command in VMWare walkthrough (#1576) [manioo8] + + sources/azure: increase read-timeout to 60 seconds for wireserver + (#1571) [Chris Patterson] + + Resource leak cleanup (#1556) + + Fix expire passwords for hashed passwords (#1577) (LP: #1979065) + [Sadegh Hayeri] + + mounts: fix suggested_swapsize for > 64GB hosts (#1569) + [Steven Stallion] + + Update chpasswd schema to deprecate password parsing (#1517) + + Schema deprecation handling (#1549) + + 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) + + -- Alberto Contreras Fri, 29 Jul 2022 18:51:43 +0200 + +cloud-init (22.2-64-g1fcd55d6-0ubuntu1~22.10.1) kinetic; urgency=medium + + * d/control: add python3-debconf as Depends and Build-Depends + * d/gbp.conf d/gbp_format_changelog: + + git-buildpackage customization for debian/changelog generation + * New upstream snapshot. + + 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) (LP: #1976564) + [Alberto Contreras] + + 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) (LP: #1967942) [Alberto Contreras] + + 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) (LP: #1975818) + [Alberto Contreras] + + 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] + + -- James Falcon Fri, 01 Jul 2022 10:07:15 -0500 + +cloud-init (22.2-0ubuntu1~22.10.1) kinetic; urgency=medium + + * d/control: + - Build-Depends: add python3-responses and python3-pytest-mock for unittests + - Suggests: add openssh-server and ssh-import-id + * d/cloud-init.postinst: + - remove deprecated emit_upstart from cloud.cfg on upgrade + * New upstream release. + - Release 22.2 (LP: #1960939) + - 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: 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] + + -- Brett Holman Wed, 18 May 2022 11:23:42 -0600 + +cloud-init (22.1-14-g2e17a0d6-0ubuntu1~22.04.5) jammy; urgency=medium + + * d/p/cpick-be9389c6-Work-around-bug-in-LXD-VM-detection-1325: + cherry-pick be9389c6: Work around bug in LXD VM detection (#1325) + * d/p/cpick-30ccd51a-ds-identify-also-discover-LXD-by-presence-from-DMI: + cherry-pick 30ccd51a: ds-identify: also discover LXD by presence + from DMI + * d/p/pick-e3307e4d-ds-identify-detect-LXD-for-VMs-launched-from-host-with: + cherry-pick e3307e4d: ds-identify: detect LXD for VMs launched from + host with > 5.10 kernel (LP: #1968085) + + -- James Falcon Wed, 06 Apr 2022 16:48:16 -0500 + +cloud-init (22.1-14-g2e17a0d6-0ubuntu1~22.04.4) jammy; urgency=medium + + * d/p/cpick-eee60329-Fix-cloud-init-status-wait-when-no-datasource-found: + cherry-pick eee60329: Fix cloud-init status --wait when no datasource + found (#1349) + + -- Chad Smith Wed, 23 Mar 2022 20:10:41 -0600 + +cloud-init (22.1-14-g2e17a0d6-0ubuntu1~22.04.3) jammy; urgency=medium + + * d/patches: include the missing quilt patch from v. 22.04.2 upload + - cpick-5e347d25-Revert-Ensure-system_cfg-read-before-ds-net-config-on + + -- James Falcon Fri, 11 Mar 2022 15:19:52 -0600 + +cloud-init (22.1-14-g2e17a0d6-0ubuntu1~22.04.2) jammy; urgency=medium + + * cherry-pick 156b927e: Revert "Ensure system_cfg read before ds + net config on Oracle (#1174)" (#1326) + + -- James Falcon Fri, 11 Mar 2022 11:55:37 -0600 + +cloud-init (22.1-14-g2e17a0d6-0ubuntu1~22.04.1) jammy; urgency=medium + + * debian/apport-launcher.py: Fix string and whitespace formatting + * New upstream snapshot. + - 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 saveable PPS paths (#1268) + [Chris Patterson] + + -- Brett Holman Thu, 24 Feb 2022 16:40:00 -0700 + +cloud-init (22.1-1-gb3d9acdd-0ubuntu1~22.04.1) jammy; urgency=medium + + * New upstream snapshot. + - integration tests: fix Azure failures (#1269) + - Release 22.1 (#1267) (LP: #1960939) + - 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) + + -- Brett Holman Wed, 16 Feb 2022 13:39:11 -0700 + +cloud-init (21.4-119-gdeb3ae82-0ubuntu1~22.04.1) jammy; urgency=medium + + * d/cloud-init.templates: Move LXD to back of datasource_list + * New upstream snapshot. + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - Remove unittests from integration test job in travis (#1141) + [Brett Holman] + - Don't throw exceptions for empty cloud config (#1130) [Brett Holman] + - 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) [Brett Holman] + - 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] (GH: + https://github.com/ContainerCraft/kmi/issues/12) + - 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) [Brett Holman] + - factor out function for getting top level directory of cloudinit (#1136) + [Brett Holman] + - testing: Add deterministic test id (#1138) [Brett Holman] + - mock sleep() in azure test (#1137) [Brett Holman] + - Add miraclelinux support (#1128) [Haruki TSURUMOTO] + - docs: Make MACs lowercase in network config (#1135) (GH: #1876941) + - Add Strict Metaschema Validation (#1101) [Brett Holman] + - update dead link (#1133) [Brett Holman] + - cloudinit/net: handle two different routes for the same ip (#1124) + [Emanuele Giuseppe Esposito] + - docs: pin mistune dependency (#1134) + + -- Chad Smith Thu, 10 Feb 2022 16:02:56 -0700 + +cloud-init (21.4-25-g039c40f9-0ubuntu1~22.04.1) jammy; urgency=medium + + * New upstream snapshot. + - Reorganize unit test locations under tests/unittests (#1126) + [Brett Holman] + - 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) [Brett Holman] + - 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) [Brett Holman] + - 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] + + -- Chad Smith Fri, 03 Dec 2021 15:44:06 -0700 + +cloud-init (21.4-0ubuntu1~22.04.1) jammy; urgency=medium + + * d/upstream/metadata: Change contact to James Falcon + * d/cloud-init.templates: Add LXD to default datasource_list with + translations + * drop the following cherry-picks now included: + + cpick-28e56d99-Azure-Retry-dhcp-on-timeouts-when-polling + + cpick-e69a8874-Set-Azure-to-only-update-metadata-on-BOOT_NEW_INSTANCE + + cpick-612e3908-Add-connectivity_url-to-Oracle-s-EphemeralDHCPv4-988 + + cpick-dc227869-Set-Azure-to-apply-networking-config-every-BOOT-1023 + + cpick-9c147e83-Allow-disabling-of-network-activation-SC-307-1048 + * New upstream release. + - Release 21.4 (#1091) (LP: #1949405) + - 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] + + -- James Falcon Tue, 02 Nov 2021 18:07:49 -0500 + +cloud-init (21.3-1-g6803368d-0ubuntu3) impish; urgency=medium + + * cherry-pick 9c147e83: Allow disabling of network activation (SC-307) + (#1048) (LP: #1938299) + * cherry-pick 612e3908: Add connectivity_url to Oracle's + EphemeralDHCPv4 (#988) (LP: #1939603) + * cherry-pick dc227869: Set Azure to apply networking config every BOOT + (#1023) + + -- James Falcon Thu, 07 Oct 2021 11:43:55 -0500 + +cloud-init (21.3-1-g6803368d-0ubuntu2) impish; urgency=medium + + * cherry-pick 28e56d99: Azure: Retry dhcp on timeouts when polling + reprovisiondata + * cherry-pick e69a8874: Set Azure to only update metadata on + BOOT_NEW_INSTANCE + + -- James Falcon Fri, 03 Sep 2021 14:36:41 -0500 + +cloud-init (21.3-1-g6803368d-0ubuntu1) impish; urgency=medium + + * New upstream snapshot. + - testing: Fix ssh keys integration test (#992) + - Release 21.3 (#993) (LP: #1940839) + - 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) + + -- James Falcon Mon, 23 Aug 2021 16:53:23 -0500 + +cloud-init (21.2-69-g65607405-0ubuntu1) impish; urgency=medium + + * d/cloud-init.templates: Add VMware to default datasource_list + * d/control: Add dependencies on python3-netifaces for vmware ds + * New upstream snapshot. + - 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) + + -- James Falcon Fri, 13 Aug 2021 15:37:31 -0500 + +cloud-init (21.2-43-g184c836a-0ubuntu1) impish; urgency=medium + + * New upstream snapshot. + - 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) + + -- James Falcon Mon, 19 Jul 2021 14:23:12 -0500 + +cloud-init (21.2-3-g899bfaa9-0ubuntu2) impish; urgency=medium + + * d/po/templates.pot: refresh with debconf-updatepo + + -- Daniel Watkins Wed, 12 May 2021 12:23:42 -0400 + +cloud-init (21.2-3-g899bfaa9-0ubuntu1) impish; urgency=medium + + * drop the following cherry-picks now included: + + cpick-83f6bbfb-Fix-unpickle-for-source-paths-missing-run_dir-863 + + cpick-d132356c-fix-error-on-upgrade-caused-by-new-vendordata2 + * New upstream snapshot. + - 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] + - Release 21.2 (#890) (LP: #1927254) + - 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] + + -- James Falcon Tue, 11 May 2021 11:52:54 -0500 + +cloud-init (21.1-19-gbad84ad4-0ubuntu3) hirsute; urgency=medium + + * cherry-pick 83f6bbfb: Fix unpickle for source paths missing run_dir + (#863) (LP: #1899299) + * cherry-pick d132356c: fix error on upgrade caused by new vendordata2 + attributes (LP: #1922739) + + -- James Falcon Mon, 19 Apr 2021 13:41:21 -0500 + +cloud-init (21.1-19-gbad84ad4-0ubuntu2) hirsute; urgency=medium + + * debian/cloud-init.templates: enable UpCloud by default + + -- James Falcon Mon, 22 Mar 2021 14:08:51 -0500 + +cloud-init (21.1-19-gbad84ad4-0ubuntu1) hirsute; urgency=medium + * d/cloud-init.postinst: Change output log permissions on upgrade + (LP: #1918303) + * New upstream snapshot. + - .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) + - commit f35181fa970453ba6c7c14575b12185533391b97 [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] + + -- James Falcon Fri, 19 Mar 2021 14:32:13 -0500 + +cloud-init (21.1-0ubuntu1) hirsute; urgency=medium + + * New upstream release. + - Release 21.1 (#820) (LP: #1916540) + - 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] + + -- James Falcon Tue, 23 Feb 2021 10:06:10 -0500 + +cloud-init (20.4.1-79-g71564dce-0ubuntu1) hirsute; urgency=medium + + * New upstream snapshot. + - Release 20.4.1 (LP: #1911680) + - [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] + + -- Daniel Watkins Thu, 28 Jan 2021 10:50:23 -0500 + +cloud-init (20.4-66-gad23441d-0ubuntu1) hirsute; urgency=medium + + * New upstream snapshot. + - Add antonyc to .github-cla-signers (#747) [Anton Chaporgin] + - integration_tests: log image serial if available (#772) + - Revert "ssh_util: handle non-default AuthorizedKeysFile config (#586)" + (#775) (LP: #1911680) + - [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) + + -- Daniel Watkins Wed, 20 Jan 2021 13:15:55 -0500 + +cloud-init (20.4-55-g4f62ae8d-0ubuntu1) hirsute; urgency=medium + + * New upstream snapshot. + - 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) + + -- Daniel Watkins Mon, 11 Jan 2021 16:57:30 -0500 + +cloud-init (20.4-0ubuntu2) hirsute; urgency=medium + + * d/cloud-init.manpages: include upstream manpages in package (LP: #1908548) + + -- Daniel Watkins Mon, 04 Jan 2021 10:44:13 -0500 + +cloud-init (20.4-0ubuntu1) hirsute; urgency=medium + + * d/control: add gnupg to Recommends as cc_apt_configure requires it to be + installed for some operations. + * New upstream release. + - Release 20.4 (#686) [James Falcon] (LP: #1905440) + - 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) + + -- James Falcon Tue, 24 Nov 2020 12:32:00 -0600 + +cloud-init (20.3-15-g6d332e5c-0ubuntu1) groovy; urgency=medium + + * d/cloud-init.postinst: fix the grub install device for NVMe-rooted + instances on upgrade. (LP: #1889555) + * d/cloud-init.templates: add RbxCloud to Choices-C. + * Add d/clean to fully clean the build artifacts. + * d/control: + - Bump Standards-Version to 4.5.0, no changes needed. + - B-D on debhelper-compat; drop d/compat. + * Bump the debhelper compat level to 13. Required changes: + - Stop including the dh systemd plugin. + - Switch from dh_systemd_start to dh_installsystemd + * New upstream snapshot. + - 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] + + -- Chad Smith Tue, 15 Sep 2020 20:19:10 -0600 + +cloud-init (20.3-2-g371b392c-0ubuntu1) groovy; urgency=medium + + * New upstream snapshot. + - util: remove debug statement (#556) [Joshua Powers] + - Fix cloud config on chef example (#551) [lucasmoura] + + -- James Falcon Wed, 26 Aug 2020 12:49:05 -0500 + +cloud-init (20.3-0ubuntu1) groovy; urgency=medium + + * New upstream release. + - Release 20.3 (#547) [James Falcon] (LP: #1892878) + - tox: bump the pylint version to 2.6.0 in the default run (#544) + [Paride Legovini] + - 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) + + -- James Falcon Tue, 25 Aug 2020 15:27:53 -0500 + +cloud-init (20.2-94-g3d06abc2-0ubuntu1) groovy; urgency=medium + + * New upstream snapshot. + - 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] + + -- Daniel Watkins Fri, 10 Jul 2020 09:11:25 -0400 + +cloud-init (20.2-45-g5f7825e2-0ubuntu1) groovy; urgency=medium + + * d/control: drop python3-six, python3-unittest2, python3-pep8, + python3-pyflakes and python3-nose from Build-Depends. + * New upstream snapshot. + - 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] + + -- Chad Smith Tue, 02 Jun 2020 09:51:50 -0600 + +cloud-init (20.2-38-g8377897b-0ubuntu1) groovy; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Wed, 27 May 2020 14:36:46 -0600 + +cloud-init (20.2-30-g8bcf1c06-0ubuntu1) groovy; urgency=medium + + * d/control: drop pyflakes as Build-Depends + - upstream uses python3-pyflakes now + * New upstream snapshot. + - 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) + + -- Chad Smith Mon, 18 May 2020 16:24:16 -0600 + +cloud-init (20.2-20-gd10ce3ec-0ubuntu1) groovy; urgency=medium + + * drop the following cherry-picks now included: + + cpick-6600c642-ec2-render-network-on-all-NICs-and-add-secondary-IPs-as + + cpick-986f37b0-cloudinit-move-to-pytest-for-running-tests-211 + + cpick-4fb6fd8a-net-ubuntu-focal-prioritize-netplan-over-eni-even-if + + cpick-04771d75-cc_disk_setup-fix-RuntimeError-270 + + cpick-c5e949c0-distros-tests-test_init-add-tests-for + + cpick-2566fdbe-net-introduce-is_ip_address-function-288 + + cpick-4f825b3e-cloudinit-refactor-util.is_ipv4-to-net.is_ipv4_address + + cpick-c478d0bf-distros-replace-invalid-characters-in-mirror-URLs-with + + cpick-1bbc4908-distros-drop-leading-trailing-hyphens-from-mirror-URL + + cpick-09fea85f-net-ignore-renderer-key-in-netplan-config-306 + + fix-cpick-4fb6fd8a-net-ubuntu-focal-prioritize-netplan-over-eni.patch + + cpick-9d7b35ce-cc_mounts-fix-incorrect-format-specifiers-316 + + cpick-0c5c7367-test_mounts-expand-happy-path-test-for-both-happy-paths + * New upstream snapshot. + - 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) + - Release 20.2 (#337) (LP: #1875951) + - 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) + + -- Chad Smith Mon, 11 May 2020 20:17:06 -0600 + +cloud-init (20.1-10-g71af48df-0ubuntu5) focal; urgency=medium + + * cherry-pick 0c5c7367: test_mounts: expand happy path test for both + happy paths + + -- Daniel Watkins Thu, 16 Apr 2020 11:23:08 -0400 + +cloud-init (20.1-10-g71af48df-0ubuntu4) focal; urgency=medium + + * cherry-pick 9d7b35ce: cc_mounts: fix incorrect format specifiers + (#316) (LP: #1872836) + + -- Chad Smith Wed, 15 Apr 2020 15:09:04 -0600 + +cloud-init (20.1-10-g71af48df-0ubuntu3) focal; urgency=medium + + * d/patches: redact openbsd netbsd from tests until new-upstream-snapshot + - fix-cpick-4fb6fd8a-net-ubuntu-focal-prioritize-netplan-over-eni + * cherry-pick 6600c642: ec2: render network on all NICs and add + secondary IPs as (LP: #1866930) + * cherry-pick 986f37b0: cloudinit: move to pytest for running tests + (#211) + * cherry-pick 4fb6fd8a: net: ubuntu focal prioritize netplan over eni + even if both (LP: #1867029) + * cherry-pick 04771d75: cc_disk_setup: fix RuntimeError (#270) (LP: + #1868327) + * cherry-pick c5e949c0: distros/tests/test_init: add tests for + * cherry-pick 2566fdbe: net: introduce is_ip_address function (#288) + * cherry-pick 4f825b3e: cloudinit: refactor util.is_ipv4 to + net.is_ipv4_address + * cherry-pick c478d0bf: distros: replace invalid characters in mirror + URLs with (LP: #1868232) + * cherry-pick 1bbc4908: distros: drop leading/trailing hyphens from + mirror URL labels + * cherry-pick 09fea85f: net: ignore 'renderer' key in netplan config + (#306) (LP: #1870421) + + -- Chad Smith Fri, 03 Apr 2020 13:57:52 -0600 + +cloud-init (20.1-10-g71af48df-0ubuntu2) focal; urgency=medium + + * d/control: add python3-pytest to Build-Depends + - This fixes upstream daily builds. python3-nose is not removed from + Build-Depends because, currently, the Ubuntu package builds will still + use it for testing. + * cherry-pick 6600c642: ec2: render network on all NICs and add + secondary IPs as (LP: #1866930) + + -- Chad Smith Wed, 18 Mar 2020 14:01:37 -0600 + +cloud-init (20.1-10-g71af48df-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - instance-data: add cloud-init merged_cfg and sys_info keys to json + (#214) (LP: #1865969) + + -- Chad Smith Tue, 10 Mar 2020 11:14:53 -0600 + +cloud-init (20.1-9-g1f860e5a-0ubuntu1) focal; urgency=medium + + * New upstream snapshot: bug-fix-only during feature freeze + - ec2: Do not fallback to IMDSv1 on EC2 (#216) + [Frederick Lefebvre] (LP: #1866290) + - 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) + + -- Chad Smith Fri, 06 Mar 2020 11:01:15 -0700 + +cloud-init (20.1-5-g67c8e53c-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Thu, 27 Feb 2020 16:56:16 -0700 + +cloud-init (20.1-0ubuntu1) focal; urgency=medium + + * New upstream release. + - Release 20.1 (#222) (LP: #1863954) + - Update tooling for GitHub-based new releases (#223) + - 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] + + -- Daniel Watkins Thu, 20 Feb 2020 16:36:44 -0500 + +cloud-init (19.4-56-g06e324ff-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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) (CVE-2020-8632) + - .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) + + -- Chad Smith Wed, 05 Feb 2020 13:56:17 -0700 + +cloud-init (19.4-33-gbb4131a2-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - Only use gpart if it is the BSD gpart (#131) [Conrad Hoffmann] + - freebsd: remove superfluous exception mapping (#166) [Gonéri Le Bouder] + + -- Chad Smith Tue, 14 Jan 2020 14:02:06 -0700 + +cloud-init (19.4-31-g3f6192b3-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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) + - net: fix rendering of 'static6' in network config (#77) (LP: #1850988) + - fixed minor bug with mkswap in cc_disk_setup.py (#143) [andreaf74] + - freebsd: fix create_group() cmd (#146) [Gonéri Le Bouder] + + -- Chad Smith Mon, 13 Jan 2020 20:21:09 -0700 + +cloud-init (19.4-16-gf8950d63-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Mon, 06 Jan 2020 09:52:22 -0700 + +cloud-init (19.4-1-g8c96cbc1-0ubuntu1) focal; urgency=medium + + * debian/cloud-init.templates: enable RbxCloud: HypeOne and Rootbox detection + by default + * New upstream snapshot. + - ci: emit names of tests run in Travis (#120) + - Release 19.4 (LP: #1856761) + - rbxcloud: fix dsname in RbxCloud [Adam Dobrawy] (LP: #1855196) + - tests: Add tests for value of dsname in datasources [Adam Dobrawy] + - apport: Add RbxCloud ds [Adam Dobrawy] + - docs: Updating index of datasources [Adam Dobrawy] + - docs: Fix anchor of datasource_rbx [Adam Dobrawy] + - settings: Add RbxCloud [Adam Dobrawy] + - 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) + + -- Chad Smith Wed, 18 Dec 2019 11:02:04 -0700 + +cloud-init (19.3-74-g129b1c4e-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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] + - Merge pull request #96 from fred-lefebvre/master [Joshua Powers] + - Update doc-requirements.txt [Joshua Powers] + - doc-requirements: add missing dep [Joshua Powers] + - Merge pull request #95 from powersj/docs/bugs [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) + - Merge pull request #94 from gaughen/patch-1 [Joshua Powers] + - 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] + - Merge pull request #88 from OddBloke/travis [Joshua Powers] + - 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] + + -- Chad Smith Thu, 12 Dec 2019 16:05:35 -0700 + +cloud-init (19.3-41-gc4735dd3-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - Fix linting failure in test_url_helper (#83) [Eric Lafontaine] + + -- Chad Smith Tue, 03 Dec 2019 14:46:25 -0700 + +cloud-init (19.3-40-gf69d33a7-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - url_helper: read_file_or_url should pass headers param into readurl + (#66) (LP: #1854084) + - lp-to-git-users: adding elafontaine (#74) [Eric Lafontaine] + - lp-to-git-users: adding xiaofengw-vmware [Xiaofeng Wang] + - dmidecode: log result *after* stripping [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) + - lp-to-git-users: adding do3meli [Dominic Schlegel] + + -- Chad Smith Mon, 02 Dec 2019 16:26:24 -0700 + +cloud-init (19.3-30-g4bc399e0-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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) + - lp-to-git-users: adding PengpengSun [Pengpeng Sun] + - lp-to-git-users: adding trstringer [Thomas Stringer] + - lp-to-git-users: adding hjensas [Harald Jensås] + - 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) + - Merge pull request #38 from blackboxsw/cleanup/run-ci-on-pull-request + - switch default FreeBSD salt minion pkg from py27 to py36 + [Dominic Schlegel] + - lp-to-git-users: adding igalic [Igor Galić] + - add data-server dns entry as new metadata server detection + [Joshua Hügli] + - lp-to-git-users: adding chrisglass [Chris Glass] + - lp-to-git-users: adding larsks [Lars Kellogg-Stedman] + - Merge pull request #31 from raharper/fix/pycodestyle-tip + - reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta] + - lp-to-git-users: adding paride [Paride Legovini] + - lp-to-git-users: adding powersj [Joshua Powers] + - lp-to-git-users: adding blackboxsw + - lp-to-git-users: adding raharper + - docs: touchups in rtd intro and README.md + - doc: update launchpad git refs to github + - tools: migrate script needs to write tools/.lp-to-git-user + - 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 + + -- Chad Smith Fri, 22 Nov 2019 20:09:10 -0700 + +cloud-init (19.3-0ubuntu1) focal; urgency=medium + + * New upstream release. + - Release 19.3 (LP: #1851428) + - 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) + + -- Chad Smith Tue, 05 Nov 2019 14:50:06 -0700 + +cloud-init (19.2-78-ge8138959-0ubuntu1) focal; urgency=medium + + * New upstream snapshot. + - 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. + [Scott Moser] (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. [Scott Moser] (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] + + -- Ryan Harper Fri, 01 Nov 2019 11:01:15 -0500 + +cloud-init (19.2-36-g059d049c-0ubuntu3) eoan; urgency=medium + + * debian/cloud-init.config get_yaml_list should return only the value + (LP: #1846511) + + -- Ryan Harper Wed, 09 Oct 2019 16:32:17 -0500 + +cloud-init (19.2-36-g059d049c-0ubuntu2) eoan; urgency=medium + + * cherry-pick a7d8d032: get_interfaces: don't exclude bridge and bond + members (LP: #1846535) + + -- Daniel Watkins Fri, 04 Oct 2019 11:42:12 -0400 + +cloud-init (19.2-36-g059d049c-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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 [Scott Moser] + - 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] + + -- Daniel Watkins Tue, 17 Sep 2019 12:12:27 +0200 + +cloud-init (19.2-24-ge7881d5c-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Wed, 28 Aug 2019 14:44:36 -0600 + +cloud-init (19.2-21-ge6383719-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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] + + -- Chad Smith Thu, 22 Aug 2019 11:15:08 -0600 + +cloud-init (19.2-13-g2f3bb764-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Thu, 15 Aug 2019 09:42:20 -0600 + +cloud-init (19.2-9-g15584720-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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) + * d/cloud-init.templates: add Exoscale data source + + -- Daniel Watkins Fri, 09 Aug 2019 13:57:28 -0400 + +cloud-init (19.2-5-g496aaa94-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - 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. + [Scott Moser] (LP: #1836949) + - net: update net sequence, include wait on netdevs, opensuse netrules + path (LP: #1817368) + + -- Chad Smith Tue, 06 Aug 2019 13:56:18 -0600 + +cloud-init (19.2-0ubuntu1) eoan; urgency=medium + + * New upstream release. + - Release 19.2 (LP: #1836921) + - 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) + + -- Ryan Harper Wed, 17 Jul 2019 12:43:15 -0500 + +cloud-init (19.1-1-gbaa47854-0ubuntu1) eoan; urgency=medium + + * New upstream snapshot. + - Azure: Return static fallback address as if failed to find endpoint + [Jason Zions (MSFT)] + + -- Chad Smith Fri, 10 May 2019 15:34:21 -0600 + +cloud-init (19.1-0ubuntu1) eoan; urgency=medium + + * New upstream release. + - release 19.1 (LP: #1828479) + - 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 + - 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. [Scott Moser] + - 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 (LP: #1825444) + - test_azure: mock util.SeLinuxGuard where needed + [Jason Zions (MSFT)] (LP: #1825253) + - setup.py: install bash completion script in new location + - 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] + + -- Chad Smith Fri, 10 May 2019 12:11:06 -0600 + +cloud-init (18.5-62-g6322c2dd-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - Revert "DataSource: move update_events from a class to an instance..." + + -- Daniel Watkins Wed, 10 Apr 2019 16:23:25 -0400 + +cloud-init (18.5-61-gb76714c3-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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 + - doc: Refresh Azure walinuxagent docs + - tox: bump pylint version to latest (2.3.1) + - DataSource: move update_events from a class to an instance attribute + (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 Wed, 10 Apr 2019 11:49:03 -0400 + +cloud-init (18.5-45-g3554ffe8-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - cloud-init-per: POSIX sh does not support string subst, use sed + (LP: #1819222) + + -- Daniel Watkins Fri, 08 Mar 2019 17:42:34 -0500 + +cloud-init (18.5-44-g7c07af28-0ubuntu2) disco; urgency=medium + + * d/postinst: remove now-incorrect apt pipelining configuration + + -- Daniel Watkins Fri, 08 Mar 2019 09:56:42 -0500 + +cloud-init (18.5-44-g7c07af28-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - Support locking user with usermod if passwd is not available. + [Scott Moser] + - Example for Microsoft Azure data disk added. [Anton Olifir] + - clean: correctly determine the path for excluding seed directory + (LP: #1818571) + - helpers/openstack: Treat unknown link types as physical (LP: #1639263) + - drop Python 2.6 support and our NIH version detection + - 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 (LP: #1794982) + - tests: fix some slow tests and some leaking state + - util: don't determine string_types ourselves + - cc_rsyslog: Escape possible nested set (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)] + - 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] + * Update netplan dependency package (LP: #1813667) + * Fix build-depends-on-obsolete-package for dh-systemd + * Change Priority from extra to optional + * Override lintian warnings about WantedBy=cloud-init.target + * Change Maintainer to Ubuntu Developers + + -- Daniel Watkins Thu, 07 Mar 2019 10:32:26 -0500 + +cloud-init (18.5-21-g8ee294d5-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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] + + -- Chad Smith Mon, 28 Jan 2019 17:01:53 -0700 + +cloud-init (18.5-17-gd1a2fe73-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Sat, 26 Jan 2019 08:27:35 -0700 + +cloud-init (18.5-1-g5b065316-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - Update to pylint 2.2.2. + - Release 18.5 (LP: #1808380) + - 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) + + -- Ryan Harper Fri, 14 Dec 2018 14:45:46 -0600 + +cloud-init (18.4-31-gbf791715-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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 + [Igor Galić] + + -- Chad Smith Thu, 29 Nov 2018 16:23:24 -0700 + +cloud-init (18.4-24-g8f812a15-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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ć] + + -- Chad Smith Thu, 15 Nov 2018 16:11:20 -0700 + +cloud-init (18.4-22-g6062595b-0ubuntu1) disco; urgency=medium + + * New upstream snapshot. + - 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 + [Aswin Rajamannar] + - 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 + [Aswin Rajamannar] (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] + + -- Chad Smith Mon, 12 Nov 2018 20:33:12 -0700 + +cloud-init (18.4-7-g4652b196-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Thu, 11 Oct 2018 09:24:46 -0600 + +cloud-init (18.4-5-g6ee8a2c5-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Tue, 09 Oct 2018 16:56:35 -0600 + +cloud-init (18.4-0ubuntu1) cosmic; urgency=medium + + * New upstream release. + - release 18.4 + - 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. + - Remove dead-code _write_network distro implementations. + - net_util: ensure static configs have netmask in translate_network result + [Thomas Berger] + - Fall back to root:root on syslog permissions if other options fail. + [Robert Schweikert] + - tests: Add mock for util.get_hostname. [Robert Schweikert] + + -- Chad Smith Tue, 02 Oct 2018 19:55:23 -0600 + +cloud-init (18.3-46-gbb60f61b-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - ds-identify: doc string cleanup. + - OpenStack: Support setting mac address on bond. [Fabian Wiesel] + + -- Ryan Harper Fri, 14 Sep 2018 16:13:19 -0500 + +cloud-init (18.3-44-g84bf2482-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - bash_completion/cloud-init: fix shell syntax error. + - EphemeralIPv4Network: Be more explicit when adding default route. + - OpenStack: support reading of newer versions of metdata. + - OpenStack: fix bug causing 'latest' version to be used from network. + - user-data: jinja template to render instance-data.json in cloud-config + + -- Ryan Harper Fri, 14 Sep 2018 14:06:29 -0500 + +cloud-init (18.3-39-g757247f9-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - config: disable ssh access to a configured user account + + -- Ryan Harper Mon, 10 Sep 2018 17:11:51 -0500 + +cloud-init (18.3-38-gd47d404e-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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 + + -- Ryan Harper Wed, 05 Sep 2018 16:03:46 -0500 + +cloud-init (18.3-35-g3f6d0972-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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] + - logging: Add logging config type hyperv for reporting via Azure KVP + [Andy Liu] + + -- Chad Smith Sat, 01 Sep 2018 12:08:52 -0600 + +cloud-init (18.3-29-gdab59087-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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] + + -- Scott Moser Fri, 24 Aug 2018 16:13:36 -0400 + +cloud-init (18.3-24-gf6249277-0ubuntu1) cosmic; urgency=medium + + * debian/cloud-init.templates: enable Oracle Compute Infrastructure by + default + * New upstream snapshot. + - docs: Fix example cloud-init analyze command to match output. + [Wesley Gao] + - netplan: Correctly render macaddress on a bonds and bridges when + provided. + - tools: Add 'net-convert' subcommand command to 'cloud-init devel'. + - redhat: remove ssh keys on new instance. + - Use typeset or local in profile.d scripts. + - OpenNebula: Fix null gateway6 [Akihiko Ota] + + -- Chad Smith Thu, 09 Aug 2018 10:27:29 -0600 + +cloud-init (18.3-18-g3cee0bf8-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - oracle: fix detect_openstack to report True on OracleCloud.com DMI data + - 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 + - tools: add '--debug' to tools/net-convert.py + - tests: bump the version of paramiko to 2.4.1. + + -- Chad Smith Tue, 31 Jul 2018 12:50:28 -0600 + +cloud-init (18.3-9-g2e62cb8a-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - docs: note in rtd about avoiding /tmp when writing files + - ubuntu,centos,debian: get_linux_distro to align with platform.dist + - 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 + - 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. + + -- Chad Smith Mon, 09 Jul 2018 14:16:03 -0600 + +cloud-init (18.3-0ubuntu1) cosmic; urgency=medium + + * New upstream release. + - release 18.3 (LP: #1777743) + - docs: represent sudo:false in docs for user_groups config module + - Explicitly prevent `sudo` access for user module + [Jacob Bednarz] (LP: #1771468) + + -- Chad Smith Wed, 20 Jun 2018 11:33:36 -0600 + +cloud-init (18.2-77-g4ce67201-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Fri, 15 Jun 2018 20:05:07 -0600 + +cloud-init (18.2-64-gbbcc5e82-0ubuntu1) cosmic; urgency=medium + + * debian/rules: update version.version_string to contain packaged version. + (LP: #1770712) + * New upstream snapshot. + - 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) + + -- Chad Smith Mon, 04 Jun 2018 12:18:16 -0600 + +cloud-init (18.2-59-gcd1de5f4-0ubuntu1) cosmic; urgency=medium + + * New upstream snapshot. + - 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 + - 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) + + + -- Chad Smith Wed, 23 May 2018 16:16:53 -0600 +cloud-init (18.2-41-g3b712fce-0ubuntu1) cosmic; urgency=medium + + * debian/new-upstream-snapshot: Remove script, now maintained elsewhere. + * New upstream snapshot. + - 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 + + -- Scott Moser Fri, 11 May 2018 16:37:02 -0400 + +cloud-init (18.2-27-g6ef92c98-0ubuntu1~18.04.1) bionic; urgency=medium + + * debian/control: add missing dependency on iproute2. (LP: #1766711) + * debian/control: add missing dependency on isc-dhcp-client. (LP: #1766714) + * New upstream snapshot. (LP: #1767412) + - IBMCloud: recognize provisioning environment during debug boots. + - net: detect unstable network names and trigger a settle if needed + - IBMCloud: improve documentation in datasource. + - sysconfig: dhcp6 subnet type should not imply dhcpv4 [Vitaly Kuznetsov] + - packages/debian/control.in: add missing dependency on iproute2. + - DataSourceSmartOS: add locking of serial device. [Mike Gerdts] + - DataSourceSmartOS: sdc:hostname is ignored [Mike Gerdts] + - DataSourceSmartOS: list() should always return a list [Mike Gerdts] + - schema: in validation, raise ImportError if strict but no jsonschema. + - set_passwords: Add newline to end of sshd config, only restart if + updated. + - pylint: pay attention to unused variable warnings. + - doc: Add documentation for AliYun datasource. [Junjie Wang] + - Schema: do not warn on duplicate items in commands. + + -- Scott Moser Fri, 27 Apr 2018 12:30:21 -0400 + +cloud-init (18.2-14-g6d48d265-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Wed, 18 Apr 2018 15:25:53 -0600 + +cloud-init (18.2-9-g49b562c9-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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 + (LP: #1749722) + - Apport: add Brightbox, IBM, LXD, and OpenTelekomCloud to list of clouds. + - tests: fix ec2 integration network metadata validation + + -- Chad Smith Thu, 12 Apr 2018 16:06:24 -0600 + +cloud-init (18.2-4-g05926e48-0ubuntu2) bionic; urgency=medium + + * debian/cloud-init.templates: enable IBMCloud by default (LP: #1762773). + + -- Scott Moser Tue, 10 Apr 2018 21:21:17 -0400 + +cloud-init (18.2-4-g05926e48-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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 + - doc: Fix links in OpenStack datasource documentation. + [Dominic Schlegel] (LP: #1721660) + + -- Chad Smith Tue, 03 Apr 2018 16:54:45 -0600 + +cloud-init (18.2-0ubuntu1) bionic; urgency=medium + + * debian/control: Add missing dependency on isc-dhcp-client (LP: #1759307). + * New upstream snapshot. + - release 18.2 (LP: #1759318) + - 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. + + -- Chad Smith Tue, 27 Mar 2018 14:59:58 -0600 + +cloud-init (18.1-35-ge0f644b7-0ubuntu2) bionic; urgency=medium + + * debian/: drop grub-legacy-ec2 package, which is now in its own source + package (LP: #1758420). + + -- Scott Moser Mon, 26 Mar 2018 16:54:34 -0400 + +cloud-init (18.1-35-ge0f644b7-0ubuntu1) bionic; urgency=medium + + * debian/cloud-init.templates: enable IBMCloud datasource. + * New upstream snapshot. + - 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) + + -- Chad Smith Fri, 23 Mar 2018 17:20:47 -0600 + +cloud-init (18.1-26-g685f9901-0ubuntu1) bionic; urgency=medium + + * debian/cloud-init.templates: Enable Hetzner Cloud datasource. + * New upstream snapshot. + - 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 [Markus Schade] + + -- Chad Smith Tue, 20 Mar 2018 16:39:07 -0600 + +cloud-init (18.1-23-gde34dc7c-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Fri, 16 Mar 2018 15:48:04 -0600 + +cloud-init (18.1-17-g97012fbb-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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] + + -- Chad Smith Thu, 15 Mar 2018 14:48:29 -0600 + +cloud-init (18.1-5-g40e77380-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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] + + -- Chad Smith Thu, 01 Mar 2018 15:47:04 -0700 + +cloud-init (18.1-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - release 18.1 (LP: #1751145) + - 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) + + -- Chad Smith Thu, 22 Feb 2018 15:42:11 -0700 + +cloud-init (17.2-34-g644048e3-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - EC2: Fix get_instance_id called against cached datasource pickle. + [Chad Smith] (LP: #1748354) + - cli: fix cloud-init status to report running when before result.json + [Chad Smith] (LP: #1747965) + - net: accept network-config in netplan format for renaming interfaces + [Ryan Harper] (LP: #1709715) + - Fix ssh keys validation in ssh_util [Tatiana Kholkina] + + -- Scott Moser Fri, 09 Feb 2018 17:04:03 -0500 + +cloud-init (17.2-30-gf7deaf15-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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. + + -- Chad Smith Fri, 02 Feb 2018 09:51:14 -0700 + +cloud-init (17.2-25-gc03bdd3d-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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) + + -- Chad Smith Wed, 24 Jan 2018 16:39:23 -0700 + +cloud-init (17.2-20-g32a6a176-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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 + + -- Chad Smith Tue, 23 Jan 2018 20:10:44 -0700 + +cloud-init (17.2-13-g6299e8d0-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - Do not log warning on config files that represent None. (LP: #1742479) + - tests: Use git hash pip dependency format for pylxd. [Chad Smith] + - tests: add integration requirements text file [Joshua Powers] + - MAAS: add check_instance_id based off oauth tokens. (LP: #1712680) + + -- Scott Moser Mon, 15 Jan 2018 10:15:05 -0500 + +cloud-init (17.2-9-gdf24daa8-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - 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 [Chad Smith] (LP: #1741093) + - SUSE: Add a basic test of network config rendering. [Robert Schweikert] + - Azure: Only bounce network when necessary. [Chad Smith] (LP: #1722668) + - lint: Fix lints seen by pylint version 1.8.1. [Chad Smith] + + -- Scott Moser Mon, 15 Jan 2018 06:42:30 -0500 + +cloud-init (17.2-1-g4089e20c-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - cli: Fix error in cloud-init modules --mode=init. + (LP: #1736600) + - release 17.2 + + -- Chad Smith Fri, 15 Dec 2017 10:11:50 -0700 + +cloud-init (17.1-60-ga30a3bb5-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - ds-identify: failure in NoCloud due to unset variable usage. + (LP: #1737704) + - tests: fix collect_console when not implemented [Joshua Powers] + + -- Chad Smith Tue, 12 Dec 2017 12:03:08 -0700 + +cloud-init (17.1-58-g703241a3-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - ec2: Use instance-identity doc for region and instance-id + [Andrew Jorgensen] + - tests: remove leaked tmp files in config drive tests. + - setup.py: Do not include rendered files in SOURCES.txt + - SUSE: remove delta in systemd local template for SUSE [Robert Schweikert] + - tests: move to using tox 1.7.5 + + -- Scott Moser Mon, 11 Dec 2017 18:30:56 -0500 + +cloud-init (17.1-53-ga5dc0f42-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - OVF: improve ds-identify to support finding OVF iso transport. + (LP: #1731868) + - VMware: Support for user provided pre and post-customization scripts + [Maitreyee Saikia] + + -- Chad Smith Fri, 08 Dec 2017 14:46:36 -0700 + +cloud-init (17.1-51-g05b2308a-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - citest: In NoCloudKVM provide keys via metadata not userdata. + - pylint: Update pylint to 1.7.1, run on tests/ and tools and fix + complaints. [Ryan Harper] + - Datasources: Formalize DataSource get_data and related properties. + [Chad Smith] + - cli: Add clean and status subcommands [Chad Smith] + - tests: consolidate platforms into specific dirs + + -- Scott Moser Thu, 07 Dec 2017 22:58:41 -0500 + +cloud-init (17.1-46-g7acc9e68-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - ec2: Fix sandboxed dhclient background process cleanup. + [Chad Smith] (LP: #1735331) + - tests: NoCloudKVMImage do not modify the original local cache image. + - tests: Enable bionic in integration tests. [Joshua Powers] + - tests: Use apt-get to install a deb so that depends get resolved. + - sysconfig: Correctly render dns and dns search info. + [Ryan McCabe] (LP: #1705804) + + -- Scott Moser Thu, 30 Nov 2017 21:59:55 -0500 + +cloud-init (17.1-41-g76243487-0ubuntu1) bionic; urgency=medium + + * debian/cloud-init.templates: Fix capitilazation in 'AliYun' name. + (LP: #1728186) + * New upstream snapshot. + - integration test: replace curtin test ppa with cloud-init test ppa. + - EC2: Fix bug using fallback_nic and metadata when restoring from cache. + (LP: #1732917) + - EC2: Kill dhclient process used in sandbox dhclient. (LP: #1732964) + - ntp: fix configuration template rendering for openSUSE and SLES + (LP: #1726572) + - centos: Provide the failed #include url in error messages + - Catch UrlError when #include'ing URLs [Andrew Jorgensen] + - hosts: Fix openSUSE and SLES setup for /etc/hosts and clarify docs. + [Robert Schweikert] (LP: #1731022) + - rh_subscription: Perform null checks for enabled and disabled repos. + [Dave Mulford] + - Improve warning message when a template is not found. + [Robert Schweikert] (LP: #1731035) + - Replace the temporary i9n.brickies.net with i9n.cloud-init.io. + - Azure: don't generate network configuration for SRIOV devices + (LP: #1721579) + - tests: address some minor feedback missed in last merge. + - tests: integration test cleanup and full pass of nocloud-kvm. + - Gentoo: chmod +x on all files in sysvinit/gentoo/ + [ckonstanski] (LP: #1727126) + + -- Chad Smith Mon, 20 Nov 2017 15:18:52 -0700 + +cloud-init (17.1-27-geb292c18-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - EC2: Limit network config to fallback nic, fix local-ipv4 only + instances. (LP: #1728152) + - Gentoo: Use "rc-service" rather than "service". + [ckonstanski] (LP: #1727121) + + -- Chad Smith Tue, 31 Oct 2017 12:51:10 -0600 + +cloud-init (17.1-25-g17a15f9e-0ubuntu1) bionic; urgency=medium + + * New upstream snapshot. + - resizefs: Fix regression when system booted with root=PARTUUID= + [Chad Smith] (LP: #1725067) + - tools: make yum package installation more reliable + - citest: fix remaining warnings raised by integration tests. + - citest: show the class actual class name in results. + - ntp: fix config module schema to allow empty ntp config + [Chad Smith] (LP: #1724951) + - tools: disable fastestmirror if using proxy [Joshua Powers] + - schema: Log debug instead of warning when jsonschema is not available. + (LP: #1724354) + + -- Ryan Harper Tue, 24 Oct 2017 10:40:00 -0500 + +cloud-init (17.1-18-gd4f70470-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - simpletable: Fix get_string method to return table-formatted string + (LP: #1722566) + + -- Chad Smith Tue, 10 Oct 2017 13:40:13 -0600 + +cloud-init (17.1-17-g45d361cb-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - net: Handle bridge stp values of 0 and convert to boolean type + [Chad Smith] + - tools: Give specific --abbrev=8 to "git describe" + - network: bridge_stp value not always correct [Ryan Harper] (LP: #1721157) + - tests: re-enable tox with nocloud-kvm support [Joshua Powers] + + -- Ryan Harper Thu, 05 Oct 2017 16:15:34 -0500 + +cloud-init (17.1-13-g7fd04255-0ubuntu1) artful; urgency=medium + + * debian/copyright: dep5 updates, reorganize, add Apache 2.0 license. + (LP: #1718681) + * debian/control: drop dependency on python3-prettytable + * New upstream snapshot. + - systemd: remove limit on tasks created by cloud-init-final.service. + [Robert Schweikert] (LP: #1717969) + - suse: Support addition of zypper repos via cloud-config. + [Robert Schweikert] (LP: #1718675) + - tests: Combine integration configs and testcases [Joshua Powers] + - Azure, CloudStack: Support reading dhcp options from systemd-networkd. + [Dimitri John Ledkov] (LP: #1718029) + - packages/debian/copyright: remove mention of boto and MIT license + - systemd: only mention Before=apt-daily.service on debian based distros. + [Robert Schweikert] + - Add missing simpletable and simpletable tests for failed merge + [Chad Smith] + - Remove prettytable dependency, introduce simpletable [Andrew Jorgensen] + - debian/copyright: dep5 updates, reorganize, add Apache 2.0 license. + [Joshua Powers] (LP: #1718681) + - tests: remove dependency on shlex [Joshua Powers] + - AltCloud: Trust PATH for udevadm and modprobe. + - DataSourceOVF: use util.find_devs_with(TYPE=iso9660) + [Ryan Harper] (LP: #1718287) + - tests: remove a temp file used in bootcmd tests. + + -- Ryan Harper Tue, 03 Oct 2017 10:59:52 -0500 + +cloud-init (17.1-0ubuntu1) artful; urgency=medium + + * New upstream release. + - 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. + + -- Scott Moser Fri, 22 Sep 2017 12:21:18 -0400 + +cloud-init (0.7.9-283-g7eb3460b-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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) + + -- Scott Moser Mon, 18 Sep 2017 20:41:53 -0400 + +cloud-init (0.7.9-281-g10f067d8-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - GCE: Fix usage of user-data. (LP: #1717598) + + -- Scott Moser Mon, 18 Sep 2017 17:03:22 -0400 + +cloud-init (0.7.9-280-ge626966e-0ubuntu1) artful; urgency=medium + + * debian/rules: install rsyslog file with 0644 mode instead of 0755. + * debian/rules, debian/apport-launcher.py: add an apport hook. (LP: #1607345) + * New upstream snapshot. + - 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) + + -- Scott Moser Fri, 15 Sep 2017 16:09:07 -0400 + +cloud-init (0.7.9-267-g922c3c5c-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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) + + -- Scott Moser Thu, 07 Sep 2017 16:59:04 -0400 + +cloud-init (0.7.9-259-g7e76c57b-0ubuntu1) artful; urgency=medium + + * Disable upstart support, as upstart is no longer shipped in artful. + [Dimitri Ledkov] + * New upstream snapshot. + - 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) + + -- Scott Moser Wed, 30 Aug 2017 21:18:05 -0400 + +cloud-init (0.7.9-243-ge74d775-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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] + + -- Ryan Harper Mon, 21 Aug 2017 15:09:36 -0500 + +cloud-init (0.7.9-231-g80bf98b9-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - tests: remove 'yakkety' from releases as it is EOL. + - systemd: make systemd-fsck run after cloud-init.service (LP: #1691489) + - 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'. + - Drop rand_str() usage in DNS redirection detection + [Bob Aman] (LP: #1088611) + + -- Scott Moser Mon, 31 Jul 2017 09:47:34 -0400 + +cloud-init (0.7.9-221-g7e41b2a7-0ubuntu3) artful; urgency=medium + + * debian/control: replace Depends on ifupdown with 'nplan | ifupdown'. + (LP: #1705639) + * debian/control: drop versioned dependencies on old packages. + + -- Scott Moser Fri, 21 Jul 2017 12:32:33 -0400 + +cloud-init (0.7.9-221-g7e41b2a7-0ubuntu2) artful; urgency=medium + + * debian/cloud-init.templates: enable Scaleway cloud. + * debian/cloud-init.templates: enable Aliyun cloud. + + -- Scott Moser Fri, 21 Jul 2017 09:33:39 -0400 + +cloud-init (0.7.9-221-g7e41b2a7-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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) + + -- Scott Moser Thu, 20 Jul 2017 21:37:12 -0400 + +cloud-init (0.7.9-212-g865e941f-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - tests: fixes for issues uncovered when moving to python 3.6. + - sysconfig: include GATEWAY value if set in subnet + [Ryan Harper] (LP: #1686856) + + -- Scott Moser Wed, 19 Jul 2017 07:54:57 -0400 + +cloud-init (0.7.9-210-ge80517ae-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - Scaleway: add datasource with user and vendor data for Scaleway. + [Julien Castets] + - Support comments in content read by load_shell_content. + - FreeBSD: cloudinit local 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] + + -- Scott Moser Tue, 18 Jul 2017 14:03:33 -0400 + +cloud-init (0.7.9-199-g4d9f24f5-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - read_dmi_data: always return None when inside a container. (LP: #1701325) + - requirements.txt: remove trailing white space. + + -- Scott Moser Thu, 29 Jun 2017 18:01:21 -0400 + +cloud-init (0.7.9-197-gebc9ecbc-0ubuntu1) artful; urgency=medium + + * debian/control: add build dependency python3-jsonschema (LP: #1695318) + * New upstream snapshot. + - 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) + + -- Scott Moser Tue, 27 Jun 2017 17:18:24 -0400 + +cloud-init (0.7.9-153-g16a7302f-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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. + [Scott Moser] (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) + + -- Scott Moser Fri, 26 May 2017 15:11:48 -0400 + +cloud-init (0.7.9-144-g2825a917-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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] + + -- Scott Moser Tue, 23 May 2017 17:04:40 -0400 + +cloud-init (0.7.9-113-g513e99e0-0ubuntu1) artful; urgency=medium + + * New upstream snapshot. + - 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 Mushtaq Ahmed] + - 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. + [Scott Moser] + - 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) + + -- Scott Moser Tue, 25 Apr 2017 16:34:08 -0400 + +cloud-init (0.7.9-90-g61eb03fe-0ubuntu2) UNRELEASED; urgency=medium + + * debian/update-grub-legacy-ec2: fix early exit failure no /etc/fstab + file. (LP: #1682160) + + -- Scott Moser Wed, 12 Apr 2017 11:16:33 -0400 + +cloud-init (0.7.9-90-g61eb03fe-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - OpenStack: add 'dvs' to the list of physical link types. + (LP: #1674946) + + -- Scott Moser Mon, 03 Apr 2017 11:10:38 -0400 + +cloud-init (0.7.9-89-gbf7723e8-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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. + + -- Scott Moser Fri, 31 Mar 2017 17:02:28 -0400 + +cloud-init (0.7.9-87-gd23543eb-0ubuntu1) zesty; urgency=medium + + * debian/cloud-init.templates: add Bigstep to list of sources. (LP: #1676460) + * New upstream snapshot. + - 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. + (LP: #1677376) [Steve Langasek] + - 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) + + -- Scott Moser Thu, 30 Mar 2017 16:46:43 -0400 + +cloud-init (0.7.9-77-g4a2b2f87-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - Fix filesystem creation when using "partition: auto" [Jonathan Ballet] + (LP: #1634678) + - ConfigDrive: support reading config drive data from /config-drive for + nova-lxd. (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. + - 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) + + -- Scott Moser Fri, 24 Mar 2017 16:50:56 -0400 + +cloud-init (0.7.9-68-gef18b8ac-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - cloudinit.net: add network config v2 parsing and rendering [Ryan Harper] + - net: Fix incorrect call to isfile [Joshua Powers] (LP: #1674317) + + -- Scott Moser Mon, 20 Mar 2017 16:21:55 -0400 + +cloud-init (0.7.9-66-g5beecdf8-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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 + - 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) + + -- Scott Moser Fri, 17 Mar 2017 21:41:40 -0400 + +cloud-init (0.7.9-48-g1c795b9-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - ds-identify: report cleanups for config and exit value. (LP: #1669949) + + -- Scott Moser Mon, 06 Mar 2017 14:56:28 -0500 + +cloud-init (0.7.9-47-gc81ea53-0ubuntu1) zesty; urgency=medium + + * debian/rules: install Z99-cloudinit-warnings.sh to /etc/profile.d + * New upstream snapshot. + - Support warning if the used datasource is not in ds-identify's list + (LP: #1669675) + - Z99-cloudinit-warnings: Add profile.d script for showing warnings on + login. + - Z99-cloud-locale-test.sh: convert tabs to spaces, remove unneccesary + execute bit in permissions. + - tools/ds-identify: look at cloud.cfg when looking for ec2 strict_id. + - tools/ds-identify: fix bug that would mistakingly enable vmware guest + customization. + + -- Scott Moser Fri, 03 Mar 2017 01:56:19 -0500 + +cloud-init (0.7.9-38-g83606ae-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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. + + -- Scott Moser Fri, 24 Feb 2017 22:53:53 -0500 + +cloud-init (0.7.9-30-gf4e8eb0-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - ds-identify: only run once per boot unless --force is given. + - net: correct errors in cloudinit/net/sysconfig.py + [Lars Kellogg-Stedman] (LP: #1665441) + - ec2_utils: fix MetadataLeafDecoder that returned bytes on empty. + + -- Scott Moser Fri, 17 Feb 2017 17:05:47 -0500 + +cloud-init (0.7.9-26-g1cd8cfa-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - apply the runtime configuration written by ds-identify. + + -- Scott Moser Tue, 14 Feb 2017 14:45:25 -0500 + +cloud-init (0.7.9-25-g65529b6-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - ds-identify: fix checking for filesystem label (LP: #1663735) + - ds-identify: read ds=nocloud properly (LP: #1663723) + + -- Scott Moser Fri, 10 Feb 2017 15:25:17 -0500 + +cloud-init (0.7.9-23-g0df21b6-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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. + that default is to enable cloud-init even if no datasources are + explicitly found. + - 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. + + -- Scott Moser Thu, 09 Feb 2017 13:18:47 -0500 + +cloud-init (0.7.9-19-ge987092-0ubuntu2) zesty; urgency=medium + + * debian/update-grub-legacy-ec2: fix shell syntax error. (LP: #1662221) + + -- Scott Moser Mon, 06 Feb 2017 11:14:11 -0500 + +cloud-init (0.7.9-19-ge987092-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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. + + -- Scott Moser Fri, 03 Feb 2017 21:54:39 -0500 + +cloud-init (0.7.9-0ubuntu2) zesty; urgency=medium + + * debian/copyright: update License field to include Apache. + * debian/update-grub-legacy-ec2: fix to include kernels whose config + has CONFIG_XEN=y (LP: #1379080). + + -- Scott Moser Fri, 20 Jan 2017 10:01:42 -0500 + +cloud-init (0.7.9-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - release 0.7.9 + - doc: adjust headers in tests documentation for consistency. + - 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) + - 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. + + -- Scott Moser Fri, 23 Dec 2016 12:54:50 -0500 + +cloud-init (0.7.8-68-gca3ae67-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - user-groups: fix bug when groups was provided as string and had spaces + (LP: #1354694) + + -- Scott Moser Mon, 19 Dec 2016 12:35:13 -0500 + +cloud-init (0.7.8-67-gc9c9197-0ubuntu1) zesty; urgency=medium + + * debian/cherry-pick: add utility for cherry picking commits from upstream + into patches in debian/patches. + * New upstream snapshot. + - 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 (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. + + -- Scott Moser Sun, 11 Dec 2016 21:22:57 -0500 + +cloud-init (0.7.8-61-g2d2ec70-0ubuntu1) zesty; urgency=medium + + * debian/grub-legacy-ec2.install: install post(inst|rm) files correctly. + [Simon Deziel] (LP: #1581416) + * New upstream snapshot. + - OpenStack: extend physical types to include hyperv, hw_veb, vhost_user. [Scott Moser] (LP: #1642679) + - tests: fix assumptions that expected no eth0 in system. [Scott Moser] (LP: #1644043) + - net/cmdline: Consider ip= or ip6= on command line not only ip= [Scott Moser] (LP: #1639930) + - Just use file logging by default [Joshua Harlow] (LP: #1643990) + - Improve formatting for ProcessExecutionError [Wesley Wiedenmeier] + - flake8: fix trailing white space [Scott Moser] + - Doc: various documentation fixes [Sean Bright] + - cloudinit/config/cc_rh_subscription.py: Remove repos before adding [Brent Baude] + - packages/redhat: fix rpm spec file. [Scott Moser] + - main: set TZ in environment if not already set. [Ryan Harper] + - Azure: No longer rely on walinux agent. [Scott Moser] (LP: #1538522) + - disk_setup: Use sectors as unit when formatting MBR disks with sfdisk. [Daniel Watkins] (LP: #1460715) + + -- Scott Moser Mon, 28 Nov 2016 16:08:09 -0500 + +cloud-init (0.7.8-49-g9e904bb-0ubuntu1) zesty; urgency=medium + + * debian/cloud-init.postinst: update /etc/fstab on Azure to fix + future resize operations. (LP: #1611074) + * New upstream snapshot. + - Add activate_datasource, for datasource specific code paths. + Use that on Azure to handle re-formatting of ephemeral disk. + (LP: #1611074) + + -- Scott Moser Fri, 18 Nov 2016 16:37:34 -0500 + +cloud-init (0.7.8-48-g9d826b8-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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 + + -- Scott Moser Tue, 15 Nov 2016 17:21:34 -0500 + +cloud-init (0.7.8-45-g584b843-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - pep8: fix style errors reported by pycodestyle 2.1.0 [Scott Moser] + - systemd: drop both Wants and After local-fs.target [Scott Moser] + - 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. + + -- Scott Moser Thu, 10 Nov 2016 21:04:09 -0500 + +cloud-init (0.7.8-35-gc24187e-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - pyflakes: fix issue with pyflakes 1.3 found in ubuntu zesty-proposed. + + -- Scott Moser Mon, 07 Nov 2016 13:31:30 -0500 + +cloud-init (0.7.8-34-ga1cdebd-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - 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] + + -- Scott Moser Fri, 04 Nov 2016 11:03:46 -0400 + +cloud-init (0.7.8-28-gf7a5756-0ubuntu1) zesty; urgency=medium + + * New upstream snapshot. + - cc_users_groups: fix remaing call to ds.normalize_user_groups + [Ryan Harper] + + -- Scott Moser Wed, 26 Oct 2016 09:06:03 -0400 + +cloud-init (0.7.8-27-g29348af-0ubuntu1) zesty; urgency=medium + + * debian/cloud-init.templates: enable DigitalOcean by default [Ben Howard] + * New upstream snapshot. + - 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] + (LP: #1619393) + - Fix sshd restarts for rhel distros. [Jim Gorz] (LP: #1470433) + - 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 [Joshua Harlow] + - 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. + + -- Scott Moser Tue, 25 Oct 2016 17:06:59 -0400 + +cloud-init (0.7.8-15-g6e45ffb-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - systemd: Run cloud-init.service Before dbus.socket not dbus.target + [Daniel Watkins] (LP: #1629797). + + -- Scott Moser Fri, 07 Oct 2016 12:41:38 -0400 + +cloud-init (0.7.8-14-g94fd35e-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - 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] + + -- Scott Moser Tue, 04 Oct 2016 16:46:05 -0400 + +cloud-init (0.7.8-11-g02f6c4b-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - 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) + + -- Scott Moser Thu, 29 Sep 2016 14:30:15 -0400 + +cloud-init (0.7.8-8-g0439d8a-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - 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 + + -- Scott Moser Fri, 23 Sep 2016 16:51:27 -0400 + +cloud-init (0.7.8-4-g970dbd1-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - net: support reading ipv6 dhcp config from initramfs [LaMont Jones] + (LP: #1621615) + + -- Scott Moser Wed, 21 Sep 2016 11:56:23 -0400 + +cloud-init (0.7.8-3-g80f5ec4-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - Adjust mounts and disk configuration for systemd. (LP: #1611074) + - dmidecode: run dmidecode only on i?86 or x86_64 arch. [Robert Schweikert] + + -- Scott Moser Tue, 20 Sep 2016 13:59:20 -0400 + +cloud-init (0.7.8-1-g3705bb5-0ubuntu1) yakkety; urgency=medium + + * New upstream release 0.7.8. + * New upstream snapshot. + - systemd: put cloud-init.target After multi-user.target (LP: #1623868) + + -- Scott Moser Thu, 15 Sep 2016 09:47:11 -0400 + +cloud-init (0.7.7-31-g65ace7b-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968) + - DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394) + + -- Scott Moser Mon, 12 Sep 2016 14:56:42 -0400 + +cloud-init (0.7.7-28-g34a26f7-0ubuntu2) yakkety; urgency=medium + + * debian/control: fix missing dependency on python3-serial, + and make SmartOS datasource work. + + -- Scott Moser Fri, 09 Sep 2016 21:22:13 -0400 + +cloud-init (0.7.7-28-g34a26f7-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - systemd: Better support package and upgrade. + (LP: #1576692, #1621336) + - tests: cleanup tempdirs in apt_source tests + + -- Scott Moser Fri, 09 Sep 2016 16:01:13 -0400 + +cloud-init (0.7.7-26-g058dd75-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - apt config conversion: treat empty string as not provided. (LP: #1621180) + - Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810) + - salt minion: update default pki directory for newer salt minion. + (LP: #1609899) + - bddeb: add --release flag to specify the release in changelog. + + -- Scott Moser Thu, 08 Sep 2016 09:36:52 -0400 + +cloud-init (0.7.7-22-g763f403-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - apt-config: allow both old and new format to be present. + [Christian Ehrhardt] (LP: #1616831) + - python2.6: fix dict comprehension usage in _lsb_release. [Joshua Harlow] + - Add a module that can configure spacewalk. [Joshua Harlow] + - add install option for openrc [Matthew Thode] + - Generate a dummy bond name for OpenStack (LP: #1605749) + * debian/control, debian/README.source: update to reference git. + * debian/new-upstream-snapshot: small fixes. + + -- Scott Moser Fri, 26 Aug 2016 15:22:13 -0400 + +cloud-init (0.7.7-17-g40a2f62-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR + - azure dhclient-hook cleanups + - Minor cleanups to atomic_helper and add unit tests. + - Fix Gentoo net config generation [Matthew Thode] + * debian/control: drop very old meta-package ec2-init + * debian/rules, debian/cloud-init.install: remove install file + and use --destdir=debian/cloud-init. (LP: #1615745) + * debian/dirs: remove obsolete / unused file. + + -- Scott Moser Mon, 22 Aug 2016 17:02:56 -0400 + +cloud-init (0.7.7-13-g41271bd-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen] + - Apt: add new apt configuration format [Christian Ehrhardt] + - Get Azure endpoint server from DHCP client [Brent Baude] + * debian/new-upstream-snapshot: update to use git and packaging branches. + + -- Scott Moser Thu, 18 Aug 2016 17:11:51 -0400 + +cloud-init (0.7.7-10-gbc2c326-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot: + - DigitalOcean: use the v1.json endpoint + - MAAS: add vendor-data support (LP: #1612313) + - Upgrade the minimum configobj package to one new enough to work + - ConfigDrive: recognize 'tap' as a link type. (LP: #1610784) + - NoCloud: fix bug providing network-interfaces via meta-data. + (LP: #1577982) + - Add distro tags on config modules that should have it + - add ntp config module + - SmartOS: more improvements for network configuration + + -- Scott Moser Fri, 12 Aug 2016 17:18:01 -0400 + +cloud-init (0.7.7-0ubuntu1) yakkety; urgency=medium + + * New Upstream release. + + -- Scott Moser Wed, 10 Aug 2016 01:48:32 -0400 + +cloud-init (0.7.7~git1029-gb56d7a1-0ubuntu1) yakkety; urgency=medium + + * New Upstream snapshot. + - mcollective: add tests, cleanups and bug fix when no config in /etc. + - Move upstream revision control to git. [Lars Kellogg-Stedman] + - Adjust unit tests to address newer requests have strong type validation. + * debian/control: update Standards-Version to 3.9.8 + * debian/rules: fix PYVER in environment to sync with upstream changes. + + -- Scott Moser Tue, 09 Aug 2016 01:16:28 -0400 + +cloud-init (0.7.7~bzr1256-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - distros/debian.py: fix eni renderer to not render .link files + - fixes for execution in python2.6. + - ConfigDrive: fix writing of 'injected' files and legacy networking + (LP: #1602373) + - improvements to /etc/network/interfaces rendering including rendering + of 'lo' devices and sorting attributes within a interface section. + - fix mcollective module that was completely broken if using python3 + (LP: #1597699) + + -- Scott Moser Thu, 14 Jul 2016 14:54:05 -0400 + +cloud-init (0.7.7~bzr1246-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - fix restoring from a datasource that did not have dsmode (LP: #1596690) + + -- Scott Moser Mon, 27 Jun 2016 16:28:39 -0400 + +cloud-init (0.7.7~bzr1245-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - user_data: fix error when user-data is not utf-8 decodable (LP: #1532072) + - write_files: if no permissions are provided, use the default without + logging a warning. + + -- Scott Moser Wed, 22 Jun 2016 15:11:33 -0400 + +cloud-init (0.7.7~bzr1243-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - do not render systemd.link files (LP: #1594546) + + -- Scott Moser Mon, 20 Jun 2016 17:14:34 -0400 + +cloud-init (0.7.7~bzr1242-0ubuntu1) yakkety; urgency=medium + + * d/control: Build-Depends on python3-unittest2 + * New upstream snapshot. + - DataSourceNoCloud: fix stack trace on reboot, default to dsmode=net + (LP: #1592505) + - support network rendering to sysconfig (for centos and RHEL) + - fix errors reported by pylint + - move 'main' into cloudinit.cmd for easier testing. use + setuptools entry_points for creating executable. + - Remove trailing dot from GCE metadata URL (LP: #1581200) + - Change missing Cheetah log warning to debug [Andrew Jorgensen] + - make networking config provided in system config override datasource. + (LP: #1590104) + + -- Scott Moser Thu, 16 Jun 2016 00:07:12 -0400 + +cloud-init (0.7.7~bzr1227-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - fix one more unit test to run inside buildd. + + -- Scott Moser Sat, 04 Jun 2016 20:55:07 -0400 + +cloud-init (0.7.7~bzr1226-0ubuntu1) yakkety; urgency=medium + + * New upstream snapshot. + - fix unit tests to run inside buildd. + + -- Scott Moser Fri, 03 Jun 2016 23:01:16 -0400 + +cloud-init (0.7.7~bzr1225-0ubuntu1) yakkety; urgency=medium + + * debian/cloud-init.templates fix capitalisation in template so + dpkg-reconfigure works to select OpenStack. (LP: #1575727) + * New upstream snapshot. + - improve network configuration. Support DreamCompute, RDO openstack + and SmartOS networking + - remove blocking udev rules (LP: #1577844, LP: #1571761) + - support for renaming devices in a container (LP: #1579130). + - Apt sources configuration improvements (LP: #1574113) + - kernel command line: override all local settings (LP: #1582323) + - fix timestamp in reporting events. + + -- Scott Moser Fri, 03 Jun 2016 16:38:55 -0400 + +cloud-init (0.7.7~bzr1215-0ubuntu1) yakkety; urgency=medium + + * debian/new-upstream-snapshot: minor change supporting revision + passed in as an argument. + * New upstream snapshot. + - Paths: fix instance path if datasource's id has a '/'. (LP: #1575938) + - Config Drive: fix check_instance_id signature. (LP: #1575055) + - cloudstack: Only use DHCPv4 lease files as a datasource (LP: #1576273) + + -- Scott Moser Fri, 29 Apr 2016 12:37:48 -0400 + +cloud-init (0.7.7~bzr1212-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + - fix iscsi root by not writing interface as 'auto' when networking + information comes from kernel command line (LP: #1568637) + - apply networking less often, when possible only on first + instance boot (LP: #1571004). + - no longer delete /etc/network/interfaces.d/eth0.cfg on + ubuntu (LP: #1563487) + + -- Scott Moser Fri, 15 Apr 2016 16:25:43 -0400 + +cloud-init (0.7.7~bzr1209-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + - fallback net config: do not consider devices starting with + 'veth' (LP: #1569064) + + -- Scott Moser Thu, 14 Apr 2016 16:24:38 -0400 + +cloud-init (0.7.7~bzr1208-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + - phone_home: allow usage of fqdn (LP: #1566824) [Ollie Armstrong] + - chef: straighten out validation_cert and validation_key (LP: #1568940) + - skip bridges when generating fallback networking (LP: #1569974) + - rh_subscription: only check subscription if configured (LP: #1536706) + - SmartOS, CloudSigma: fix error when dmi data is not availble + (LP: #1569469) + - DataSourceNoCloud: fix check_instance_id when upgraded (LP: #1568150) + - lxd: adds basic support for dpkg based lxd-bridge + configuration. (LP: #1569018) + - centos: Ensure that a resolve conf object is written as a string. + (LP: #1479988) + + -- Scott Moser Wed, 13 Apr 2016 13:19:03 -0400 + +cloud-init (0.7.7~bzr1200-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + - fix adding of users when no group is specified (LP: #1562918) + - fix write_files with compressed content (LP: #1565638) + - systemd: do not specify After of obsolete syslog.target (LP: #1536964) + - chef: fix chef installation from gems (LP: #1553345) + - disk_setup: correctly send force to mkfs on block devices (LP: #1548772) + - locale: list unsupported environment settings in warning (LP: #1558069) + - fix NoCloud and other datasources if no datasource config (LP: #1514407) + + -- Scott Moser Wed, 06 Apr 2016 13:07:27 -0400 + +cloud-init (0.7.7~bzr1192-0ubuntu2) xenial; urgency=medium + + [Logan Rosen] + * debian/cloud-init.postinst: fix shell syntax in upgrade (LP: #1564187) + + -- Scott Moser Thu, 31 Mar 2016 10:09:09 -0400 + +cloud-init (0.7.7~bzr1192-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + - Misc fixes for VMware Support. + - network config improvements: + - do not raise exception on non-debian if network config is found. + - apply network config in 'cloud-init --local' even if there is + no datasource found. + - do not write 70-persistent-net.rules only systemd .link files. + - improve how cloud-init-wait waits: remove the check and sleep + loop and replace it with 'udevadm settle'. + + -- Scott Moser Tue, 29 Mar 2016 16:34:25 -0400 + +cloud-init (0.7.7~bzr1189-0ubuntu1) xenial; urgency=medium + + * d/control: adjust build dependency as python3-pyflakes in xenial + now provides python3 modules for pyflakes. + * d/cloud-init.install, d/control, d/dirs, d/grub-legacy-ec2.install: + run wrap-and-sort + * d/cloud-init.install: add lib/udev/ files. + * d/cloud-init.postinst: touch /var/lib/cloud/data/upgraded-network + if upgrading from version that did not have network support. + * New upstream snapshot. + * initial support for support network configuration in cloud-init --local + * do not rely on network metadata service on every boot for + ConfigDrive Openstack Azure (LP: #1553815) + + -- Scott Moser Thu, 24 Mar 2016 17:36:40 -0400 + +cloud-init (0.7.7~bzr1182-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + * systemd changes enforcing intended ordering (cloud-init-local.service + before networking and cloud-init.service before it comes up). + * when reading dmidecode data, return found but unset value as "" rather + than failing to decode that value. + * add default user to 'lxd' group and create groups when necessary + (LP: #1539317) + * No longer run pollinate in seed_random (LP: #1554152) + * Enable BigStep data source. + + -- Scott Moser Mon, 14 Mar 2016 09:58:56 -0400 + +cloud-init (0.7.7~bzr1176-0ubuntu1) xenial; urgency=medium + + * d/README.source, d/new-upstream-snapshot: simplify the README.source + with a script. + * d/rules: support DEB_BUILD_OPTIONS=nocheck and remove unused code. + * d/rules: make tests with python3 + * d/control: add pep8 as a build depends + * d/cloud-init.preinst, d/cloud-init.postinst adjust upgrade path + to adjust systemd jobs that put cloud-init unit jobs directly + in multi-user.target. + * New upstream snapshot. + * Add Image Customization Parser for VMware vSphere Hypervisor Support. + Disabled by default. [Sankar Tanguturi] + * lxd: add initial support for setting up lxd using 'lxd init' + * Handle escaped quotes in WALinuxAgentShim.find_endpoint (LP: #1488891) + * timezone: use a symlink when updating /etc/localtime (LP: #1543025) + * enable more code testing in 'make check' + * Added Bigstep datasource [Daniel Watkins] + * Enable password changing via a hashed string [Alex Sirbu] + + -- Scott Moser Fri, 04 Mar 2016 15:44:02 -0500 + +cloud-init (0.7.7~bzr1160-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + * SmartOS: Add support for Joyent LX-Brand Zones (LP: #1540965) + * systemd/power_state: fix power_state when cloud-final exited failure + (LP: #1449318) + + -- Scott Moser Thu, 04 Feb 2016 17:22:36 -0500 + +cloud-init (0.7.7~bzr1156-0ubuntu2) xenial; urgency=medium + + * debian/cloud-init.postinst, systemd_detect_virt.patch: Call + systemd-detect-virt instead of the Ubuntu specific running-in-container + wrapper. (LP: #1539016) + + -- Martin Pitt Thu, 28 Jan 2016 14:12:51 +0100 + +cloud-init (0.7.7~bzr1156-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + * d/cloud-init.preinst: migrate Azure instance ID from old ID to stable + ID (LP: #1506187). + + -- Ben Howard Tue, 17 Nov 2015 11:59:49 -0700 + +cloud-init (0.7.7~bzr1155-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + * cc_mounts: use 'nofail' rather than 'nobootwait' if system uses systemd. + (LP: #1514485). + + -- Scott Moser Tue, 10 Nov 2015 12:35:31 -0500 + +cloud-init (0.7.7~bzr1154-0ubuntu1) xenial; urgency=medium + + * New upstream snapshot. + * create the same /etc/apt/sources.list that is present in default server + ISO installs. This change adds restricted, multiverse, and -backports + (LP: #1177432). + + -- Scott Moser Thu, 05 Nov 2015 12:10:00 -0500 + +cloud-init (0.7.7~bzr1149-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + azure: support extracting SSH key values from ovf-env.xml (LP: #1506244) + + -- Scott Moser Wed, 14 Oct 2015 20:38:45 -0400 + +cloud-init (0.7.7~bzr1148-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * support configuring and installing the Ubuntu fan driver (LP: #1504604) + + -- Scott Moser Fri, 09 Oct 2015 13:00:12 -0400 + +cloud-init (0.7.7~bzr1147-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * MAAS: fix oauth when system clock is bad (LP: #1499869) + + -- Scott Moser Tue, 29 Sep 2015 20:16:57 -0400 + +cloud-init (0.7.7~bzr1146-0ubuntu2) wily; urgency=medium + + * replace usage of python with python3 in postinst (LP: #1498493) + + -- Scott Moser Tue, 22 Sep 2015 09:49:01 -0400 + +cloud-init (0.7.7~bzr1146-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * make the webhook reporter post json data rather than + urlencoded data (LP: #1496960) + + -- Scott Moser Thu, 17 Sep 2015 15:59:35 -0400 + +cloud-init (0.7.7~bzr1145-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * fix default builtin config of snappy to set ssh_enabled=auto. + + -- Scott Moser Tue, 15 Sep 2015 15:33:19 -0400 + +cloud-init (0.7.7~bzr1144-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + [ Ben Howard ] + * snappy: enable ssh on snappy if ssh keys are provided or + password authentication is requested (LP: #1494816) + + -- Scott Moser Fri, 11 Sep 2015 17:00:16 -0400 + +cloud-init (0.7.7~bzr1143-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * NoCloud: fix consumption of vendor-data (LP: #1493453) + * power_state: support power change only on 'condition' + + -- Scott Moser Thu, 10 Sep 2015 16:20:44 -0400 + +cloud-init (0.7.7~bzr1141-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * fix bug in cloud-init main preventing any usage. + + -- Scott Moser Thu, 03 Sep 2015 11:36:37 -0400 + +cloud-init (0.7.7~bzr1140-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * Handle symlink mount points in mount_cb (LP: #1490796). + * sync curtin reporting changes back to cloud-init. + + -- Scott Moser Wed, 02 Sep 2015 16:50:54 -0400 + +cloud-init (0.7.7~bzr1138-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * MAAS: fixes to data source and OauthUrlHelper (LP: #1488507) + + -- Scott Moser Tue, 25 Aug 2015 15:28:06 -0400 + +cloud-init (0.7.7~bzr1137-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * swap: use fallocate to create swapfile for speedup. (LP: #1482994) + * reporting: print handler fix. + + -- Scott Moser Wed, 12 Aug 2015 12:54:51 -0400 + +cloud-init (0.7.7~bzr1135-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * some stack traces fixed. + * improved rsyslog/syslog config format + * add reporting module for webhook or log reporting of events. + + -- Scott Moser Fri, 07 Aug 2015 17:16:51 -0400 + +cloud-init (0.7.7~bzr1127-0ubuntu1) wily; urgency=medium + + [ Scott Moser ] + * d/README.source, debian/cherry-pick-rev: improve packaging tool + + [ Daniel Watkins ] + * d/cloud-init.templates: Include SmartOS data source in the default list + and choices. (LP: #1398997) + + [ Scott Moser ] + * New upstream snapshot. + * check for systemd using sd_booted symantics (LP: #1461201) + * fix importing of gpg keys in python3 (LP: #1463373) + * fix specification of devices to growpart (LP: #1465436) + * reliably detect and use Azure disks using udev rules (LP: #1411582) + * support selection of Ubuntu mirrors on GCE (LP: #1470890) + * ssh: generate ed25519 host keys if supported (LP: #1461242) + * test fixes and cleanups + * fix reading of availability-zone on GCE (LP: #1470880) + * fix cloudsigma datasource with python3 (LP: #1475215) + * fix rightscale user-data + * fix consumption of CloudStack passwords on newer CloudStack platforms + (LP: #1440263, #1464253) + + -- Scott Moser Wed, 22 Jul 2015 17:06:18 -0400 + +cloud-init (0.7.7~bzr1109-0ubuntu2) wily; urgency=medium + + * d/control: cloud-init Recommends gdisk (LP: #1462521) + + -- Scott Moser Fri, 05 Jun 2015 16:33:38 -0400 + +cloud-init (0.7.7~bzr1109-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * Azure: Redact on-disk user password in /var/lib/ovf-env.xml + (LP: #1311827) + * EC2: be aware of eu-central-1 availability zone (LP: #1456684) + + -- Scott Moser Thu, 28 May 2015 10:54:45 -0400 + +cloud-init (0.7.7~bzr1106-0ubuntu1) wily; urgency=medium + + * New upstream snapshot. + * Azure: remove strict dependency on walinux-agent, but still utilize + it for the time being. + * fix read_seeded that is used in seeding user-data and meta-data + from additional locations (LP: #1455233) + * fix bug preventing partitioning of disks in many cases. (LP: #1311463) + * Azure: do not override hostname if user has set it (LP: #1375252) + * Fix GCE datasource not handling per-instance SSH keys (LP: #1403617) + * Allow specifying of uid in user/group config. + + -- Scott Moser Fri, 15 May 2015 17:04:19 -0400 + +cloud-init (0.7.7~bzr1091-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * fix processing of user-data in cloud-config-archive format (LP: #1445143) + + -- Scott Moser Fri, 17 Apr 2015 12:04:16 -0400 + +cloud-init (0.7.7~bzr1088-0ubuntu3) vivid; urgency=medium + + * systemd/*.service: don't declare a Wants/Requires on network.target; this + is a passive target that should only be pulled in by implementors of the + networking service. The requirement for network needs to be + expressed as a dependency on network-online.target. LP: #1440180. + + -- Steve Langasek Thu, 09 Apr 2015 07:35:55 -0700 + +cloud-init (0.7.7~bzr1088-0ubuntu2) vivid; urgency=medium + + [ Didier Roche ] + * Don't start or restart cloud-init services on install and upgrade + (LP: #1438520) + + [ Scott Moser ] + * d/control: Build-Depends on iproute2 (tests) + * d/control: Only Recommend (not both Depend and Recommend) + software-properties-common + + -- Scott Moser Fri, 03 Apr 2015 11:13:28 -0400 + +cloud-init (0.7.7~bzr1088-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * adjust cc_snappy for snappy install package with config. (LP: #1438836) + snappy install takes config as argument rather than '--config' flag. + + -- Scott Moser Tue, 31 Mar 2015 14:21:48 -0400 + +cloud-init (0.7.7~bzr1087-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * SmartOS: update ds to use v2 metadata. (LP: #1436417) [Daniel Watkins] + * Fix NoCloud local datasource to only activate if told to do so. + * fix snappy package installation. (LP: #1437137) + + -- Scott Moser Fri, 27 Mar 2015 17:09:34 -0400 + +cloud-init (0.7.7~bzr1084-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * systemd: update config and final to run even if init jobs fail + (LP: #1432758) + * emit_upstart: fix use of undeclared variable + * SmartOS: fixes for python3 reading from serial device. + + -- Scott Moser Tue, 17 Mar 2015 16:48:42 -0400 + +cloud-init (0.7.7~bzr1081-0ubuntu1) vivid; urgency=medium + + * fix failure of configure due to postinst usage of iteritems with python3 + * New upstream snapshot. + * better python3 handling of ignored binary mime parts + * DataSourceMAAS: fix usage of oauthlib and 'timestamp' + + -- Scott Moser Wed, 11 Mar 2015 13:52:04 -0400 + +cloud-init (0.7.7~bzr1078-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * run snappy module only on snappy (LP: #1428495) + * MAAS: adjust timestamp on oauthlib when needed (LP: #1427939) + + -- Scott Moser Thu, 05 Mar 2015 15:22:53 -0500 + +cloud-init (0.7.7~bzr1076-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * test case fixes for http_pretty + * python2.6 fixes + * Convert dmidecode values to sysfs names before looking. (LP: #1427687) + * add snappy support (LP: #1428139) + + -- Scott Moser Wed, 04 Mar 2015 17:13:55 -0500 + +cloud-init (0.7.7~bzr1072-0ubuntu1) vivid; urgency=medium + + * d/control: move software-properties-common to Recommends + this helps reduce snappy builds + * New upstream snapshot. + * fix MAAS datasource (LP: #1427263) + + -- Scott Moser Tue, 03 Mar 2015 20:46:41 -0500 + +cloud-init (0.7.7~bzr1067-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * fix broken consumption of gzipped user-data (LP: #1424900) + * functional user-data on Azure again (LP: #1423972) + * CloudStack: support fetching password from virtual router (LP: #1422388) + + -- Scott Moser Thu, 26 Feb 2015 14:19:16 -0500 + +cloud-init (0.7.7~bzr1060-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * Fix for ascii decode in DataSourceAzure (LP: #1422993). + + -- Scott Moser Fri, 20 Feb 2015 08:05:20 -0500 + +cloud-init (0.7.7~bzr1059-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * support for gpt partitioning, utilized in Azure [Daniel Watkins] + * fix bug in exception handling in mount_cb. + + -- Scott Moser Fri, 13 Feb 2015 16:05:59 -0500 + +cloud-init (0.7.7~bzr1055-0ubuntu1) vivid; urgency=medium + + * New upstream snapshot. + * move to python3 (LP: #1247132) + * systemd: run cloud-init before systemd-user-sessions.service + * Use the GCE short hostname. (LP: #1383794) + * Enable user-data encoding support for GCE. (LP: #1404311) + * Update to use a newer and better OMNIBUS_URL + * Be more tolerant of 'ssh_authorized_keys' types + * Fix parse_ssh_config failing in ssh_util.py + * Increase the robustness/configurability of the chef module. + * retain trailing newline from template files when using + jinja2 (LP: #1355343) + * fix broken output handling (LP: #1387340) + * digital ocean datasource + * update url in config drive documentation + * freebsd: enable correct behavior on Ec2. + * freebsd: Use the proper virtio FreeBSD network interface name. + + -- Scott Moser Wed, 11 Feb 2015 15:55:58 -0500 + +cloud-init (0.7.6~bzr1022-0ubuntu1) utopic; urgency=medium + + * New upstream snapshot. + * support for writing swap files per user config (disabled by default). + * fixes for freebsd support of config drive. + + -- Scott Moser Wed, 01 Oct 2014 16:27:44 -0400 + +cloud-init (0.7.6~bzr1020-0ubuntu1) utopic; urgency=medium + + [ Ben Howard ] + * Fix for cloud-init misidentifying grub install device (LP: #1336855). + + [ Scott Moser ] + * New upstream snapshot. + * cc_grub_dpkg: consider /dev/xvda as candidate for grub installation + (LP: #1336855) + * resizefs: fix backgrounding of resizefs (LP: #1338614) + * cloud-init-blocknet: remove debug code + + -- Scott Moser Tue, 23 Sep 2014 14:20:09 -0400 + +cloud-init (0.7.6~bzr1016-0ubuntu1) utopic; urgency=medium + + * New upstream snapshot. + * upstart: block networking from coming up until after + cloud-init-local has run. (LP: #1368861) + * upstart: ensure /run mounted before cloud-init-local (LP: #1353008) + * log failures in route info. + * Openstack: do not search redundant urls for openstack datasource. + do not load urls just to check if they're present when crawling. + * ConfigDrive: fixes for better consumption of vendor-data + * resizefs: make sure target is writable before attempting + in order to avoid failures in containers. (LP: #1366891) + * freebsd fixes. + * ssh_authkey_fingerprints: correctly allow disabling (LP: #1340903) + * CloudStack: work around bug in metadata service (LP: #1356855) + * docs: fix doc about disk-setup 'table_type' (LP: #1313114) + * resolv.conf: fix rendering if options not provided (LP: #1328953) + * ensure keys exist before running ssh on systemd (LP: #1333920) + + -- Scott Moser Fri, 12 Sep 2014 18:12:31 -0400 + +cloud-init (0.7.6~bzr992-0ubuntu1) utopic; urgency=medium + + * New upstream snapshot. + * ubuntu-init-switch: fixes and minor tweaks. + + -- Scott Moser Thu, 31 Jul 2014 16:11:27 -0400 + +cloud-init (0.7.6~bzr990-0ubuntu1) utopic; urgency=medium + + * debian/README.source: get changelog from trunk when new snapshot + * New upstream snapshot. + * add ubuntu-init-switch module for testing systemd. + * do not put comments in /etc/timezone (LP: #1341710) + + -- Scott Moser Thu, 31 Jul 2014 15:05:51 -0400 + +cloud-init (0.7.6~bzr987-0ubuntu2) utopic; urgency=medium + + * debian/control: drop build-depends on python-selinux as it is + not in main. + + -- Scott Moser Fri, 25 Jul 2014 12:47:39 -0400 + +cloud-init (0.7.6~bzr987-0ubuntu1) utopic; urgency=medium + + * incorporate systemd and build system changes from trunk. + * New upstream snapshot. + * less noisy logs + * allow usage of jinja2 templates (LP: #1219223) + * test case cleanups + * change build system to be dh and pybuild + + -- Scott Moser Thu, 24 Jul 2014 19:55:30 -0400 + +cloud-init (0.7.6~bzr976-0ubuntu1) utopic; urgency=medium + + * debian/cloud-init.templates: fix choices so dpkg-reconfigure works as + expected (LP: #1325746) + * New upstream snapshot. + * tests: SmartOS test not depend on /dev/ttyS1 device node (LP: #1316597) + * poll ttyS1 only after check for 'cloudsigma' in dmidecode (LP: #1316475) + * cloudsigma: support vendor-data (LP: #1303986) + + -- Scott Moser Tue, 03 Jun 2014 16:41:07 -0400 + +cloud-init (0.7.5-0ubuntu1) trusty; urgency=medium + + * New upstream release. + * support base64 encoded user-data in OpenNebula, required + to allow arbitrary content in user-data (LP: #1300941) + * pep8 and pylint fixes + + -- Scott Moser Tue, 01 Apr 2014 14:39:03 -0400 + +cloud-init (0.7.5~bzr970-0ubuntu1) trusty; urgency=medium + + * New upstream snapshot. + * fix NoCloud and seedfrom on the kernel command line (LP: #1295223) + + -- Scott Moser Thu, 20 Mar 2014 12:35:58 -0400 + +cloud-init (0.7.5~bzr969-0ubuntu1) trusty; urgency=medium + + * New upstream snapshot. + * Azure: Reformat ephemeral disk if it got re-provisioned + by the cloud on any reboot (LP: #1292648) + * final_message: fix replacement of upper case keynames (LP: #1286164) + * seed_random: do not capture output. Correctly provide + environment variable RANDOM_SEED_FILE to command. + * CloudSigma: support base64 encoded user-data + + -- Scott Moser Wed, 19 Mar 2014 14:04:34 -0400 + +cloud-init (0.7.5~bzr964-0ubuntu1) trusty; urgency=medium + + * New upstream snapshot. + * 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) + * fix output of network information to not include 'addr:' (LP: #1285185) + + -- Scott Moser Mon, 03 Mar 2014 16:59:27 -0500 + +cloud-init (0.7.5~bzr952-0ubuntu1) trusty; urgency=medium + + * New upstream snapshot. + * fix broken seed of DAtaSourceNoCloud via external disk. + + -- Scott Moser Tue, 18 Feb 2014 14:10:52 -0500 + +cloud-init (0.7.5~bzr950-0ubuntu1) trusty; urgency=medium + + * New upstream snapshot. + * support for vendor-data in NoCloud + * 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. + + -- Scott Moser Fri, 14 Feb 2014 14:39:56 -0500 + +cloud-init (0.7.5~bzr933-0ubuntu1) trusty; urgency=medium + + * debian/control: bump Standards-Version to 3.9.5 + * debian/control: drop boto dependency no longer required in trunk. + * New upstream snapshot. + * ConfigDrive: consider partitions labelled correctly as possible sources. + * find root filesystem for resizing in cases where there is no initramfs + * removal of dependency on python-boto + * vendor-data support, and usage of that in Joyent datasource. + * change default output to be logged to /var/log/cloud-init-output.log + * SeLinuxGuard: Cast file path to string. (LP: #1260072) + * drop support for resizing via parted (LP: #1212492) + * SmartOS: changes to address changes in platform (LP: #1272115) + * FreeBSD support. + + -- Scott Moser Fri, 24 Jan 2014 22:41:57 -0500 + +cloud-init (0.7.5~bzr902-0ubuntu1) trusty; urgency=medium + + * debian/control: Build-Depend on python-jsonpatch as #717916 is now fixed. + * debian/control: Recommend eatmydata (LP: #1236531) + * New upstream snapshot. + * support invoking apt with 'eatmydata' (LP: #1236531) + * add a message in log about dynamic import failures + * New in '0.7.4' release. + * fix reading of mount information on kernels < 2.6.26 (LP: #1248625) + * SmartOS: change 'region' to 'datacenter_name' to address change + in data provided to instance (LP: #1249124) + * support calling 'add-apt-repository' for 'cloud-archive:' entries + (LP: #1244355) + * DataSourceAzure: fix incompatibility with python 2.6 (LP: #1232175) + * fix bug mounting first partition of a alias'd name. (LP: #1236594) + * SmartOS: fix bug with hostname due to trailing whitespace (LP: #1236445) + * fix creation of partitions on Azure (LP: #1233698) + * cc_growpart: respect /etc/growroot-disabled (LP: #1234331) + * ubuntu config: add default user to 'sudo' group (LP: #1228228) + * Fix usage of libselinux-python when selinux is disabled + * add OpenNebula datasource + + -- Scott Moser Tue, 17 Dec 2013 16:51:30 -0500 + +cloud-init (0.7.3-0ubuntu2) saucy; urgency=low + + * fix bug where a mount entry of 'ephemeral0' would only consider + the unpartitioned device, not also the first partition (LP: #1236594) + + -- Scott Moser Mon, 07 Oct 2013 20:16:02 -0400 + +cloud-init (0.7.3-0ubuntu1) saucy; urgency=low + + * New upstream release. + * Fix for SmartOS datasource when hostname is provided via dmi + data (LP: #1236445) + + -- Scott Moser Mon, 07 Oct 2013 14:49:56 -0400 + +cloud-init (0.7.3~bzr884-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * allow disabling of growpart via file /etc/growroot-disabled + (LP: #1234331) + * add default user to sudo group (LP: #1228228) + * fix disk creation on azure (LP: #1233698) + * DatasourceSmartOS: allow availabiltity-zone to be fed from the + datasource via 'region' (which allows 'mirrors' and other things + to make use of it). + + -- Scott Moser Fri, 04 Oct 2013 21:08:07 -0400 + +cloud-init (0.7.3~bzr879-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fixes to disk_setup config module and enabling of partition + creation and filesystem creation on Azure. + + -- Scott Moser Fri, 27 Sep 2013 19:47:37 -0400 + +cloud-init (0.7.3~bzr871-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * add 'disk_setup' config module for partitioning disks and + creating filesystems. (LP: #1218506) + + -- Scott Moser Fri, 20 Sep 2013 20:46:08 -0400 + +cloud-init (0.7.3~bzr869-0ubuntu1) saucy; urgency=low + + * depend on cloud-utils or cloud-guest-utils (LP: #1224003) + * New upstream snapshot. + * Add OpenNebula datasource. + * Support reading 'random_seed' from metadata and writing to /dev/urandom + * fix for bug in log_time. + + -- Scott Moser Wed, 11 Sep 2013 17:04:45 -0400 + +cloud-init (0.7.3~bzr862-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * support base64 encoded data in the smart os datasource + + -- Scott Moser Thu, 29 Aug 2013 04:54:39 -0400 + +cloud-init (0.7.3~bzr861-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fix publishing hostname on azure (LP: #1214541) + + -- Scott Moser Tue, 20 Aug 2013 16:06:22 -0400 + +cloud-init (0.7.3~bzr860-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fix setting of password for a user on azure. (LP: #1212723) + + -- Scott Moser Thu, 15 Aug 2013 16:01:40 -0400 + +cloud-init (0.7.3~bzr858-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fix resizing of root partition by preferring the functional 'growpart' + support over the broken 'parted resizepart' support (LP: #1212444) + * add options for apt_ftp_proxy, apt_https_proxy and apt_config + (LP: #1057195) + + -- Scott Moser Wed, 14 Aug 2013 21:44:22 -0400 + +cloud-init (0.7.3~bzr851-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * azure: do not wait for output of bouncing interface (ifdown; ifup) + as that waits on output of all ifupdown scripts to close all file + descriptors. + + -- Scott Moser Mon, 29 Jul 2013 12:21:08 -0400 + +cloud-init (0.7.3~bzr850-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fix bouncing of interface. environment was not being modified + so command invoked did not have access to 'interface'. + * debian/README.source: update to read upstream version from trunk + + -- Scott Moser Fri, 26 Jul 2013 14:34:02 -0400 + +cloud-init (0.7.3~bzr849-0ubuntu2) saucy; urgency=low + + * debian/control: fix bad dependency on python-jsonpatch + by build-depending on python-json-patch, so dh_python2 + can find the right package (LP: #1205358). + + -- Scott Moser Fri, 26 Jul 2013 10:47:59 -0400 + +cloud-init (0.7.3~bzr849-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * azure: support publishing hostname via bouncing interface (LP: #1202758) + + -- Scott Moser Thu, 25 Jul 2013 17:08:30 -0400 + +cloud-init (0.7.3~bzr845-0ubuntu2) saucy; urgency=low + + * debian/control: fix dependency python-json-patch. + + -- Scott Moser Wed, 24 Jul 2013 15:01:24 -0400 + +cloud-init (0.7.3~bzr845-0ubuntu1) saucy; urgency=low + + * Reads the currently set value in /etc/cloud/cloud.cfg.d/90_dpkg.cfg to + db_set the value of cloud-init/datasources. (Closes: #709773) + * New upstream snapshot. + * azure: use deployment-id rather than static instance-id (LP: #1204190) + * config-drive: make 'availability_zone' available. (LP: #1190431) + * finalize handlers even on error (LP: #1203368) + * azure: fix password based access (LP: #1201969) + * add smartos (Joyent cloud) datasource + * support patching cloud-config via jsonp (LP: #1200476) + * debian/control: add dependency on python-jsonp + + -- Scott Moser Wed, 24 Jul 2013 13:47:53 -0400 + +cloud-init (0.7.3~bzr829-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * fix to upstart_job handler if version upstart is version 1.8. + * Azure datasource: allow userdata to be found in node named + 'UserData' or 'CustomData' + + -- Scott Moser Thu, 11 Jul 2013 10:20:03 -0400 + +cloud-init (0.7.3~bzr826-0ubuntu2) saucy; urgency=low + + * debian/cloud-init.templates: add 'Azure' datasource to list + of available datasources. + + -- Scott Moser Wed, 10 Jul 2013 16:31:48 -0400 + +cloud-init (0.7.3~bzr826-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * Fix omnibus support (LP: #1182265) + * invoke 'initctl reload-configuration' on upstart jobs again + (LP: #1124384) + * Remove unowned files in /etc/apt/apt.conf.d/ after purge. (Closes #674237) + + -- Scott Moser Wed, 10 Jul 2013 13:35:59 -0400 + +cloud-init (0.7.2-0ubuntu1) saucy; urgency=low + + * New upstream release. + * fix merging routines to be backwards compatible (LP: #1180867) + * fix for python 2.6 + + -- Scott Moser Wed, 05 Jun 2013 11:12:46 -0400 + +cloud-init (0.7.2~bzr812-0ubuntu1) saucy; urgency=low + + * New upstream snapshot. + * catch up with upstream, which is hopefully 0.7.2 + * straighten out the merging routines + * fix a bug in Maas datasource + + -- Scott Moser Fri, 10 May 2013 17:53:49 -0400 + +cloud-init (0.7.2~bzr809-0ubuntu1) raring; urgency=low + + * New upstream snapshot. + * make apt-get invoke 'dist-upgrade' rather than 'upgrade' for + package_upgrade. (LP: #1164147) + * workaround 2.6 kernel issue that stopped blkid from showing /dev/sr0 + + -- Scott Moser Thu, 11 Apr 2013 12:55:51 -0400 + +cloud-init (0.7.2~bzr804-0ubuntu1) raring; urgency=low + + * New upstream snapshot. + * use python-requests rather than urllib2 for http (LP: #1067888) + * handle failure of resizefs better. Specifically, do not show + warnings or stack trace in lxc (LP: #1160462) + + -- Scott Moser Wed, 27 Mar 2013 10:04:41 -0400 + +cloud-init (0.7.2~bzr795-0ubuntu1) raring; urgency=low + + * New upstream snapshot. + * documentation on write-files module (LP: #1111205) + * support for specifying package versions in package installs + * DataSourceNoCloud: allow specifyin user-data and meta-data in + the datasource config (LP: #1115833) + * work around bug in upstart for now (1124384) + * support resizing btrfs fileystems + * parse ssh keys more correctly (LP: #1136343) + * upstart/cloud-init-nonet.conf: handle sigterm gracefully (LP: #1015223) + * support growing partitions (LP: #1136936) + * use --force-unsafe-io for dpkg installations to improve speed + This is sane as it happens on instance initialization. + * more powerful and user-suppliable cloud-config merge mechanisms + (LP: #1023179) + + -- Scott Moser Thu, 07 Mar 2013 17:33:59 -0500 + +cloud-init (0.7.1-0ubuntu5) raring; urgency=low + + * catchup-751-760.patch (sync to 760) + * DataSourceConfigDrive: allow config-drive data to come from a + CD-ROM (LP: #1100545) + * Allow 'sr0' to be used as a source for mount config [Vlastimil Holer] + * do not log passwords provided via config (LP: #1096417) + * DataSourceCloudStack: Attempt to find the 'virtual router' as provided + from dhcp responses, rather than assuming it is the default route + (LP: #1089989) [Gerard Dethier] + in the CloudStack environment use virtual router rather than default route + * notify upstart after writing upstart jobs to support filesystems that + do not support inotify such as overlayfs (LP: #1080841) + * fix cloud-config 'lock_password' user setup (LP: #1096423) + * debian/README.source: minor improvements. + + -- Scott Moser Fri, 18 Jan 2013 10:12:34 -0500 + +cloud-init (0.7.1-0ubuntu4) raring; urgency=low + + * cherry pick relevant patches from trunk up to revision 750 + * use short form of '--stderr' argument to logger for better cross + distro support (LP: #1083715) + * puppet: make installation configurable (LP: #1090205) + * chef: add omnibus installation method + * fix allowing cloud-config input via user-data to affect the + apt mirror selection (LP: #090482) + + -- Scott Moser Mon, 17 Dec 2012 10:48:23 -0500 + +cloud-init (0.7.1-0ubuntu3) raring; urgency=low + + * cherry pick relevant patches from trunk up to revision 745 + * fix writing of sudoers when suders rule is a string rather than + an array (LP: #1079002) + * add trailing slash to sudoers files that are written + * fix resizefs module when 'noblock' was provided (LP: #1080985) + * make sure there is no blank line before cloud-init entry in + there are no blank lines in /etc/ca-certificates.conf (LP: #1077020) + + -- Scott Moser Mon, 03 Dec 2012 21:45:48 -0500 + +cloud-init (0.7.1-0ubuntu2) raring; urgency=low + + * debian/watch: add watch file + * add 'ubuntu' user to sudoers (LP: #1080717) + * set 'ubuntu' user shell to bash + + -- Scott Moser Mon, 19 Nov 2012 09:38:29 -0500 + +cloud-init (0.7.1-0ubuntu1) raring; urgency=low + + * New upstream release. + * landscape: install landscape-client package if not installed. + only take action if cloud-config is present (LP: #1066115) + * landscape: restart landscape after install or config (LP: #1070345) + * multipart/archive: do not fail on unknown headers in multipart + mime or cloud-archive config (LP: #1065116). + * tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is + zsh (LP: #1073077) + * fix stack trace when unknown user-data input had unicode (LP: #1075756) + * split 'apt-update-upgrade' config module into 'apt-configure' and + 'package-update-upgrade-install'. The 'package-update-upgrade-install' + will be a cross distro module. + * fix bug where cloud-config from user-data could not affect system_info + settings (LP: #1076811) + * add yum_add_repo configuration module for adding additional yum repos + * fix public key importing with config-drive-v2 datasource (LP: #1077700) + * handle renaming and fixing up of marker names (LP: #1075980) + this relieves that burden from the distro/packaging. + * group config: fix how group members weren't being translated correctly + when the group: [member, member...] format was used (LP: #1077245) + * work around an issue with boto > 0.6.0 that lazy loaded the return from + get_instance_metadata(). This resulted in failure for cloud-init to + install ssh keys. (LP: #1068801) + * add power_state_change config module for shutting down stystem after + cloud-init finishes. (LP: #1064665) + + + -- Scott Moser Wed, 14 Nov 2012 15:18:50 -0500 + +cloud-init (0.7.0-0ubuntu2) quantal; urgency=low + + * config-drive: copy metadata entry 'hostname' to 'local-hostname' to fix + config modules (set_hostname) will function as expected (LP: #1061964) + + -- Scott Moser Fri, 05 Oct 2012 11:45:15 -0400 + +cloud-init (0.7.0-0ubuntu1) quantal; urgency=low + + * New upstream release. + * minor change to oauth header fix (LP: #978127). + * incorporation of 0.7.0 upstream release. + + -- Scott Moser Mon, 01 Oct 2012 14:19:46 -0400 + +cloud-init (0.7.0~bzr677-0ubuntu1) quantal; urgency=low + + * add CloudStack to DataSources listed by dpkg-reconfigure (LP: #1002155) + * New upstream snapshot. + * 0440 permissions on /etc/sudoers.d files rather than 0644 + * get host ssh keys to the console (LP: #1055688) + * MAAS DataSource adjust timestamp in oauth header to one based on the + timestamp in the response of a 403. This accounts for a bad local + clock. (LP: #978127) + * re-start the salt daemon rather than start to ensure config changes + are taken. + * allow for python unicode types in yaml that is loaded. + * cleanup in how config modules get at users and groups. + + -- Scott Moser Sun, 30 Sep 2012 14:29:04 -0400 + +cloud-init (0.7.0~bzr659-0ubuntu2) quantal; urgency=low + + * debian/cloud-init.templates: fix bad template file (LP: #1053239) + + -- Scott Moser Thu, 20 Sep 2012 09:18:20 -0400 + +cloud-init (0.7.0~bzr659-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * add signal handlers to more cleanly exit + * add logging fallback in case logging fails + * documentation fix for landscape config (LP: #1042764) + * do not write a comment in /etc/hostname (LP: #1052664) + * fix incorrect ubuntu mirrors for 'ports' arches [Robbie Basak] + * fix generation of hostname based on ip address in datasource + (LP: #1050962) [Andy Grimm] + * remove 'start networking' from cloud-init-nonet and replace it + with container specific fixes (LP: #1031065) + * fix landscape configuration so client will run (LP: #1042758) + * enable all available datasources (adding AltCloud and None) + * fix bug where user data scripts re-ran on upgrade from 10.04 versions + (LP: #1049146) + + -- Scott Moser Wed, 19 Sep 2012 22:08:51 -0400 + +cloud-init (0.7.0~bzr644-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * fix cloud-archives (LP: #1044594) + * fix set_passwords for usergroups as a list (LP: #1044553) + * fix 'failed to setup apt-pipelining' warning on install due to + old 0.6 style usage of cloud-init. + + -- Scott Moser Sat, 01 Sep 2012 20:11:34 -0400 + +cloud-init (0.7.0~bzr642-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * support using launch-index (ami-launch-index) (LP: #1023177) + * usergroup related fixes (LP: #1041384, #1044044, #1044508) + + -- Scott Moser Fri, 31 Aug 2012 17:04:06 -0400 + +cloud-init (0.7.0~bzr639-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * fix broken ssh_import_id, which would give stack trace + + -- Scott Moser Tue, 28 Aug 2012 14:09:47 -0400 + +cloud-init (0.7.0~bzr637-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * fix issue with public keys not being added to 'ubuntu' user + since the user was not created yet. (LP: #1042459) + * only search the top level domain 'instance-data' for the EC2 + metadata service, to avoid misconfiguration or unexpected results + by searching search entries in /etc/resolv.conf (LP: #1040200) + + -- Scott Moser Mon, 27 Aug 2012 20:27:06 -0400 + +cloud-init (0.7.0~bzr634-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * support for datasource from config-drive-v2 (LP: #1037567) + + -- Scott Moser Fri, 24 Aug 2012 17:24:26 -0400 + +cloud-init (0.7.0~bzr633-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * support creating users on boot. remove requirement for a 'ubuntu' + user to be previously present in image. (LP: #1028503) + * add experimental apt_reboot_if_required flag to reboot if necessary + after upgrade or package install (LP: #1038108) + * improve mirror selection for a distro: + * support arm mirrors (LP: #1028501) + * support seeding security mirror (LP: #1006963) + * support dns mirrors including availability-zone reference + (LP: #1037727) + * include a "None" datasource so items like ssh host key generation + occur if there is no other metadata service. (LP: #906669) + * print authorized_keys for users to the console (LP: #1010582) + * Add RHEVm and vSphere support as datasource AltCloud [Joseph VLcek] + + -- Scott Moser Thu, 23 Aug 2012 01:06:34 -0400 + +cloud-init (0.7.0~bzr614-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * disable searching for 'ubuntu-mirror' in local dns to find a + local mirror (LP: #974509) + * emit the cloud-config event (LP: #1028674) + * write timestamps to console on reboot and shutdown (LP: #1018554) + + -- Scott Moser Fri, 03 Aug 2012 14:55:37 -0400 + +cloud-init (0.7.0~bzr608-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * fix issue with EC2 datasource that prevented /mnt from being mounted. + + -- Scott Moser Mon, 16 Jul 2012 16:49:55 -0400 + +cloud-init (0.7.0~bzr604-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * add cc_write_file for injecting files via cloud-config (LP: #1012854) + * fix issue with empty user data + * remove some un-needed warnings to console output in DataSourceOVF + * allow user-data scripts output through to the console + + -- Scott Moser Thu, 12 Jul 2012 16:11:01 -0400 + +cloud-init (0.7.0~bzr583-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + * debian/control: wrap-and-sort + * debian/control: actually depend on software-properties-common + * debian/control: depend on python-cheetah again instead of python-tempita + + -- Scott Moser Mon, 09 Jul 2012 17:41:22 -0400 + +cloud-init (0.7.0~bzr564-0ubuntu2) quantal; urgency=low + + * debian/control: Build-Depends on python-setuptools (LP: #1022101) + + -- Angel Abad Sat, 07 Jul 2012 18:43:05 +0200 + +cloud-init (0.7.0~bzr564-0ubuntu1) quantal; urgency=low + + * New upstream snapshot. + Thanks to Joshua Harlow for hard work. + * depend on software-properties-common rather than + python-software-properties (LP: #1021418) + + -- Scott Moser Fri, 06 Jul 2012 17:31:01 -0400 + +cloud-init (0.6.3-0ubuntu3) quantal; urgency=low + + * grub-legacy-ec2: add missing dependency on ucf (LP: #960336). + + -- Robie Basak Sun, 24 Jun 2012 05:10:13 +0100 + +cloud-init (0.6.3-0ubuntu2) quantal; urgency=high + + * Added -generic to Xen kernels list since -virtual has been dropped with + Quantal. (LP: #1005551) + + -- Ben Howard Tue, 29 May 2012 12:59:01 -0600 + +cloud-init (0.6.3-0ubuntu1) precise; urgency=low + + * New upstream release. + * improve chef examples for working configurations on 11.10 and 12.04 + [Lorin Hochstein] (LP: #960564) + * fix bug in landscape module if /etc/landscape did not exist + (LP: #978329) + + -- Scott Moser Wed, 11 Apr 2012 00:05:00 -0400 + +cloud-init (0.6.3~bzr554-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + * Fix bug in Chef support that required 'validation_cert' (LP: #960547) + * Provide user-friendly message when a user ssh's in with an invalid + locale (LP: #960547) + * Support reading a url reference to cloud-config from the kernel + command line. + + -- Scott Moser Thu, 05 Apr 2012 01:24:42 -0400 + +cloud-init (0.6.3~bzr551-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + * support running resize2fs in the background (default=off) (LP: #961226) + + -- Scott Moser Thu, 22 Mar 2012 14:33:59 -0400 + +cloud-init (0.6.3~bzr548-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + * If public-keys is a string, split it into multiple keys on newline + This specifically helps the MAAS data source, and should not negatively + affect others. + + -- Scott Moser Mon, 19 Mar 2012 13:50:50 -0400 + +cloud-init (0.6.3~bzr547-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + * rename DataSourceMaaS to DataSourceMAAS. + * support public-keys in DataSourceMAAS + * Warn in user-data processing on non-multipart, non-handled data + * CloudStack data source added (not enabled by default) + * fix bug in cloud-init.postinst where the name used was wrong + causing config-apt-pipelining to run more than intended + + -- Scott Moser Fri, 16 Mar 2012 14:12:38 -0400 + +cloud-init (0.6.3~bzr539-0ubuntu3) precise; urgency=low + + * make maas config file only readable by root (LP: #954721) + + -- Scott Moser Wed, 14 Mar 2012 01:19:32 -0400 + +cloud-init (0.6.3~bzr539-0ubuntu2) precise; urgency=low + + [Cosmin Luta] + * add dependency on python-oauth (LP: #953915) + + -- Scott Moser Tue, 13 Mar 2012 11:36:11 -0400 + +cloud-init (0.6.3~bzr539-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + * add ability to configure Acquire::http::Pipeline-Depth via + cloud-config setting 'apt_pipelining' (LP: #942061) + * if cloud-config settings removed default certificats + (remove-defaults), then seed package ca-certificates to not + install new ones on upgrade. + * run-parts now uses internal implementation rather than + separate command. + * add MaaS datasource (LP: #942061) + * debian/cloud-init.postinst: address population of apt_pipeline + setting on installation. + * debian/cloud-init.postinst: support configuring cloud-init + maas datasource via preseed values cloud-init/maas-metadata-url and + cloud-init/maas-credentials. (LP: #942061) + * debian/cloud-init.postinst: support for (LP: #924375) + + -- Scott Moser Fri, 09 Mar 2012 16:37:01 -0500 + +cloud-init (0.6.3~bzr530-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + - fix DataSourceNoCloud seeded from local or cmdline (LP: #942695) + - change 'islxc' to 'iscontainer' and use 'running-in-container' utility + from upstart rather than 'lxc-is-container' (LP: #941955) + - Do not fail on bad part handlers, instead catch error and log + + -- Scott Moser Tue, 28 Feb 2012 19:15:19 -0500 + +cloud-init (0.6.3~bzr527-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + - exit 0 in cloud-init if no metadata is found (nothing to do) + - documentation improvements + - support network config in DataSourceNoCloud + + -- Scott Moser Fri, 17 Feb 2012 17:11:50 -0500 + +cloud-init (0.6.3~bzr519-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + - [Mike Milner] add support for managing CA Certificates (LP: #915232) + - in ci-info lines, use '.' to for empty field for easier machine reading + - support empty lines in "#include" files (LP: #923043) + - [Jef Baeur] support configuration of salt minions Bauer) (LP: #927795) + - DataSourceOVF: only search for OVF data on ISO9660 filesystems (LP: #898373) + - DataSourceConfigDrive: support getting data from openstack config drive + (LP: #857378) + - [Juerg Haefliger] formating and pylint cleanups + * increase timeouts for initial config check for metadata service + to address slow metadata service in openstack + * add awareness of ConfigDrive data source + + -- Scott Moser Thu, 16 Feb 2012 17:27:05 -0500 + +cloud-init (0.6.3~bzr502-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + - [Mike Milner] add test case framework (LP: #890851) + - [Juerg Haefliger] fix pylint warnings (LP: #914739) + - fix regression where ec2 mirrors were not selected (LP: #915282) + + -- Scott Moser Thu, 12 Jan 2012 17:56:52 +0100 + +cloud-init (0.6.3~bzr497-0ubuntu1) precise; urgency=low + + * New upstream snapshot. + - cloud-config support for configuring apt-proxy + - selection of local mirror based on presense of 'ubuntu-mirror' dns + entry in local domain. (LP: #897688) + - DataSourceEc2: more resilliant to slow metadata service (LP: #894279) + - close stdin in all programs launched by cloud-init (LP: #903993) + - revert management of /etc/hosts to 0.6.1 style (LP: #890501, LP: #871966) + - write full ssh keys to console for easy machine consumption (LP: #893400) + - put INSTANCE_ID environment variable in bootcmd scripts + - add 'cloud-init-per' script for easily running things with a given freq + (this replaced cloud-init-run-module) + - support configuration of landscape-client via cloud-config (LP: #857366) + - part-handlers now get base64 decoded content rather than 2xbase64 encoded + in the payload parameter. (LP: #874342) + + -- Scott Moser Thu, 22 Dec 2011 04:07:38 -0500 + +cloud-init (0.6.2-0ubuntu2) precise; urgency=low + + * Build using dh_python2. LP: #904248. + * debian/rules: Explicitly set DEB_PYTHON2_MODULE_PACKAGES = cloud-init. + + -- Matthias Klose Sat, 17 Dec 2011 21:08:23 +0000 + +cloud-init (0.6.2-0ubuntu1) precise; urgency=low + + * New upstream release + + -- Scott Moser Thu, 27 Oct 2011 23:05:15 -0400 + +cloud-init (0.6.1-0ubuntu20) oneiric; urgency=low + + * fix broken path if local-hostname was not in metadata (LP: #857380) + * redirect output of 'start networking' in 'cloud-init-nonet' to /dev/null + * include GPLv3 in source tree + + -- Scott Moser Fri, 23 Sep 2011 09:24:27 -0400 + +cloud-init (0.6.1-0ubuntu19) oneiric; urgency=low + + * If local-hostname is not in meta-data, attempt to look up hostname in + an alias in /etc/hosts. This will avoid setting domain portion of fqdn + to 'localdomain' in some cases (LP: #850206). + + -- Scott Moser Wed, 14 Sep 2011 15:15:00 -0400 + +cloud-init (0.6.1-0ubuntu18) oneiric; urgency=low + + * minor documentation improvement. + + [Mike Moulton, Avishai Ish-Shalom] + * Chef support fixes. support for environment and initial attr (LP: #845208) + + -- Scott Moser Tue, 13 Sep 2011 17:02:48 -0400 + +cloud-init (0.6.1-0ubuntu17) oneiric; urgency=low + + * fix issues with chef (LP: #845161) + * be more forgiving on metadata for public-keys (LP: #845155) + + -- Scott Moser Fri, 09 Sep 2011 14:19:03 -0700 + +cloud-init (0.6.1-0ubuntu16) oneiric; urgency=low + + * catch up with trunk at revision 439 + * warn on failure to set hostname (LP: #832175) + * properly wait for all static interfaces to be up before + cloud-init runs (depends on fix in LP:# 838968). + * in DataSources NoCloud and OVF, do not set hostname to the + static value 'ubuntuhost' if local-hostname is not in metadata + (LP: #838280) + * improve the way ssh_authorized_keys is updated, so that the + values given will be used. (LP: #434076, LP: #833499) + * cloud-init-notnet.conf: minor changes to config + + -- Scott Moser Thu, 01 Sep 2011 21:14:09 -0400 + +cloud-init (0.6.1-0ubuntu15) oneiric; urgency=low + + * catch up with trunk at revision 431 + * add network debug info to console when cloud-init runs (LP: #828186) + * fix issue where subprocesses (apt-add-repository) where given + the console and would attempt to prompt user and hang boot (LP: #831505) + * add awareness of ecdsa to cc_ssh + + -- Scott Moser Tue, 23 Aug 2011 00:01:01 -0400 + +cloud-init (0.6.1-0ubuntu14) oneiric; urgency=low + + * change the handling of user-data (LP: #810044) + * boothooks will now run more than once as they were intended + * cloud-config and user-scripts will be updated from user data every boot + * Add a second type of part-handler that will be called on every boot + * fix bad handling of /etc/hosts if manage_etc_hosts was false + + -- Scott Moser Mon, 08 Aug 2011 12:46:56 -0500 + +cloud-init (0.6.1-0ubuntu13) oneiric; urgency=low + + * do not install 92-uec-upgrade-available as a motd hook. This file was + installed but did not do anything since updates-check was removed. + * support multiple staticly configured network devices, as long as + all of them come up early (LP: #810044) + + [Marc Cluet] + * add support for passing mcollective keys via cloud-config + * add support for 'include-once' type. include-once urls are only + retrieved once-per-instance rather than on every boot. + + -- Scott Moser Mon, 01 Aug 2011 16:45:40 -0400 + +cloud-init (0.6.1-0ubuntu12) oneiric; urgency=low + + * do not give trace on failure to resize in lxc container (LP: #800856) + * increase the timeout on url gets for "seedfrom" values (LP: #812646) + * do not write entries for ephemeral0 on t1.micro (LP: #744019) + + [Adam Gandalman] + * improve the updating of /etc/hosts with correct fqdn when possible + (LP: #812539) + + [Avishai Ish-Shalom] + * add chef support (cloudinit/CloudConfig/cc_chef.py) (LP: #798844) + + -- Scott Moser Thu, 21 Jul 2011 05:51:03 -0400 + +cloud-init (0.6.1-0ubuntu11) oneiric; urgency=low + + [Marc Cluet] + * sanitize hosts file for system's hostname to 127.0.1.1 (LP: #802637) + + -- Scott Moser Thu, 30 Jun 2011 14:12:47 -0400 + +cloud-init (0.6.1-0ubuntu10) oneiric; urgency=low + + * sync with trunk (rev 405) + * fix cloud-init in ubuntu lxc containers (LP: #800824) + + -- Scott Moser Tue, 28 Jun 2011 06:42:45 -0400 + +cloud-init (0.6.1-0ubuntu9) oneiric; urgency=low + + * sync with trunk (rev 404) + * make metadata urls configurable, to support eucalyptus in + STATIC or SYSTEM modes (LP: #761847) + * support disabling byobu in cloud-config (LP: #797336) + * guarantee that ssh_config runs before sshd starts (LP: #781101) + * make prefix for keys added to /root/.ssh/authorized_keys configurable + and add 'no-port-forwarding,no-agent-forwarding,no-X11-forwarding' + to the default (LP: #798505) + * make 'cloud-config ready' command configurable (LP: #785551) + * make fstab fields used to 'fill in' shorthand mount entries configurable + (LP: #785542) + * read sshd_config to properly get path for authorized_keys (LP: #731849) + + -- Scott Moser Fri, 17 Jun 2011 12:18:34 -0400 + +cloud-init (0.6.1-0ubuntu8) natty; urgency=low + + * instead of including /boot/grub, create it in postinst + of grub-legacy-ec2. + + -- Scott Moser Fri, 15 Apr 2011 13:01:17 -0400 + +cloud-init (0.6.1-0ubuntu7) natty; urgency=low + + * grub-legacy-ec2: add /boot/grub directory so installation does + not depend on it already existing (LP: #759885) + + -- Scott Moser Wed, 13 Apr 2011 11:03:04 -0400 + +cloud-init (0.6.1-0ubuntu6) natty; urgency=low + + * avoid upgrade prompt for grub-pc when devices are named xvdX (LP: #752361) + * catchup to trunk cloud-init (rev 395) + + -- Scott Moser Wed, 06 Apr 2011 06:46:55 -0400 + +cloud-init (0.6.1-0ubuntu5) natty; urgency=low + + * fix --purge of grub-legacy-ec2 package (LP: #749444) + * catchup to trunk cloud-init (rev 394) + * support user-data formated in dos format by converting to unix for + user-scripts, boothooks, and upstart jobs (LP: #744965) + * removal of some debug code, minor documentation fix + + -- Scott Moser Mon, 04 Apr 2011 13:20:27 -0400 + +cloud-init (0.6.1-0ubuntu4) natty; urgency=low + + * catch up to trunk cloud-init (rev 389). + * fix bug in part-handler code, that broke part handlers (LP: #739694) + * fix sporadic resizefs failure (LP: #726938) + + -- Scott Moser Mon, 21 Mar 2011 22:06:59 -0400 + +cloud-init (0.6.1-0ubuntu3) natty; urgency=low + + * catch up to trunk cloud-init (rev 385). + * attempt to install packages on failed apt-get update (LP: #728167) + * enabled timezone and mcollective cloud-config plugins + + -- Scott Moser Fri, 04 Mar 2011 21:17:21 -0500 + +cloud-init (0.6.1-0ubuntu2) natty; urgency=low + + * grub-legacy-ec2: Use dpkg-query --control-path instead of hard-coding a + path to debconf templates file, for compatibility with multiarch. + + -- Scott Moser Tue, 01 Mar 2011 23:23:55 -0500 + +cloud-init (0.6.1-0ubuntu1) natty; urgency=low + + * New upstream release. + * fix for puppet configuration options (LP: #709946) [Ryan Lane] + * fix pickling of DataSource, which broke seeding. + * turn resize_rootfs default to True + * avoid mounts in DataSourceOVF if 'read' on device fails + 'mount /dev/sr0' for an empty virtual cdrom device was taking 18 seconds + * add 'manual_cache_clean' option to select manual cleaning of + the /var/lib/cloud/instance/ link, for a data source that might + not be present on every boot + * make DataSourceEc2 retries and timeout configurable + * add 'bootcmd' like 'runcmd' to cloud-config syntax for running things early + * move from '#opt_include' in config file format to conf_d. + now local config files should live in /etc/cloud/cloud.cfg.d/ + * move /etc/cloud/distro.cfg to /etc/cloud/cloud.cfg.d/90_dpkg.cfg + * allow /etc/hosts to be written from hosts.tmpl. which allows + getting local-hostname into /etc/hosts (LP: #720440) + * better handle startup if there is no eth0 (LP: #714807) + * update rather than append in puppet config [Marc Cluet] + * add cloud-config for mcollective [Marc Cluet] + + -- Scott Moser Sat, 19 Feb 2011 01:16:10 -0500 + +cloud-init (0.6.0-0ubuntu4) natty; urgency=low + + * fix running of user scripts (LP: #711480) (cherry pick 344) + * fix 2 lintian warnings + + -- Scott Moser Tue, 01 Feb 2011 16:15:30 -0500 + +cloud-init (0.6.0-0ubuntu3) natty; urgency=low + + * make a better attempt at deciding if DataSourceEc2 should be used + on first install or upgrade + * fix behavior if def_log_file is empty in cloud-config (cherry pick 333) + * improve comment strings in rsyslog config (cherry pick 334) + * do not package cloud-init query (cherry pick 335) + * add previous-instance-id and previous-datasource to cloud/data + and cloud/instance/datasource files (cherry pick 337) + * allow setting of passwords and enabling/disabling ssh password auth + via cloud-config (cherry pick 338) + + -- Scott Moser Mon, 31 Jan 2011 12:48:39 -0500 + +cloud-init (0.6.0-0ubuntu2) natty; urgency=low + + * add a debian/README.source file + * fix bug in fixing permission on /var/log/cloud-init.log (cherry pick) + * remove dependency on update-motd as updates-check was removed + * fix failure on cloud-init package purge + * add configuration of DataSources via debconf. Default to not searching + Ec2. (LP: #635188) + * fix naming of pre-processed (now user-data.txt.i) (cherry pick) + * upgrade existing content in /var/lib/cloud to 0.6.x format + + -- Scott Moser Thu, 27 Jan 2011 16:32:44 -0500 + +cloud-init (0.6.0-0ubuntu1) natty; urgency=low + + * New upstream release. + * fix permissions on cloud-init.log so syslog can write to it (LP: ##704509) + * rework of /var/lib/cloud layout + * remove updates-check (LP: #653220) + * support resizing root partition on first boot (enabled by default) + * added cloud-config options for setting hostname, phone_home + * indicate "all the way up" with message to console and file creation + in /var/lib/cloud/instance/ (LP: #653271) + * write ssh keys to console late in boot to ensure they're in console buffer + * add support for redirecting output of cloud-init, cloud-config, + cloud-final via the config file, or user data config file + * add support for posting data about the instance to a url (phone_home) + * add minimal OVF transport (iso) support + * make DataSources that are attempted dynamic and configurable from + config. config option 'cloud_type' replaced by 'datasource_list' + * add 'timezone' option to cloud-config (LP: #645458) + * Added an additional archive format, that can be used for multi-part + input to cloud-init. This may be more user friendly then mime-multipart + (LP: #641504) + * add support for reading Rightscale style user data (LP: #668400) + * make the message on 'disable_root' more clear (LP: #672417) + * do not require public key if private is given in ssh cloud-config + (LP: #648905) + + -- Scott Moser Wed, 26 Jan 2011 17:28:36 -0500 + +cloud-init (0.5.15-0ubuntu4) natty; urgency=low + + * Rebuild with python 2.7 as the python default. + + -- Matthias Klose Wed, 08 Dec 2010 15:01:36 +0000 + +cloud-init (0.5.15-0ubuntu3) maverick; urgency=low + + * do not use ec2 ubuntu archive if instance is VPC (LP: #615545) + + -- Scott Moser Thu, 16 Sep 2010 04:28:55 -0400 + +cloud-init (0.5.15-0ubuntu2) maverick; urgency=low + + * grub-legacy-ec2: boot with console=hvc0 (LP: #606373) + + -- Scott Moser Wed, 15 Sep 2010 16:41:48 -0400 + +cloud-init (0.5.15-0ubuntu1) maverick; urgency=low + + * New upstream release. + * fix /etc/fstab cloudconfig entries for t1.micro and + change default fstab values for ephemeral0 to nobootwait (LP: #634102) + * grub-legacy-ec2: do not write chainload for grub2 to menu.lst + (LP: #627451) + * seed grub-pc correctly so update-grub runs on ec2 or uec(LP: #623609) + + -- Scott Moser Sun, 12 Sep 2010 15:23:39 -0400 + +cloud-init (0.5.14-0ubuntu5) maverick; urgency=low + + * add missing imports for cc_puppet (LP: #632744) + * append to apt_sources files rather than truncating (LP: #627597) + * get double commented lines into sources.list (LP: #627439) + + -- Scott Moser Wed, 08 Sep 2010 10:31:58 -0400 + +cloud-init (0.5.14-0ubuntu4) maverick; urgency=low + + * add commented out entries for partner, backports, and multiverse + (LP: #620572) + + -- Scott Moser Thu, 26 Aug 2010 16:44:48 -0400 + +cloud-init (0.5.14-0ubuntu3) maverick; urgency=low + + * fix syntax error in cloudinit/util.py (failed installation) + + -- Scott Moser Tue, 17 Aug 2010 22:22:06 -0400 + +cloud-init (0.5.14-0ubuntu2) maverick; urgency=low + + * fix bug preventing 'seedfrom' from working (LP:617400) + + -- Scott Moser Tue, 17 Aug 2010 15:49:13 -0400 + +cloud-init (0.5.14-0ubuntu1) maverick; urgency=low + + * New upstream release. + - support for reading metadata and userdata from filesystem + - support for boot without metadata at all + + -- Scott Moser Thu, 12 Aug 2010 14:45:28 -0400 + +cloud-init (0.5.13-0ubuntu3) maverick; urgency=low + + * grub-legacy-ec2: fix 'apt-get --reinstall' and dpkg-divert (LP: #611812) + * enable -virtual kernels as "xen" kernels (pv_ops now functional) + * fix bad syntax in cloud-init-run-module.py + + -- Scott Moser Mon, 02 Aug 2010 16:26:48 -0400 + +cloud-init (0.5.13-0ubuntu2) maverick; urgency=low + + * debian/control: drop ssh-import as a recommends, as this has been + subsumed by openssh-server + + -- Dustin Kirkland Sat, 24 Jul 2010 21:02:40 +0200 + +cloud-init (0.5.13-0ubuntu1) maverick; urgency=low + + * New upstream release. + * invoke dpkg with --force-confold (LP: #607642) + + -- Scott Moser Wed, 21 Jul 2010 11:58:53 -0400 + +cloud-init (0.5.12-0ubuntu8) maverick; urgency=low + + * update-grub-legacy-ec2: + - add code to stop use of 'uuid' grub syntax + - change fallback grub device from (hd0,0) to (hd0) + - change timeout in menu.lst to 0 + * grub-legacy-ec2: add grub-set-default functionality (LP: #605961) + + -- Scott Moser Thu, 15 Jul 2010 13:07:01 -0400 + +cloud-init (0.5.12-0ubuntu7) maverick; urgency=low + + * update-grub-legacy-ec2: + - force setting of indomU so output of build process has + a menu.lst with -ec2 kernels listed. + - remove 'quite splash' from kernel options + - make sure grub_root_device is set to hd0 in image build + + -- Scott Moser Tue, 13 Jul 2010 16:33:51 -0400 + +cloud-init (0.5.12-0ubuntu6) maverick; urgency=low + + * fix installation error + * add quilt-setup rule for package development + + -- Scott Moser Tue, 13 Jul 2010 12:04:21 -0400 + +cloud-init (0.5.12-0ubuntu5) maverick; urgency=low + + * sync with upstream r226. + * fix bug where nfs/network mounts could not be specified (LP: #603329) + * manage hostname setting better (LP: #596993) + * add legacy-grub-ec2 package. + + -- Scott Moser Thu, 08 Jul 2010 22:24:59 -0400 + +cloud-init (0.5.12-0ubuntu4) maverick; urgency=low + + * handle hostname managing better with ebs root. (LP: #596993) + + -- Scott Moser Wed, 07 Jul 2010 11:54:10 -0400 + +cloud-init (0.5.12-0ubuntu3) maverick; urgency=low + + * fix cloud-boothook input type (LP: #600799) + * sync with upstream. + + -- Scott Moser Thu, 01 Jul 2010 21:19:13 -0400 + +cloud-init (0.5.12-0ubuntu2) maverick; urgency=low + + * fix cloud config 'apt-update-upgrade' failure due to missing import + + -- Scott Moser Mon, 21 Jun 2010 15:08:32 -0400 + +cloud-init (0.5.12-0ubuntu1) maverick; urgency=low + + * New upstream release. + * fix cloud-init-run-module to allow 'always' (LP: #568139) + * add support for setting debconf selections + * add cloud-config support for debconf selections (LP: #582667), + byobu enablement, and ssh-import-lp-id + + -- Scott Moser Fri, 18 Jun 2010 15:48:14 -0400 + +cloud-init (0.5.11-0ubuntu2) maverick; urgency=low + + * handle renaming sem/markers for config items to avoid + running per-instance again after package upgrade + * pull 'config-' prefix on sem/ items for cloud-config modules from + 0.5.12 + + -- Scott Moser Fri, 18 Jun 2010 12:52:10 -0400 + +cloud-init (0.5.11-0ubuntu1) maverick; urgency=low + + * New upstream release. + * remove ec2-get-info. It is replaced by cloudutils ec2metadata + * use python logging + * reduce number of upstart jobs + * add "boothook" user data type + * Switch to dpkg-source 3.0 (quilt) format + + -- Scott Moser Fri, 18 Jun 2010 01:04:58 -0400 + +cloud-init (0.5.10-0ubuntu1) lucid; urgency=low + + * New upstream release. + * ec2-get-info: fix for python traceback + * ephemeral mount will show up in /etc/mtab or df on first boot + LP: #527825 + + -- Scott Moser Fri, 26 Mar 2010 00:57:28 -0400 + +cloud-init (0.5.9-0ubuntu1) lucid; urgency=low + + * New upstream release. + * rename apt list files. 'ubuntu-bug' now works without update (LP: #513060) + * replace 'cloudconfig' entries in fstab rather than appending (LP: #524562) + * fix to fstab writing on ebs-root instances + + -- Scott Moser Mon, 08 Mar 2010 13:07:02 -0500 + +cloud-init (0.5.8-0ubuntu1) lucid; urgency=low + + * New upstream release. + * cache data from metadata service, LP: #527364 + * fix format of cron entry in cron.d/cloudinit-updates + * package egg-info file + + -- Scott Moser Tue, 02 Mar 2010 15:48:04 -0500 + +cloud-init (0.5.7-0ubuntu4) lucid; urgency=low + + * fix empty package previous package was emptpy for cloud-init + due to adding the ec2-init package + + -- Scott Moser Fri, 26 Feb 2010 17:06:05 -0500 + +cloud-init (0.5.7-0ubuntu3) lucid; urgency=low + + * debian/control: + - recommend ssh-import, such that the ssh-import-lp-id + utility is available in UEC images for convenient importing of + ssh public keys stored in Launchpad, LP: #524101 + - build a transitional ec2-init package to handle the rename + gracefully on upgrades, LP: #527187 + + -- Dustin Kirkland Thu, 25 Feb 2010 16:22:10 -0600 + +cloud-init (0.5.7-0ubuntu2) lucid; urgency=low + + * fix packaging but that put the message-of-the-day hook file + into a subdir of etc/update-motd.d, remove old file (LP: #524999) + + -- Scott Moser Fri, 19 Feb 2010 21:02:10 -0500 + +cloud-init (0.5.7-0ubuntu1) lucid; urgency=low + + * New upstream release. + * run cloud-init early in boot process (LP: #504883, #524516) + + -- Scott Moser Fri, 19 Feb 2010 18:27:45 -0500 + +cloud-init (0.5.6-0ubuntu1) lucid; urgency=low + + * New upstream release. + * supports 'runcmd' in cloud-config + * enable the update check code (LP: #524258) + * fix retry_url in boto_utils.py when metadata service not around + (LP: #523832) + * run cloud-config-puppet.conf later (LP: #523625) + [ Scott Moser 0.5.5 ] + * New upstream release, supports checking for updates + + -- Scott Moser Fri, 19 Feb 2010 03:13:22 -0500 + +cloud-init (0.5.4-0ubuntu1) lucid; urgency=low + + * New upstream release. + * fix broken user-data scripts + * merge mathiaz work for cloud-config-puppet + * fix bug causing apt update to fail + * rename EC2Init class to CloudInit + * only set hostname once per instance. (LP: #514492) + + -- Scott Moser Wed, 17 Feb 2010 09:40:30 -0500 + +cloud-init (0.5.3-0ubuntu2) lucid; urgency=low + + * divert ureadahead.conf in postinst (LP: #499520) + * lintian cleanups + + -- Scott Moser Fri, 05 Feb 2010 15:48:21 -0500 + +cloud-init (0.5.3-0ubuntu1) lucid; urgency=low + + * Rename ec2-init to cloud-init. New upstream release. + * set hostname to ip-u.x.y.z if local-hostname provides a ip addr + (LP: #475354) + + -- Scott Moser Thu, 04 Feb 2010 03:00:05 -0500 + +ec2-init (0.5.2-0ubuntu1) lucid; urgency=low + + * new upstream release + + -- Scott Moser Fri, 29 Jan 2010 13:30:52 -0500 + +ec2-init (0.5.1-0ubuntu1) lucid; urgency=low + + * new upstream release + + -- Scott Moser Fri, 22 Jan 2010 16:19:30 -0500 + +ec2-init (0.5.0-0ubuntu4) lucid; urgency=low + + * add an upstart job to get ssh keys regenerated and written + to console (LP: #506599, LP: #507070) + + -- Scott Moser Thu, 14 Jan 2010 13:10:55 -0500 + +ec2-init (0.5.0-0ubuntu3) lucid; urgency=low + + * work around difference in uec/ec2 metadata service (LP:506332) + + -- Scott Moser Tue, 12 Jan 2010 11:33:11 -0500 + +ec2-init (0.5.0-0ubuntu2) lucid; urgency=low + + * pull changes from devel branch to get functional on ec2 + + -- Scott Moser Mon, 11 Jan 2010 12:03:45 -0500 + +ec2-init (0.5.0-0ubuntu2) lucid; urgency=low + + * new upstream release + + -- Scott Moser Thu, 07 Jan 2010 22:00:38 -0500 + +ec2-init (0.4.999-0ubuntu8) lucid; urgency=low + + * fix mirror selection for us-west-1 (LP: #494185) + + -- Scott Moser Fri, 11 Dec 2009 15:12:19 -0500 + +ec2-init (0.4.999-0ubuntu7) karmic; urgency=low + + * work around differences in eucalyptus ephemeral mounts (LP: #458850) + * get 'ec2:' prefix on ssh public key fingerprint (LP: #458576) + + -- Scott Moser Mon, 26 Oct 2009 16:18:06 -0400 + +ec2-init (0.4.999-0ubuntu6) karmic; urgency=low + + * make sources.list components for 'karmic-security' the same as + 'karmic' and 'karmic-updates' (main, restricted) (LP: #457866) + + -- Scott Moser Thu, 22 Oct 2009 08:55:58 -0400 + +ec2-init (0.4.999-0ubuntu5) karmic; urgency=low + + * write regenerate_ssh_host_keys output directly to /dev/console + to ensure that it gets there. (LP: #451881) + + -- Scott Moser Wed, 21 Oct 2009 17:23:38 -0400 + +ec2-init (0.4.999-0ubuntu4) karmic; urgency=low + + * set locale to en_US.UTF-8 if get_location_from_availability_zone + doesn't have a match (LP: #407949) + + -- Scott Moser Tue, 20 Oct 2009 09:57:49 -0400 + +ec2-init (0.4.999-0ubuntu3) karmic; urgency=low + + * split running of user-data out of ec2-init into ec2-init-user-data + run this at S99. (LP : #431255) + + -- Scott Moser Fri, 25 Sep 2009 14:17:17 -0400 + +ec2-init (0.4.999-0ubuntu2) karmic; urgency=low + + * remove rightscale-init from package (see LP: #434181, LP: #434693) + * fix lintian warning, specify path to GPL-3 + * replace multiple '| logger' in regenerate_ssh_host_keys single one + * add ec2-is-compat-env, and disable init script by default. it can be + enabled by setting 'compat=1' in /etc/ec2-init/is-compat-env + + -- Scott Moser Thu, 24 Sep 2009 16:32:42 -0400 + +ec2-init (0.4.999-0ubuntu1) karmic; urgency=low + + * New upstream release + + -- Soren Hansen Wed, 26 Aug 2009 01:23:52 +0200 + +ec2-init (0.4.99-0ubuntu3) karmic; urgency=low + + * Also update /etc/default/locale when setting the locale based on + locality. + + -- Soren Hansen Tue, 11 Aug 2009 21:49:33 +0200 + +ec2-init (0.4.99-0ubuntu2) karmic; urgency=low + + * Consolidate build-dependencies a bit. + * Sync default configuration with code. + * Create /var/lib/ec2 in package. + * Make ec2-get-info more robust in testing environments. + * Handle missing public keys more gracefully. + * Set proper ownership of user's authorized_keys. + + -- Soren Hansen Tue, 11 Aug 2009 09:54:16 +0200 + +ec2-init (0.4.99-0ubuntu1) karmic; urgency=low + + * Massive rewrite. (LP: #407871, #407919, #308530, #407949, #407950, #407892 + and probably many others) + * First Ubuntu version with the upstream tarball split out. + * Switch to arch: all. There is no arch specific code here. + + -- Soren Hansen Tue, 11 Aug 2009 08:33:33 +0200 + +ec2-init (0.3.4ubuntu9) karmic; urgency=low + + * Really include the action id in the semaphore filename. + + -- Soren Hansen Sat, 11 Jul 2009 09:50:31 +0200 + +ec2-init (0.3.4ubuntu8) karmic; urgency=low + + * Add Vcs-Bzr header to debian/control. + * Include the action id in the semaphore filename. + + -- Soren Hansen Sat, 11 Jul 2009 02:35:43 +0200 + +ec2-init (0.3.4ubuntu7) karmic; urgency=low + + * Re-add accidentally removed locale template. + * Fix indentation in init script. + + -- Soren Hansen Fri, 10 Jul 2009 23:47:27 +0200 + +ec2-init (0.3.4ubuntu6) karmic; urgency=low + + * Replace calls to ec2-get-data with calls to ec2-get-info. + * Make this package arch: all. + + -- Soren Hansen Fri, 10 Jul 2009 23:16:35 +0200 + +ec2-init (0.3.4ubuntu5) karmic; urgency=low + + * debian/init: Move instance reboot detection out of python + scripts and move them to the init script. + * debian/ec2-set-defaults.py: + - Point to the right location for locate (LP: #387611) + - Default to UTC (LP: #341060) + * debian/ec2-set-apt-sources.py: If you cant contact EC2 then use the + regular archive (LP: #387027) + * debian/ec2-setup-hostname.py: Use the local hostname in /etc/hosts + and dont change once rebooted. (LP: #352745) + + -- Chuck Short Wed, 08 Jul 2009 09:48:49 -0400 + +ec2-init (0.3.4ubuntu4) karmic; urgency=low + + * debian/init: Run update-motd regardless whether its a firstboot or not. + * debian/init: Fix comments (LP: #373057) + * debian/control: Add update-motd as a depends. + * ec2-set-defaults.py: Wait for network to become available. (LP: #308530) + + -- Chuck Short Thu, 28 May 2009 05:04:31 -0400 + +ec2-init (0.3.4ubuntu3) karmic; urgency=low + + * debian/init: Move init script to run before ssh and regenerate the ssh + host kes in the init script rather than /etc/rc.local (LP: #370628) + * ec2-set-apt-sources.py: + - Move sources.list to /var/ec2 so it doesnt get removed after user + reboots. + * ec2-set-defaults.py: + - Move locale to /var/ec2/ so it doesnt get remove after user reboots. + * ec2-set-hostname.py + - Create an /etc/hostname as well. + + -- Chuck Short Thu, 14 May 2009 11:11:49 -0400 + +ec2-init (0.3.4ubuntu2) karmic; urgency=low + + * Really change the locale when setting up an instance. (LP: #341066) + * Run ec2-run-user-data script last. (LP: #373055) + * Minor comment tweaks. (LP: #373057) + + -- Chuck Short Wed, 13 May 2009 13:41:35 -0400 + +ec2-init (0.3.4ubuntu1) karmic; urgency=low + + * Add more smarts to ec2 instance bring up. (LP: #371936) + + -- Chuck Short Tue, 05 May 2009 08:59:54 -0400 + +ec2-init (0.3.3ubuntu12) jaunty; urgency=low + + * ec2-run-user-data.py: Fix error. + + -- Chuck Short Tue, 07 Apr 2009 08:14:07 -0400 + +ec2-init (0.3.3ubuntu11) jaunty; urgency=low + + * debian/control: + - Add python-cheetah and python-apt as a dependency. + * debian/ec2-config.cfg: + - Remove distro due to the change in ec2-set-apt-sources.py + * debian/inistall + - Install the templates in the right place. + * ec2-set-apt-sources.py: + - Use python-apt to update the sources.list. + + -- Chuck Short Wed, 01 Apr 2009 13:58:43 -0400 + +ec2-init (0.3.3ubuntu10) jaunty; urgency=low + + * ec2-set-hostname.py: + - Use template for /etc/hosts creation. + - Dont use public_hostname in /etc/hosts. (LP: #352745) + + -- Chuck Short Wed, 01 Apr 2009 08:48:05 -0400 + +ec2-init (0.3.3ubuntu9) jaunty; urgency=low + + * ec2-set-apt-sources.py: + - Use a template to generate the sources.list and generate it based on the lsb_release. + + -- Chuck Short Tue, 31 Mar 2009 15:15:55 -0400 + +ec2-init (0.3.3ubuntu8) jaunty; urgency=low + + * ec2-set-apt-sources.py: + - Add the ubuntu-on-ec2 ppa. + + -- Chuck Short Tue, 31 Mar 2009 09:37:13 -0400 + +ec2-init (0.3.3ubuntu7) jaunty; urgency=low + + * debian/rules: Fix typo. + + -- Chuck Short Sun, 22 Mar 2009 17:14:16 -0400 + +ec2-init (0.3.3ubuntu6) jaunty; urgency=low + + * Set the configuration file to jaunty. + * ec2-fetch-credentials: Fix typo. + * ec2-set-defaults.py: + - Remove timezone change when booting the instance. + - Redirect output to /dev/null. + * ec2-set-apt-sources.py: + - Run apt-get update after the /etc/apt/sources.list and + redirect the output to /dev/null. + * rightscale-init: Updated rightscale-init + + -- Chuck Short Thu, 19 Mar 2009 20:52:59 -0400 + +ec2-init (0.3.3ubuntu5) jaunty; urgency=low + + * debian/ec2-config.cfg: + - Add disable root option. + * debian/ec2-init.rightscale-init.init: + - Add rightscale detection script. + * ec2-get-info.py: + - Display the information about an AMI instance. + + -- Chuck Short Mon, 16 Mar 2009 08:54:49 -0400 + +ec2-init (0.3.3ubuntu4) jaunty; urgency=low + + * ec2-fetch-credentials.py: + - Allow user to choose which user they wish to configure for. + - Allow user to disable root user if they wish to. + * ec2-set-defaults.py: + - Set default timezone to UTC. + - Set locale depending on zone. + * debian/init: + - Removed nash plugin. + - Add ec2-set-defaults. + + -- Chuck Short Wed, 04 Mar 2009 08:33:01 -0500 + +ec2-init (0.3.3ubuntu3~intrepid4) intrepid; urgency=low + + * set distro to intrepid. + + -- Chuck Short Thu, 26 Feb 2009 10:28:06 -0500 + +ec2-init (0.3.3ubuntu3) jaunty; urgency=low + + * debian/ec2-init: Log results of ec2-run-user-data to syslog. + * ec2-run-user-data.py :Dont leave files around and log the + output to syslog. + + -- Chuck Short Thu, 26 Feb 2009 10:24:35 -0500 + +ec2-init (0.3.3ubuntu2) jaunty; urgency=low + + * ec2-set-apt-sources.py: + - Use the ec2 mirrors. (LP: #317065, #333897) + - Update the /etc/apt/sources.list (LP: #333904) + * ec2-fetch-credentials.py: + - Better error checking (LP: #325067) + + -- Chuck Short Tue, 24 Feb 2009 14:02:37 -0500 + +ec2-init (0.3.3ubuntu1) jaunty; urgency=low + + * debian/init: Fix init script. + + -- Chuck Short Fri, 20 Feb 2009 09:22:54 -0500 + +ec2-init (0.3.3) jaunty; urgency=low + + * ec2-set-apt-sources.py + - Determine the zone that the user is in and generate + a /etc/apt/sources.list.d/ based on that. + * debian/init: + - Check to see if there is an /var/run/ec2 and create + it if it doesnt exist. + - Start ec2-set-apt-sources at first bootup. + * debian/rules: + - Install ec2-set-apt-sources. + * debian/control: + - Add python-configobj as a dependency. + * debian/{install,dirs} + - Create an /etc/ec2-init to read the configuration file and install it. + + -- Chuck Short Mon, 09 Feb 2009 10:35:56 -0500 + +ec2-init (0.3.2) jaunty; urgency=low + + * debian/init: + - Remove already ran detection + - Log the running of ec2-run-user-data to /var/log/ec2-user-data.log + * ec2-set-hostname.py: + - set hostname to the Ec2 local-hostname + - Update the /etc/hosts to change the ubuntu hostname to the + public hostname. + * ec2-fetch-credentials: + - Copy the ssh keys to the ubuntu user. + - Setup authorized keys for root to tell the user to login as the + ubuntu user when they try to connect. + * ec2-run-user-data: + - Create an .already-ran file to check to see if ec2-run-user-data + already ran. + - Save the ec2-run-user-data script in /var/ec2. + + -- Chuck Short Wed, 04 Feb 2009 09:32:08 -0500 + +ec2-init (0.3.1) jaunty; urgency=low + + * debian/dir: Install /var/ec2 to save user-data scripts. + * debian/rules: Start ec2-init after ssh. + * ec2-run-user-data.py: Save run-user-data script with ami-id. + + -- Chuck Short Mon, 26 Jan 2009 10:40:52 -0500 + +ec2-init (0.3) jaunty; urgency=low + + * ec2-run-user-data: Fix python error when writing a file to the disk. + + -- Chuck Short Thu, 15 Jan 2009 11:49:08 -0500 + +ec2-init (0.2) jaunty; urgency=low + + * debian/init: Run fetch-credentials before anything else. + (LP: #308533) + * Add ec2-set-hostname.py: Queries ec2 metdada for public-hostname + and then sets it (LP: #316201) + + -- Chuck Short Tue, 13 Jan 2009 15:20:21 -0500 + +ec2-init (0.1) intrepid; urgency=low + + * Initial release (LP: #269434). + + -- Soren Hansen Fri, 12 Sep 2008 15:30:32 +0200 diff --git a/debian/cherry-pick b/debian/cherry-pick new file mode 100755 index 00000000000..0a5cea39b34 --- /dev/null +++ b/debian/cherry-pick @@ -0,0 +1,197 @@ +#!/bin/bash + +VERBOSITY=0 +TEMP_D="" +CR=$'\n' + +error() { echo "$@" 1>&2; } +fail() { [ $# -eq 0 ] || error "$@"; exit 1; } + +Usage() { + cat <> + + Cherry pick a patch into debian/patches. + Useful to grab an upstream commit to the current packaging branch. + + options: + -h | --help show help +EOF +} + +bad_Usage() { Usage 1>&2; [ $# -eq 0 ] || error "$@"; return 1; } +cleanup() { + [ -z "${TEMP_D}" -o ! -d "${TEMP_D}" ] || rm -Rf "${TEMP_D}" +} + +debug() { + local level=${1}; shift; + [ "${level}" -gt "${VERBOSITY}" ] && return + error "${@}" +} + +shorten() { + local name="$1" len="70" + while [ "${#name}" -gt "$len" ]; do + name="${name%-*}" + done + _RET="$name" +} + +print_commit() { + local subject="$1" author="$2" bugs="$3" aname="" + aname=${author% <*} + echo "$subject${bugs:+ (LP: ${bugs})}" +} + +print_bugs() { + local subject="$1" author="$2" bugs="$3" aname="" + echo "$bugs" +} + +git_log_to_dch() { + # call printer with subject, author and bugs as extracted + # from either git format-patch output or git show output. + local line="" commit="" lcommit="" bugs="" + local printer="${1:-print_commit}" + while :; do + read line || break + case "$line" in + commit\ *|From\ *) + if [ -n "$commit" ]; then + "$printer" "$subject" "$author" "$bugs" + fi + commit=${line#* } + commit=${commit%% *} + bugs="" + author="" + subject="" + ;; + Author:\ *|From:\ *) author="${line#*: }";; + LP:*) bugs="${bugs:+${bugs}, }${line#*: }";; + "") [ -z "$subject" ] && read subject;; + Subject:\ *) + subject="${line#Subject: }" + subject="${subject#\[PATCH\] }" + ;; + esac + done + if [ -n "$commit" ]; then + "$printer" "$subject" "$author" "$bugs" + fi +} + +main() { + local short_opts="ho:v" + local long_opts="help,verbose" + local getopt_out="" + getopt_out=$(getopt --name "${0##*/}" \ + --options "${short_opts}" --long "${long_opts}" -- "$@") && + eval set -- "${getopt_out}" || + { bad_Usage; return; } + + local cur="" next="" + + while [ $# -ne 0 ]; do + cur="$1"; next="$2"; + case "$cur" in + -h|--help) Usage ; exit 0;; + -v|--verbose) VERBOSITY=$((${VERBOSITY}+1));; + --) shift; break;; + esac + shift; + done + + [ -n "$TEMP_D" ] || + TEMP_D=$(mktemp -d "${TMPDIR:-/tmp}/${0##*/}.XXXXXX") || + { error "failed to make tempdir"; return 1; } + trap cleanup EXIT + + [ $# -gt 0 ] || { bad_Usage "must provide commit-ish"; return; } + + local r="" commit_in="$1" chash="" shash="" sname="" fname="" cur_br="" + cur_br=$(git rev-parse --abbrev-ref HEAD) || + { error "failed to get current branch"; return 1; } + chash=$(git show --quiet "--pretty=format:%H" "${commit_in}") || + { error "failed git show $commit_in"; return 1; } + + if git merge-base --is-ancestor "$chash" HEAD; then + error "current branch '$cur_br' already contains $commit_in ($chash)" + return 1 + fi + + out=$(git show --quiet "--pretty=format:%h %f" "$chash") || + { error "failed git show $chash"; return 1; } + + shash=${out% *} + sname=${out#* } + longname="cpick-$shash-$sname" + shorten "$longname" + fname="$_RET" + + [ -d debian/patches ] || mkdir -p debian/patches || + { error "failed to make debian/patches"; return 1; } + + local series="debian/patches/series" fpath="debian/patches/$fname" + if [ -e "$series" ] && out=$(grep -- "-${shash}-" "$series"); then + error "$chash already exists in $series" + error " $out" + return 1 + fi + + if [ -e "$series" ]; then + if out=$(quilt applied 2>&1); then + error "there are quilt patches applied!" + error "$out" + return 1 + fi + fi + + git format-patch --stdout -1 "$chash" > "$fpath" || + { error "failed git format-patch -1 $chash > $fpath"; return 1; } + + echo "$fname" >> "$series" || + { error "failed to write to $series"; return 1; } + + quilt push "$fname" || + { error "patches do not cleanly apply"; return 1; } + quilt refresh && quilt pop -a || + { error "failed to refresh or pop quilt"; return 1; } + + local message="" + message=$(git_log_to_dch < "$fpath") || + { error "failed getting log entry from $fpath"; return 1; } + dch -i "cherry-pick $shash: $message" + + dch -e || { + r=$?; + error "dch -e exited $r"; + return $r; + } + + local commit_files="" + commit_files=( "$series" "$fpath" ) + git diff HEAD "${commit_files[@]}" + + echo -n "Commit this change? (Y/n): " + read answer || fail "failed to read answer" + case "$answer" in + n|[Nn][oO]) exit 1;; + esac + + bugs=$(git_log_to_dch print_bugs < "$fpath") + msg="cherry pick $shash${bugs:+${CR}${CR}LP: ${bugs}}" + git add "$series" "$fpath" || + { error "failed to git add $series $fpath"; return 1; } + + git commit -m "$msg" "${commit_files[@]}" || + fail "failed to commit '$msg'" + + git commit -m "update changelog" debian/changelog || + fail "failed to commit update to debian changelog." + + return 0 +} + +main "$@" +# vi: ts=4 expandtab diff --git a/debian/clean b/debian/clean new file mode 100644 index 00000000000..de33a5f4410 --- /dev/null +++ b/debian/clean @@ -0,0 +1,2 @@ +.pytest_cache/ +cloud_init.egg-info/ diff --git a/debian/cloud-init.config b/debian/cloud-init.config new file mode 100644 index 00000000000..abaefbbb6a9 --- /dev/null +++ b/debian/cloud-init.config @@ -0,0 +1,79 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +hasEc2Md() { + local d=/var/lib/cloud i=/var/lib/cloud/instance/ f="" + local flist="${i}/datasource ${i}/obj.pkl ${d}/cache/obj.pkl" + # search current instance data source information + for f in ${flist}; do + [ -f "${f}" ] || continue + grep -q DataSourceEc2 "${f}" 2>/dev/null && return 0 + done + + + # there was no data above found that would have been indicated + # by a upgrade. lets just see if we can't find the metadata + # service. if wget is not present (it is not 'essential') + # then we will quietly return 1 + local url="http://169.254.169.254/2009-04-04/meta-data/instance-id" + i="" + if command -v wget >/dev/null 2>&1; then + local tout="--connect-timeout 5 --read-timeout 5 --tries 1" + i=$(wget "${url}" ${tout} -O - 2>/dev/null) || : + elif command -v curl >/dev/null 2>&1; then + i=$(curl "${url}" --max-time 1) || : + fi + # if instance-id starts with 'i-' then in all likelyhood its good + [ "${i#i-}" != "${i}" ] && return 0 + return 1 +} + +get_yaml_list() { + # get_yaml_list(file, key, def): return a comma delimited list with the value + # for the yaml array defined in 'key' from 'file'. if not found , return 'def' + # only really supports 'key: [ en1, en2 ]' or 'key: [en1, en2]' formats. + local file="$1" key="$2" default="$3" + [ -f "$file" ] || return 1 + # strip all whitespace, delete lines not matching key:, + # strip key: and [] and replace ',' with ', ' + RET="$(sed -e "s/\s//g" -e "/^$key:/"'!'d \ + -e "s/$key:\[//" -e "s/]//" -e "s/,/, /g" "$file")" + [ -n "$RET" ] || RET="$default" +} + +# old_dpkg_cfg is very old file that is no longer read by cloud-init. +# it gets re-named to cloud.cfg.d/90_dpkg.cfg in the preinst. +dpkg_cfg="/etc/cloud/cloud.cfg.d/90_dpkg.cfg" +old_dpkg_cfg="/etc/cloud/distro.cfg" +if [ -f "${old_dpkg_cfg}" -a ! -f "$dpkg_cfg" ]; then + dpkg_cfg="${old_dpkg_cfg}" + echo "WARN: reading value from ${old_dpkg_cfg}" 1>&2 +fi +if [ -f "$dpkg_cfg" ]; then + if get_yaml_list "$dpkg_cfg" datasource_list NOTFOUND && + val="$RET" && [ "$val" != "NOTFOUND" ]; then + db_set cloud-init/datasources $val + else + echo "WARN: failed to read datasource_list from $dpkg_cfg" 1>&2 + fi +elif { db_fget cloud-init/datasources seen || : ; } && + [ "${RET}" = "false" ]; then + # this is the first time this we've run (installation or re-install after + # purge). try to determine if the Ec2 datasource is there. + # if it is, and Ec2 was not in the default list, then add it. + db_get cloud-init/datasources + def="${RET}" + case " ${def}," in + *\ Ec2,*) :;; + *) hasEc2Md && + db_set cloud-init/datasources "${def:+${def}, }Ec2";; + esac +fi + +db_input low cloud-init/datasources || true +db_go + +exit 0 diff --git a/debian/cloud-init.lintian-overrides b/debian/cloud-init.lintian-overrides new file mode 100644 index 00000000000..2176cba2d76 --- /dev/null +++ b/debian/cloud-init.lintian-overrides @@ -0,0 +1,7 @@ +# cloud-init.target should not be considered as unusual +cloud-init binary: systemd-service-file-refers-to-unusual-wantedby-target cloud-init.target [lib/systemd/system/cloud-config.service] +cloud-init binary: systemd-service-file-refers-to-unusual-wantedby-target cloud-init.target [lib/systemd/system/cloud-final.service] +cloud-init binary: systemd-service-file-refers-to-unusual-wantedby-target cloud-init.target [lib/systemd/system/cloud-init-local.service] +cloud-init binary: systemd-service-file-refers-to-unusual-wantedby-target cloud-init.target [lib/systemd/system/cloud-init.service] + +cloud-init binary: package-supports-alternative-init-but-no-init.d-script diff --git a/debian/cloud-init.logrotate b/debian/cloud-init.logrotate new file mode 100644 index 00000000000..a2835df061b --- /dev/null +++ b/debian/cloud-init.logrotate @@ -0,0 +1,11 @@ +/var/log/cloud-init*.log +{ + su root root + missingok + nocreate + notifempty + rotate 6 + compress + delaycompress + size 1M +} diff --git a/debian/cloud-init.maintscript b/debian/cloud-init.maintscript new file mode 100644 index 00000000000..9d331268321 --- /dev/null +++ b/debian/cloud-init.maintscript @@ -0,0 +1,10 @@ +rm_conffile /etc/init/cloud-config.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-final.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-init-blocknet.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-init-container.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-init-local.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-init-nonet.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-init.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/init/cloud-log-shutdown.conf 0.7.9-243-ge74d775-0ubuntu2~ +rm_conffile /etc/NetworkManager/dispatcher.d/hook-network-manager 23.3~4ga31370af-0ubuntu1~ +rm_conffile /etc/cloud/clean.d/README 24.1~4~ diff --git a/debian/cloud-init.manpages b/debian/cloud-init.manpages new file mode 100644 index 00000000000..605cfd67af3 --- /dev/null +++ b/debian/cloud-init.manpages @@ -0,0 +1,3 @@ +doc/man/cloud-id.1 +doc/man/cloud-init-per.1 +doc/man/cloud-init.1 diff --git a/debian/cloud-init.postinst b/debian/cloud-init.postinst new file mode 100644 index 00000000000..f33918a8149 --- /dev/null +++ b/debian/cloud-init.postinst @@ -0,0 +1,433 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +set -f # disable pathname expansion +db_capb escape # to support carriage return / multi-line values + +debug() { + [ "${_CI_UPGRADE_DEBUG:-0}" = "0" ] && return 0 + echo "$@" 1>&2 || : +} + +update_cfg() { + # takes filename, header, new object (in yaml), optionally 'remover' + # and merges new into existing object in filename, and then updates file + # remover a string that means "delete existing entry" + python3 -c ' +import sys, yaml + +def update(src, cand): + if not (isinstance(src, dict) and isinstance(cand, dict)): + return cand + for k, v in cand.items(): + # if the candidate has _ as value, delete source + if v == REMOVER: + if k in src: + del src[k] + continue + if k not in src: + src[k] = v + else: + src[k] = update(src[k], v) + return src + +(fname, header, newyaml) = sys.argv[1:4] +REMOVER = object +if len(sys.argv) == 5: + REMOVER = sys.argv[4] +newcfg = yaml.safe_load(newyaml) + +with open(fname, "r") as fp: + cfg = yaml.safe_load(fp) +if not cfg: cfg = {} + +cfg = update(cfg, newcfg) + +with open(fname, "w") as fp: + fp.write(header + "\n") + fp.write(yaml.dump(cfg))' "$@" +} + +handle_preseed_maas() { + local cfg_file="/etc/cloud/cloud.cfg.d/90_dpkg_maas.cfg" + local md_url="" creds_all="" c_key="" t_key="" t_sec="" c_sec=""; + + db_get "cloud-init/maas-metadata-url" && md_url="$RET" || : + db_get "cloud-init/maas-metadata-credentials" && creds_all="$RET" || : + + # nothing to do + [ -n "$md_url" -o -n "$creds_all" ] || return 0 + + # change a url query string format into : delimited + if [ -n "$creds_all" -a "${creds_all#*&}" != "${creds_all}" ]; then + # the command here ends up looking like: + # python3 -c '...' 'oauth_consumer_key=v1&oauth_token_key=v2...' \ + # oauth_consumer_key oauth_token_key oauth_token_secret + creds_all=$(python3 -c 'from six.moves.urllib.parse import parse_qs; +import sys; +keys = parse_qs(sys.argv[1]) +for k in sys.argv[2:]: + sys.stdout.write("%s:" % keys.get(k,[""])[0])' "$creds_all" \ + oauth_consumer_key oauth_token_key oauth_token_secret +) + fi + + # now, if non-empty creds_all is: consumer_key:token_key:token_secret + if [ -n "$creds_all" ]; then + OIFS="$IFS"; IFS=:; set -- $creds_all; IFS="$OIFS" + c_key=$1; t_key=$2; t_sec=$3 + fi + + if [ "$md_url" = "_" -a "${c_key}:${t_key}:${t_sec}" = "_:_:_" ]; then + # if all these values were '_', the delete value, just delete the file. + rm -f "$cfg_file" + else + local header="# written by cloud-init debian package per preseed entries +# cloud-init/{maas-metadata-url,/maas-metadata-credentials}" + + local pair="" k="" v="" pload="" orig_umask="" + for pair in "metadata_url:$md_url" "consumer_key:${c_key}" \ + "token_key:${t_key}" "token_secret:$t_sec"; do + k=${pair%%:*} + v=${pair#${k}:} + [ -n "$v" ] && pload="${pload} $k: \"$v\"," + done + + # '_' would indicate "delete", otherwise, existing entries are left + orig_umask=$(umask) + umask 066 + : >> "$cfg_file" && chmod 600 "$cfg_file" + update_cfg "$cfg_file" "$header" "datasource: { MAAS: { ${pload%,} } }" _ + umask ${orig_umask} + fi + + # now clear the database of the values, as they've been consumed + db_unregister "cloud-init/maas-metadata-url" || : + db_unregister "cloud-init/maas-metadata-credentials" || : +} + +handle_preseed_local_cloud_config() { + local ccfg="" debconf_name="cloud-init/local-cloud-config" + local cfg_file="/etc/cloud/cloud.cfg.d/90_dpkg_local_cloud_config.cfg" + local header="# written by cloud-init debian package per preseed entry +# $debconf_name" + + db_get "${debconf_name}" && ccfg="$RET" || : + + if [ "$ccfg" = "_" ]; then + rm -f "$cfg_file" + elif [ -n "$ccfg" ]; then + { echo "$header"; echo "$ccfg"; } > "$cfg_file" + fi + db_unregister "${debconf_name}" || : +} + +fix_1336855() { + ### Begin fix for LP: 1336855 + # fix issue where cloud-init misidentifies the location of grub and + # where grub misidentifies the location of the device + + # if cloud-init's grub module did not run, then it did not break anything. + [ -f /var/lib/cloud/instance/sem/config_grub_dpkg ] || return 0 + + # This bug only happened on /dev/xvda devices + [ -b /dev/xvda ] || return 0 + + # we can't fix the system without /proc/cmdline + [ -r /proc/cmdline ] || return 0 + + # Don't do anything unless we have grub + command -v grub-install > /dev/null || return 0 + + # First, identify the kernel device for the parent. + for parm in $(cat /proc/cmdline); do + dev=$(echo $parm | awk -F\= '{print$NF}') + case $parm in + root=UUID*) [ -d /dev/disk/by-uuid ] && + root_dev=$(readlink -f /dev/disk/by-uuid/$dev);; + root=LABEL*) [ -d /dev/disk/by-label ] && + root_dev=$(readlink -f /dev/disk/by-label/$dev);; + root=/dev*) [ -d /dev ] && + root_dev=$(readlink -f $dev);; + esac + [ -n "$root_dev" ] && break + done + + # Don't continue if we don't have a root directive + [ -z "$root_dev" ] && return 0 + + # Only deal with simple, cloud-based devices + case $root_dev in + /dev/vda*|/dev/xvda*|/dev/sda*) ;; + *) return 0;; + esac + + # Make sure that we are not chrooted. + [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ] && return 0 + + # Check if we are in a container, i.e. LXC + if systemd-detect-virt --quiet --container || lxc-is-container 2>/dev/null; then + return 0 + fi + + # Find out where grub thinks the root device is. Only continue if + # grub postinst would install/reinstall grub + db_get grub-pc/install_devices && grub_cfg_dev=${RET} || return 0 + db_get grub-pc/install_devices_empty && grub_dev_empty=${RET} || return 0 + + # Find out the parent device for the root device. + # example output: sda/sda1 + block_path=$(udevadm info -q path -n $root_dev | awk '-Fblock/' '{print$NF}') || return 0 + + # Extract the parent device name. This works where the device is a block device + # example output: /dev/sda + parent_dev=$(echo $block_path | awk '-F/' '$1 { if ( $1 ) {print"/dev/"$1}}') + [ -b "${parent_dev}" ] || return 0 + + # Do nothing if the device that the grub postinst would install is already used + [ "$grub_cfg_dev" = "$parent_dev" -o "$grub_cfg_dev" = "$root_dev" ] && return 0 + + # If we get here, do the installation + echo "Reconfiguring grub install device due to mismatch (LP: #1336855)" + echo " Grub should use $parent_dev but is configured for $grub_cfg_dev" + db_set grub-pc/install_devices "$parent_dev" + grub-install $parent_dev && + echo "Reinstalled grub" || + echo "WARNING! Unable to fix grub device mismatch. You may be broken." + +} + +cleanup_lp1552999() { + local oldver="$1" last_bad_ver="0.7.7~bzr1178" + dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0 + local edir="/etc/systemd/system/multi-user.target.wants" + rm -f "$edir/cloud-config.service" "$edir/cloud-final.service" \ + "$edir/cloud-init-local.service" "$edir/cloud-init.service" +} + +remove_deprecated_cloud_config_modules() { + local oldver="$1" last_bad_ver="22.1-14-g2e17a0d6-0ubuntu1~22.04.5" + if dpkg --compare-versions "$oldver" le "$last_bad_ver"; then + if grep -q emit_upstart /etc/cloud/cloud.cfg; then + # Redact emit_upstart if present in locally modified cloud.cfg: + # 1. "- emit_upstart" on a single line as defined in upstream + # 2. upstart_dir config which is no longer used + sed -i -e '/- emit_upstart/d' -e '/upstart_dir/d' /etc/cloud/cloud.cfg || true + if grep -q emit_upstart /etc/cloud/cloud.cfg; then + echo "DEPRECATION: unable to remove emit_upstart from /etc/cloud/cloud.cfg." + echo "This module is deprecated, you may remove it to eliminate warnings in cloud-init logs." + fi + fi + fi +} + +disable_network_config_on_upgrade() { + local oldver="$1" last_without_net="0.7.7~bzr1182-0ubuntu1" + if [ ! -f /var/lib/cloud/instance/obj.pkl ]; then + # this is a fresh system not one that has been booted. + return 0 + fi + if dpkg --compare-versions "$oldver" le "$last_without_net"; then + echo "dpkg upgrade from $oldver" > /var/lib/cloud/data/upgraded-network + fi +} + +fix_azure_upgrade_1611074() { + # adjust /etc/fstab on azure so boot after resize does not mount + # /mnt as ntfs and stop re-formatting. + local fixed_ver="0.7.8-49-1" dspath="/var/lib/cloud/instance/datasource" + local oldver="$1" tmpf="" r="" wmsg="" me="cloud-init postinst" + + # if not on azure, or not booted with instance/ skip out. + if [ ! -e "$dspath" ]; then + debug "no $dspath" + return 0 + fi + if ! grep -qi azure "$dspath"; then + debug "not on azure per $dspath" + return 0 + fi + + # if there is no /etc/fstab, then nothing to fix. + if [ ! -e /etc/fstab ]; then + debug "no /etc/fstab" + return 0 + fi + + if dpkg --compare-versions "$oldver" ge "$fixed_ver"; then + debug "previous version was fixed" + return 0 + fi + + wmsg="WARN: $me failed." + wmsg="$wmsg Subsequent resize may not update ephemeral correctly." + tmpf=$(mktemp "${TMPDIR:-/tmp}/cloud-init-upgrade.XXXXXX") || { + echo "$wmsg (mktemp failed with $?)" 1>&2 + return 0; + } + + awk '{ + if ($4 !~ /x-systemd.requires/ && $4 ~ /comment=cloudconfig/) { + sub(/comment=cloudconfig/, "x-systemd.requires=cloud-init.service,comment=cloudconfig") + } + printf("%s\n", $0)}' /etc/fstab > "$tmpf" || { + echo "$wmsg (awk reading of /etc/fstab failed with $?)" 1>&2 + rm -f "$tmpf" + return 0; + } + if cmp /etc/fstab "$tmpf" >/dev/null 2>&1; then + debug "no changes needed." + else + cat "$tmpf" > /etc/fstab || { + r=$? + echo "$wmsg (cp $tmpf /etc/fstab failed with $r)" + echo ==== expected to write the following to /etc/fstab ===== + cat "$tmpf" + echo ======================================================== + return $r + } 1>&2 + echo "$me fixed /etc/fstab for x-systemd.requires" 1>&2 + fi + rm "$tmpf" || : +} + +cleanup_ureadahead() { + local oldver="$1" last_bad_ver="0.7.9-243-ge74d775-0ubuntu2~" + dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0 + dpkg-divert --package cloud-init --remove --rename --divert \ + /etc/init/ureadahead.conf.disabled /etc/init/ureadahead.conf +} + +fix_lp1889555() { + local oldver="$1" last_bad_ver="20.3-2-g371b392c-0ubuntu1" + dpkg --compare-versions "$oldver" le-nl "$last_bad_ver" || return 0 + + # if cloud-init's grub module did not run, then it did not break anything. + [ -f /var/lib/cloud/instance/sem/config_grub_dpkg ] || return 0 + + # Don't do anything unless we have grub + command -v grub-install > /dev/null || return 0 + + # Make sure that we are not chrooted. + [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ] && return 0 + + # Check if we are in a container, i.e. LXC + if systemd-detect-virt --quiet --container || lxc-is-container 2>/dev/null; then + return 0 + fi + + # This bug only applies to NVMe devices + [ -e /dev/nvme0 ] || return 0 + + db_get grub-pc/install_devices && grub_cfg_dev=${RET} || return 0 + + # If the current setting is not the (potentially-incorrect) default we + # expect, this implies user intervention so leave things alone + [ "$grub_cfg_dev" = "/dev/sda" ] || return 0 + + correct_idev="$(python3 -c "import logging; from cloudinit.config.cc_grub_dpkg import fetch_idevs; print(fetch_idevs(logging.getLogger()))")" || return 0 + + # If correct_idev is the empty string, we failed to determine the correct + # install device; do nothing + [ -z "$correct_idev" ] && return 0 + + # If the correct_idev is already configured, do nothing + [ "$grub_cfg_dev" = "$correct_idev" ] && return 0 + + echo "Reconfiguring grub install device due to mismatch (LP: #1889555)" + echo " grub should use $correct_idev but is configured for $grub_cfg_dev" + db_set grub-pc/install_devices "$correct_idev" + db_set grub-pc/install_devices_empty "false" +} + +change_cloud_init_output_log_permissions() { + # As a consequence of LP: #1918303 + local oldver="$1" last_bad_ver="21.1-0ubuntu1" + dpkg --compare-versions "$oldver" le-nl "$last_bad_ver" || return 0 + + output_file="/var/log/cloud-init-output.log" + if [ -f "$output_file" ]; then + if getent group adm > /dev/null; then + chown root:adm $output_file + else + chown root $output_file + fi + chmod 640 $output_file + fi +} + +rename_hook_hotplug_udev_rule() { + # Avoids LP: #1946003 see commit: b519d861aff8b44a0610c176cb34adcbe28df144 + if [ -f /etc/udev/rules.d/10-cloud-init-hook-hotplug.rules ]; then + mv -f /etc/udev/rules.d/10-cloud-init-hook-hotplug.rules \ + /etc/udev/rules.d/90-cloud-init-hook-hotplug.rules + fi +} + +move_socket_fifo_to_share_dir() { + # This change arrived in cloud-init 25.1.3 + local old_fifo_dir="/run/cloud-init/" + local new_fifo_dir="/run/cloud-init/share/" + + # Move the socket fifo to /run/cloud-init/share + # The old location was /run/cloud-init/hook-hotplug-cmd + if [ -p "${old_fifo_dir}hook-hotplug-cmd" ]; then + # Ensure the share directory exists + mkdir -p "${new_fifo_dir}" + chmod 700 "${new_fifo_dir}" + + mv -f "${old_fifo_dir}hook-hotplug-cmd" "${new_fifo_dir}" + chmod 600 "${new_fifo_dir}hook-hotplug-cmd" + + invoke-rc.d cloud-init-hotplugd.socket restart || true + fi +} + +if [ "$1" = "configure" ]; then + if db_get cloud-init/datasources; then + values="$RET" + if [ "${values#*MaaS}" != "${values}" ]; then + # if db had old MAAS spelling, fix it. + values=$(echo "$values" | sed 's,MaaS,MAAS,g') + db_set cloud-init/datasources "$values" + fi + cat > /etc/cloud/cloud.cfg.d/90_dpkg.cfg <&2 + sed -i "s|^\(${first4}\)\(${remain}\)|\1,${adop}\2|" /etc/fstab + done +} + +convert_varlib_05x_06x() { + local url="http://169.254.169.254/2009-04-04/meta-data/instance-id" + local tout="--connect-timeout .5 --read-timeout .5" + local iid="" f="" uptime="" bn="" + iid=$(wget "${url}" ${tout} --tries 1 -O - 2>/dev/null) || iid="" + + [ -n "${iid}" -a -d /var/lib/cloud ] || return 0 + cd /var/lib/cloud + mkdir -p "instances/${iid}" "instances/${iid}/sem" + [ -e instance ] || ln -sf "instances/${iid}" instance + for f in data/*; do + [ -f "$f" ] || continue + case "${f#*/}" in + user-data.txt.i|user-data.txt|cloud-config.txt) + mv "${f}" instance/ + ;; + esac + done + [ -f data/cache/obj.pkl ] && mv data/cache/obj.pkl instance/ + for f in sem/*.${iid}; do + [ -f "${f}" ] || continue + bn=${f#*/}; bn=${bn%.${iid}} + case "${bn}" in + set_defaults) mv "${f}" "instance/sem/config-locale";; + set_hostname) mv "${f}" "instance/sem/config-set_hostname";; + *) mv "${f}" "instance/sem/${bn}";; + esac + done + [ ! -f sem/update_hostname.always ] || + mv sem/update_hostname.always sem/config-update_hostname.always + rmdir data/cache 2>/dev/null || : + rm -f data/available.build + + mkdir -p instance/scripts + if [ -d data/scripts ]; then + mv data/scripts/* instance/scripts || : + rmdir data/scripts || : + fi + [ -d data/scripts/* ] && mv data/scripts instance/ + + [ ! -e instance/boot-finished ] && + [ -f /proc/uptime ] && read uptime other instance/boot-finished || : + + return 0 +} + +azure_apply_new_instance_id_1506187() { + # With LP: #1506187, the Azure instance ID detection method was changed + # to use the DMI data. In order to prevent existing instances from thinking + # they are new instances, the instance ID needs to be updated here. + + if grep DataSourceAzure /var/lib/cloud/instance/datasource > /dev/null 2>&1; then + + product_id_f="/sys/devices/virtual/dmi/id/product_uuid" + instance_id_f="/var/lib/cloud/data/instance-id" + + if [ ! -e "${product_id_f}" -o ! -e "${instance_id_f}" ]; then + return 0 + fi + + # Get the current instance ID's (new and old) + new_instance_id="$(cat ${product_id_f})" + old_instance_id="$(cat ${instance_id_f})" + + if [ "${new_instance_id}" = "${old_instance_id}" ]; then + # this may have been applied for a prior version, i.e. upgrading + # from 14.04 to 16.04 + return 0 + + elif [ -z "${new_instance_id}" -o -z "${old_instance_id}" ]; then + cat < /var/lib/cloud/data/instance-id + + # Remove the symlink for the instance + rm /var/lib/cloud/instance + + # Rename the old instance id to the new one + mv /var/lib/cloud/instances/${old_instance_id} \ + /var/lib/cloud/instances/${new_instance_id} + + # Link the old id to the new one, just incase + ln -s /var/lib/cloud/instances/${new_instance_id} \ + /var/lib/cloud/instances/${old_instance_id} + + # Make the active instance the new id + ln -s /var/lib/cloud/instances/${new_instance_id} \ + /var/lib/cloud/instance + fi +fi +} + +cleanup_lp1552999() { + local oldver="$1" last_bad_ver="0.7.7~bzr1178" + dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0 + local hdir="/var/lib/systemd/deb-systemd-helper-enabled" + hdir="$hdir/multi-user.target.wants" + local edir="/etc/systemd/system/multi-user.target.wants" + rm -f "$hdir/cloud-config.service" "$hdir/cloud-final.service" \ + "$hdir/cloud-init-local.service" "$hdir/cloud-init.service" +} + +cleanup_oci_network_lp1956788() { + # Remove vestigial /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg + # from Oracle now that datasource honors system cfg above datasource cfg. + grep DataSourceOracle /var/lib/cloud/instance/datasource > /dev/null 2>&1 || return 0 + rm -f /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg +} + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" le "0.5.11-0ubuntu1"; then + # rename the config entries in sem/ so they're not run again + + # transition names in 0.5.11 had only short name (no config- prefix) + # so create config- entries for each + for name in apt-update-upgrade disable-ec2-metadata mounts \ + puppet runcmd ssh updates-check; do + move_sem ${name} config-${name} + done + + # 0.5.11 split 'config-misc' into 'updates-check' and 'runcmd' + move_sem config-misc config-updates-check config-runcmd + fi + + if dpkg --compare-versions "$2" le "0.5.14-0ubuntu5"; then + fix_ephemeral0_micro + fi + + if dpkg --compare-versions "$2" le 0.6.0-0ubuntu1; then + # convert /var/lib/cloud from 0.5.x layout to 0.6.x + convert_varlib_05x_06x + fi + + # 0.6.0 changed 'user-scripts' to config-scripts-user (LP: #1049146) + if [ -e /var/lib/cloud/instance/sem/user-scripts ]; then + ln -sf user-scripts /var/lib/cloud/instance/sem/config-scripts-user + fi + + # 0.7.7-bzr1556 introduced new instance ID source for Azure + if dpkg --compare-versions "$2" le "0.7.7~bzr1556-0ubuntu1"; then + azure_apply_new_instance_id_1506187 + fi + + d=/etc/cloud/ + if [ -f "$d/distro.cfg" ] && [ ! -f "$d/cloud.cfg.d/90_dpkg.cfg" ]; then + echo "moving $d/distro.cfg -> $d/cloud.cfg.d/90_dpkg.cfg" + [ -d "${d}/cloud.cfg.d" ] || mkdir "${d}/cloud.cfg.d" + mv "$d/distro.cfg" "$d/cloud.cfg.d/90_dpkg.cfg" + fi + + cleanup_lp1552999 "$oldver" + cleanup_oci_network_lp1956788 + +esac + +#DEBHELPER# diff --git a/debian/cloud-init.prerm b/debian/cloud-init.prerm new file mode 100644 index 00000000000..8954fa4d7c2 --- /dev/null +++ b/debian/cloud-init.prerm @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e +rm -f /etc/cron.d/cloudinit-updates + +#DEBHELPER# diff --git a/debian/cloud-init.templates b/debian/cloud-init.templates new file mode 100644 index 00000000000..903e486eb51 --- /dev/null +++ b/debian/cloud-init.templates @@ -0,0 +1,12 @@ +Template: cloud-init/datasources +Type: multiselect +Default: NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, VMware, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, Hetzner, IBMCloud, Oracle, Exoscale, RbxCloud, UpCloud, Vultr, LXD, NWCS, Akamai, WSL, CloudCIX, None +Choices-C: NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, VMware, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, Hetzner, IBMCloud, Oracle, Exoscale, RbxCloud, UpCloud, Vultr, LXD, NWCS, Akamai, WSL, CloudCIX, None +__Choices: NoCloud: Reads info from /var/lib/cloud/seed only, ConfigDrive: Reads data from Openstack Config Drive, OpenNebula: read from OpenNebula context disk, DigitalOcean: reads data from Droplet datasource, Azure: read from MS Azure cdrom. Requires walinux-agent, AltCloud: config disks for RHEVm and vSphere, VMware: reads data from guestinfo table or env vars, OVF: Reads data from OVF Transports, MAAS: Reads data from Ubuntu MAAS, GCE: google compute metadata service, OpenStack: native openstack metadata service, CloudSigma: metadata over serial for cloudsigma.com, SmartOS: Read from SmartOS metadata service, Bigstep: Bigstep metadata service, Scaleway: Scaleway metadata service, AliYun: Alibaba metadata service, Ec2: reads data from EC2 Metadata service, CloudStack: Read from CloudStack metadata service, Hetzner: Hetzner Cloud, IBMCloud: IBM Cloud. Previously softlayer or bluemix., Oracle: Oracle Compute Infrastructure, Exoscale: Exoscale, RbxCloud: HyperOne and Rootbox platforms, UpCloud: UpCloud, Vultr: Vultr Cloud, LXD: Reads /dev/lxd/sock representation of instance data, NWCS: NWCS, Akamai: Akamai and Linode platforms, WSL: Windows Subsystem for Linux, CloudCIX: Reads from CloudCIX metadata service, None: Failsafe datasource +_Description: Which data sources should be searched? + Cloud-init supports searching different "Data Sources" for information + that it uses to configure a cloud instance. + . + Warning: Only select 'Ec2' if this system will be run on a system with + the EC2 metadata service present. Doing so incorrectly will result in + a substantial timeout on boot. diff --git a/debian/control b/debian/control new file mode 100644 index 00000000000..ea3b7a11c21 --- /dev/null +++ b/debian/control @@ -0,0 +1,65 @@ +Source: cloud-init +Section: admin +Priority: optional +Homepage: https://cloud-init.io/ +Maintainer: Ubuntu Developers +Build-Depends: debhelper-compat (= 13), + dh-python, + iproute2, + po-debconf, + python3, + python3-configobj, + python3-debconf, + python3-jinja2, + python3-jsonpatch, + python3-jsonschema, + python3-mock, + python3-oauthlib, + python3-pytest, + python3-pytest-mock, + python3-requests, + python3-serial, + python3-setuptools, + python3-yaml, + python3-responses, + python3-passlib +Vcs-Browser: https://github.com/canonical/cloud-init/tree/ubuntu/devel +Vcs-Git: https://github.com/canonical/cloud-init -b ubuntu/devel +Standards-Version: 4.5.0 +Rules-Requires-Root: no + +Package: cloud-init +Architecture: all +Depends: cloud-guest-utils | cloud-utils, + dhcpcd-base, + iproute2, + netplan.io, + procps, + python3, + python3-debconf, + python3-requests, + python3-serial, + ${misc:Depends}, + ${python3:Depends} +Recommends: eatmydata, gdisk, gnupg, python3-apt, software-properties-common +Suggests: openssh-server, ssh-import-id +Breaks: python3-minimal (<< 3.12.3-0ubuntu2~) +Provides: cloud-init-base +Description: initialization and customization tool for cloud instances + Cloud-init is the industry standard multi-distribution method for + cross-platform cloud instance initialization. It is supported across all major + public cloud providers, provisioning systems for private cloud infrastructure, + and bare-metal installations. + . + Cloud instances are initialized from a disk image and instance data: + . + * Cloud metadata + * User data (optional) + * Vendor data (optional) + . + Cloud-init will identify the cloud it is running on during boot, read any + provided metadata from the cloud and initialize the system accordingly. This + may involve setting up the network and storage devices to configuring SSH + access key and many other aspects of a system. Later on the cloud-init will + also parse and process any optional user or vendor data that was passed to + the instance. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000000..598cda14cff --- /dev/null +++ b/debian/copyright @@ -0,0 +1,40 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: cloud-init +Upstream-Contact: cloud-init-dev@lists.launchpad.net +Source: https://launchpad.net/cloud-init + +Files: * +Copyright: 2010, Canonical Ltd. +License: GPL-3 or Apache-2.0 + +License: GPL-3 + 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 . + . + The complete text of the GPL version 3 can be seen in + /usr/share/common-licenses/GPL-3. + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian-based systems the full text of the Apache version 2.0 license + can be found in `/usr/share/common-licenses/Apache-2.0'. diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 00000000000..9eb215def81 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,12 @@ +# Configuration file for "gbp " + +# See default config settings at: /etc/git-buildpackage/gbp.conf + +# Options only affecting gbp dch +[dch] +# options passed to git-log: +git-log = --no-merges --reverse +# Customizatons can e.g. be used for line wrapping +customizations=./debian/gbp_format_changelog +multimaint-merge = False +multimaint = False diff --git a/debian/gbp_format_changelog b/debian/gbp_format_changelog new file mode 100755 index 00000000000..42b89da1a07 --- /dev/null +++ b/debian/gbp_format_changelog @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +# Simple changelog entry formatter +# +# It simply uses the built in formatter and linewraps the text +# +# Use git-dch --customizations=//scripts/gbp_format_changelog +# or set it via gbp.conf + +import re +import textwrap + +import gbp.dch + +# FILTER_UPSTREAM_COMMMITERS are authors for which to redact [author name] +# suffix per changelog message. The reason we redact those names as they +# will be repeated for most changelog entries. + +# To override this default filter behavior, copy this file into your project's +# ./debian/ directory and adapt as needed. + +FILTER_UPSTREAM_COMMITERS = ( # cloud-init upstream author names + "Chad Smith", + "James Falcon", + "Brett Holman", + "Alberto Contreras", +) + +FILTER_NOISY_COMMIT_REGEX = ( + r"update changelog.*", + r"refresh patches against.*", +) + +# To filter Jira tickets from "SC" project out of potential changelog comments +JIRA_PROJECT_KEY = "SC" + +UNWRAPPABLE_DELIMITERS = { + "]": "[", + ")": "(", +} + + +def _wrap_on_delimiter(text, prefix="", max_length=70) -> list: + """Break lines at specific UNWRAPPABLE_DELIMITERS. + + When a line ends with either (LP: #XXX) or [Author Name] avoid using + textwrap.wrap which breaks at the last whitespace. + + Instead break at the leading ( or [ special delimiter to ensure entire + author name or LP bug reference remains on the same line. + + Fallback to use textwrap.wrap if special conditions don't apply. + + Return a list of individual lines. + """ + if len(text) <= max_length: + return [prefix + text] + if text[-1] in UNWRAPPABLE_DELIMITERS: + delimiter = UNWRAPPABLE_DELIMITERS[text[-1]] + part1, sep, part2 = text.rpartition(delimiter) + lines = [] + for part in (part1.rstrip(), f"{sep}{part2}"): + if lines: + if len(lines[-1] + " " + part) < 70: + # Then the previous part plus current part should be joined + part = lines.pop() + " " + part + part = f" {part}" + lines.extend(_wrap_on_delimiter(part, prefix="" if lines else "+")) + return lines + return textwrap.wrap(prefix + text) + + +def format_changelog_entry(commit_info, options, last_commit=False): + entry = gbp.dch.format_changelog_entry(commit_info, options, last_commit) + if re.search(rf"\({JIRA_PROJECT_KEY}-\d+\)", entry[0]): + # Remove JIRA card references from debian/changelog comments + entry[0] = re.sub(r"\({JIRA_PROJECT_KEY}-\d+\)", "", entry[0]) + if commit_info["author"].name not in FILTER_UPSTREAM_COMMITERS: + # Only append non-upstream authors since most committers are upstream + entry.append(f"[{commit_info['author'].name}]") + if entry: + combined_entry = " ".join(entry) + for filter_re in FILTER_NOISY_COMMIT_REGEX: + if re.match(filter_re, combined_entry): + return None + return _wrap_on_delimiter(combined_entry, prefix="+") diff --git a/debian/patches/0001-Revert-fix-DNS-resolution-performance-regression-dur.patch b/debian/patches/0001-Revert-fix-DNS-resolution-performance-regression-dur.patch new file mode 100644 index 00000000000..3461bd2bedd --- /dev/null +++ b/debian/patches/0001-Revert-fix-DNS-resolution-performance-regression-dur.patch @@ -0,0 +1,48 @@ +From 586a18cce9b78d8838ba99993661c690d2a45ac5 Mon Sep 17 00:00:00 2001 +From: Brett Holman +Date: Thu, 5 Feb 2026 16:24:15 +0000 +Subject: [PATCH] Revert "fix: DNS resolution performance regression during + local stage (#6707)" + +This reverts commit 72809f8046f7abb5157e864a903cc5cc3c70ecbb. +--- + cloudinit/sources/DataSourceEc2.py | 1 + + cloudinit/util.py | 10 ++++------ + 2 files changed, 5 insertions(+), 6 deletions(-) + +--- a/cloudinit/sources/DataSourceEc2.py ++++ b/cloudinit/sources/DataSourceEc2.py +@@ -77,6 +77,7 @@ class DataSourceEc2(sources.DataSource): + metadata_urls = [ + "http://169.254.169.254", + "http://[fd00:ec2::254]", ++ "http://instance-data.:8773", + ] + + # The minimum supported metadata_version from the ec2 metadata apis +--- a/cloudinit/util.py ++++ b/cloudinit/util.py +@@ -1284,12 +1284,6 @@ def is_resolvable(url) -> bool: + global _DNS_REDIRECT_IP + parsed_url = parse.urlparse(url) + name = parsed_url.hostname +- +- # Early return for IP addresses - no DNS resolution needed +- with suppress(ValueError): +- if net.is_ip_address(parsed_url.netloc.strip("[]")): +- return True +- + if _DNS_REDIRECT_IP is None: + badips = set() + badnames = ( +@@ -1314,6 +1308,10 @@ def is_resolvable(url) -> bool: + LOG.debug("detected dns redirection: %s", badresults) + + try: ++ # ip addresses need no resolution ++ with suppress(ValueError): ++ if net.is_ip_address(parsed_url.netloc.strip("[]")): ++ return True + result = socket.getaddrinfo(name, None) + # check first result's sockaddr field + addr = result[0][4][0] diff --git a/debian/patches/0001-Revert-fix-support-bond-names-in-network_data.patch b/debian/patches/0001-Revert-fix-support-bond-names-in-network_data.patch new file mode 100644 index 00000000000..b1170d0c4f3 --- /dev/null +++ b/debian/patches/0001-Revert-fix-support-bond-names-in-network_data.patch @@ -0,0 +1,172 @@ +From 4a48e4be98afe754169f6a969a53e448952e0046 Mon Sep 17 00:00:00 2001 +From: Brett Holman +Date: Fri, 21 Nov 2025 21:49:29 +0000 +Subject: [PATCH] Revert "fix: support bond names in network_data.json (#6546)" + +This reverts commit 7c684160ecada299643573778de91d2a7f1a0024. +Origin: upstream, https://github.com/canonical/cloud-init/pull/6546 +--- + cloudinit/sources/helpers/openstack.py | 11 +- + .../sources/helpers/test_openstack.py | 121 ------------------ + 2 files changed, 5 insertions(+), 127 deletions(-) + +--- a/cloudinit/sources/helpers/openstack.py ++++ b/cloudinit/sources/helpers/openstack.py +@@ -705,15 +705,11 @@ def convert_net_json(network_json=None, + # is expected by cloudinit. + translated_key = "bond-{}".format(k.split("bond_", 1)[-1]) + params.update({translated_key: v}) +- cfg["params"] = params + + # openstack does not provide a name for the bond. + # they do provide an 'id', but that is possibly non-sensical. +- # so we just create our own name unless 'name' is set. +- if cfg.get("name") is None: +- link_name = bond_name_fmt % bond_number +- cfg["name"] = link_name +- curinfo["name"] = link_name ++ # so we just create our own name. ++ link_name = bond_name_fmt % bond_number + bond_number += 1 + + # bond_links reference links by their id, but we need to add +@@ -727,6 +723,9 @@ def convert_net_json(network_json=None, + copy.deepcopy(link["bond_links"]), + ) + ) ++ cfg.update({"params": params, "name": link_name}) ++ ++ curinfo["name"] = link_name + elif link["type"] in ["vlan"]: + name = "%s.%s" % (link["vlan_link"], link["vlan_id"]) + cfg.update( +--- a/tests/unittests/sources/helpers/test_openstack.py ++++ b/tests/unittests/sources/helpers/test_openstack.py +@@ -233,127 +233,6 @@ class TestConvertNetJson: + network_json=network_json, known_macs=macs + ) + +- def test_bond_name(self): +- """Verify the bond name is retained.""" +- network_json = { +- "links": [ +- { +- "id": "ens1f0np0", +- "name": "ens1f0np0", +- "type": "phy", +- "ethernet_mac_address": "xx:xx:xx:xx:xx:00", +- "mtu": 9000, +- }, +- { +- "id": "ens1f1np1", +- "name": "ens1f1np1", +- "type": "phy", +- "ethernet_mac_address": "xx:xx:xx:xx:xx:01", +- "mtu": 9000, +- }, +- { +- "id": "bond0", +- "name": "bond-wan", +- "type": "bond", +- "bond_links": ["ens1f0np0", "ens1f1np1"], +- "mtu": 9000, +- "ethernet_mac_address": "xx:xx:xx:xx:xx:00", +- "bond_mode": "802.3ad", +- "bond_xmit_hash_policy": "layer3+4", +- "bond_miimon": 100, +- }, +- { +- "id": "bond0.123", +- # The vlan name is ignored +- "name": "bond0.123", +- "type": "vlan", +- "vlan_link": "bond0", +- "vlan_id": 123, +- "vlan_mac_address": "xx:xx:xx:xx:xx:00", +- }, +- ], +- "networks": [ +- { +- "id": "publicnet-ipv4", +- "type": "ipv4", +- "link": "bond0.123", +- "ip_address": "x.x.x.x", +- "netmask": "255.255.255.0", +- "routes": [ +- { +- "network": "0.0.0.0", +- "netmask": "0.0.0.0", +- "gateway": "x.x.x.1", +- } +- ], +- "network_id": "00000000-0000-0000-0000-000000000000", +- } +- ], +- "services": [{"type": "dns", "address": "1.1.1.1"}], +- } +- expected = { +- "config": [ +- { +- "mac_address": "xx:xx:xx:xx:xx:00", +- "mtu": 9000, +- "name": "ens1f0np0", +- "subnets": [], +- "type": "physical", +- }, +- { +- "mac_address": "xx:xx:xx:xx:xx:01", +- "mtu": 9000, +- "name": "ens1f1np1", +- "subnets": [], +- "type": "physical", +- }, +- { +- "bond_interfaces": ["ens1f0np0", "ens1f1np1"], +- "mtu": 9000, +- "name": "bond-wan", +- "mac_address": "xx:xx:xx:xx:xx:00", +- "params": { +- "bond-miimon": 100, +- "bond-mode": "802.3ad", +- "bond-xmit_hash_policy": "layer3+4", +- }, +- "subnets": [], +- "type": "bond", +- }, +- { +- "name": "bond-wan.123", +- "subnets": [ +- { +- "address": "x.x.x.x", +- "ipv4": True, +- "netmask": "255.255.255.0", +- "routes": [ +- { +- "gateway": "x.x.x.1", +- "netmask": "0.0.0.0", +- "network": "0.0.0.0", +- } +- ], +- "type": "static", +- } +- ], +- "type": "vlan", +- "vlan_id": 123, +- "vlan_link": "bond-wan", +- "mac_address": "xx:xx:xx:xx:xx:00", +- }, +- {"address": "1.1.1.1", "type": "nameserver"}, +- ], +- "version": 1, +- } +- macs = { +- "xx:xx:xx:xx:xx:00": "ens1f0np0", +- "xx:xx:xx:xx:xx:01": "ens1f1np1", +- } +- assert expected == openstack.convert_net_json( +- network_json=network_json, known_macs=macs +- ) +- + def test_bond_ipv6_accept_ra_false(self): + """Verify accept-ra is set to False for static IPv6.""" + network_json = { diff --git a/debian/patches/deprecation-version-boundary.patch b/debian/patches/deprecation-version-boundary.patch new file mode 100644 index 00000000000..0fe593095cd --- /dev/null +++ b/debian/patches/deprecation-version-boundary.patch @@ -0,0 +1,20 @@ +Description: add deprecation boundary version +This version makes any deprecations added after this version +to be considered "new" deprecations and therefore get logged +at an INFO log level and not cause exit 2. + +Author: Brett Holman +Last-Update: 2024-06-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/cloudinit/features.py ++++ b/cloudinit/features.py +@@ -108,7 +108,7 @@ previously generated network configurati + (This flag can be removed when Noble is no longer supported.) + """ + +-DEPRECATION_INFO_BOUNDARY = "devel" ++DEPRECATION_INFO_BOUNDARY = "24.1" + """ + DEPRECATION_INFO_BOUNDARY is used by distros to configure at which upstream + version to start logging deprecations at a level higher than INFO. diff --git a/debian/patches/grub-dpkg-support.patch b/debian/patches/grub-dpkg-support.patch new file mode 100644 index 00000000000..a092e2b010c --- /dev/null +++ b/debian/patches/grub-dpkg-support.patch @@ -0,0 +1,52 @@ +Description: Keep default grub-dpkg support +This module is no longer needed in newer releases. +Revert its removal as a default module. + +Author: James Falcon +Last-Update: 2024-11-11 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/cloudinit/config/cc_grub_dpkg.py ++++ b/cloudinit/config/cc_grub_dpkg.py +@@ -22,7 +22,7 @@ meta: MetaSchema = { + "id": "cc_grub_dpkg", + "distros": ["ubuntu", "debian"], + "frequency": PER_INSTANCE, +- "activate_by_schema_keys": ["grub_dpkg", "grub-dpkg"], ++ "activate_by_schema_keys": [], + } + + LOG = logging.getLogger(__name__) +@@ -113,7 +113,7 @@ def handle(name: str, cfg: Config, cloud + if not mycfg: + mycfg = {} + +- enabled = mycfg.get("enabled", False) ++ enabled = mycfg.get("enabled", True) + if util.is_false(enabled): + LOG.debug("%s disabled by config grub_dpkg/enabled=%s", name, enabled) + return +--- a/cloudinit/config/schemas/schema-cloud-config-v1.json ++++ b/cloudinit/config/schemas/schema-cloud-config-v1.json +@@ -1696,8 +1696,8 @@ + "properties": { + "enabled": { + "type": "boolean", +- "default": false, +- "description": "Whether to configure which device is used as the target for grub installation. Default: ``false``." ++ "default": true, ++ "description": "Whether to configure which device is used as the target for grub installation. Default: ``true``." + }, + "grub-pc/install_devices": { + "type": "string", +--- a/tests/unittests/config/test_cc_grub_dpkg.py ++++ b/tests/unittests/config/test_cc_grub_dpkg.py +@@ -248,7 +248,7 @@ class TestHandle: + """Test setting of correct debconf database entries""" + m_is_efi_booted.return_value = is_uefi + m_fetch_idevs.return_value = fetch_idevs_output +- cfg = {"grub_dpkg": {"enabled": True}} ++ cfg = {"grub_dpkg": {}} + if cfg_idevs is not None: + cfg["grub_dpkg"]["grub-pc/install_devices"] = cfg_idevs + if cfg_idevs_empty is not None: diff --git a/debian/patches/no-nocloud-network.patch b/debian/patches/no-nocloud-network.patch new file mode 100644 index 00000000000..e26b68e1dfb --- /dev/null +++ b/debian/patches/no-nocloud-network.patch @@ -0,0 +1,132 @@ +Description: Don't allow network-config +This may add a new wait time for a file that doesn't exist on existing series +so patch it out. + +Author: Brett Holman +Last-Update: 2024-08-02 + +--- a/cloudinit/sources/DataSourceNoCloud.py ++++ b/cloudinit/sources/DataSourceNoCloud.py +@@ -184,7 +184,7 @@ class DataSourceNoCloud(sources.DataSour + + # This could throw errors, but the user told us to do it + # so if errors are raised, let them raise +- md_seed, ud, vd, network = util.read_seeded(seedfrom, timeout=None) ++ md_seed, ud, vd, _ = util.read_seeded(seedfrom, timeout=None) + LOG.debug("Using seeded cache data from %s", seedfrom) + + # Values in the command line override those from the seed +@@ -193,7 +193,6 @@ class DataSourceNoCloud(sources.DataSour + ) + mydata["user-data"] = ud + mydata["vendor-data"] = vd +- mydata["network-config"] = network + found.append(seedfrom) + + # Now that we have exhausted any other places merge in the defaults +--- a/cloudinit/util.py ++++ b/cloudinit/util.py +@@ -1013,7 +1013,6 @@ def read_seeded(base="", ext="", timeout + ud_url = base.replace("%s", "user-data" + ext) + vd_url = base.replace("%s", "vendor-data" + ext) + md_url = base.replace("%s", "meta-data" + ext) +- network_url = base.replace("%s", "network-config" + ext) + else: + if features.NOCLOUD_SEED_URL_APPEND_FORWARD_SLASH: + if base[-1] != "/" and parse.urlparse(base).query == "": +@@ -1022,17 +1021,7 @@ def read_seeded(base="", ext="", timeout + ud_url = "%s%s%s" % (base, "user-data", ext) + vd_url = "%s%s%s" % (base, "vendor-data", ext) + md_url = "%s%s%s" % (base, "meta-data", ext) +- network_url = "%s%s%s" % (base, "network-config", ext) + network = None +- try: +- network_resp = url_helper.read_file_or_url( +- network_url, timeout=timeout, retries=retries +- ) +- except url_helper.UrlError as e: +- LOG.debug("No network config provided: %s", e) +- else: +- if network_resp.ok(): +- network = load_yaml(network_resp.contents) + md_resp = url_helper.read_file_or_url( + md_url, timeout=timeout, retries=retries + ) +--- a/tests/unittests/test_util.py ++++ b/tests/unittests/test_util.py +@@ -2444,7 +2444,7 @@ class TestReadOptionalSeed: + { + "meta-data": {"md": "val"}, + "user-data": b"ud", +- "network-config": {"net": "cfg"}, ++ "network-config": None, + "vendor-data": None, + }, + True, +@@ -2499,7 +2499,7 @@ class TestReadSeeded: + assert found_md == {"key1": "val1"} + assert found_ud == ud + assert found_vd == vd +- assert found_network == {"test": "true"} ++ assert found_network is None + + @pytest.mark.parametrize( + "base, feature_flag, req_urls", +@@ -2508,7 +2508,6 @@ class TestReadSeeded: + "http://10.0.0.1/%s?qs=1", + True, + [ +- "http://10.0.0.1/network-config?qs=1", + "http://10.0.0.1/meta-data?qs=1", + "http://10.0.0.1/user-data?qs=1", + "http://10.0.0.1/vendor-data?qs=1", +@@ -2519,7 +2518,6 @@ class TestReadSeeded: + "https://10.0.0.1:8008/", + True, + [ +- "https://10.0.0.1:8008/network-config", + "https://10.0.0.1:8008/meta-data", + "https://10.0.0.1:8008/user-data", + "https://10.0.0.1:8008/vendor-data", +@@ -2530,7 +2528,6 @@ class TestReadSeeded: + "https://10.0.0.1:8008", + True, + [ +- "https://10.0.0.1:8008/network-config", + "https://10.0.0.1:8008/meta-data", + "https://10.0.0.1:8008/user-data", + "https://10.0.0.1:8008/vendor-data", +@@ -2541,7 +2538,6 @@ class TestReadSeeded: + "https://10.0.0.1:8008", + False, + [ +- "https://10.0.0.1:8008network-config", + "https://10.0.0.1:8008meta-data", + "https://10.0.0.1:8008user-data", + "https://10.0.0.1:8008vendor-data", +@@ -2552,7 +2548,6 @@ class TestReadSeeded: + "https://10.0.0.1:8008?qs=", + True, + [ +- "https://10.0.0.1:8008?qs=network-config", + "https://10.0.0.1:8008?qs=meta-data", + "https://10.0.0.1:8008?qs=user-data", + "https://10.0.0.1:8008?qs=vendor-data", +@@ -2591,7 +2586,7 @@ class TestReadSeeded: + # user-data, vendor-data read raw. It could be scripts or other format + assert found_ud == "/user-data: 1" + assert found_vd == "/vendor-data: 1" +- assert found_network == {"/network-config": 1} ++ assert found_network is None + assert [ + mock.call(req_url, timeout=5, retries=10) for req_url in req_urls + ] == m_read.call_args_list +@@ -2616,7 +2611,7 @@ class TestReadSeededWithoutVendorData: + assert found_md == {"key1": "val1"} + assert found_ud == ud + assert found_vd == vd +- assert found_network == {"test": "true"} ++ assert found_network is None + + + class TestEncode: diff --git a/debian/patches/no-remove-networkd-online.patch b/debian/patches/no-remove-networkd-online.patch new file mode 100644 index 00000000000..f79092cf274 --- /dev/null +++ b/debian/patches/no-remove-networkd-online.patch @@ -0,0 +1,18 @@ +Description: Remove changes to networkd-online dependency + The original change can cause failures on instances that have + changes to the default systemd service ordering or a complex + network setup, so we want to patch this behavior out. +Author: James Falcon +Bug: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/2094149 +Last-Update: 2025-01-16 +--- a/cloudinit/features.py ++++ b/cloudinit/features.py +@@ -87,7 +87,7 @@ On Debian and Ubuntu systems, cc_apt_con + to write /etc/apt/sources.list directly. + """ + +-MANUAL_NETWORK_WAIT = True ++MANUAL_NETWORK_WAIT = False + """ + On Ubuntu systems, cloud-init-network.service will start immediately after + cloud-init-local.service and manually wait for network online when necessary. diff --git a/debian/patches/no-single-process.patch b/debian/patches/no-single-process.patch new file mode 100644 index 00000000000..97ced187de3 --- /dev/null +++ b/debian/patches/no-single-process.patch @@ -0,0 +1,318 @@ +Description: remove single process optimization +This optimization is a big change in behavior, patch it out. + +Author: Brett Holman +Last-Update: 2024-08-02 + +--- a/cloudinit/cmd/status.py ++++ b/cloudinit/cmd/status.py +@@ -319,9 +319,8 @@ def systemd_failed(wait: bool) -> bool: + for service in [ + "cloud-final.service", + "cloud-config.service", +- "cloud-init-network.service", ++ "cloud-init.service", + "cloud-init-local.service", +- "cloud-init-main.service", + ]: + try: + stdout = query_systemctl( +--- a/cloudinit/config/cc_mounts.py ++++ b/cloudinit/config/cc_mounts.py +@@ -547,7 +547,7 @@ def handle(name: str, cfg: Config, cloud + # fs_spec, fs_file, fs_vfstype, fs_mntops, fs_freq, fs_passno + uses_systemd = cloud.distro.uses_systemd() + default_mount_options = ( +- "defaults,nofail,x-systemd.after=cloud-init-network.service,_netdev" ++ "defaults,nofail,x-systemd.after=cloud-init.service,_netdev" + if uses_systemd + else "defaults,nobootwait" + ) +--- a/cloudinit/config/schemas/schema-cloud-config-v1.json ++++ b/cloudinit/config/schemas/schema-cloud-config-v1.json +@@ -2114,12 +2114,12 @@ + }, + "mount_default_fields": { + "type": "array", +- "description": "Default mount configuration for any mount entry with less than 6 options provided. When specified, 6 items are required and represent ``/etc/fstab`` entries. Default: ``defaults,nofail,x-systemd.after=cloud-init-network.service,_netdev``.", ++ "description": "Default mount configuration for any mount entry with less than 6 options provided. When specified, 6 items are required and represent ``/etc/fstab`` entries. Default: ``defaults,nofail,x-systemd.after=cloud-init.service,_netdev``.", + "default": [ + null, + null, + "auto", +- "defaults,nofail,x-systemd.after=cloud-init-network.service", ++ "defaults,nofail,x-systemd.after=cloud-init.service", + "0", + "2" + ], +--- a/systemd/cloud-config.service ++++ b/systemd/cloud-config.service +@@ -9,14 +9,7 @@ ConditionEnvironment=!KERNEL_CMDLINE=clo + + [Service] + Type=oneshot +-# This service is a shim which preserves systemd ordering while allowing a +-# single Python process to run cloud-init's logic. This works by communicating +-# with the cloud-init process over a unix socket to tell the process that this +-# stage can start, and then wait on a return socket until the cloud-init +-# process has completed this stage. The output from the return socket is piped +-# into a shell so that the process can send a completion message (defaults to +-# "done", otherwise includes an error message) and an exit code to systemd. +-ExecStart=sh -c 'echo "start" | nc -U /run/cloud-init/share/config.sock | sh' ++ExecStart=/usr/bin/cloud-init modules --mode=config + RemainAfterExit=yes + TimeoutSec=0 + +--- a/systemd/cloud-config.target ++++ b/systemd/cloud-config.target +@@ -14,5 +14,5 @@ + + [Unit] + Description=Cloud-config availability +-Wants=cloud-init-local.service cloud-init-network.service +-After=cloud-init-local.service cloud-init-network.service ++Wants=cloud-init-local.service cloud-init.service ++After=cloud-init-local.service cloud-init.service +--- a/systemd/cloud-final.service ++++ b/systemd/cloud-final.service +@@ -12,16 +12,10 @@ ConditionEnvironment=!KERNEL_CMDLINE=clo + + [Service] + Type=oneshot +-# This service is a shim which preserves systemd ordering while allowing a +-# single Python process to run cloud-init's logic. This works by communicating +-# with the cloud-init process over a unix socket to tell the process that this +-# stage can start, and then wait on a return socket until the cloud-init +-# process has completed this stage. The output from the return socket is piped +-# into a shell so that the process can send a completion message (defaults to +-# "done", otherwise includes an error message) and an exit code to systemd. +-ExecStart=sh -c 'echo "start" | nc -U /run/cloud-init/share/final.sock | sh' ++ExecStart=/usr/bin/cloud-init modules --mode=final + RemainAfterExit=yes + TimeoutSec=0 ++KillMode=process + TasksMax=infinity + + # Output needs to appear in instance console output +--- a/systemd/cloud-init-local.service.tmpl ++++ b/systemd/cloud-init-local.service.tmpl +@@ -7,6 +7,7 @@ DefaultDependencies=no + {% endif %} + Wants=network-pre.target + After=hv_kvp_daemon.service ++After=systemd-remount-fs.service + Before=network-pre.target + Before=shutdown.target + {% if variant in ["almalinux", "cloudlinux", "rhel"] %} +@@ -16,6 +17,7 @@ Before=firewalld.target + Before=sysinit.target + {% endif %} + Conflicts=shutdown.target ++RequiresMountsFor=/var/lib/cloud + ConditionPathExists=!/etc/cloud/cloud-init.disabled + ConditionKernelCommandLine=!cloud-init=disabled + ConditionEnvironment=!KERNEL_CMDLINE=cloud-init=disabled +@@ -25,14 +27,7 @@ Type=oneshot + {% if variant in ["almalinux", "cloudlinux", "rhel"] %} + ExecStartPre=/sbin/restorecon /run/cloud-init + {% endif %} +-# This service is a shim which preserves systemd ordering while allowing a +-# single Python process to run cloud-init's logic. This works by communicating +-# with the cloud-init process over a unix socket to tell the process that this +-# stage can start, and then wait on a return socket until the cloud-init +-# process has completed this stage. The output from the return socket is piped +-# into a shell so that the process can send a completion message (defaults to +-# "done", otherwise includes an error message) and an exit code to systemd. +-ExecStart=sh -c 'echo "start" | nc -U /run/cloud-init/share/local.sock | sh' ++ExecStart=/usr/bin/cloud-init init --local + RemainAfterExit=yes + TimeoutSec=0 + +--- a/systemd/cloud-init-main.service.tmpl ++++ /dev/null +@@ -1,42 +0,0 @@ +-## template:jinja +-# systemd ordering resources +-# ========================== +-# https://systemd.io/NETWORK_ONLINE/ +-# https://docs.cloud-init.io/en/latest/explanation/boot.html +-# https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/ +-# https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html +-# https://www.freedesktop.org/software/systemd/man/latest/systemd-remount-fs.service.html +-[Unit] +-Description=Cloud-init: Single Process +-{% if variant in ["almalinux", "cloudlinux", "ubuntu", "unknown", "debian", "raspberry-pi-os", "rhel"] %} +-DefaultDependencies=no +-{% endif %} +-{% if variant in ["almalinux", "cloudlinux", "rhel"] %} +-Requires=dbus.socket +-After=dbus.socket +-{% endif %} +- +-After=systemd-remount-fs.service +-Before=cloud-init-local.service +-Before=shutdown.target +-Conflicts=shutdown.target +-RequiresMountsFor=/var/lib/cloud +-ConditionPathExists=!/etc/cloud/cloud-init.disabled +-ConditionKernelCommandLine=!cloud-init=disabled +-ConditionEnvironment=!KERNEL_CMDLINE=cloud-init=disabled +- +-[Service] +-Type=notify +-ExecStart=/usr/bin/cloud-init --all-stages +-KillMode=process +-TasksMax=infinity +-TimeoutStartSec=infinity +-{% if variant in ["almalinux", "cloudlinux", "rhel"] %} +-ExecStartPre=/sbin/restorecon /run/cloud-init +-{% endif %} +- +-# Output needs to appear in instance console output +-StandardOutput=journal+console +- +-[Install] +-WantedBy=cloud-init.target +--- a/systemd/cloud-init-network.service.tmpl ++++ /dev/null +@@ -1,64 +0,0 @@ +-## template:jinja +-[Unit] +-# https://docs.cloud-init.io/en/latest/explanation/boot.html +-Description=Cloud-init: Network Stage +-{% if variant not in ["almalinux", "cloudlinux", "photon", "rhel"] %} +-DefaultDependencies=no +-{% endif %} +-Wants=cloud-init-local.service +-Wants=sshd-keygen.service +-Wants=sshd.service +-After=cloud-init-local.service +-{% if variant not in ["ubuntu", "raspberry-pi-os"] %} +-After=systemd-networkd-wait-online.service +-{% endif %} +-{% if variant in ["ubuntu", "unknown", "debian", "raspberry-pi-os"] %} +-After=networking.service +-{% endif %} +-{% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", +- "miraclelinux", "openeuler", "OpenCloudOS", "openmandriva", +- "rhel", "rocky", "suse", "TencentOS", "virtuozzo"] %} +-After=NetworkManager.service +-After=NetworkManager-wait-online.service +-{% endif %} +-{% if variant in ["suse"] %} +-After=wicked.service +-# setting hostname via hostnamectl depends on dbus, which otherwise +-# would not be guaranteed at this point. +-After=dbus.service +-{% endif %} +-Before=network-online.target +-Before=sshd-keygen.service +-Before=sshd.service +-Before=systemd-user-sessions.service +-{% if variant in ["ubuntu", "unknown", "debian", "raspberry-pi-os"] %} +-Before=sysinit.target +-Before=shutdown.target +-Conflicts=shutdown.target +-{% endif %} +-{% if variant in ["suse"] %} +-Before=shutdown.target +-Conflicts=shutdown.target +-{% endif %} +-ConditionPathExists=!/etc/cloud/cloud-init.disabled +-ConditionKernelCommandLine=!cloud-init=disabled +-ConditionEnvironment=!KERNEL_CMDLINE=cloud-init=disabled +- +-[Service] +-Type=oneshot +-# This service is a shim which preserves systemd ordering while allowing a +-# single Python process to run cloud-init's logic. This works by communicating +-# with the cloud-init process over a unix socket to tell the process that this +-# stage can start, and then wait on a return socket until the cloud-init +-# process has completed this stage. The output from the return socket is piped +-# into a shell so that the process can send a completion message (defaults to +-# "done", otherwise includes an error message) and an exit code to systemd. +-ExecStart=sh -c 'echo "start" | nc -U /run/cloud-init/share/network.sock | sh' +-RemainAfterExit=yes +-TimeoutSec=0 +- +-# Output needs to appear in instance console output +-StandardOutput=journal+console +- +-[Install] +-WantedBy=cloud-init.target +--- /dev/null ++++ b/systemd/cloud-init.service.tmpl +@@ -0,0 +1,59 @@ ++## template:jinja ++[Unit] ++# https://docs.cloud-init.io/en/latest/explanation/boot.html ++Description=Cloud-init: Network Stage ++{% if variant not in ["almalinux", "cloudlinux", "photon", "raspberry-pi-os", "rhel"] %} ++DefaultDependencies=no ++{% endif %} ++Wants=cloud-init-local.service ++Wants=sshd-keygen.service ++Wants=sshd.service ++After=cloud-init-local.service ++After=systemd-networkd-wait-online.service ++{% if variant in ["ubuntu", "unknown", "debian", "raspberry-pi-os"] %} ++After=networking.service ++{% endif %} ++{% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", ++ "miraclelinux", "openeuler", "OpenCloudOS", "openmandriva", "raspberry-pi-os", ++ "rhel", "rocky", "suse", "TencentOS", "virtuozzo"] %} ++ ++After=NetworkManager.service ++After=NetworkManager-wait-online.service ++{% endif %} ++{% if variant in ["suse"] %} ++After=wicked.service ++# setting hostname via hostnamectl depends on dbus, which otherwise ++# would not be guaranteed at this point. ++After=dbus.service ++{% endif %} ++Before=network-online.target ++{% if variant == "raspberry-pi-os" %} ++Before=avahi-daemon.service ++{% endif %} ++Before=sshd-keygen.service ++Before=sshd.service ++Before=systemd-user-sessions.service ++{% if variant in ["ubuntu", "unknown", "debian"] %} ++Before=sysinit.target ++Before=shutdown.target ++Conflicts=shutdown.target ++{% endif %} ++{% if variant in ["suse"] %} ++Before=shutdown.target ++Conflicts=shutdown.target ++{% endif %} ++ConditionPathExists=!/etc/cloud/cloud-init.disabled ++ConditionKernelCommandLine=!cloud-init=disabled ++ConditionEnvironment=!KERNEL_CMDLINE=cloud-init=disabled ++ ++[Service] ++Type=oneshot ++ExecStart=/usr/bin/cloud-init init ++RemainAfterExit=yes ++TimeoutSec=0 ++ ++# Output needs to appear in instance console output ++StandardOutput=journal+console ++ ++[Install] ++WantedBy=cloud-init.target +--- a/tests/unittests/config/test_cc_mounts.py ++++ b/tests/unittests/config/test_cc_mounts.py +@@ -566,9 +566,9 @@ class TestFstabHandling: + LABEL=keepme none ext4 defaults 0 0 + LABEL=UEFI + /dev/sda4 /mnt2 auto nofail,comment=cloudconfig 1 2 +- /dev/sda5 /mnt3 auto defaults,nofail,x-systemd.after=cloud-init-network.service,_netdev,comment=cloudconfig 0 2 ++ /dev/sda5 /mnt3 auto defaults,nofail,x-systemd.after=cloud-init.service,_netdev,comment=cloudconfig 0 2 + /dev/sda1 /mnt xfs auto,comment=cloudconfig 0 2 +- /dev/sda3 /mnt4 btrfs defaults,nofail,x-systemd.after=cloud-init-network.service,_netdev,comment=cloudconfig 0 2 ++ /dev/sda3 /mnt4 btrfs defaults,nofail,x-systemd.after=cloud-init.service,_netdev,comment=cloudconfig 0 2 + /dev/sdb1 none swap sw,comment=cloudconfig 0 0 + """ # noqa: E501 + ).strip() diff --git a/debian/patches/retain-setuptools.patch b/debian/patches/retain-setuptools.patch new file mode 100644 index 00000000000..acffcff93a5 --- /dev/null +++ b/debian/patches/retain-setuptools.patch @@ -0,0 +1,439 @@ +Description: Retain setuptools build backend on stable series. + Avoid change in behavior in tip of main which switched to meson.build + as the default build backend. Retain the minimal patchset necessary + to retain setuptools pybuild default build backend. +Author: Chad Smith +Origin: backport +Last-Update: 2025-08-25 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,6 +1,6 @@ +-[build-system] # See meson.build. Empty build-system to avoid RTD builds +-build-backend = "" +-requires = [] ++[build-system] ++requires = ["setuptools"] ++build-backend = "setuptools.build_meta" + + [tool.black] + line-length = 79 +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,342 @@ ++# Copyright (C) 2009 Canonical Ltd. ++# Copyright (C) 2012 Yahoo! Inc. ++# ++# Author: Soren Hansen ++# Author: Joshua Harlow ++# ++# This file is part of cloud-init. See LICENSE file for license information. ++ ++# Distutils magic for ec2-init ++ ++import atexit ++import os ++import platform ++import shutil ++import subprocess ++import sys ++import tempfile ++from glob import glob ++ ++import setuptools ++from setuptools.command.egg_info import egg_info ++from setuptools.command.install import install ++ ++# Python-path here is a little unpredictable as setup.py could be run ++# from a directory other than the root of the repo, so ensure we can find ++# our utils ++sys.path.insert(0, os.path.dirname(os.path.realpath(__file__))) ++# isort: off ++from setup_utils import ( # noqa: E402 ++ get_version, ++ is_f, ++ is_generator, ++ pkg_config_read, ++ read_requires, ++) ++ ++# isort: on ++del sys.path[0] ++ ++# pylint: disable=W0402 ++try: ++ from setuptools.errors import DistutilsError ++except ImportError: ++ from distutils.errors import DistutilsArgError as DistutilsError ++# pylint: enable=W0402 ++ ++RENDERED_TMPD_PREFIX = "RENDERED_TEMPD" ++VARIANT = None ++PREFIX = None ++ ++ ++def render_tmpl(template, mode=None, is_yaml=False): ++ """render template into a tmpdir under same dir as setup.py ++ ++ This is rendered to a temporary directory under the top level ++ directory with the name 'cloud.cfg'. The reason for not just rendering ++ to config/cloud.cfg is for a.) don't want to write over contents ++ in that file if user had something there. b.) debuild will complain ++ that files are different outside of the debian directory.""" ++ ++ # newer versions just use install. ++ if "install" not in sys.argv: ++ return template ++ ++ tmpl_ext = ".tmpl" ++ # we may get passed a non-template file, just pass it back ++ if not template.endswith(tmpl_ext): ++ return template ++ ++ topdir = os.path.dirname(sys.argv[0]) ++ tmpd = tempfile.mkdtemp(dir=topdir, prefix=RENDERED_TMPD_PREFIX) ++ atexit.register(shutil.rmtree, tmpd) ++ bname = os.path.basename(template) ++ ename, ext = os.path.splitext(bname) ++ if ext == tmpl_ext: ++ bname = ename ++ fpath = os.path.join(tmpd, bname) ++ cmd_variant = [] ++ cmd_prefix = [] ++ if VARIANT: ++ cmd_variant = ["--variant", VARIANT] ++ if PREFIX: ++ cmd_prefix = ["--prefix", PREFIX] ++ subprocess.run( # nosec B603 ++ [ ++ sys.executable, ++ "./tools/render-template", ++ *(["--is-yaml"] if is_yaml else []), ++ *cmd_prefix, ++ *cmd_variant, ++ *[template, fpath], ++ ], ++ check=True, ++ ) ++ if mode: ++ os.chmod(fpath, mode) ++ # return path relative to setup.py ++ return os.path.join(os.path.basename(tmpd), bname) ++ ++ ++# User can set the variant for template rendering ++for a in sys.argv: ++ if a.startswith("--distro"): ++ idx = sys.argv.index(a) ++ if "=" in a: ++ _, VARIANT = a.split("=") ++ del sys.argv[idx] ++ else: ++ VARIANT = sys.argv[idx + 1] ++ del sys.argv[idx + 1] ++ sys.argv.remove("--distro") ++ ++# parse PREFIX and pass it on from render_tmpl() ++for a in sys.argv: ++ if a.startswith("--prefix"): ++ idx = sys.argv.index(a) ++ if "=" in a: ++ _, PREFIX = a.split("=") ++ else: ++ PREFIX = sys.argv[idx + 1] ++ ++INITSYS_FILES = { ++ "sysvinit": lambda: [f for f in glob("sysvinit/redhat/*") if is_f(f)], ++ "sysvinit_freebsd": lambda: [ ++ render_tmpl(f, mode=0o755) ++ for f in glob("sysvinit/freebsd/*") ++ if is_f(f) ++ ], ++ "sysvinit_netbsd": lambda: [ ++ render_tmpl(f, mode=0o755) ++ for f in glob("sysvinit/netbsd/*") ++ if is_f(f) ++ ], ++ "sysvinit_openbsd": lambda: [ ++ render_tmpl(f, mode=0o755) ++ for f in glob("sysvinit/openbsd/*") ++ if is_f(f) ++ ], ++ "sysvinit_deb": lambda: [f for f in glob("sysvinit/debian/*") if is_f(f)], ++ "sysvinit_openrc": lambda: [ ++ f for f in glob("sysvinit/openrc/*") if is_f(f) ++ ], ++ "sysvinit_openrc.dep": lambda: ["tools/cloud-init-hotplugd"], ++ "systemd": lambda: [ ++ render_tmpl(f) ++ for f in ( ++ glob("systemd/*.tmpl") ++ + glob("systemd/*.service") ++ + glob("systemd/*.socket") ++ + glob("systemd/*.target") ++ ) ++ if (is_f(f) and not is_generator(f)) ++ ], ++ "systemd.generators": lambda: [ ++ render_tmpl(f, mode=0o755) ++ for f in glob("systemd/*") ++ if is_f(f) and is_generator(f) ++ ], ++} ++INITSYS_ROOTS = { ++ "sysvinit": "etc/rc.d/init.d", ++ "sysvinit_freebsd": "usr/local/etc/rc.d", ++ "sysvinit_netbsd": "usr/local/etc/rc.d", ++ "sysvinit_openbsd": "etc/rc.d", ++ "sysvinit_deb": "etc/init.d", ++ "sysvinit_openrc": "etc/init.d", ++ "sysvinit_openrc.dep": "usr/lib/cloud-init", ++ "systemd": pkg_config_read("systemd", "systemdsystemunitdir"), ++ "systemd.generators": pkg_config_read( ++ "systemd", "systemdsystemgeneratordir" ++ ), ++} ++INITSYS_TYPES = sorted([f.partition(".")[0] for f in INITSYS_ROOTS.keys()]) ++ ++ ++# Install everything in the right location and take care of Linux (default) and ++# FreeBSD systems. ++USR = "usr" ++ETC = "etc" ++USR_LIB_EXEC = "usr/lib" ++LIB = "lib" ++if os.uname()[0] in ["FreeBSD", "DragonFly", "OpenBSD"]: ++ USR = "usr/local" ++ USR_LIB_EXEC = "usr/local/lib" ++elif os.path.isfile("/etc/redhat-release"): ++ USR_LIB_EXEC = "usr/libexec" ++elif os.path.isfile("/etc/system-release-cpe"): ++ with open("/etc/system-release-cpe") as f: ++ cpe_data = f.read().rstrip().split(":") ++ (cpe_vendor, cpe_product, cpe_version) = cpe_data[3:6] ++ if cpe_vendor == "amazon": ++ USR_LIB_EXEC = "usr/libexec" ++ ++ ++class MyEggInfo(egg_info): ++ """This makes sure to not include the rendered files in SOURCES.txt.""" ++ ++ def find_sources(self): ++ egg_info.find_sources(self) ++ # update the self.filelist. ++ self.filelist.exclude_pattern( ++ RENDERED_TMPD_PREFIX + ".*", is_regex=True ++ ) ++ # but since mfname is already written we have to update it also. ++ mfname = os.path.join(self.egg_info, "SOURCES.txt") ++ if os.path.exists(mfname): ++ with open(mfname) as fp: ++ files = [ ++ f for f in fp if not f.startswith(RENDERED_TMPD_PREFIX) ++ ] ++ with open(mfname, "w") as fp: ++ fp.write("".join(files)) ++ ++ ++# TODO: Is there a better way to do this?? ++class InitsysInstallData(install): ++ init_system = None ++ user_options = install.user_options + [ ++ # This will magically show up in member variable 'init_sys' ++ ( ++ "init-system=", ++ None, ++ "init system(s) to configure (%s) [default: None]" ++ % ", ".join(INITSYS_TYPES), ++ ), ++ ] ++ ++ def initialize_options(self): ++ install.initialize_options(self) ++ self.init_system = "" ++ ++ def finalize_options(self): ++ install.finalize_options(self) ++ ++ if self.init_system and isinstance(self.init_system, str): ++ self.init_system = self.init_system.split(",") ++ ++ if not self.init_system and not platform.system().endswith("BSD"): ++ self.init_system = ["systemd"] ++ ++ bad = [f for f in self.init_system if f not in INITSYS_TYPES] ++ if bad: ++ raise DistutilsError("Invalid --init-system: %s" % ",".join(bad)) ++ ++ for system in self.init_system: ++ # add data files for anything that starts with '.' ++ datakeys = [ ++ k for k in INITSYS_ROOTS if k.partition(".")[0] == system ++ ] ++ for k in datakeys: ++ files = INITSYS_FILES[k]() ++ if not files: ++ continue ++ self.distribution.data_files.append((INITSYS_ROOTS[k], files)) ++ # Force that command to reinitialize (with new file list) ++ self.distribution.reinitialize_command("install_data", True) ++ ++ ++USR = "/" + USR ++ETC = "/" + ETC ++USR_LIB_EXEC = "/" + USR_LIB_EXEC ++LIB = "/" + LIB ++for k in INITSYS_ROOTS.keys(): ++ INITSYS_ROOTS[k] = "/" + INITSYS_ROOTS[k] ++ ++data_files = [ ++ (ETC + "/cloud", [render_tmpl("config/cloud.cfg.tmpl", is_yaml=True)]), ++ (ETC + "/cloud/clean.d", glob("config/clean.d/*")), ++ (ETC + "/cloud/cloud.cfg.d", glob("config/cloud.cfg.d/*")), ++ (ETC + "/cloud/templates", glob("templates/*")), ++ ( ++ USR_LIB_EXEC + "/cloud-init", ++ [ ++ "tools/ds-identify", ++ "tools/hook-hotplug", ++ "tools/uncloud-init", ++ "tools/write-ssh-key-fingerprints", ++ ], ++ ), ++ ( ++ USR + "/share/bash-completion/completions", ++ ["bash_completion/cloud-init"], ++ ), ++ (USR + "/share/doc/cloud-init", [f for f in glob("doc/*") if is_f(f)]), ++ ( ++ USR + "/share/doc/cloud-init/examples", ++ [f for f in glob("doc/examples/*") if is_f(f)], ++ ), ++ ( ++ USR + "/share/doc/cloud-init/examples/seed", ++ [f for f in glob("doc/examples/seed/*") if is_f(f)], ++ ), ++ ( ++ USR + "/share/doc/cloud-init/module-docs", ++ [f for f in glob("doc/module-docs/*", recursive=True) if is_f(f)], ++ ), ++] ++if not platform.system().endswith("BSD"): ++ RULES_PATH = pkg_config_read("udev", "udevdir") ++ RULES_PATH = "/" + RULES_PATH ++ ++ data_files.extend( ++ [ ++ (RULES_PATH + "/rules.d", [f for f in glob("udev/*.rules")]), ++ ( ++ INITSYS_ROOTS["systemd"] + "/sshd-keygen@.service.d/", ++ ["systemd/disable-sshd-keygen-if-cloud-init-active.conf"], ++ ), ++ ] ++ ) ++# Use a subclass for install that handles ++# adding on the right init system configuration files ++cmdclass = { ++ "install": InitsysInstallData, ++ "egg_info": MyEggInfo, ++} ++ ++requirements = read_requires() ++ ++setuptools.setup( ++ name="cloud-init", ++ version=get_version(), ++ description="Cloud instance initialization magic", ++ author="Scott Moser", ++ author_email="scott.moser@canonical.com", ++ url="http://launchpad.net/cloud-init/", ++ package_data={ ++ "": ["*.json"], ++ }, ++ packages=setuptools.find_packages(exclude=["tests.*", "tests"]), ++ scripts=["tools/cloud-init-per"], ++ license="Dual-licensed under GPLv3 or Apache 2.0", ++ data_files=data_files, ++ install_requires=requirements, ++ cmdclass=cmdclass, ++ entry_points={ ++ "console_scripts": [ ++ "cloud-init = cloudinit.cmd.main:main", ++ "cloud-id = cloudinit.cmd.cloud_id:main", ++ ], ++ }, ++) +--- /dev/null ++++ b/setup_utils.py +@@ -0,0 +1,59 @@ ++import os ++import subprocess ++import sys ++from typing import List ++ ++ ++def is_f(p: str) -> bool: ++ return os.path.isfile(p) ++ ++ ++def is_generator(p: str) -> bool: ++ return "-generator" in p ++ ++ ++def pkg_config_read(library: str, var: str) -> str: ++ pkg_config = "pkg-config" ++ ++ if os.getenv("PKG_CONFIG"): ++ pkg_config = os.getenv("PKG_CONFIG") ++ ++ fallbacks = { ++ "systemd": { ++ "systemdsystemconfdir": "/etc/systemd/system", ++ "systemdsystemunitdir": "/usr/lib/systemd/system", ++ "systemdsystemgeneratordir": "/usr/lib/systemd/system-generators", ++ }, ++ "udev": { ++ "udevdir": "/usr/lib/udev", ++ }, ++ } ++ cmd = [pkg_config, f"--variable={var}", library] ++ try: ++ path = subprocess.check_output(cmd).decode("utf-8") # nosec B603 ++ path = path.strip() ++ except Exception: ++ path = fallbacks[library][var] ++ if path.startswith("/"): ++ path = path[1:] ++ ++ return path ++ ++ ++def version_to_pep440(version: str) -> str: ++ # read-version can spit out something like 22.4-15-g7f97aee24 ++ # which is invalid under PEP 440. If we replace the first - with a + ++ # that should give us a valid version. ++ return version.strip("_").split("-")[0] ++ ++ ++def get_version() -> str: ++ ver = os.environ.get("PACKAGED_VERSION", "MISSING_ENVVAR_PACKAGED_VERSION") ++ version = ver.strip() ++ return version_to_pep440(version) ++ ++ ++def read_requires() -> List[str]: ++ cmd = [sys.executable, "tools/read-dependencies"] ++ deps = subprocess.check_output(cmd) # nosec B603 ++ return deps.decode("utf-8").splitlines() +--- a/test-requirements.txt ++++ b/test-requirements.txt +@@ -11,9 +11,9 @@ pytest + pytest-cov + pytest-mock + pytest-xdist ++setuptools + jsonschema + responses +-packaging + passlib + + # This one is currently used only by the CloudSigma and SmartOS datasources. diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000000..fe960b82eb7 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,9 @@ +deprecation-version-boundary.patch +no-single-process.patch +no-nocloud-network.patch +grub-dpkg-support.patch +no-remove-networkd-online.patch +strip-invalid-mtu.patch +retain-setuptools.patch +0001-Revert-fix-support-bond-names-in-network_data.patch +0001-Revert-fix-DNS-resolution-performance-regression-dur.patch diff --git a/debian/patches/strip-invalid-mtu.patch b/debian/patches/strip-invalid-mtu.patch new file mode 100644 index 00000000000..85150d218b8 --- /dev/null +++ b/debian/patches/strip-invalid-mtu.patch @@ -0,0 +1,18 @@ +Description: Strip invalid MTU values from rendered v2 + netplan configure. This maintains backwards compatibility + as these values are invalid netplan, but were allowed prior to 24.2 +Author: James Falcon +Bug: https://github.com/canonical/cloud-init/issues/6239 +Last-Update: 2025-07-09 + +--- a/cloudinit/features.py ++++ b/cloudinit/features.py +@@ -98,7 +98,7 @@ Note that in addition to this flag, down + to modify the systemd unit files. + """ + +-STRIP_INVALID_MTU = False ++STRIP_INVALID_MTU = True + """ + If ``STRIP_INVALID_MTU`` is True, then cloud-init will strip invalid MTU + values from rendered v2 netplan configuration. Cloud-init allowed these values diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in new file mode 100644 index 00000000000..ef9231b19fa --- /dev/null +++ b/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] cloud-init.templates diff --git a/debian/po/templates.pot b/debian/po/templates.pot new file mode 100644 index 00000000000..e8812e33306 --- /dev/null +++ b/debian/po/templates.pot @@ -0,0 +1,221 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the cloud-init package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: cloud-init\n" +"Report-Msgid-Bugs-To: cloud-init@packages.debian.org\n" +"POT-Creation-Date: 2024-02-20 14:06-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "NoCloud: Reads info from /var/lib/cloud/seed only" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "ConfigDrive: Reads data from Openstack Config Drive" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "OpenNebula: read from OpenNebula context disk" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "DigitalOcean: reads data from Droplet datasource" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Azure: read from MS Azure cdrom. Requires walinux-agent" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "AltCloud: config disks for RHEVm and vSphere" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "OVF: Reads data from OVF Transports" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "MAAS: Reads data from Ubuntu MAAS" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "GCE: google compute metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "OpenStack: native openstack metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "CloudSigma: metadata over serial for cloudsigma.com" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "SmartOS: Read from SmartOS metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Bigstep: Bigstep metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Scaleway: Scaleway metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "AliYun: Alibaba metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Ec2: reads data from EC2 Metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "CloudStack: Read from CloudStack metadata service" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Hetzner: Hetzner Cloud" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "IBMCloud: IBM Cloud. Previously softlayer or bluemix." +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Oracle: Oracle Compute Infrastructure" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Exoscale: Exoscale" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "RbxCloud: HyperOne and Rootbox platforms" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "UpCloud: UpCloud" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "VMware: reads data from guestinfo table or env vars" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Vultr: Vultr Cloud" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "LXD: Reads /dev/lxd/sock representation of instance data" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "NWCS: NWCS" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "Akamai: Akamai and Linode platforms" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "WSL: Windows Subsystem for Linux" +msgstr "" + +#. Type: multiselect +#. Choices +#: ../cloud-init.templates:1001 +msgid "None: Failsafe datasource" +msgstr "" + +#. Type: multiselect +#. Description +#: ../cloud-init.templates:1002 +msgid "Which data sources should be searched?" +msgstr "" + +#. Type: multiselect +#. Description +#: ../cloud-init.templates:1002 +msgid "" +"Cloud-init supports searching different \"Data Sources\" for information " +"that it uses to configure a cloud instance." +msgstr "" + +#. Type: multiselect +#. Description +#: ../cloud-init.templates:1002 +msgid "" +"Warning: Only select 'Ec2' if this system will be run on a system with the " +"EC2 metadata service present. Doing so incorrectly will result in a " +"substantial timeout on boot." +msgstr "" diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000000..0b39bc6162c --- /dev/null +++ b/debian/rules @@ -0,0 +1,29 @@ +#!/usr/bin/make -f + +include /usr/share/dpkg/pkg-info.mk + +INIT_SYSTEM ?= systemd +export PYBUILD_INSTALL_ARGS=--init-system=$(INIT_SYSTEM) +export PACKAGED_VERSION=$(DEB_VERSION) + +%: + dh $@ --with python3 --buildsystem pybuild + +override_dh_auto_test: +ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + http_proxy= make PYVER=python3 check +else + @echo check disabled by DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS) +endif + +override_dh_installsystemd: + dh_installsystemd --no-restart-on-upgrade --no-start + +override_dh_auto_install: + dh_auto_install --destdir=debian/cloud-init + install -D -m 0644 ./tools/21-cloudinit.conf debian/cloud-init/etc/rsyslog.d/21-cloudinit.conf + install -D ./tools/Z99-cloud-locale-test.sh debian/cloud-init/etc/profile.d/Z99-cloud-locale-test.sh + install -D ./tools/Z99-cloudinit-warnings.sh debian/cloud-init/etc/profile.d/Z99-cloudinit-warnings.sh + install -m 0644 -D debian/apport-general-hook.py debian/cloud-init/usr/share/apport/general-hooks/cloud-init.py + install -m 0644 -D debian/apport-launcher.py debian/cloud-init/usr/share/apport/package-hooks/cloud-init.py + flist=$$(find $(CURDIR)/debian/ -type f -name version.py) && sed -i 's,@DOWNSTREAM_VERSION@,$(DEB_VERSION),' $${flist:-did-not-find-version-py-for-replacement} diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000000..163aaf8d82b --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides new file mode 100644 index 00000000000..5b8bf5cb8f9 --- /dev/null +++ b/debian/source/lintian-overrides @@ -0,0 +1,2 @@ +# Silence lintian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1014584 +cloud-init source: binary-nmu-debian-revision-in-source diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 00000000000..239532a97b9 --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,5 @@ +Name: cloud-init +Contact: James Falcon +Repository: https://github.com/canonical/cloud-init.git +Repository-Browse: https://github.com/canonical/cloud-init +Bug-Submit: https://bugs.launchpad.net/cloud-init diff --git a/debian/watch b/debian/watch new file mode 100644 index 00000000000..0f7a600b4c5 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +https://launchpad.net/cloud-init/+download .*/\+download/cloud-init-(.+)\.tar.gz diff --git a/tests/unittests/sources/azure/test_identity.py b/tests/unittests/sources/azure/test_identity.py index 53b1e18fee4..445fe460ec3 100644 --- a/tests/unittests/sources/azure/test_identity.py +++ b/tests/unittests/sources/azure/test_identity.py @@ -149,6 +149,23 @@ def test_true_azure_cloud(self, caplog, mock_read_dmi_data): ) ] + def test_true_azure_stack(self, caplog, mock_read_dmi_data): + mock_read_dmi_data.return_value = ( + identity.ChassisAssetTag.AZURE_STACK.value + ) + + asset_tag = identity.ChassisAssetTag.query_system() + + assert asset_tag == identity.ChassisAssetTag.AZURE_STACK + assert caplog.record_tuples == [ + ( + "cloudinit.sources.azure.identity", + 10, + "Azure chassis asset tag: " + "'4860-8370-5222-2345-9626-0897-77' (AZURE_STACK)", + ) + ] + @pytest.mark.parametrize("tag", [None, "", "notazure"]) def test_false_on_nonazure_chassis(self, caplog, mock_read_dmi_data, tag): mock_read_dmi_data.return_value = tag diff --git a/tests/unittests/sources/test_azure.py b/tests/unittests/sources/test_azure.py index 67373e1ef1e..7a00824702e 100644 --- a/tests/unittests/sources/test_azure.py +++ b/tests/unittests/sources/test_azure.py @@ -96,7 +96,7 @@ def mock_chassis_asset_tag(): with mock.patch.object( identity.ChassisAssetTag, "query_system", - return_value=identity.ChassisAssetTag.AZURE_CLOUD.value, + return_value=identity.ChassisAssetTag.AZURE_CLOUD, ) as m: yield m @@ -433,6 +433,9 @@ def construct_ovf_env( preprovisioned_vm=None, preprovisioned_vm_type=None, provision_guest_proxy_agent=None, + disable_imds=None, + disable_wireserver=None, + network=None, ): content = [ '', @@ -511,6 +514,29 @@ def construct_ovf_env( content += [ "", "", + ] + if ( + disable_imds is not None + or disable_wireserver is not None + or network is not None + ): + content.append("") + if disable_imds is not None: + content.append( + "%s" + % str(disable_imds).lower() + ) + if disable_wireserver is not None: + content.append( + "%s" + % str(disable_wireserver).lower() + ) + if network is not None: + content.append( + "%s" % b64e(json.dumps(network)) + ) + content.append("") + content += [ "", ] @@ -1068,6 +1094,61 @@ def test_uses_fallback_cfg_when_no_interface_metadata( assert azure_ds.network_config == self.fallback_config + def test_uses_ovf_network_config_when_present(self, azure_ds): + """Native v2 network config from ovf-env.xml is used directly.""" + ovf_network_config = { + "version": 2, + "ethernets": { + "eth0": { + "dhcp4": False, + "addresses": ["10.0.0.4/24"], + "gateway4": "10.0.0.1", + }, + }, + } + azure_ds._metadata_imds = UNSET + azure_ds._ovf_network_config = ovf_network_config + + assert azure_ds.network_config == ovf_network_config + + def test_imds_network_config_takes_priority_over_ovf( + self, azure_ds, mock_get_interfaces + ): + """IMDS network metadata is preferred over ovf-env.xml network.""" + expected = { + "ethernets": { + "eth0": { + "dhcp4": True, + "dhcp4-overrides": {"route-metric": 100}, + "dhcp6": False, + "match": {"macaddress": "00:0d:3a:04:75:98"}, + "set-name": "eth0", + }, + }, + "version": 2, + } + azure_ds._metadata_imds = NETWORK_METADATA + azure_ds._ovf_network_config = { + "version": 2, + "ethernets": {"eth0": {"dhcp4": False}}, + } + + assert azure_ds.network_config == expected + + def test_uses_fallback_cfg_when_apply_network_config_false_with_ovf( + self, azure_ds, mock_generate_fallback_config + ): + """Fallback config is used when apply_network_config is disabled.""" + azure_ds.ds_cfg["apply_network_config"] = False + azure_ds._metadata_imds = UNSET + azure_ds._ovf_network_config = { + "version": 2, + "ethernets": {"eth0": {"dhcp4": True}}, + } + mock_generate_fallback_config.return_value = self.fallback_config + + assert azure_ds.network_config == self.fallback_config + @pytest.fixture def waagent_d(tmp_path): @@ -2958,6 +3039,48 @@ def test_read_azure_ovf_with_proxy_guest_agent_false(self): cfg = ret[2] assert cfg["ProvisionGuestProxyAgent"] is False + def test_read_azure_ovf_with_disable_imds_true(self): + """read_azure_ovf sets DisableIMDS cfg flag to True.""" + content = construct_ovf_env(disable_imds=True) + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableIMDS"] is True + + def test_read_azure_ovf_with_disable_imds_false(self): + """read_azure_ovf sets DisableIMDS cfg flag to False.""" + content = construct_ovf_env(disable_imds=False) + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableIMDS"] is False + + def test_read_azure_ovf_without_disable_imds(self): + """read_azure_ovf defaults DisableIMDS cfg flag to False.""" + content = construct_ovf_env() + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableIMDS"] is False + + def test_read_azure_ovf_with_disable_wireserver_true(self): + """read_azure_ovf sets DisableWireserver cfg flag to True.""" + content = construct_ovf_env(disable_wireserver=True) + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableWireserver"] is True + + def test_read_azure_ovf_with_disable_wireserver_false(self): + """read_azure_ovf sets DisableWireserver cfg flag to False.""" + content = construct_ovf_env(disable_wireserver=False) + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableWireserver"] is False + + def test_read_azure_ovf_without_disable_wireserver(self): + """read_azure_ovf defaults DisableWireserver cfg flag to False.""" + content = construct_ovf_env() + ret = dsaz.read_azure_ovf(content) + cfg = ret[2] + assert cfg["DisableWireserver"] is False + @pytest.mark.parametrize( "ovf_cfg,imds_md,pps_type", @@ -3374,28 +3497,31 @@ def test_remove_network_scripts_default_removes_stock_scripts( class TestIsPlatformViable: @pytest.mark.parametrize( - "tag", + "tag,expected_is_azure_stack", [ - identity.ChassisAssetTag.AZURE_CLOUD.value, + (identity.ChassisAssetTag.AZURE_CLOUD, False), + (identity.ChassisAssetTag.AZURE_STACK, True), ], ) def test_true_on_azure_chassis( - self, azure_ds, mock_chassis_asset_tag, tag + self, azure_ds, mock_chassis_asset_tag, tag, expected_is_azure_stack ): mock_chassis_asset_tag.return_value = tag - assert dsaz.DataSourceAzure.ds_detect(None) is True + assert azure_ds.ds_detect() is True + assert azure_ds._is_azure_stack is expected_is_azure_stack def test_true_on_azure_ovf_env_in_seed_dir( - self, azure_ds, mock_chassis_asset_tag, tmpdir + self, azure_ds, mock_chassis_asset_tag ): - mock_chassis_asset_tag.return_value = "notazure" + mock_chassis_asset_tag.return_value = None seed_path = Path(azure_ds.seed_dir, "ovf-env.xml") seed_path.parent.mkdir(exist_ok=True, parents=True) seed_path.write_text("") - assert dsaz.DataSourceAzure.ds_detect(seed_path.parent) is True + assert azure_ds.ds_detect() is True + assert azure_ds._is_azure_stack is False def test_false_on_no_matching_azure_criteria( self, azure_ds, mock_chassis_asset_tag @@ -4126,6 +4252,53 @@ def test_no_pps(self): # Verify dmesg reported via KVP. assert len(self.mock_report_dmesg_to_kvp.mock_calls) == 1 + def test_disable_imds_skips_query_and_shortens_dhcp_timeout(self): + """DisableIMDS skips the IMDS query and the extended DHCP timeout.""" + ovf = construct_ovf_env(disable_imds=True) + md, ud, cfg = dsaz.read_azure_ovf(ovf) + self.mock_util_mount_cb.return_value = (md, ud, cfg, {}) + self.mock_azure_get_metadata_from_fabric.return_value = [] + + self.azure_ds._check_and_get_data() + + # IMDS is disabled: no IMDS query is made. + assert self.mock_readurl.mock_calls == [] + + # IMDS is disabled: do not wait 20 minutes for networking on its + # behalf even though provisioning is from ISO media. + assert self.mock_wrapping_setup_ephemeral_networking.mock_calls == [ + mock.call(timeout_minutes=5) + ] + + # Wireserver is still enabled, so report ready still occurs. + assert self.mock_azure_get_metadata_from_fabric.mock_calls == [ + mock.call( + endpoint="10.11.12.13", + distro=self.azure_ds.distro, + iso_dev="/dev/sr0", + pubkey_info=None, + ) + ] + + def test_disable_imds_and_wireserver_skips_dhcp(self): + """With IMDS and Wireserver disabled, skip DHCP entirely.""" + ovf = construct_ovf_env(disable_imds=True, disable_wireserver=True) + md, ud, cfg = dsaz.read_azure_ovf(ovf) + self.mock_util_mount_cb.return_value = (md, ud, cfg, {}) + + self.azure_ds._check_and_get_data() + + # No DHCP is set up on behalf of IMDS or Wireserver. + assert self.mock_wrapping_setup_ephemeral_networking.mock_calls == [] + assert self.mock_net_dhcp_maybe_perform_dhcp_discovery.mock_calls == [] + assert self.azure_ds._is_ephemeral_networking_up() is False + + # No IMDS query is made. + assert self.mock_readurl.mock_calls == [] + + # No report ready to Wireserver. + assert self.mock_azure_get_metadata_from_fabric.mock_calls == [] + def test_no_pps_gpa(self): """test full provisioning scope when azure-proxy-agent is enabled and running.""" @@ -5318,6 +5491,18 @@ def test_check_azure_proxy_agent_status_failure(self): class TestGetMetadataFromImds: + def test_disable_imds_skips_query( + self, + azure_ds, + mock_imds_fetch_metadata_with_api_fallback, + mock_wrapping_report_failure, + ): + azure_ds._disable_imds = True + + assert azure_ds.get_metadata_from_imds(report_failure=True) == {} + assert mock_imds_fetch_metadata_with_api_fallback.mock_calls == [] + assert mock_wrapping_report_failure.mock_calls == [] + @pytest.mark.parametrize("route_configured_for_imds", [False, True]) @pytest.mark.parametrize("report_failure", [False, True]) @pytest.mark.parametrize( @@ -5412,6 +5597,43 @@ def test_report_host_only_kvp_enabled( assert mock_azure_report_failure_to_fabric.mock_calls == [] assert mock_report_dmesg_to_kvp.mock_calls == [mock.call()] + @pytest.mark.parametrize("kvp_enabled", [False, True]) + def test_disable_wireserver_skips_fabric_report( + self, + azure_ds, + kvp_enabled, + mock_azure_report_failure_to_fabric, + mock_kvp_report_via_kvp, + mock_report_dmesg_to_kvp, + ): + azure_ds._disable_wireserver = True + mock_kvp_report_via_kvp.return_value = kvp_enabled + error = errors.ReportableError(reason="foo") + + assert azure_ds._report_failure(error) == kvp_enabled + + assert mock_kvp_report_via_kvp.mock_calls == [ + mock.call(error.as_encoded_report(vm_id=azure_ds._vm_id)) + ] + assert mock_azure_report_failure_to_fabric.mock_calls == [] + + +class TestReportReady: + def test_disable_wireserver_skips_fabric( + self, + azure_ds, + mock_azure_get_metadata_from_fabric, + mock_kvp_report_success_to_host, + mock_report_dmesg_to_kvp, + ): + azure_ds._disable_wireserver = True + azure_ds._iso_dev = "/dev/sr0" + + assert azure_ds._report_ready() is None + assert mock_azure_get_metadata_from_fabric.mock_calls == [] + assert azure_ds._iso_dev is None + assert azure_ds._negotiated is True + class TestValidateIMDSMetadata: @pytest.mark.parametrize( diff --git a/tests/unittests/sources/test_azure_helper.py b/tests/unittests/sources/test_azure_helper.py index 643637753f1..5aa8c045ab9 100644 --- a/tests/unittests/sources/test_azure_helper.py +++ b/tests/unittests/sources/test_azure_helper.py @@ -1471,6 +1471,63 @@ class TestOvfEnvXml: preprovisioned_vm_type="testpps", ), ), + # Azure Stack DisableIMDS true. + ( + construct_ovf_env(disable_imds=True), + azure_helper.OvfEnvXml( + username="test-user", + hostname="test-host", + disable_imds=True, + ), + ), + # Azure Stack DisableIMDS false. + ( + construct_ovf_env(disable_imds=False), + azure_helper.OvfEnvXml( + username="test-user", + hostname="test-host", + disable_imds=False, + ), + ), + # Azure Stack DisableWireserver true. + ( + construct_ovf_env(disable_wireserver=True), + azure_helper.OvfEnvXml( + username="test-user", + hostname="test-host", + disable_wireserver=True, + ), + ), + # Azure Stack DisableWireserver false. + ( + construct_ovf_env(disable_wireserver=False), + azure_helper.OvfEnvXml( + username="test-user", + hostname="test-host", + disable_wireserver=False, + ), + ), + # Azure Stack native v2 network config. + ( + construct_ovf_env( + network={ + "version": 2, + "ethernets": { + "eth0": {"dhcp4": True}, + }, + }, + ), + azure_helper.OvfEnvXml( + username="test-user", + hostname="test-host", + network={ + "version": 2, + "ethernets": { + "eth0": {"dhcp4": True}, + }, + }, + ), + ), ], ) def test_valid_ovf_scenarios(self, ovf, expected): @@ -1557,6 +1614,75 @@ def test_multiple_properties_fails(self): "multiple configuration matches for 'HostName' (2)" ) + def test_invalid_network_yaml_fails(self): + ovf = """\ + + + + + LinuxProvisioningConfiguration + + test-host + test-user + + + + 1.0 + + + + + ZXRoZXJuZXRzOiBbZXRoMA== + + """ + + with pytest.raises( + errors.ReportableErrorOvfInvalidMetadata + ) as exc_info: + azure_helper.OvfEnvXml.parse_text(ovf) + + assert ( + exc_info.value.reason + == "unexpected metadata parsing ovf-env.xml: " + "failed to parse 'Network' as YAML" + ) + + def test_network_yaml_is_parsed(self): + # may be authored as native v2 YAML, not only JSON. + ovf = """\ + + + + + LinuxProvisioningConfiguration + + test-host + test-user + + + + 1.0 + + + + + dmVyc2lvbjogMgpldGhlcm5ldHM6CiAgZXRoMDoKICAgIGRoY3A0OiB0cnVlCg== + + """ + + ovf_env = azure_helper.OvfEnvXml.parse_text(ovf) + + assert ovf_env.network == { + "version": 2, + "ethernets": {"eth0": {"dhcp4": True}}, + } + def test_non_azure_ovf(self): ovf = """\