Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
555e755
v1beta1 start
AustinAbro321 Oct 20, 2025
64b6024
WIP
AustinAbro321 Oct 20, 2025
1ae1fc3
add user story
AustinAbro321 Oct 20, 2025
d6967e2
health checks example
AustinAbro321 Oct 20, 2025
9aa4a78
motivation
AustinAbro321 Oct 20, 2025
38fd5de
fixes
AustinAbro321 Oct 20, 2025
52f55f9
restructure
AustinAbro321 Oct 20, 2025
8a7d369
restructure
AustinAbro321 Oct 20, 2025
0dfd1c7
restructure
AustinAbro321 Oct 20, 2025
ffb02a2
easier to read condition
AustinAbro321 Oct 20, 2025
776d4d0
spelling
AustinAbro321 Oct 20, 2025
b4f1ebf
zarf chart changes
AustinAbro321 Oct 20, 2025
50d6dbd
zarf chart
AustinAbro321 Oct 20, 2025
52b2b78
zarf chart
AustinAbro321 Oct 20, 2025
e571b1e
grammar
AustinAbro321 Oct 20, 2025
38a1249
grammar
AustinAbro321 Oct 20, 2025
f7ba837
upgrade / downgrade
AustinAbro321 Oct 21, 2025
345e9c8
ZEP 0048
AustinAbro321 Oct 21, 2025
9764cef
proposal
AustinAbro321 Oct 21, 2025
6841fa3
small fixes
AustinAbro321 Oct 21, 2025
c6cb389
v1beta1
AustinAbro321 Oct 22, 2025
dd5c984
zarf tools wait-for
AustinAbro321 Oct 23, 2025
6423279
space
AustinAbro321 Oct 23, 2025
a1f1f3a
cleanup
AustinAbro321 Oct 23, 2025
0251e7a
fix
AustinAbro321 Oct 24, 2025
27e195f
clenaup flow
AustinAbro321 Oct 24, 2025
dffa7bd
improve grammar and flow
AustinAbro321 Oct 24, 2025
9e27b3b
add that default is removed
AustinAbro321 Oct 24, 2025
8772404
package definition
AustinAbro321 Oct 24, 2025
265b8ba
update build
AustinAbro321 Oct 28, 2025
0883be9
update acceptance criteria
AustinAbro321 Dec 4, 2025
d804a39
zarf dev upgrade schema
AustinAbro321 Dec 4, 2025
1fb4f30
Apply suggestions from code review
AustinAbro321 Dec 4, 2025
a4e1eef
make apiversion required
AustinAbro321 Dec 8, 2025
29337f1
Merge branch 'v1beta1-schema' of github.com:zarf-dev/proposals into v…
AustinAbro321 Dec 8, 2025
cd17d45
introduce other system for package templating
AustinAbro321 Feb 6, 2026
60a62f2
initial description for components
AustinAbro321 Feb 6, 2026
af97778
remote components
AustinAbro321 Feb 6, 2026
ee79166
grammar
AustinAbro321 Feb 6, 2026
0ecc357
grammar fixes
AustinAbro321 Feb 6, 2026
427569f
user story
AustinAbro321 Feb 6, 2026
585ba51
update examples
AustinAbro321 Feb 6, 2026
19c2aa9
api version
AustinAbro321 Feb 6, 2026
80056b3
behavior changes
AustinAbro321 Feb 6, 2026
2cc6631
zarf component config
AustinAbro321 Feb 6, 2026
ebbc9fe
grammar updates
AustinAbro321 Feb 9, 2026
6af045e
grammar and minor adjustments
AustinAbro321 Feb 9, 2026
aee3271
add in schema for component config
AustinAbro321 Feb 9, 2026
6c463e1
fixes
AustinAbro321 Feb 9, 2026
3b0e4e1
variants and components
AustinAbro321 Feb 9, 2026
3342c86
variants
AustinAbro321 Feb 9, 2026
92ccd17
update zarf.yaml representing schema
AustinAbro321 Feb 9, 2026
f5caea2
update zarf.yaml representing schema
AustinAbro321 Feb 9, 2026
8d174a5
cleanup
AustinAbro321 Feb 9, 2026
88a25fc
fix
AustinAbro321 Feb 9, 2026
f650866
zarf features
AustinAbro321 Feb 12, 2026
defbc5d
alternatives and drawbacks
AustinAbro321 Feb 12, 2026
38908af
update history
AustinAbro321 Feb 12, 2026
345ad5f
changing to zarf component publish
AustinAbro321 Feb 13, 2026
ea9467a
make images a list of objects
AustinAbro321 Feb 18, 2026
3c09167
keep default
AustinAbro321 Mar 16, 2026
fc902ab
Merge branch 'main' into v1beta1-schema
AustinAbro321 Apr 15, 2026
5281d10
update to reference 0048 on disk
AustinAbro321 Apr 15, 2026
f4d602b
grammar and zep fixes
AustinAbro321 Apr 15, 2026
89773d5
grammar
AustinAbro321 Apr 15, 2026
2946b0e
logical fixes
AustinAbro321 Apr 15, 2026
0a9e806
fix zarf.yaml
AustinAbro321 Apr 15, 2026
65172b0
fix errors
AustinAbro321 Apr 15, 2026
0129f15
updates for better flow
AustinAbro321 Apr 15, 2026
55acb1a
change back update schema zep
AustinAbro321 Apr 17, 2026
e9e2915
clarify v1alpha1
AustinAbro321 Apr 17, 2026
95ba4c5
Update 0051-v1beta1-schema/README.md
AustinAbro321 Apr 20, 2026
17a5140
alternative
AustinAbro321 Apr 20, 2026
de58485
Merge branch 'v1beta1-schema' of github.com:zarf-dev/proposals into v…
AustinAbro321 Apr 20, 2026
391052e
images import
AustinAbro321 Apr 20, 2026
3d2e57c
add services
AustinAbro321 Apr 20, 2026
a53c7b4
more detail as to why we avoid skeleton templates
AustinAbro321 Apr 20, 2026
b339bfa
update zep.yaml
AustinAbro321 Apr 20, 2026
7f88d60
Apply suggestions from code review
AustinAbro321 Apr 22, 2026
d294939
remove omit empty
AustinAbro321 Apr 22, 2026
f74b7c9
update comment
AustinAbro321 Apr 22, 2026
e753a7e
make chart fields pointers
AustinAbro321 Apr 22, 2026
9f55061
update component to target
AustinAbro321 Apr 22, 2026
231d6b7
remove distro
AustinAbro321 Apr 22, 2026
a80543f
talk about inling cluster architecture
AustinAbro321 Apr 22, 2026
d70db74
additional clarifying line
AustinAbro321 Apr 22, 2026
bf67bd2
add one of to the schema
AustinAbro321 Apr 22, 2026
54d6d26
use full word repository
AustinAbro321 Apr 22, 2026
b9fca04
put a copy of the package.go
AustinAbro321 Apr 22, 2026
154f237
remove the word Zarf as a prefix for many objects
AustinAbro321 Apr 22, 2026
36ec656
show full go objects
AustinAbro321 Apr 22, 2026
69474c9
correct mistakes
AustinAbro321 Apr 22, 2026
f20055a
wait back to nowait
AustinAbro321 Apr 29, 2026
02b27b9
revert change to maxTotalSeconds
AustinAbro321 Apr 29, 2026
fea7822
change localOS to OS
AustinAbro321 Apr 29, 2026
73a3e7d
add server side apply
AustinAbro321 Apr 30, 2026
4625c34
remote component templating
AustinAbro321 Apr 30, 2026
afae619
replace onsuccess with onafter
AustinAbro321 Apr 30, 2026
81f6cb2
variants extend base component
AustinAbro321 Apr 30, 2026
e83469f
config schema
AustinAbro321 May 1, 2026
6096d49
remove ironbank verbiage
AustinAbro321 May 1, 2026
347c83f
mention drawback
AustinAbro321 May 4, 2026
23ffc55
fix wording
AustinAbro321 May 4, 2026
4ce466d
correct list
AustinAbro321 May 5, 2026
34546a0
remove zarf init config
AustinAbro321 May 5, 2026
aa3cb32
reasoning for drawback
AustinAbro321 May 6, 2026
1e744bf
avoid variants in component config
AustinAbro321 May 6, 2026
99b0b10
change Zarf services to an enum
AustinAbro321 May 6, 2026
6264652
brevity
AustinAbro321 May 6, 2026
9738cdd
change component config proposal
AustinAbro321 May 6, 2026
cf16df5
component level action defaults
AustinAbro321 May 6, 2026
50d9a87
fix grammar
AustinAbro321 May 6, 2026
804113a
path & url to paths
AustinAbro321 May 6, 2026
d557b22
remove variables and constants
AustinAbro321 May 7, 2026
d6cddfc
defaults
AustinAbro321 May 8, 2026
e0199fe
import object list rather than paths
AustinAbro321 May 11, 2026
442f390
kind
AustinAbro321 May 13, 2026
92b738c
terminal->hostname
AustinAbro321 May 13, 2026
fac9f3d
no wait to skip wait
AustinAbro321 May 13, 2026
91151ee
make server side apply an enum
AustinAbro321 May 13, 2026
277f092
target to destination
AustinAbro321 May 13, 2026
096c591
use int32 across the board
AustinAbro321 May 13, 2026
b8ac552
update
AustinAbro321 May 13, 2026
d0fb443
remove default
AustinAbro321 May 14, 2026
86db53f
metadata to package metadata
AustinAbro321 May 19, 2026
f9ac46c
create kustomize sub-field
AustinAbro321 May 19, 2026
e2129b6
actions.mute to actions.silent
AustinAbro321 May 19, 2026
6e1db1c
enable values
AustinAbro321 May 19, 2026
acdb961
skip schema validation
AustinAbro321 May 19, 2026
a1c12a1
prevent namespace override
AustinAbro321 May 19, 2026
8bb04fa
boolean fields
AustinAbro321 May 19, 2026
2e02965
specifying wait behavior
AustinAbro321 May 19, 2026
9f19f1f
fix english
AustinAbro321 May 19, 2026
b69ee4d
inconsistencies
AustinAbro321 May 19, 2026
336da88
update line about default api version
AustinAbro321 May 26, 2026
3e6771b
make retries a pointer
AustinAbro321 May 26, 2026
f757eaf
proveance files
AustinAbro321 May 28, 2026
014e6ee
component spec
AustinAbro321 May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions 0048-schema-update-process/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ All future package definition schemas will require a root level `apiVersion` fie

