Skip to content
Draft
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
1 change: 1 addition & 0 deletions changelog/updates/2026-08-26-ignition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Ignition ([2.26.0](https://coreos.github.io/ignition/release-notes/#ignition-2260-2026-02-17) (includes [2.25.1](https://coreos.github.io/ignition/release-notes/#ignition-2260-2026-02-17), [2.25.0](https://coreos.github.io/ignition/release-notes/#ignition-2250-2025-12-11)))
Original file line number Diff line number Diff line change
@@ -1 +1 @@
DIST ignition-2.24.0.tar.gz 8569157 BLAKE2B ffc97b24ff723955eb1b03cade7ef16bbcc544ef89730895148019d50869c381525398ae4b253976601ce17ad4d7436a844cd1011c2d17b07efa9802a11b1d23 SHA512 45316c9ae10588ab6615e719d3ab8096ac67320d7c046c6777f502637fd05f1b9aecd00dddec352d18cfdd537c0a4f5fb42160b4697deccd401b67a8939fabd3
DIST ignition-2.26.0.tar.gz 8519852 BLAKE2B 9194fa46b604c2ecb29fc74e9acbd63998c0331e59ffe71aca789dd4a3e036a6021e67d7085b28f52510b0d76f79c8934adb6d44f17b45a2685c500399d47a9c SHA512 365072e3b9d11be9e0e6008d2e7fbff5a6583f393a9b1860d95ee4bccde1680306d0d063e844dd1ea59968ea4661105210d9c17cf6001a9c1d04a1861505406e

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 84fab357258a5f8e4391e38dceb2a053d6bf9ec4 Mon Sep 17 00:00:00 2001
From f57b41faa275285dafb9df26285e35dd34722738 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Mon, 26 Sep 2022 12:12:04 +0200
Subject: [PATCH 02/20] config: add ignition translation
Subject: [PATCH 02/19] config: add ignition translation

it's a merge from flatcar/ign-converter

Expand Down Expand Up @@ -2621,5 +2621,5 @@ index 00000000..e81f6bed
+ }
+}
--
2.53.0
2.54.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From a844690078a4b72a59569bda1dd2f42a73e124b9 Mon Sep 17 00:00:00 2001
From 18a1200935058a9ab8afc9c05532c62a7344bdfb Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Thu, 24 Oct 2024 10:20:45 +0200
Subject: [PATCH 04/20] config/v3_6: convert ignition 2.x to 3.x
Date: Thu, 20 Aug 2026 14:23:22 +0200
Subject: [PATCH 04/19] config/v3_7: convert ignition 2.x to 3.x

if the version of ignition is 2.x we convert it to 3.x using
ign-converter.
Expand All @@ -10,15 +10,15 @@ it should support any 2.x version

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
---
config/v3_6_experimental/config.go | 37 ++++++++++++++++++++++++++++++
config/v3_7_experimental/config.go | 37 ++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

diff --git a/config/v3_6_experimental/config.go b/config/v3_6_experimental/config.go
index 3be26cae..ea367663 100644
--- a/config/v3_6_experimental/config.go
+++ b/config/v3_6_experimental/config.go
diff --git a/config/v3_7_experimental/config.go b/config/v3_7_experimental/config.go
index 8d02129e..18193de1 100644
--- a/config/v3_7_experimental/config.go
+++ b/config/v3_7_experimental/config.go
@@ -15,9 +15,14 @@
package v3_6_experimental
package v3_7_experimental

