Skip to content

feat: Add Kraftfile schema v0.7 support#2776

Open
ijaidev wants to merge 8 commits intounikraft:stagingfrom
ijaidev:kraftfile-schema07-support
Open

feat: Add Kraftfile schema v0.7 support#2776
ijaidev wants to merge 8 commits intounikraft:stagingfrom
ijaidev:kraftfile-schema07-support

Conversation

@ijaidev
Copy link
Copy Markdown
Contributor

@ijaidev ijaidev commented Apr 8, 2026

Add Kraftfile schema v0.7 support

Prerequisite checklist

Description of changes

This PR adds Kraftfile schema v0.7 support across project loading,
template resolution, runtime handling, and packaging flows.

  • Dispatch project loading by Kraftfile spec version and map v0.7
    documents into the existing application model.

  • Resolve v0.7 templates before application mapping so template
    defaults merge correctly while project fields continue to take
    precedence.

  • Preserve full OCI runtime references during parsing and runtime
    package lookup.

  • Keep v0.7 projects read-only for mutation paths that still depend
    on the legacy loader.

  • Normalize target artifact names and honor the configured project
    output directory during build flows.

  • Carry rootfs and ROM filesystem metadata through application
    loading, initrd generation, packaging, and OCI manifest creation.

  • Extend test coverage around spec dispatch, template behavior,
    runtime references, output paths, and filesystem metadata
    propagation.

    Issue Add support for v0.7 kraftfile schema #2682

@craciunoiuc
Copy link
Copy Markdown
Member

Hey, the format is type(location) not [type](location) can you switch them please? Thanks. For example: gomod(deps): ...
image

ijaidev added 8 commits April 8, 2026 11:59
Add the Kraftfile v0.7 parser dependency and the YAML helper it
uses so later loader changes can compile against the new schema
package.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Track which loader produced an application and reject Save,
AddLibrary, and RemoveLibrary for non-legacy projects so the
new v0.7 loader stays read-only.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Split project loading by Kraftfile spec version and add the
first v0.7 document mapper for name, core, libraries, targets,
rootfs, volumes, and loader metadata.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Keep full registry and digest runtime references intact during
parsing and query package catalogs with the derived name and
version fields used by build and run.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Resolve v0.7 templates before converting the document into the
Application model so template defaults merge once and project
fields continue to win.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Normalize target artifact names with the shared project-name
helper and reuse the configured project output directory when
build moves kernel and initramfs artifacts.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Carry rootfs and ROM filesystem descriptors through app
loading, initrd generation, packaging, OCI emission, and CLI
flag parsing so v0.7 filesystem metadata is preserved end to
end.

Signed-off-by: Jaidev <himjaidev@gmail.com>
Change the fmt target to use $(GOCILINT) fmt instead of $(GOCILINT) format
as the correct sub-command is fmt.

Signed-off-by: Jaidev <himjaidev@gmail.com>
@ijaidev ijaidev force-pushed the kraftfile-schema07-support branch from 2c18c69 to a4facbe Compare April 8, 2026 12:02
@ijaidev ijaidev changed the title Kraftfile schema 0.7 support feat: Add Kraftfile schema v0.7 support Apr 8, 2026
@ijaidev
Copy link
Copy Markdown
Contributor Author

ijaidev commented Apr 8, 2026

Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🧊 Icebox

Development

Successfully merging this pull request may close these issues.

2 participants