Repository: osbuild/osbuild-composer
Pull request #3118 (2022-11-04 10:33:16)

Create and add Journald stage to rhel8/9 pipeline
This pull request includes:
Adds the systemd-journald stage (linked to https://github.com/osbuild/osbuild/pull/1143). This allows to configure the config file of the same name.
Continuation from PR https://github.com/osbuild/osbuild-composer/pull/3069

 adequate testing for the new functionality or fixed issue
 adequate documentation informing people about the change such as
 submit a PR for the [guides](https://github.com/osbuild/guides) repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

- [x] adequate testing for the new functionality or fixed issue
- [x] adequate documentation informing people about the change such as

opened this as accidentally closed: #3104 


7flying: @say-paul : @runcom and I must appear as co-authors in the appropriate commits as per the original PRs (#3069, #3056)
See https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors
7flying: @say-paul and you should also add yourself as co-author where you have added new stuff :+1: 
runcom: @say-paul you have to regenerate a bunch of manifests (you just removed the old ones afaict)
say-paul: @runcom I re-generated manifest using  `./tools/test-case-generators/generate-all-test-cases -i /dev/null --output test/data/manifests --image-type edge-raw-image --image-type edge-simplified-installer  manifests`, not aware if we have to make changes manually or some other methods.
runcom: > @runcom I re-generated manifest using `./tools/test-case-generators/generate-all-test-cases -i /dev/null --output test/data/manifests --image-type edge-raw-image --image-type edge-simplified-installer manifests`, not aware if we have to make changes manually or some other methods.

the manifests failing aren't the edge-raw-image and edge-simplified-intsaller anymore as you changed the commit stage - so you should change them as the command you're now running doesn't do anything as you haven't changed those
runcom: all good :tada: 
say-paul: > Woohoo! Very Cool!! Thanks a lot ❤️ I had a glance at the code and I think it looks fine. But, the commit messages could use some love, `Adds the new stage to with the persistent option set` and `Creates the new stage to stores journald logs ondisk. Unit tests added.` are not super descriptive. Ideally the second one would describe what issue is being solved (maybe even with a comment in the code), so that if someone looks at it they know why it is done that way, because it is not entirely clear. You could base it on what I wrote when I added it to osbuild via this [commit](https://github.com/osbuild/osbuild/pull/1178/commits/cace2a325e0ffe2906a3e4400802ac0a33300b46). Maybe could even include a link to the FCOS config.

@gicmo  LMK if its looks good now.
henrywang: @say-paul All green now!
henrywang: @runcom @gicmo Can we land this PR? Thanks.
gicmo: I think we are holding off until #3120 is merged. 
runcom: @say-paul please rebase
say-paul: @gicmo @achilleas-k ptal
henrywang: @say-paul All green now!

Patch:
diff --git a/internal/distro/rhel8/pipelines.go b/internal/distro/rhel8/pipelines.go
index 59180e30e..5dc68278c 100644
--- a/internal/distro/rhel8/pipelines.go
+++ b/internal/distro/rhel8/pipelines.go
@@ -664,6 +664,19 @@ func osPipeline(t *imageType,
 		}))
 	}
 
+	if t.rpmOstree {
+		p.AddStage(osbuild.NewSystemdJournaldStage(
+			&osbuild.SystemdJournaldStageOptions{
+				Filename: "10-persistent.conf",
+				Config: osbuild.SystemdJournaldConfigDropin{
+					Journal: osbuild.SystemdJournaldConfigJournalSection{
+						Storage: osbuild.StoragePresistent,
+					},
+				},
+			},
+		))
+	}
+
 	// Relabel the tree, unless the `NoSElinux` flag is explicitly set to `true`
 	if imageConfig.NoSElinux == nil || imageConfig.NoSElinux != nil && !*imageConfig.NoSElinux {
 		p.AddStage(osbuild.NewSELinuxStage(selinuxStageOptions(false)))
diff --git a/internal/manifest/os.go b/internal/manifest/os.go
index 1b8998074..a5aa7431a 100644
--- a/internal/manifest/os.go
+++ b/internal/manifest/os.go
@@ -530,6 +530,18 @@ func (p *OS) serialize() osbuild.Pipeline {
 		}))
 	}
 