During Zarf's lifetime, it will introduce, deprecate, and drop support for ZarfPackageConfig API versions. Once a version is deprecated, users will still be able to perform all package operations such as create, publish, and deploy, but will receive warnings that they should upgrade. Zarf will drop support for an API version one year after it is deprecated. Once an API version is no longer supported, Zarf will error if a user tries to perform common package operations with that API version such as `zarf package create`, `zarf package publish`, or `zarf package deploy`. Even after Zarf drops official support for an API version, Zarf will still work with the commands `zarf package inspect`, `zarf package remove`, and `zarf package pull` for an additional year. These commands will help users understand their unsupported existing packages, which may have already been deployed to a cluster, so that they can migrate them. The SDK will follow the same timeline, i.e. one year for `packager.Create`, two years for `packager.Pull`.

The zarf.yaml in a built package will include the package definition for every supported API version. When printing the package definition to the user, for example with the command `zarf package inspect definition`, the printed definition will be the latest API version by default. A new flag `--api-version` will be introduced to `zarf package inspect definition` and `zarf dev inspect definition` to allow configuring the output.
The zarf.yaml in a built package will include the package definition for every supported API version. When printing the package definition to the user, for example with the command `zarf package inspect definition`, the output will be the API version of the package by default. A new flag `--api-version` will be introduced to `zarf package inspect definition` and `zarf dev inspect definition` to allow configuring the output.

