RELAX-NG KIWI Schema Documentation

Marcus Schäfer

Wrote original XSD Schema 

Khalil Ahmed

Original Stylesheet 

Thomas Schraitle

Rewrote XSD into RNC Modified XSLT stylesheet to output DocBook refentry 

$Id: kiwi.rnc 2957 2008-01-11 12:53:39Z thomas-schraitle $

RNC Schema Version 2.0

Legal Notice

This product includes software developed by Khalil Ahmed (http://www.techquila.com).

Published: 05/23/2008


Table of Contents

arch — Describe Packages and Metadata
architectures — Describe Packages and Metadata
author — Author of the image
chroot — Describe Packages and Metadata
commandline — Specifies the Kernel Boot Commandline
compressed — Compress image.
configuration — Specifies Configuration files
contact — Contact Information from the Author, like Email etc.
defaultbaseroot — Default Path if baseroot Option is not Specified
defaultdestination — Default Path if destdir Otion is Not Specified
defaultroot — Default Root Directory Name if root Option is Not Specified
deploy — Controls the Image Deploy Process
description — A Short Description
drivers — A Collection of Driver Files
except — A Pointer to a File which should be excluded
file — A Pointer to a File
ignore — Ignores a Package
image — The root element of the configuration file
initrd — Specifies where the Boot Image can be Found
instrepo — Name of a Installation Repository
instsource — Describe Packages and Metadata
kernel — Specifies Where to Find the Boot Kernel
keytable — Image keytable setup.
locale — Image locale setup.
metadata — Contains Metadata
metafile — A file Pointer Optionally Bundled With a Script
oem-boot-title — For oemboot driven images: setup of the boot menu text displayed within the square brackets after first reboot of the OEM image
oem-home — For oemboot driven images: use a home partition yes/no
oem-reboot — For oemboot driven images: reboot after first deployment yes/no
oem-recovery — For oemboot driven images: create a recovery archive yes/no
oem-swap — For oemboot driven images: use a swap partition yes/no
oem-swapsize — For oemboot driven images: Set the size of the swap partition in MB
oem-systemsize — For oemboot driven images: Set the size of the system (root) partition in MB
opensusePattern — Name of a Pattern From openSUSE
package — Name of an image Package
packagemanager — Name of the Package Manager
packages — Specifies Packages/Patterns Used in Different Stages
partition — A Partition
partitions — A List of Partitions
persistent — Specifies Filenames in the Read-Write Disk Area
preferences — Configuration Information Needed for Logical Extend
productinfo — Describe Packages and Metadata
productoption — Describe Packages and Metadata
productoptions — Describe Packages and Metadata
productvar — Describe Packages and Metadata
profile — Creates Profiles
profiles — Creates Namespace Section for Drivers
repopackage — Name of an instsource Package
repopackages — Specifies Packages for Installation Source
repository — The Name of the Repository
rpm-check-signatures — Setup a Package Signature
rpm-force — Force the Installation of a Package
size — Specifies the Size of an Image in (M)egabyte or (G)igabyte
source — A Pointer to a Repository/Package Source
specification — A Detailed Description
split — Describes Images in Read-Only and Read-Write Portions
temporary — Specifies Files in RAM
timeout — Specifies an ATFTP Download Timeout
timezone — Setup Image Timezone setup
type — The Image Type of the Logical Extend
union — Specifies the Overlay Filesystem
user — A User with Name, Password, Path to Its Home And Shell
users — A List of Users
version — A Version Number for the Image, Consists of Major.Minor.Release

arch

arch — Describe Packages and Metadata

Content Model

arch ::=  EMPTY

Description

The arch element carries the information for an architecture, its name and its fallback (optional).

Attributes

AttributeTypeUseDocumentation
id xsd:ID RequiredAn ID
name TEXT RequiredA name
fallback xsd:IDREF Required 

architectures

architectures — Describe Packages and Metadata

Content Model

architectures ::= (arch)+

Description

The architectures element contains a list of architectures for which the installation source is designed. At least one architecture must be defined. Fallback mecahnisms apply. Each arch element has an optional attribute <fallback> which is the next in the chain. An omitted value results in undefined value thus terminating the chain.

Attributes

No attributes available.


author

author — Author of the image

Content Model

author ::=  TEXT 

Attributes

No attributes available.


chroot

chroot — Describe Packages and Metadata

Content Model

chroot ::=  TEXT 

Description

The chroot element contains one particular environment variable and its value. Shell rules for the names apply. The value must not exceed a certain length for sanity reasons. Any funny characters like tabs, line break, carriage return or combinations are converted to spaces (one each) which may lead to unexpected contents.

Attributes

AttributeTypeUseDocumentation
requires TEXT Required 

commandline

commandline — Specifies the Kernel Boot Commandline

Content Model

commandline ::=  TEXT 

Description

As part of the network deploy configuration this section specifies the kernel boot commandline used when the image gets deployed.

Attributes

No attributes available.


compressed

compressed — Compress image.

Content Model

compressed ::=  TEXT 

Attributes

No attributes available.


configuration

configuration — Specifies Configuration files

Content Model

configuration ::=  EMPTY

Description

As part of the network deploy configuration this section specifies the configuration files which should be included into the image after deployment.

Attributes

AttributeTypeUseDocumentation
source TEXT RequiredA location where packages can be found to build an installation source from
dest TEXT RequiredDestination of a ressource

contact

contact — Contact Information from the Author, like Email etc.

Content Model

contact ::=  TEXT 

Attributes

No attributes available.


defaultbaseroot

defaultbaseroot — Default Path if baseroot Option is not Specified

Content Model

defaultbaseroot ::=  TEXT 

Attributes

No attributes available.


defaultdestination

defaultdestination — Default Path if destdir Otion is Not Specified

Content Model

defaultdestination ::=  TEXT 

Attributes

No attributes available.


defaultroot

defaultroot — Default Root Directory Name if root Option is Not Specified

Content Model

defaultroot ::=  TEXT 

Attributes

No attributes available.


deploy

deploy — Controls the Image Deploy Process

Content Model

deploy ::= timeout? &
  commandline? &
  kernel? &
  initrd? &
  partitions? &
  union? &
  (configuration)*

Description

The deploy section is used to allow kiwi to create the config.<MAC> file required by PXE based network images. the contents of this file controls the image deploy process.

Attributes

AttributeTypeUseDocumentation
server TEXT RequiredName or IP Address of server for downloading the data
blocksize TEXT RequiredBlocksize value used for atftp downloads

description

description — A Short Description

Content Model

description ::= author &
  (contact)+ &
  specification

Attributes

AttributeTypeUseDocumentation
type Enumeration: "boot" | "system"RequiredKiwi distinguishes between two basic image description types which uses the same format but one is created and provided by the kiwi developers and the other is created by the users of kiwi. The type=boot specifies a boot image (initrd) which should be provided by the kiwi developers wheras type=system specifies a standard image description created by a kiwi user.

drivers

drivers — A Collection of Driver Files

Content Model

drivers ::= (file)+

Attributes

AttributeTypeUseDocumentation
type Enumeration: "drivers" | "usbdrivers" | "scsidrivers" | "netdrivers"Required 
profiles TEXT RequiredA profile name which binds the section to this name

except

except — A Pointer to a File which should be excluded

Content Model

except ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

file

file — A Pointer to a File

Content Model

file ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
arch TEXT RequiredAn architecture

ignore

ignore — Ignores a Package

Content Model

ignore ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

image

image — The root element of the configuration file

Content Model

image ::= description &
  preferences &
  profiles? &
  instsource? &
  (users)* &
  (drivers)* &
  (repository)+ &
  deploy? &
  split? &
  (packages)*

Description

Each KIWI configuration file consists of a root element image.

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
inherit TEXT RequiredPath to an image description directory from which the package Information is inherited
kiwirevision xsd:nonNegativeInteger RequiredA kiwi SVN revision number which is known to build a working image from this description. If the kiwi SVN revision is less than the specified value the process will exit.
id xsd:string RequiredAn identification number which is represented in a file named /etc/ImageID
schemeversion TEXT RequiredThe allowed Schema version (fixed value)
xsi:noNamespaceSchemaLocation xsd:anyURI RequiredThe location of the XSD Schema (not relevant for RELAX NG or DTD)
xsi:schemaLocation xsd:anyURI RequiredA pair of URI references: First is a namespace name, second the location of the XSD Schema (not relevant for RELAX NG or DTD)

initrd

initrd — Specifies where the Boot Image can be Found

Content Model

initrd ::=  TEXT 

Description

As part of the network deploy configuration this element specifies where the boot image (initrd) can be found.

Attributes

No attributes available.


instrepo

instrepo — Name of a Installation Repository

Content Model

instrepo ::= source

Description

Name of a repository which is used to create an installation source

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
priority TEXT RequiredSearch priority for packages in this repo
username TEXT RequiredA name of a user
pwd TEXT RequiredThe password

instsource

instsource — Describe Packages and Metadata

Content Model

instsource ::= architectures &
  productoptions &
  (instrepo)+ &
  metadata &
  repopackages

Description

The instsource element is used to describe the packages and the metadata which is required to build an installation source suitable for Novell SUSE Linux installation media. From such a source it should be possible to create the standard SUSE CDs and DVDs as well as use this source as repository for image building.

Attributes

No attributes available.


kernel

kernel — Specifies Where to Find the Boot Kernel

Content Model

kernel ::=  TEXT 

Description

As part of the network deploy configuration this section specifies the where to find the boot kernel.

Attributes

No attributes available.


keytable

keytable — Image keytable setup.

Content Model

keytable ::=  TEXT 

Description

The value will be part of /etc/sysconfig/keyboard

Attributes

No attributes available.


locale

locale — Image locale setup.

Content Model

locale ::=  TEXT 

Description

The value will be part of /etc/sysconfig/keyboard

Attributes

No attributes available.


metadata

metadata — Contains Metadata

Content Model

metadata ::= (repopackage)+ &
  (metafile)* &
  (chroot)*

Description

When building an installation source not only packages are relevant but also metadata. metadata are files or packages combined with script calls. If a package is specified as metadata it will not be installed by rpm but its cpio archive is extracted in a specific way.

Attributes

No attributes available.


metafile

metafile — A file Pointer Optionally Bundled With a Script

Content Model

metafile ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
url TEXT RequiredURL where to find the metafile
script TEXT RequiredA script hook for meta files to be called after the file was fetched
target TEXT RequiredDestination path where to download the file

oem-boot-title

oem-boot-title — For oemboot driven images: setup of the boot menu text displayed within the square brackets after first reboot of the OEM image

Content Model

oem-boot-title ::=  TEXT 

Description

For oemboot driven images: setup of the boot menu text displayed within the square brackets after first reboot of the OEM image.

Attributes

No attributes available.


oem-home

oem-home — For oemboot driven images: use a home partition yes/no

Content Model

oem-home ::=  TEXT 

Description

For oemboot driven images: use a home partition yes/no.

Attributes

No attributes available.


oem-reboot

oem-reboot — For oemboot driven images: reboot after first deployment yes/no

Content Model

oem-reboot ::=  TEXT 

Description

For oemboot driven images: reboot after first deployment yes/no.

Attributes

No attributes available.


oem-recovery

oem-recovery — For oemboot driven images: create a recovery archive yes/no

Content Model

oem-recovery ::=  TEXT 

Description

For oemboot driven images: create a recovery archive yes/no

Attributes

No attributes available.


oem-swap

oem-swap — For oemboot driven images: use a swap partition yes/no

Content Model

oem-swap ::=  TEXT 

Description

For oemboot driven images: use a swap partition yes/no.

Attributes

No attributes available.


oem-swapsize

oem-swapsize — For oemboot driven images: Set the size of the swap partition in MB

Content Model

oem-swapsize ::=  xsd:nonNegativeInteger

Description

For oemboot driven images: Set the size of the swap partition in MB. No swapspace with oem-swap set to false.

Attributes

No attributes available.


oem-systemsize

oem-systemsize — For oemboot driven images: Set the size of the system (root) partition in MB

Content Model

oem-systemsize ::=  xsd:nonNegativeInteger

Description

For oemboot driven images: Set the size of the system (root) partition in MB.

Attributes

No attributes available.


opensusePattern

opensusePattern — Name of a Pattern From openSUSE

Content Model

opensusePattern ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

package

package — Name of an image Package

Content Model

package ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
arch TEXT RequiredAn architecture

packagemanager

packagemanager — Name of the Package Manager

Content Model

packagemanager ::= ( TEXT )

Description

The package manager used for package installation could be either zypper or smart

Attributes

No attributes available.


packages

packages — Specifies Packages/Patterns Used in Different Stages

Content Model

packages ::= (package)* &
  (opensusePattern)* &
  (ignore)*

Description

The packages elements specifies a set of packages and/or patterns which are used in different stages of the image building process and also depends of the selected image output type.

Attributes

AttributeTypeUseDocumentation
type Enumeration: "image" | "bootstrap" | "delete" | "testsuite" | "xen" | "vmware"Required 
memory TEXT RequiredThe memory setup for the guest VM. Used only with the packages types xen and vmware
disk TEXT RequiredThe virtual disk device name of the guest VM. Used only with the packages types xen and vmware
HWversion xsd:integer RequiredThe virtual HW version number for the VMware configuration
guestOS_32Bit TEXT Requiredthe virtual guestOS identification string for VMware for 32bit guest systems
guestOS_64Bit TEXT Requiredthe virtual guestOS identification string for VMware for 64bit guest systems
profiles TEXT RequiredNamespace this section applies to. If not specified it applies to all namespaces
patternType Enumeration: "onlyRequired" | "plusSuggested" | "plusRecommended"RequiredSelection type for patterns. Could be onlyRequired plusSuggested or plusRecommended
patternPackageType Enumeration: "onlyRequired" | "plusSuggested" | "plusRecommended"RequiredSelection type for packages in patterns. Could be onlyRequired, plusSuggested or plusRecommended

partition

partition — A Partition

Content Model

partition ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
type TEXT RequiredPartition Type identifier, see fdisk for details
number TEXT RequiredPartition ID
size TEXT RequiredA partition size or optional image size
mountpoint TEXT RequiredMount path for this partition
target xsd:boolean RequiredIs a real target or not which means is part of the /etc/fstab file or not

partitions

partitions — A List of Partitions

Content Model

partitions ::= (partition)+

Attributes

AttributeTypeUseDocumentation
device TEXT RequiredAs part of the network deploy configuration this section specifies the disk device name

persistent

persistent — Specifies Filenames in the Read-Write Disk Area

Content Model

persistent ::= (except)* &
  (file)+

Description

As part of the split section the persistent element specifies filenames which are in the read-write disk area

Attributes

No attributes available.


preferences

preferences — Configuration Information Needed for Logical Extend

Attributes

No attributes available.


productinfo

productinfo — Describe Packages and Metadata

Content Model

productinfo ::=  TEXT 

Description

The productinfo element contains one particular environment variable and its value. Shell rules for the names apply. The value must not exceed a certain length for sanity reasons. Any funny characters like tabs, line break, carriage return or combinations are converted to spaces (one each) which may lead to unexpected contents.

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

productoption

productoption — Describe Packages and Metadata

Content Model

productoption ::=  TEXT 

Description

The productoption element carries the information for an productoptionitecture, its name and its fallback (productoptional).

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

productoptions

productoptions — Describe Packages and Metadata

Content Model

productoptions ::= (productoption)* &
  (productinfo)* &
  (productvar)*

Description

The productoptions element contains a list of options that influence the instsource creation process in a general manner. For instance an option could specify a default medium number for source packages and the like.

Attributes

No attributes available.


productvar

productvar — Describe Packages and Metadata

Content Model

productvar ::=  TEXT 

Description

The productinfo element contains one particular environment variable and its value. Shell rules for the names apply. The value is used to create the content file.

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name

profile

profile — Creates Profiles

Content Model

profile ::=  EMPTY

Description

Profiles creates a namespace on an image description and thus can be used to have one description with different profiles for example KDE and GNOME including different packages.

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
description TEXT RequiredDescription of how this profiles influences the image

profiles

profiles — Creates Namespace Section for Drivers

Content Model

profiles ::= (profile)+

Description

Namespace section which creates a namespace and the drivers can bind itself to one of the listed namespaces.

Attributes

No attributes available.


repopackage

repopackage — Name of an instsource Package

Content Model

repopackage ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
arch TEXT RequiredAn architecture
priority TEXT RequiredSpecifies the search priority
addarch TEXT RequiredSpecifies that this package should additionally add the same package from the given arch
removearch TEXT RequiredSpecifies that the package with the given arch should be removed
forcearch TEXT RequiredSpecifies that the package with the given arch should be used in any case
source TEXT RequiredA location where packages can be found to build an installation source from
script TEXT RequiredA script hook for meta files to be called after the file was fetched
medium xsd:nonNegativeInteger RequiredSpecifies that the package will be put to the specific medium number (CD1, DVD7, ...)

repopackages

repopackages — Specifies Packages for Installation Source

Content Model

repopackages ::= (repopackage)*

Description

The repopackages elements specifies a set of packages which are used for creating a Novell SUSE installation source.

Attributes

No attributes available.


repository

repository — The Name of the Repository

Content Model

repository ::= source

Attributes

AttributeTypeUseDocumentation
type Enumeration: "apt-deb" | "apt-rpm" | "deb-dir" | "mirrors" | "red-carpet" | "rpm-dir" | "rpm-md" | "slack-site" | "up2date-mirrors" | "urpmi" | "yast2"RequiredType of repository
status Enumeration: "replaceable" | "fixed"RequiredSpecifies the status of the repository. This can be replacable or if not specified it's a must have repository

rpm-check-signatures

rpm-check-signatures — Setup a Package Signature

Content Model

rpm-check-signatures ::=  TEXT 

Description

Setup if the package manager should check the package signature or not. This option could be ignored according to the used package manager.

Attributes

No attributes available.


rpm-force

rpm-force — Force the Installation of a Package

Content Model

rpm-force ::=  TEXT 

Description

Setup if the package manager should force the install of the package or not. This option could be ignored according to the used package manager.

Attributes

No attributes available.


size

size — Specifies the Size of an Image in (M)egabyte or (G)igabyte

Content Model

size ::=  TEXT 

Attributes

AttributeTypeUseDocumentation
unit Enumeration: "M" | "G"RequiredThe unit of the image

source

source — A Pointer to a Repository/Package Source

Content Model

source ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
path TEXT RequiredA path

specification

specification — A Detailed Description

Content Model

specification ::=  TEXT 

Description

A detailed description of this image and what it can be used for.

Attributes

No attributes available.


split

split — Describes Images in Read-Only and Read-Write Portions

Content Model

split ::= temporary? &
  persistent?

Description

When the image type split is requested the image will be splitted into a read-only and a read-write image portion. Each portion can have different filesystems and the split section describes which files/directories should go in what portion.

Attributes

No attributes available.


temporary

temporary — Specifies Files in RAM

Content Model

temporary ::= (except)* &
  (file)+

Description

As part of the split section the temporary element specifies file names which are in the RAM disk area.

Attributes

No attributes available.


timeout

timeout — Specifies an ATFTP Download Timeout

Content Model

timeout ::=  TEXT 

Description

As part of the network deploy configuration this section specifies an ATFTP download timeout

Attributes

No attributes available.


timezone

timezone — Setup Image Timezone setup

Content Model

timezone ::=  TEXT 

Description

Image timezone setup. The value will be used to search the correct timezone and copy it to /etc/localtime.

Attributes

No attributes available.


type

type — The Image Type of the Logical Extend

Content Model

type ::=  TEXT 

Attributes

AttributeTypeUseDocumentation
checkprebuilt xsd:boolean RequiredActivates whether KIWI should search for a prebuild boot image or not
bootprofile TEXT RequiredSpecifies the boot profile if defined in the boot image description. Used when KIWI option add-profile is used
boot TEXT RequiredSpecifies the path of the boot image (initrd), relative to /usr/share/kiwi/image
flags Enumeration: "unified" | "compressed" | "unified-cromfs" | "compressed-cromfs"RequiredSpecifies flags for the image type. This could be compressed or unified and applies to the iso type only
filesystem Enumeration: "ext2" | "ext3" | "reiserfs" | "squashfs" | "cromfs"RequiredSpecifies the filesystem which can be one of: ext2 , ext3 , reiserfs ,squashfs or cromfs
fsreadonly Enumeration: "ext2" | "ext3" | "reiserfs" | "squashfs" | "cromfs"RequiredSpecifies the filesystem for the read-only part of a split image
fsreadwrite Enumeration: "ext2" | "ext3" | "reiserfs"RequiredSpecifies the filesystem for the read-write part of a split image
ec2privatekeyfile TEXT RequiredAWS user's PEM encoded RSA private key file
ec2certfile TEXT RequiredAWS user's PEM encoded RSA pubkey certificate file
ec2accountnr xsd:nonNegativeInteger RequiredThe user's EC2 user ID (Note: AWS account number, NOT Access Key ID)
baseroot TEXT RequiredSpecify the path to a pre created base root system.
format Enumeration: "vvfat" | "vpc" | "bochs" | "dmg" | "cloop" | "vmdk" | "qcow" | "cow" | "iso" | "usb"RequiredSpecifies the format of the virtual disk. This applies to the vmx/oem types only.
primary xsd:boolean RequiredSpecifies the primary type (choose KIWI option type)

union

union — Specifies the Overlay Filesystem

Content Model

union ::=  EMPTY

Description

As part of the network deploy configuration this section specifies the overlay filesystem setup if required by the filesystem type of the system image. An overlay setup is only required if the system image uses a squashfs or cromfs compressed filesystem.

Attributes

AttributeTypeUseDocumentation
ro TEXT RequiredDevice only for read-only
rw TEXT RequiredDevice for Read-Write
type Enumeration: "aufs" | "unionfs"Required 

user

user — A User with Name, Password, Path to Its Home And Shell

Content Model

user ::=  EMPTY

Attributes

AttributeTypeUseDocumentation
name TEXT RequiredA name
id xsd:nonNegativeInteger RequiredThe user ID for this user
realname TEXT RequiredThe name of an user
pwd TEXT RequiredThe password
home TEXT RequiredThe home directory for this user
shell TEXT RequiredThe shell for this user

users

users — A List of Users

Content Model

users ::= (user)+

Attributes

AttributeTypeUseDocumentation
group TEXT RequiredContains the group to which the user belongs
id xsd:nonNegativeInteger RequiredContains the group ID to which the user belongs

version

version — A Version Number for the Image, Consists of Major.Minor.Release

Content Model

version ::=  TEXT 

Attributes

No attributes available.