import (
+ "encoding/json"
Expand All @@ -29,9 +29,9 @@ index 3be26cae..ea367663 100644
"github.com/flatcar/ignition/v2/config/shared/errors"
"github.com/flatcar/ignition/v2/config/util"
+ "github.com/flatcar/ignition/v2/config/v24tov31"
prev "github.com/flatcar/ignition/v2/config/v3_5"
"github.com/flatcar/ignition/v2/config/v3_6_experimental/translate"
"github.com/flatcar/ignition/v2/config/v3_6_experimental/types"
prev "github.com/flatcar/ignition/v2/config/v3_6"
"github.com/flatcar/ignition/v2/config/v3_7_experimental/translate"
"github.com/flatcar/ignition/v2/config/v3_7_experimental/types"
@@ -67,6 +72,38 @@ func ParseCompatibleVersion(raw []byte) (types.Config, report.Report, error) {
return types.Config{}, rpt, err
}
Expand Down Expand Up @@ -72,5 +72,5 @@ index 3be26cae..ea367663 100644
return Parse(raw)
}
--
2.53.0
2.54.0

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 2f2966af34f99767b48722702119e4ab36e0670f Mon Sep 17 00:00:00 2001
From 6357e8465cd9dc5a008fb45a8505ba628924df81 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Tue, 12 Aug 2025 15:10:57 +0200
Subject: [PATCH 05/20] vendor: go mod vendor
Date: Thu, 20 Aug 2026 14:24:00 +0200
Subject: [PATCH 05/19] vendor: go mod vendor

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
---
Expand Down Expand Up @@ -17029,18 +17029,18 @@ index 00000000..1b1efb0f
+ return
+}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 2b1e4041..0161a31b 100644
index 36c02885..a36e3fa1 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -132,6 +132,9 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric
# github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0
## explicit; go 1.23.0
# github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0
## explicit; go 1.24.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping
+# github.com/ajeddeloh/go-json v0.0.0-20160803184958-73d058cf8437
+## explicit
+github.com/ajeddeloh/go-json
# github.com/aws/aws-sdk-go-v2 v1.39.2
## explicit; go 1.22
# github.com/aws/aws-sdk-go-v2 v1.41.1
## explicit; go 1.23
github.com/aws/aws-sdk-go-v2/aws
@@ -255,6 +258,9 @@ github.com/coreos/go-json
# github.com/coreos/go-semver v0.3.1
Expand Down Expand Up @@ -17077,19 +17077,19 @@ index 2b1e4041..0161a31b 100644
+github.com/flatcar/ignition/config/validate/astjson
+github.com/flatcar/ignition/config/validate/astnode
+github.com/flatcar/ignition/config/validate/report
# github.com/go-jose/go-jose/v4 v4.1.1
## explicit; go 1.23.0
# github.com/go-jose/go-jose/v4 v4.1.3
## explicit; go 1.24.0
github.com/go-jose/go-jose/v4
@@ -500,6 +527,9 @@ go.opentelemetry.io/otel/trace
@@ -496,6 +523,9 @@ go.opentelemetry.io/otel/trace
go.opentelemetry.io/otel/trace/embedded
go.opentelemetry.io/otel/trace/internal/telemetry
go.opentelemetry.io/otel/trace/noop
+# go4.org v0.0.0-20160314031811-03efcb870d84
+## explicit
+go4.org/errorutil
# golang.org/x/crypto v0.43.0
# golang.org/x/crypto v0.47.0
## explicit; go 1.24.0
golang.org/x/crypto/chacha20
--
2.53.0
2.54.0

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From f747e3a0045985ffe0ee445d1daef09154443770 Mon Sep 17 00:00:00 2001
From cbb7198259089a4be64ed3b452d05dda114e3b1c Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Mon, 19 Feb 2024 18:12:22 +0100
Subject: [PATCH 06/20] internal/prv/cmdline: backport flatcar patch
Subject: [PATCH 06/19] internal/prv/cmdline: backport flatcar patch

this patch provides backward compatibility for various config
key
Expand All @@ -12,7 +12,7 @@ Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/internal/providers/cmdline/cmdline.go b/internal/providers/cmdline/cmdline.go
index 30203bff..86a5cb79 100644
index ad5a8426..d7a164a9 100644
--- a/internal/providers/cmdline/cmdline.go
+++ b/internal/providers/cmdline/cmdline.go
@@ -33,7 +33,9 @@ import (
Expand All @@ -36,5 +36,5 @@ index 30203bff..86a5cb79 100644
}