+	if p.OSTreeRef != "" {
+		pipeline.AddStage(osbuild.NewSystemdJournaldStage(
+			&osbuild.SystemdJournaldStageOptions{
+				Filename: "10-persistent.conf",
+				Config: osbuild.SystemdJournaldConfigDropin{
+					Journal: osbuild.SystemdJournaldConfigJournalSection{
+						Storage: osbuild.StoragePresistent,
+					},
+				},
+			}))
+	}
+
 	if p.SElinux != "" {
 		pipeline.AddStage(osbuild.NewSELinuxStage(&osbuild.SELinuxStageOptions{
 			FileContexts: fmt.Sprintf("etc/selinux/%s/contexts/files/file_contexts", p.SElinux),
diff --git a/internal/osbuild/systemd_journald_stage.go b/internal/osbuild/systemd_journald_stage.go
new file mode 100644
index 000000000..906bf3815
--- /dev/null
+++ b/internal/osbuild/systemd_journald_stage.go
@@ -0,0 +1,92 @@
+package osbuild
+
+import (
+	"fmt"
+	"regexp"
+)
+
+const configFilenameRegex = "^[a-zA-Z0-9_\\.-]{1,250}\\.conf$"
+
+type SystemdJournaldStageOptions struct {
+	Filename string                      `json:"filename"`
+	Config   SystemdJournaldConfigDropin `json:"config"`
+}
+
+func (SystemdJournaldStageOptions) isStageOptions() {}
+
+func (o SystemdJournaldStageOptions) validate() error {
+	filenameRegex := regexp.MustCompile(configFilenameRegex)
+	if !filenameRegex.MatchString(o.Filename) {
+		return fmt.Errorf("filename %q doesn't conform to schema (%s)", o.Filename, repoFilenameRegex)
+	}
+	if o.Config.Journal == (SystemdJournaldConfigJournalSection{}) {
+		return fmt.Errorf("the 'Journal' section is required")
+	}
+
+	return nil
+}
+
+func NewSystemdJournaldStage(options *SystemdJournaldStageOptions) *Stage {
+	if err := options.validate(); err != nil {
+		panic(err)
+	}
+	return &Stage{
+		Type:    "org.osbuild.systemd-journald",
+		Options: options,
+	}
+}
+
+type SystemdJournaldConfigDropin struct {
+	Journal SystemdJournaldConfigJournalSection `json:"Journal"`
+}
+
+type ConfigStorage string
+
+const (
+	StorageVolatile   ConfigStorage = "volatile"
+	StoragePresistent ConfigStorage = "persistent"
+	StorageAuto       ConfigStorage = "auto"
+	StorageNone       ConfigStorage = "none"
+)
+
+type ConfigSplitMode string
+
+const (
+	SplitUuid ConfigSplitMode = "uuid"
+	SplitNone ConfigSplitMode = "none"
+)
+
+type ConfigAudit string
+
+const (
+	AuditYes ConfigAudit = "yes"
+	AuditNo  ConfigAudit = "no"
+)
+
+// 'Journal' configuration section, at least one option must be specified
+type SystemdJournaldConfigJournalSection struct {
+	// Controls where to store journal data.
+	Storage ConfigStorage `json:"Storage,omitempty"`
+
+	// Sets whether the data objects stored in the journal should be
+	// compressed or not. Can also take threshold values.
+	Compress string `json:"Compress,omitempty"`
+
+	// Splits journal files per user or to a single file.
+	SplitMode ConfigSplitMode `json:"SplitMode,omitempty"`
+
+	// Max time to store entries in a single file. By default seconds, may be
+	// sufixed with units (year, month, week, day, h, m) to override this.
+	MaxFileSec string `json:"MaxFileSec,omitempty"`
+
+	// Maximum time to store journal entries. By default seconds, may be sufixed
+	// with units (year, month, week, day, h, m) to override this.
+	MaxRetentionSec string `json:"MaxRetentionSec,omitempty"`
+
+	// Timeout before synchronizing journal files to disk. Minimum 0.
+	SyncIntervalSec int `json:"SyncIntervalSec,omitempty"`
+
+	// Enables/Disables kernel auditing on start-up, leaves it as is if
+	// unspecified.
+	Audit ConfigAudit `json:"Audit,omitempty"`
+}


Test patch:
diff --git a/internal/osbuild/systemd_journald_stage_test.go b/internal/osbuild/systemd_journald_stage_test.go
new file mode 100644
index 000000000..550147fed
--- /dev/null
+++ b/internal/osbuild/systemd_journald_stage_test.go
@@ -0,0 +1,70 @@
+package osbuild
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestNewSystemdJournalStage(t *testing.T) {
+	options := &SystemdJournaldStageOptions{
+		Filename: "journald-config.conf",
+		Config: SystemdJournaldConfigDropin{
+			Journal: SystemdJournaldConfigJournalSection{
+				Storage:    StoragePresistent,
+				Compress:   "yes",
+				MaxFileSec: "10day",
+				Audit:      AuditYes,
+			},
+		}}
+	expectedStage := &Stage{
+		Type:    "org.osbuild.systemd-journald",
+		Options: options,
+	}
+	actualStage := NewSystemdJournaldStage(options)
+	assert.Equal(t, expectedStage, actualStage)
+}
+
+func TestSystemdJournaldStage_ValidateInvalid(t *testing.T) {
+	tests := []struct {
+		name    string
+		options SystemdJournaldStageOptions
+	}{
+		{
+			name:    "empty-options",
+			options: SystemdJournaldStageOptions{},
+		},
+		{
+			name: "no-journal-section-options",
+			options: SystemdJournaldStageOptions{
+				Filename: "10-some-file.conf",
+				Config: SystemdJournaldConfigDropin{
+					Journal: SystemdJournaldConfigJournalSection{},
+				},
+			},
+		},
+	}
+	for idx, te := range tests {
+		t.Run(te.name, func(t *testing.T) {
+			assert.Errorf(t, te.options.validate(), "%q didn't return an error [idx: %d]", te.name, idx)
+			assert.Panics(t, func() { NewSystemdJournaldStage(&te.options) })
+		})
+	}
+}
+
+func TestInvalidFilename(t *testing.T) {
+	options := &SystemdJournaldStageOptions{
+		Filename: "invalid-filename",
+		Config: SystemdJournaldConfigDropin{
+			Journal: SystemdJournaldConfigJournalSection{
+				Storage:    StoragePresistent,
+				Compress:   "yes",
+				MaxFileSec: "10day",
+				Audit:      AuditYes,
+			},
+		},
+	}
+
+	assert.Errorf(t, options.validate(), "test didn't return any error ")
+	assert.Panics(t, func() { NewSystemdJournaldStage(options) })
+}
diff --git a/test/data/ansible/check_ostree.yaml b/test/data/ansible/check_ostree.yaml
index 14ea86194..6fbcd782c 100644
--- a/test/data/ansible/check_ostree.yaml
+++ b/test/data/ansible/check_ostree.yaml
@@ -699,6 +699,28 @@
             failed_counter: "{{ failed_counter | int + 1 }}"
       when: skip_rollback_test == "false"
 
+    - name: check journald has persistent logging
+      block:
+        - name: lsit boots
+          shell: journalctl --list-boots
+          register: result_list_boots
+
+        - assert:
+            that:
+              - result_list_boots.stdout_lines | length > 1
+            fail_msg: "journald hasn't persistent logging"
+            success_msg: "journald has persistent logging"
+      always:
+        - set_fact:
+            total_counter: "{{ total_counter | int + 1 }}"
+      rescue:
+        - name: failed count + 1
+          set_fact:
+            failed_counter: "{{ failed_counter | int + 1 }}"
+      when:
+        - skip_rollback_test == "false"
+        - result_rollback is succeeded
+
     # case: check ostree commit after rollback
     - name: check ostree commit after rollback
       block:
diff --git a/test/data/manifests/centos_8-aarch64-edge_commit-boot.json b/test/data/manifests/centos_8-aarch64-edge_commit-boot.json
index be655e96c..bc3ab3f80 100644
--- a/test/data/manifests/centos_8-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/centos_8-aarch64-edge_commit-boot.json
@@ -5029,6 +5029,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/centos_8-aarch64-edge_commit_with_container-boot.json
index 8638dd3cf..11dfaeb4b 100644
--- a/test/data/manifests/centos_8-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/centos_8-aarch64-edge_commit_with_container-boot.json
@@ -5286,6 +5286,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-aarch64-edge_container-boot.json b/test/data/manifests/centos_8-aarch64-edge_container-boot.json
index 0eb93f006..83896b5e5 100644
--- a/test/data/manifests/centos_8-aarch64-edge_container-boot.json
+++ b/test/data/manifests/centos_8-aarch64-edge_container-boot.json
@@ -5029,6 +5029,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-x86_64-edge_commit-boot.json b/test/data/manifests/centos_8-x86_64-edge_commit-boot.json
index ae447d9e5..75c9b5186 100644
--- a/test/data/manifests/centos_8-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_commit-boot.json
@@ -5213,6 +5213,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-x86_64-edge_commit_rt-boot.json b/test/data/manifests/centos_8-x86_64-edge_commit_rt-boot.json
index 0dc17e89e..6cec3e39e 100644
--- a/test/data/manifests/centos_8-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_commit_rt-boot.json
@@ -5204,6 +5204,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/centos_8-x86_64-edge_commit_with_container-boot.json
index 57dba8787..ec00b8dba 100644
--- a/test/data/manifests/centos_8-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_commit_with_container-boot.json
@@ -5470,6 +5470,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_8-x86_64-edge_container-boot.json b/test/data/manifests/centos_8-x86_64-edge_container-boot.json
index 469ef5817..da1e649f2 100644
--- a/test/data/manifests/centos_8-x86_64-edge_container-boot.json
+++ b/test/data/manifests/centos_8-x86_64-edge_container-boot.json
@@ -5213,6 +5213,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-aarch64-edge_commit-boot.json b/test/data/manifests/centos_9-aarch64-edge_commit-boot.json
index 5bb2d1c17..b993552d9 100644
--- a/test/data/manifests/centos_9-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/centos_9-aarch64-edge_commit-boot.json
@@ -4303,6 +4303,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/centos_9-aarch64-edge_commit_with_container-boot.json
index f98c284ff..4aa9cd5b8 100644
--- a/test/data/manifests/centos_9-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/centos_9-aarch64-edge_commit_with_container-boot.json
@@ -4536,6 +4536,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-aarch64-edge_container-boot.json b/test/data/manifests/centos_9-aarch64-edge_container-boot.json
index 7bf5624a3..24178a7fb 100644
--- a/test/data/manifests/centos_9-aarch64-edge_container-boot.json
+++ b/test/data/manifests/centos_9-aarch64-edge_container-boot.json
@@ -4303,6 +4303,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-x86_64-edge_commit-boot.json b/test/data/manifests/centos_9-x86_64-edge_commit-boot.json
index b289189f5..6e6a08bcf 100644
--- a/test/data/manifests/centos_9-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_commit-boot.json
@@ -4519,6 +4519,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-x86_64-edge_commit_rt-boot.json b/test/data/manifests/centos_9-x86_64-edge_commit_rt-boot.json
index dd3994c60..9bb6dbfc4 100644
--- a/test/data/manifests/centos_9-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_commit_rt-boot.json
@@ -4686,6 +4686,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/centos_9-x86_64-edge_commit_with_container-boot.json
index de4535012..78d1d15c9 100644
--- a/test/data/manifests/centos_9-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_commit_with_container-boot.json
@@ -4752,6 +4752,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/centos_9-x86_64-edge_container-boot.json b/test/data/manifests/centos_9-x86_64-edge_container-boot.json
index fc5217cf0..ba88eb153 100644
--- a/test/data/manifests/centos_9-x86_64-edge_container-boot.json
+++ b/test/data/manifests/centos_9-x86_64-edge_container-boot.json
@@ -4519,6 +4519,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-aarch64-iot_commit-boot.json b/test/data/manifests/fedora_35-aarch64-iot_commit-boot.json
index 3b7741d8a..207bb6caf 100644
--- a/test/data/manifests/fedora_35-aarch64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_35-aarch64-iot_commit-boot.json
@@ -5166,6 +5166,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-aarch64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_35-aarch64-iot_commit_with_container-boot.json
index cfd58df81..5fed9f866 100644
--- a/test/data/manifests/fedora_35-aarch64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_35-aarch64-iot_commit_with_container-boot.json
@@ -5391,6 +5391,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-aarch64-iot_container-boot.json b/test/data/manifests/fedora_35-aarch64-iot_container-boot.json
index 090110b9f..16724a703 100644
--- a/test/data/manifests/fedora_35-aarch64-iot_container-boot.json
+++ b/test/data/manifests/fedora_35-aarch64-iot_container-boot.json
@@ -5166,6 +5166,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-x86_64-iot_commit-boot.json b/test/data/manifests/fedora_35-x86_64-iot_commit-boot.json
index 4bcd57bf1..d925fd166 100644
--- a/test/data/manifests/fedora_35-x86_64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-iot_commit-boot.json
@@ -5278,6 +5278,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-x86_64-iot_commit_debug-boot.json b/test/data/manifests/fedora_35-x86_64-iot_commit_debug-boot.json
index de7133d85..ba706b17e 100644
--- a/test/data/manifests/fedora_35-x86_64-iot_commit_debug-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-iot_commit_debug-boot.json
@@ -5285,6 +5285,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-x86_64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_35-x86_64-iot_commit_with_container-boot.json
index 6e33b43aa..cfcb5368c 100644
--- a/test/data/manifests/fedora_35-x86_64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-iot_commit_with_container-boot.json
@@ -5503,6 +5503,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_35-x86_64-iot_container-boot.json b/test/data/manifests/fedora_35-x86_64-iot_container-boot.json
index 665e51473..aba03645d 100644
--- a/test/data/manifests/fedora_35-x86_64-iot_container-boot.json
+++ b/test/data/manifests/fedora_35-x86_64-iot_container-boot.json
@@ -5278,6 +5278,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-aarch64-iot_commit-boot.json b/test/data/manifests/fedora_36-aarch64-iot_commit-boot.json
index c614a34af..877b2f963 100644
--- a/test/data/manifests/fedora_36-aarch64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_36-aarch64-iot_commit-boot.json
@@ -5398,6 +5398,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-aarch64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_36-aarch64-iot_commit_with_container-boot.json
index 4eba33e5c..35b08a4b5 100644
--- a/test/data/manifests/fedora_36-aarch64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_36-aarch64-iot_commit_with_container-boot.json
@@ -5447,6 +5447,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-aarch64-iot_container-boot.json b/test/data/manifests/fedora_36-aarch64-iot_container-boot.json
index 43968d8e3..92f9ed9c5 100644
--- a/test/data/manifests/fedora_36-aarch64-iot_container-boot.json
+++ b/test/data/manifests/fedora_36-aarch64-iot_container-boot.json
@@ -5398,6 +5398,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-x86_64-iot_commit-boot.json b/test/data/manifests/fedora_36-x86_64-iot_commit-boot.json
index 20801d53f..6467b3c51 100644
--- a/test/data/manifests/fedora_36-x86_64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-iot_commit-boot.json
@@ -5518,6 +5518,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-x86_64-iot_commit_debug-boot.json b/test/data/manifests/fedora_36-x86_64-iot_commit_debug-boot.json
index 5ebd466bc..874432e07 100644
--- a/test/data/manifests/fedora_36-x86_64-iot_commit_debug-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-iot_commit_debug-boot.json
@@ -5525,6 +5525,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-x86_64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_36-x86_64-iot_commit_with_container-boot.json
index 5de8c5aac..bdb160b28 100644
--- a/test/data/manifests/fedora_36-x86_64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-iot_commit_with_container-boot.json
@@ -5567,6 +5567,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_36-x86_64-iot_container-boot.json b/test/data/manifests/fedora_36-x86_64-iot_container-boot.json
index 1a7cab75e..1b0ccb71a 100644
--- a/test/data/manifests/fedora_36-x86_64-iot_container-boot.json
+++ b/test/data/manifests/fedora_36-x86_64-iot_container-boot.json
@@ -5518,6 +5518,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-aarch64-iot_commit-boot.json b/test/data/manifests/fedora_37-aarch64-iot_commit-boot.json
index da9e22960..51a7fa9e8 100644
--- a/test/data/manifests/fedora_37-aarch64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_37-aarch64-iot_commit-boot.json
@@ -5468,6 +5468,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-aarch64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_37-aarch64-iot_commit_with_container-boot.json
index f36e667b8..9202b28f5 100644
--- a/test/data/manifests/fedora_37-aarch64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_37-aarch64-iot_commit_with_container-boot.json
@@ -5517,6 +5517,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-aarch64-iot_container-boot.json b/test/data/manifests/fedora_37-aarch64-iot_container-boot.json
index 18380159d..187d6f99b 100644
--- a/test/data/manifests/fedora_37-aarch64-iot_container-boot.json
+++ b/test/data/manifests/fedora_37-aarch64-iot_container-boot.json
@@ -5468,6 +5468,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-x86_64-iot_commit-boot.json b/test/data/manifests/fedora_37-x86_64-iot_commit-boot.json
index c6b52e897..d28496723 100644
--- a/test/data/manifests/fedora_37-x86_64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_37-x86_64-iot_commit-boot.json
@@ -5588,6 +5588,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-x86_64-iot_commit_debug-boot.json b/test/data/manifests/fedora_37-x86_64-iot_commit_debug-boot.json
index a4a6a6855..be3f9f909 100644
--- a/test/data/manifests/fedora_37-x86_64-iot_commit_debug-boot.json
+++ b/test/data/manifests/fedora_37-x86_64-iot_commit_debug-boot.json
@@ -5595,6 +5595,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-x86_64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_37-x86_64-iot_commit_with_container-boot.json
index e3272701c..2b0fbfc1e 100644
--- a/test/data/manifests/fedora_37-x86_64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_37-x86_64-iot_commit_with_container-boot.json
@@ -5637,6 +5637,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_37-x86_64-iot_container-boot.json b/test/data/manifests/fedora_37-x86_64-iot_container-boot.json
index 61c1ed68e..8cbf4cad1 100644
--- a/test/data/manifests/fedora_37-x86_64-iot_container-boot.json
+++ b/test/data/manifests/fedora_37-x86_64-iot_container-boot.json
@@ -5588,6 +5588,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-aarch64-iot_commit-boot.json b/test/data/manifests/fedora_38-aarch64-iot_commit-boot.json
index 099ec65ae..35ea770e3 100644
--- a/test/data/manifests/fedora_38-aarch64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_38-aarch64-iot_commit-boot.json
@@ -5300,6 +5300,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-aarch64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_38-aarch64-iot_commit_with_container-boot.json
index 7567d6216..287c3ab09 100644
--- a/test/data/manifests/fedora_38-aarch64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_38-aarch64-iot_commit_with_container-boot.json
@@ -5349,6 +5349,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-aarch64-iot_container-boot.json b/test/data/manifests/fedora_38-aarch64-iot_container-boot.json
index 413d608ce..1ebd73c0a 100644
--- a/test/data/manifests/fedora_38-aarch64-iot_container-boot.json
+++ b/test/data/manifests/fedora_38-aarch64-iot_container-boot.json
@@ -5300,6 +5300,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-x86_64-iot_commit-boot.json b/test/data/manifests/fedora_38-x86_64-iot_commit-boot.json
index 8b62d08e0..a9627fa3d 100644
--- a/test/data/manifests/fedora_38-x86_64-iot_commit-boot.json
+++ b/test/data/manifests/fedora_38-x86_64-iot_commit-boot.json
@@ -5404,6 +5404,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-x86_64-iot_commit_debug-boot.json b/test/data/manifests/fedora_38-x86_64-iot_commit_debug-boot.json
index 63d54ed8f..bf86c1aa6 100644
--- a/test/data/manifests/fedora_38-x86_64-iot_commit_debug-boot.json
+++ b/test/data/manifests/fedora_38-x86_64-iot_commit_debug-boot.json
@@ -5411,6 +5411,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-x86_64-iot_commit_with_container-boot.json b/test/data/manifests/fedora_38-x86_64-iot_commit_with_container-boot.json
index d857bf6fb..c15cace5f 100644
--- a/test/data/manifests/fedora_38-x86_64-iot_commit_with_container-boot.json
+++ b/test/data/manifests/fedora_38-x86_64-iot_commit_with_container-boot.json
@@ -5453,6 +5453,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/fedora_38-x86_64-iot_container-boot.json b/test/data/manifests/fedora_38-x86_64-iot_container-boot.json
index 3d1f6e3d8..f2ee369b9 100644
--- a/test/data/manifests/fedora_38-x86_64-iot_container-boot.json
+++ b/test/data/manifests/fedora_38-x86_64-iot_container-boot.json
@@ -5404,6 +5404,17 @@
               ]
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_8-aarch64-edge_commit-boot.json
index 2d42a05d0..81bd92af1 100644
--- a/test/data/manifests/rhel_8-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_8-aarch64-edge_commit-boot.json
@@ -1965,6 +1965,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_8-aarch64-edge_commit_with_container-boot.json
index a11456ba2..ce8b56a89 100644
--- a/test/data/manifests/rhel_8-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_8-aarch64-edge_commit_with_container-boot.json
@@ -2087,6 +2087,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-aarch64-edge_container-boot.json b/test/data/manifests/rhel_8-aarch64-edge_container-boot.json
index 10efc0c70..a14b9421b 100644
--- a/test/data/manifests/rhel_8-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_8-aarch64-edge_container-boot.json
@@ -1965,6 +1965,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_8-x86_64-edge_commit-boot.json
index 9465baa35..e8aad0a02 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_commit-boot.json
@@ -2044,6 +2044,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_8-x86_64-edge_commit_rt-boot.json
index a6cd898a8..ac76cf9b4 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_commit_rt-boot.json
@@ -2120,6 +2120,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_8-x86_64-edge_commit_with_container-boot.json
index 073ce753b..33c33c0ad 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_commit_with_container-boot.json
@@ -2166,6 +2166,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_8-x86_64-edge_container-boot.json b/test/data/manifests/rhel_8-x86_64-edge_container-boot.json
index ea47b85e5..1e7a05337 100644
--- a/test/data/manifests/rhel_8-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_8-x86_64-edge_container-boot.json
@@ -2034,6 +2034,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_84-aarch64-edge_commit-boot.json
index d88d0a3bd..109dd5788 100644
--- a/test/data/manifests/rhel_84-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_84-aarch64-edge_commit-boot.json
@@ -2029,6 +2029,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_84-aarch64-edge_commit_with_container-boot.json
index 20548188c..48953ebb2 100644
--- a/test/data/manifests/rhel_84-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_84-aarch64-edge_commit_with_container-boot.json
@@ -2094,6 +2094,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-aarch64-edge_container-boot.json b/test/data/manifests/rhel_84-aarch64-edge_container-boot.json
index 267234e42..d7072d287 100644
--- a/test/data/manifests/rhel_84-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_84-aarch64-edge_container-boot.json
@@ -2029,6 +2029,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_84-x86_64-edge_commit-boot.json
index ba36208ae..25fe8c336 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_commit-boot.json
@@ -2108,6 +2108,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_84-x86_64-edge_commit_rt-boot.json
index f51a2538d..f69606781 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_commit_rt-boot.json
@@ -2184,6 +2184,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_84-x86_64-edge_commit_with_container-boot.json
index 57c525deb..64ad5c60c 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_commit_with_container-boot.json
@@ -2173,6 +2173,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_84-x86_64-edge_container-boot.json b/test/data/manifests/rhel_84-x86_64-edge_container-boot.json
index 2bb19f437..6f89628c7 100644
--- a/test/data/manifests/rhel_84-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_84-x86_64-edge_container-boot.json
@@ -2098,6 +2098,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_85-aarch64-edge_commit-boot.json
index c752bc6b4..71d6f5bdb 100644
--- a/test/data/manifests/rhel_85-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_85-aarch64-edge_commit-boot.json
@@ -1970,6 +1970,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_85-aarch64-edge_commit_with_container-boot.json
index c8b027a92..53c721d64 100644
--- a/test/data/manifests/rhel_85-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_85-aarch64-edge_commit_with_container-boot.json
@@ -2104,6 +2104,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-aarch64-edge_container-boot.json b/test/data/manifests/rhel_85-aarch64-edge_container-boot.json
index 0962deaa1..1a1f916dd 100644
--- a/test/data/manifests/rhel_85-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_85-aarch64-edge_container-boot.json
@@ -1970,6 +1970,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_85-x86_64-edge_commit-boot.json
index 68ccf163f..ed3ca03b8 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_commit-boot.json
@@ -2049,6 +2049,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_85-x86_64-edge_commit_rt-boot.json
index d608740b3..463f3ce38 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_commit_rt-boot.json
@@ -2122,6 +2122,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_85-x86_64-edge_commit_with_container-boot.json
index d06539a86..08b118c73 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_commit_with_container-boot.json
@@ -2183,6 +2183,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_85-x86_64-edge_container-boot.json b/test/data/manifests/rhel_85-x86_64-edge_container-boot.json
index 683402039..856bc3885 100644
--- a/test/data/manifests/rhel_85-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_85-x86_64-edge_container-boot.json
@@ -2039,6 +2039,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_86-aarch64-edge_commit-boot.json
index 12edbc953..54f45bbdc 100644
--- a/test/data/manifests/rhel_86-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_86-aarch64-edge_commit-boot.json
@@ -1965,6 +1965,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_86-aarch64-edge_commit_with_container-boot.json
index 093a3a630..841d9a6bc 100644
--- a/test/data/manifests/rhel_86-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_86-aarch64-edge_commit_with_container-boot.json
@@ -2087,6 +2087,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-aarch64-edge_container-boot.json b/test/data/manifests/rhel_86-aarch64-edge_container-boot.json
index 60c5674a7..8d89dd754 100644
--- a/test/data/manifests/rhel_86-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_86-aarch64-edge_container-boot.json
@@ -1965,6 +1965,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_86-x86_64-edge_commit-boot.json
index 01e201a16..0b07a4457 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_commit-boot.json
@@ -2044,6 +2044,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_86-x86_64-edge_commit_rt-boot.json
index 06b7a9796..b0ea3f337 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_commit_rt-boot.json
@@ -2120,6 +2120,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_86-x86_64-edge_commit_with_container-boot.json
index 28affab2c..123798d67 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_commit_with_container-boot.json
@@ -2166,6 +2166,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_86-x86_64-edge_container-boot.json b/test/data/manifests/rhel_86-x86_64-edge_container-boot.json
index 4f37aed3a..07fa6c455 100644
--- a/test/data/manifests/rhel_86-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_86-x86_64-edge_container-boot.json
@@ -2034,6 +2034,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_87-aarch64-edge_commit-boot.json
index 82798cbe5..60b535652 100644
--- a/test/data/manifests/rhel_87-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_87-aarch64-edge_commit-boot.json
@@ -1968,6 +1968,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_87-aarch64-edge_commit_with_container-boot.json
index c83f16dc5..a44ba5bfd 100644
--- a/test/data/manifests/rhel_87-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_87-aarch64-edge_commit_with_container-boot.json
@@ -2090,6 +2090,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-aarch64-edge_container-boot.json b/test/data/manifests/rhel_87-aarch64-edge_container-boot.json
index aeb062942..a6769f757 100644
--- a/test/data/manifests/rhel_87-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_87-aarch64-edge_container-boot.json
@@ -1968,6 +1968,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_87-x86_64-edge_commit-boot.json
index 52493038b..bd8e8f4ff 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_commit-boot.json
@@ -2047,6 +2047,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_87-x86_64-edge_commit_rt-boot.json
index 1e3020f3d..0d11a063a 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_commit_rt-boot.json
@@ -2120,6 +2120,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_87-x86_64-edge_commit_with_container-boot.json
index c2d48d1b7..ed2e30879 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_commit_with_container-boot.json
@@ -2169,6 +2169,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_87-x86_64-edge_container-boot.json b/test/data/manifests/rhel_87-x86_64-edge_container-boot.json
index a07687c10..2b08dc5bc 100644
--- a/test/data/manifests/rhel_87-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_87-x86_64-edge_container-boot.json
@@ -2037,6 +2037,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_88-aarch64-edge_commit-boot.json
index 8dc4e0111..2f49173a4 100644
--- a/test/data/manifests/rhel_88-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_88-aarch64-edge_commit-boot.json
@@ -1968,6 +1968,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_88-aarch64-edge_commit_with_container-boot.json
index 6be9c7ed2..a99c197d3 100644
--- a/test/data/manifests/rhel_88-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_88-aarch64-edge_commit_with_container-boot.json
@@ -2090,6 +2090,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-aarch64-edge_container-boot.json b/test/data/manifests/rhel_88-aarch64-edge_container-boot.json
index 063f444bc..4c64d9dbb 100644
--- a/test/data/manifests/rhel_88-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_88-aarch64-edge_container-boot.json
@@ -1968,6 +1968,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_88-x86_64-edge_commit-boot.json
index ae77f3815..25421a4e9 100644
--- a/test/data/manifests/rhel_88-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_88-x86_64-edge_commit-boot.json
@@ -2047,6 +2047,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_88-x86_64-edge_commit_rt-boot.json
index 55e63668c..cfcf0d035 100644
--- a/test/data/manifests/rhel_88-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_88-x86_64-edge_commit_rt-boot.json
@@ -2117,6 +2117,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_88-x86_64-edge_commit_with_container-boot.json
index c4def352c..758373544 100644
--- a/test/data/manifests/rhel_88-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_88-x86_64-edge_commit_with_container-boot.json
@@ -2169,6 +2169,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_88-x86_64-edge_container-boot.json b/test/data/manifests/rhel_88-x86_64-edge_container-boot.json
index d2548fe74..2972bfc5b 100644
--- a/test/data/manifests/rhel_88-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_88-x86_64-edge_container-boot.json
@@ -2037,6 +2037,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_90-aarch64-edge_commit-boot.json
index 478d7f513..113ff4e03 100644
--- a/test/data/manifests/rhel_90-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-edge_commit-boot.json
@@ -1688,6 +1688,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_90-aarch64-edge_commit_with_container-boot.json
index d8530e546..434918b29 100644
--- a/test/data/manifests/rhel_90-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-edge_commit_with_container-boot.json
@@ -1801,6 +1801,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-aarch64-edge_container-boot.json b/test/data/manifests/rhel_90-aarch64-edge_container-boot.json
index af3b81ab0..c659374e3 100644
--- a/test/data/manifests/rhel_90-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_90-aarch64-edge_container-boot.json
@@ -1688,6 +1688,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_90-x86_64-edge_commit-boot.json
index 740af0af6..283261003 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_commit-boot.json
@@ -1776,6 +1776,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_90-x86_64-edge_commit_rt-boot.json
index 4b28d7753..d9e329d50 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_commit_rt-boot.json
@@ -1945,6 +1945,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_90-x86_64-edge_commit_with_container-boot.json
index 37b9d677f..2019c02f7 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_commit_with_container-boot.json
@@ -1889,6 +1889,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_90-x86_64-edge_container-boot.json b/test/data/manifests/rhel_90-x86_64-edge_container-boot.json
index 71d4ff243..20dd6ff7f 100644
--- a/test/data/manifests/rhel_90-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_90-x86_64-edge_container-boot.json
@@ -1766,6 +1766,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_91-aarch64-edge_commit-boot.json
index d0657ee15..c5dc5f5d5 100644
--- a/test/data/manifests/rhel_91-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_91-aarch64-edge_commit-boot.json
@@ -4495,6 +4495,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_91-aarch64-edge_commit_with_container-boot.json
index e3b57e790..3f32eb1af 100644
--- a/test/data/manifests/rhel_91-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_91-aarch64-edge_commit_with_container-boot.json
@@ -4544,6 +4544,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-aarch64-edge_container-boot.json b/test/data/manifests/rhel_91-aarch64-edge_container-boot.json
index ab68dfde1..ecd55efd5 100644
--- a/test/data/manifests/rhel_91-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_91-aarch64-edge_container-boot.json
@@ -4495,6 +4495,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_91-x86_64-edge_commit-boot.json
index 5985aa628..09ffec699 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_commit-boot.json
@@ -4706,6 +4706,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_91-x86_64-edge_commit_rt-boot.json
index 4efd283d5..42ca82c79 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_commit_rt-boot.json
@@ -5137,6 +5137,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_91-x86_64-edge_commit_with_container-boot.json
index 6dc2501a4..b5faa2ac7 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_commit_with_container-boot.json
@@ -4755,6 +4755,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_91-x86_64-edge_container-boot.json b/test/data/manifests/rhel_91-x86_64-edge_container-boot.json
index f802e9eff..5cb6d927b 100644
--- a/test/data/manifests/rhel_91-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_91-x86_64-edge_container-boot.json
@@ -4695,6 +4695,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-aarch64-edge_commit-boot.json b/test/data/manifests/rhel_92-aarch64-edge_commit-boot.json
index e40918975..52ad1438e 100644
--- a/test/data/manifests/rhel_92-aarch64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_92-aarch64-edge_commit-boot.json
@@ -4495,6 +4495,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-aarch64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_92-aarch64-edge_commit_with_container-boot.json
index 87c6ce638..1c6eca163 100644
--- a/test/data/manifests/rhel_92-aarch64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_92-aarch64-edge_commit_with_container-boot.json
@@ -4544,6 +4544,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-aarch64-edge_container-boot.json b/test/data/manifests/rhel_92-aarch64-edge_container-boot.json
index 979a9a8da..3b5f7e64a 100644
--- a/test/data/manifests/rhel_92-aarch64-edge_container-boot.json
+++ b/test/data/manifests/rhel_92-aarch64-edge_container-boot.json
@@ -4495,6 +4495,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-x86_64-edge_commit-boot.json b/test/data/manifests/rhel_92-x86_64-edge_commit-boot.json
index 86dceabce..992d78919 100644
--- a/test/data/manifests/rhel_92-x86_64-edge_commit-boot.json
+++ b/test/data/manifests/rhel_92-x86_64-edge_commit-boot.json
@@ -4706,6 +4706,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-x86_64-edge_commit_rt-boot.json b/test/data/manifests/rhel_92-x86_64-edge_commit_rt-boot.json
index dc7c224c0..aa4aa77ad 100644
--- a/test/data/manifests/rhel_92-x86_64-edge_commit_rt-boot.json
+++ b/test/data/manifests/rhel_92-x86_64-edge_commit_rt-boot.json
@@ -5137,6 +5137,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-x86_64-edge_commit_with_container-boot.json b/test/data/manifests/rhel_92-x86_64-edge_commit_with_container-boot.json
index aedf9d887..831b71fb4 100644
--- a/test/data/manifests/rhel_92-x86_64-edge_commit_with_container-boot.json
+++ b/test/data/manifests/rhel_92-x86_64-edge_commit_with_container-boot.json
@@ -4755,6 +4755,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {
diff --git a/test/data/manifests/rhel_92-x86_64-edge_container-boot.json b/test/data/manifests/rhel_92-x86_64-edge_container-boot.json
index 918ea9c6e..81fe09a5e 100644
--- a/test/data/manifests/rhel_92-x86_64-edge_container-boot.json
+++ b/test/data/manifests/rhel_92-x86_64-edge_container-boot.json
@@ -4695,6 +4695,17 @@
               }
             }
           },
+          {
+            "type": "org.osbuild.systemd-journald",
+            "options": {
+              "filename": "10-persistent.conf",
+              "config": {
+                "Journal": {
+                  "Storage": "persistent"
+                }
+              }
+            }
+          },
           {
             "type": "org.osbuild.selinux",
             "options": {