A new command `zarf dev upgrade-schema` will be introduced to allow users to convert from one API version to another. The command will default to converting to the latest API version. It will output the converted package definition for the latest schema version. It will accept a path to a directory containing a zarf.yaml file and an optional flag, `--to`, to declare the API version. For instance, a user could run `zarf dev upgrade-schema . --to v1beta1` and they will receive the converted package definition to stdout. The command will not allow changing from a newer version to an older version, so running `zarf dev upgrade-schema . --to=v1alpha1` on a `v1beta1` schema will error. This command will only accept a local package definition, and will not accept created packages, published packages, or deployed packages.

Expand Down Expand Up @@ -186,7 +186,7 @@ As a package creator, I want to create and publish packages using the newer API

#### Story 3

As a package creator, I want to update my package definition to the v1beta1 schema, so I run `zarf dev upgrade-schema --to v1beta1` with a zarf.yaml in my current directory and it outputs the converted package definition to stdout.
As a package creator, I want to update my package definition to the v1beta1 schema, so I run `zarf dev upgrade-schema . --to v1beta1 > zarf.yaml` against the directory containing my zarf.yaml. The command writes the converted definition to stdout, replacing my existing zarf.yaml.

#### Story 4

Expand Down Expand Up @@ -472,6 +472,10 @@ not need to be as detailed as the proposal, but should include enough
information to express the idea and why it was not acceptable.
-->

### Use only one API version

Instead of introducing a new schema, we could over time remove and introduce fields on the existing package schema. This was rejected as we believe a new schema will provide a more intuitive experience for developers and maintainers. For instance, attempting to implement the proposed Helm changes would result in a large, confusing schema. Likewise, it would be difficult to change defaults, such as moving from required to optional, since we wouldn't have a new API version to signal that there is a breaking change. Additionally, removing deprecated fields such as `dataInjections` would require a major version change. Keeping the API version and CLI version decoupled allows flexibility to make the changes we need.

### Public Facing Internal Type

Rather than updating functions to accept a newer version of the schema, Zarf could have a publicly facing internal type that has every field from every version and use that throughout the SDK. The upside of this approach is that we would avoid breaking changes throughout the lifetime of the SDK. The downside is that it would make it easy for anyone using the SDK to set deprecated fields. It would also make it confusing and unclear which fields attach to which versions.
Expand Down
10 changes: 4 additions & 6 deletions 0048-schema-update-process/zep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,17 @@ approvers:
- "@zarf-dev"

see-also:
# Will add the v1 schema here when applicable
- "/0051-v1beta1-schema"
replaces:

# The target maturity stage in the current dev cycle for this ZEP.
stage: alpha
stage: ""

# The most recent milestone for which work toward delivery of this ZEP has been
# done. This can be the current (upcoming) milestone, if it is being actively
# worked on.
latest-milestone: "v0.65.0"
latest-milestone: "v0.75.0"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
alpha: "v0.65.0"
beta: "v0.65.0"
stable: "v0.65.0"
stable: "TBD"
Loading