Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/_integration_common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup LXD
uses: canonical/setup-lxd@8c6a87bfb56aa48f3fb9b830baa18562d8bfd4ee # v0.1.2
with:
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ci-check-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
FORCE_COLOR: 1
steps:
- name: Checkout
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Dependencies
run: |
Expand All @@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Test format
run: |
Expand All @@ -61,9 +61,9 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install RTD Python Version
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.11.9'
- name: Install dependencies
Expand All @@ -86,7 +86,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install ShellCheck
run: |
Expand All @@ -101,7 +101,7 @@ jobs:
name: GitHub Action and Workflow Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: reviewdog/action-actionlint@83e4ed25b168066ad8f62f5afbb29ebd8641d982 # v1.69.1
with:
fail_level: any
6 changes: 3 additions & 3 deletions .github/workflows/ci-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Prepare dependencies
run: |
sudo DEBIAN_FRONTEND=noninteractive apt-get update
Expand All @@ -45,13 +45,13 @@ jobs:
DEB_BUILD_OPTIONS=nocheck ./packages/bddeb -d --release ${{ env.RELEASE }}
cp cloud-init_all.deb ${{ runner.temp }}
- name: Archive debs as artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: 'cloud-init-${{ env.RELEASE }}-deb'
path: '${{ runner.temp }}/cloud-init*.deb'
retention-days: 3
- name: Setup LXD
uses: canonical/setup-lxd@v0.1.2
uses: canonical/setup-lxd@8c6a87bfb56aa48f3fb9b830baa18562d8bfd4ee # v1
with:
channel: 6/stable
- name: Verify deb package
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-unit-distro.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
steps:

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up LXD
uses: canonical/setup-lxd@v0.1.2
uses: canonical/setup-lxd@8c6a87bfb56aa48f3fb9b830baa18562d8bfd4ee # v1

- name: Create alpine container
# the current shell doesn't have lxd as one of the groups
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci-unit-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ jobs:
continue-on-error: ${{ matrix.experimental }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Python ${{matrix.python-version}}
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{matrix.python-version}}
check-latest: ${{matrix.check-latest}}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/daily-linkcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ jobs:
continue-on-error: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.failOnError == 'true') }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: "Install Python 3.10"
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.10.8'

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/daily-unit-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
FORCE_COLOR: 1
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
Expand All @@ -30,9 +30,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Latest Python
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
# select latest version here:
# https://github.com/actions/python-versions/blob/main/versions-manifest.json
Expand All @@ -53,7 +53,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install dependencies
run: |
sudo apt-get -qy update
Expand All @@ -76,9 +76,9 @@ jobs:
continue-on-error: ${{ matrix.experimental }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Python ${{matrix.python-version}}
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{matrix.python-version}}
check-latest: ${{matrix.check-latest}}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gh-cla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check if CLA signed
uses: canonical/has-signed-canonical-cla@v2
uses: canonical/has-signed-canonical-cla@19bae73390fdbfdc1ef9a9bb9408d87a1de755f6 # v2
2 changes: 1 addition & 1 deletion .github/workflows/gh-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ jobs:
labeler:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
2 changes: 1 addition & 1 deletion .github/workflows/gh-stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/stale@v9
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-issue-stale: -1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/packaging-downstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
steps:

- name: Checkout branch
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install dependencies
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/packaging-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Repository checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Get all matching changed files
id: matching-changed-files
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/packaging-upstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
steps:

- name: Setup - checkout branches
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Fetch all history for merging
fetch-depth: 0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/weekly-tics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: [self-hosted, linux, amd64, tiobe, noble]
steps:
- name: Checkout the project
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion cloudinit/reporting/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ def as_dict(self):
"""The event represented as json friendly."""
data = super(FinishReportingEvent, self).as_dict()
data["result"] = self.result
data["duration"] = self.duration
data["duration"] = round(self.duration, 4)
if self.post_files:
data["files"] = _collect_file_info(self.post_files)
return data
Expand Down
1 change: 0 additions & 1 deletion cloudinit/sources/DataSourceEc2.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ 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
Expand Down
10 changes: 6 additions & 4 deletions cloudinit/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -1295,6 +1295,12 @@ 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 = (
Expand All @@ -1319,10 +1325,6 @@ 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]
Expand Down
5 changes: 3 additions & 2 deletions debian/changelog
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ cloud-init (25.3-0ubuntu1~24.04.2) UNRELEASED; urgency=medium
- d/p/grub-dpkg-support.patch
- d/p/retain-setuptools.patch. Include read-version, drop unsupported dev
build tools and tests.
* 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
* d/rules: replace DOWNSTREAM_VERSION with packaged DEB_VERSION value
* Upstream snapshot based on upstream/main at 567cfe89.
* Upstream snapshot based on upstream/main at 72809f80.

-- Chad Smith <chad.smith@canonical.com> Mon, 02 Feb 2026 10:19:52 -0700
-- Brett Holman <brett.holman@canonical.com> Thu, 05 Feb 2026 16:23:52 +0000

cloud-init (25.3-0ubuntu1~24.04.1) noble; urgency=medium

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
From 586a18cce9b78d8838ba99993661c690d2a45ac5 Mon Sep 17 00:00:00 2001
From: Brett Holman <brett.holman@canonical.com>
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]
1 change: 1 addition & 0 deletions debian/patches/series
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ 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