--
2.53.0
2.54.0

Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
From 2b6ce6afda965f8c37d26321b523acb8462f1258 Mon Sep 17 00:00:00 2001
From 5c38c01e21c6616c4a1e78b35e2f0764cbbd1b94 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Tue, 20 Feb 2024 10:02:28 +0100
Subject: [PATCH 07/20] provider/qemu: apply fw_cfg patch
Date: Thu, 20 Aug 2026 15:11:57 +0200
Subject: [PATCH 07/19] provider/qemu: apply fw_cfg patch

we support both CoreOS and Flatcar fw_cfg path to ensure compatiblity

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
---
internal/providers/qemu/qemu_fwcfg.go | 133 ++++++++++++++------------
1 file changed, 70 insertions(+), 63 deletions(-)
internal/providers/qemu/qemu_fwcfg.go | 138 ++++++++++++++------------
1 file changed, 72 insertions(+), 66 deletions(-)

diff --git a/internal/providers/qemu/qemu_fwcfg.go b/internal/providers/qemu/qemu_fwcfg.go
index 863c9601..e8d4fec7 100644
index a0b25902..3fc04aa3 100644
--- a/internal/providers/qemu/qemu_fwcfg.go
+++ b/internal/providers/qemu/qemu_fwcfg.go
@@ -29,6 +29,7 @@ import (
@@ -28,6 +28,7 @@ import (
"strings"
"time"

+ iErrors "github.com/flatcar/ignition/v2/config/shared/errors"
"github.com/flatcar/ignition/v2/config/v3_6_experimental/types"
+ iErrors "github.com/flatcar/ignition/v2/config/shared/errors"
"github.com/flatcar/ignition/v2/config/v3_7_experimental/types"
"github.com/flatcar/ignition/v2/internal/distro"
"github.com/flatcar/ignition/v2/internal/platform"
@@ -38,9 +39,11 @@ import (
@@ -37,10 +38,12 @@ import (
"github.com/coreos/vcontext/report"
)

-const (
- firmwareConfigPath = "/sys/firmware/qemu_fw_cfg/by_name/opt/com.coreos/config/raw"
- firmwareConfigSizePath = "/sys/firmware/qemu_fw_cfg/by_name/opt/com.coreos/config/size"
-)
+var (
+ firmwareConfigPaths = map[string]string{
+ "/sys/firmware/qemu_fw_cfg/by_name/opt/org.flatcar-linux/config/raw": "/sys/firmware/qemu_fw_cfg/by_name/opt/org.flatcar-linux/config/size",
+ "/sys/firmware/qemu_fw_cfg/by_name/opt/com.coreos/config/raw": "/sys/firmware/qemu_fw_cfg/by_name/opt/com.coreos/config/size",
+ }
)
+)

func init() {
@@ -56,72 +59,76 @@ func fetchConfig(f *resource.Fetcher) (cfg types.Config, rpt report.Report, err
return
platform.Register(platform.Provider{
@@ -57,72 +60,75 @@ func fetchConfig(f *resource.Fetcher) (cfg types.Config, rpt report.Report, err
}
}

- // get size of firmware blob, if it exists
Expand All @@ -58,24 +60,7 @@ index 863c9601..e8d4fec7 100644
- f.Logger.Err("couldn't parse QEMU firmware config size: %v", err)
- return
- }
+ for cfgPath, sizePath := range firmwareConfigPaths {
+ // get size of firmware blob, if it exists
+ var sizeBytes []byte
+ sizeBytes, err = os.ReadFile(sizePath)
+ if os.IsNotExist(err) {
+ f.Logger.Info("QEMU firmware config was not found. Ignoring...")
+ continue
+ } else if err != nil {
+ f.Logger.Err("couldn't read QEMU firmware config size: %v", err)
+ return
+ }
+ var size int
+ size, err = strconv.Atoi(strings.TrimSpace(string(sizeBytes)))
+ if err != nil {
+ f.Logger.Err("couldn't parse QEMU firmware config size: %v", err)
+ return
+ }

-
- // Read firmware blob. We need to make as few, large read() calls as
- // possible, since the qemu_fw_cfg kernel module takes O(offset)
- // time for each read syscall. os.ReadFile() would eventually
Expand All @@ -99,6 +84,24 @@ index 863c9601..e8d4fec7 100644
- // where it would return io.EOF
- var n int
- n, err = fh.Read(data[len(data):cap(data)])
+ for cfgPath, sizePath := range firmwareConfigPaths {
+ // get size of firmware blob, if it exists
+ var sizeBytes []byte
+ sizeBytes, err = os.ReadFile(sizePath)
+ if os.IsNotExist(err) {
+ f.Logger.Info("QEMU firmware config was not found. Ignoring...")
+ continue
+ } else if err != nil {
+ f.Logger.Err("couldn't read QEMU firmware config size: %v", err)
+ return
+ }
Comment on lines +87 to +97
+ var size int
+ size, err = strconv.Atoi(strings.TrimSpace(string(sizeBytes)))
+ if err != nil {
+ f.Logger.Err("couldn't parse QEMU firmware config size: %v", err)
+ return
+ }
+
+ // Read firmware blob. We need to make as few, large read() calls as
+ // possible, since the qemu_fw_cfg kernel module takes O(offset)
+ // time for each read syscall. os.ReadFile() would eventually
Expand All @@ -118,7 +121,7 @@ index 863c9601..e8d4fec7 100644
- f.Logger.Warning("Reading QEMU fw_cfg takes quadratic time. Consider moving large files or config fragments to a remote URL.")
- reporting = true
+ defer func() {
+ fh.Close()
+ _ = fh.Close()
+ }()
+ lastReport := time.Now()
+ reporting := false
Expand Down Expand Up @@ -162,7 +165,6 @@ index 863c9601..e8d4fec7 100644
+ // of the file so the extra read would be maximally expensive.
+ cfg, rpt, err = util.ParseConfig(f.Logger, data)
return
+
}
- // If size is not at a page boundary, we know we're at EOF because
- // the guard byte was not filled. If size is at a page boundary,
Expand All @@ -171,9 +173,10 @@ index 863c9601..e8d4fec7 100644
- // of the file so the extra read would be maximally expensive.
- cfg, rpt, err = util.ParseConfig(f.Logger, data)
- return
+ return types.Config{}, report.Report{}, iErrors.ErrEmpty
+
}
-}
+ return types.Config{}, report.Report{}, iErrors.ErrEmpty
+
+ }
--
2.53.0
2.54.0

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 09d762d8d295316a27d5efa4c32de587a5d8f1ea Mon Sep 17 00:00:00 2001
From b3d28f4138837555b62bf00d9124189b9fba29fd Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Wed, 22 Sep 2021 14:53:49 +0200
Subject: [PATCH 09/20] internal/disk/fs: ignore fs format mismatches for the
Subject: [PATCH 08/19] internal/disk/fs: ignore fs format mismatches for the
OEM partition

As soon as the OEM partition's filesystem format changes, all users
Expand All @@ -22,7 +22,7 @@ Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/internal/exec/stages/disks/filesystems.go b/internal/exec/stages/disks/filesystems.go
index a12c59d7..360267ff 100644
index 28a931d6..2114e713 100644
--- a/internal/exec/stages/disks/filesystems.go
+++ b/internal/exec/stages/disks/filesystems.go
@@ -126,7 +126,7 @@ func (s stage) createFilesystem(fs types.Filesystem) error {
Expand All @@ -35,5 +35,5 @@ index a12c59d7..360267ff 100644
(fs.UUID == nil || canonicalizeFilesystemUUID(info.Type, info.UUID) == canonicalizeFilesystemUUID(fileSystemFormat, *fs.UUID)) {
s.Info("filesystem at %q is already correctly formatted. Skipping mkfs...", fs.Device)
--
2.53.0
2.54.0

Loading