Skip to content

feat: add config embedding#448

Merged
talos-bot merged 1 commit into
mainfrom
embedded-config
May 25, 2026
Merged

feat: add config embedding#448
talos-bot merged 1 commit into
mainfrom
embedded-config

Conversation

@Orzelius

@Orzelius Orzelius commented May 11, 2026

Copy link
Copy Markdown
Member

allow embedding initial machine config for enterprise image factory.

the download integration test needed some extra work to get it running with talos 1.13

@github-project-automation github-project-automation Bot moved this to To Do in Planning May 11, 2026
@talos-bot talos-bot moved this from To Do to In Review in Planning May 11, 2026
Comment thread internal/frontend/http/ui.go Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for embedding an initial Talos machine configuration into generated schematics/images, gated behind Enterprise functionality and Talos version support, and exposes the option in the HTTP wizard UI.

Changes:

  • Extend the schematic customization model to carry an embedded machine configuration string.
  • Add an Enterprise ConfigEmbedder hook and wire it through the HTTP frontend and service wiring.
  • Add UI wizard fields + localization for entering embedded machine config, and propagate the field into the Talos imager profile.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
pkg/schematic/schematic.go Adds EmbeddedMachineConfiguration to schematic customization YAML model.
pkg/enterprise/enterprise.go Introduces ConfigEmbedder interface in the Enterprise glue layer.
pkg/enterprise/enterprise_on.go Wires enterprise implementation via NewConfigEmbedder() under enterprise build.
pkg/enterprise/enterprise_off.go Returns nil embedder when enterprise is disabled.
enterprise/config/config_embedder.go Implements the enterprise embedder (sets schematic embedded config).
internal/profile/profile.go Propagates embedded machine config from schematic into Talos profile customization.
internal/frontend/http/http.go Plumbs ConfigEmbedder into the HTTP frontend instance.
internal/frontend/http/ui.go Adds wizard params, form parsing, UI gating, and schematic embedding call.
internal/frontend/http/templates/wizard-cmdline.html Adds textarea for embedded machine configuration when enabled.
internal/frontend/http/templates/wizard-final.html Updates back navigation params to include embedded-config selection.
internal/frontend/http/templates/common.html Persists embedded-config values via hidden inputs across wizard steps.
internal/frontend/http/locales/active.en.yaml Adds English strings for embedded config UI text.
internal/frontend/http/locales/active.fr.yaml Adds French strings for embedded config UI text.
internal/frontend/http/locales/active.pl.yaml Adds Polish strings for embedded config UI text.
internal/frontend/http/locales/active.ru.yaml Adds Russian strings for embedded config UI text.
internal/frontend/http/css/output.css Updates compiled Tailwind output to include new utility usage.
cmd/image-factory/cmd/service.go Passes enterprise.NewConfigEmbedder() into the HTTP frontend constructor.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/frontend/http/ui.go Outdated
Comment thread internal/profile/profile.go Outdated
Comment thread internal/frontend/http/locales/active.en.yaml
Comment thread pkg/schematic/schematic.go

@smira smira left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we also need:

  • docs/api.md update for new schematic field (Enterprise only note)
  • integration tests, preferably based on the ones which extract initramfs to verify that embedded config gets actually embedded (I believe we already verify extensions, and this should be an extension?)

@smira smira left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please stop pushing PRs to origin (push to your fork)

@Orzelius Orzelius marked this pull request as draft May 18, 2026 07:17
@Orzelius Orzelius force-pushed the embedded-config branch 14 times, most recently from 6ead978 to 731c88c Compare May 21, 2026 13:31
@Orzelius Orzelius changed the title feat: add config embedding for enterprise IF feat: add config embedding May 21, 2026
@Orzelius Orzelius marked this pull request as ready for review May 21, 2026 14:03
@Orzelius

Orzelius commented May 21, 2026

Copy link
Copy Markdown
Member Author

e2e test failure is unrelated

Comment thread internal/profile/profile.go Outdated

@smira smira left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably also deserves a note in hack/release.toml

@github-project-automation github-project-automation Bot moved this from In Review to Approved in Planning May 21, 2026
Comment thread docs/api.md
# optional, include well-known UEFI certificates into auto-enrollment database (SecureBoot ISO only)
includeWellKnownCertificates: true
bootloader: sd-boot # optional, defaults to auto (bootloader chosen by imager), other options: dual-boot, grub
embeddedMachineConfiguration: | # optional, embedded machine configuration (YAML-encoded)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we put an example of using two documents, so it's not confusing

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, good idea

@Orzelius Orzelius force-pushed the embedded-config branch 3 times, most recently from ba9bb9d to 7bd0701 Compare May 25, 2026 05:02
allow embedding machine configuration into Talos images.

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
@Orzelius

Copy link
Copy Markdown
Member Author

/m

@talos-bot talos-bot merged commit 2887e78 into main May 25, 2026
21 checks passed
@github-project-automation github-project-automation Bot moved this from Approved to Done in Planning May 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

6 participants