Extend root schema

Signed-off-by: Itxaka <itxaka.garcia@spectrocloud.com>
This commit is contained in:
Itxaka
2023-07-25 11:23:19 +02:00
parent fe26d1de91
commit 0a978224e3

View File

@@ -11,16 +11,34 @@ import (
// RootSchema groups all the different schema of the Kairos configuration together.
type RootSchema struct {
_ struct{} `title:"Kairos Schema" description:"Defines all valid Kairos configuration attributes."`
Bundles []BundleSchema `json:"bundles,omitempty" description:"Add bundles in runtime"`
ConfigURL string `json:"config_url,omitempty" description:"URL download configuration from."`
Env []string `json:"env,omitempty"`
FailOnBundleErrors bool `json:"fail_on_bundles_errors,omitempty"`
GrubOptionsSchema `json:"grub_options,omitempty"`
Install InstallSchema `json:"install,omitempty"`
Options []interface{} `json:"options,omitempty" description:"Various options."`
Users []UserSchema `json:"users,omitempty" minItems:"1" required:"true"`
P2P P2PSchema `json:"p2p,omitempty"`
_ struct{} `title:"Kairos Schema" description:"Defines all valid Kairos configuration attributes."`
Bundles []BundleSchema `json:"bundles,omitempty" description:"Add bundles in runtime"`
ConfigURL string `json:"config_url,omitempty" description:"URL download configuration from."`
Env []string `json:"env,omitempty"`
FailOnBundleErrors bool `json:"fail_on_bundles_errors,omitempty"`
GrubOptionsSchema `json:"grub_options,omitempty"`
Install InstallSchema `json:"install,omitempty"`
Options []interface{} `json:"options,omitempty" description:"Various options."`
Users []UserSchema `json:"users,omitempty" minItems:"1" required:"true"`
P2P P2PSchema `json:"p2p,omitempty"`
Debug bool `json:"debug,omitempty" mapstructure:"debug"`
Strict bool `json:"strict,omitempty" mapstructure:"strict"`
CloudInitPaths []string `json:"cloud-init-paths,omitempty" mapstructure:"cloud-init-paths"`
EjectCD bool `json:"eject-cd,omitempty" mapstructure:"eject-cd"`
FullCloudConfig string `json:"fullcloudconfig,omitempty" mapstructure:"fullcloudconfig"`
Cosign bool `json:"cosign,omitempty" mapstructure:"cosign"`
Verify bool `json:"verify,omitempty" mapstructure:"verify"`
CosignPubKey string `json:"cosign-key,omitempty" mapstructure:"cosign-key"`
Arch string `json:"arch,omitempty" mapstructure:"arch"`
Platform PlatformSchema `json:"platform,omitempty" mapstructure:"platform"`
SquashFsCompressionConfig []string `json:"squash-compression,omitempty" mapstructure:"squash-compression"`
SquashFsNoCompression bool `json:"squash-no-compression,omitempty" mapstructure:"squash-no-compression"`
}
type PlatformSchema struct {
OS string
Arch string
GolangArch string
}
// KConfig is used to parse and validate Kairos configuration files.