Rockcraft
Rockcraft project. Documentation: https://documentation.ubuntu.com/rockcraft/stable/
| Type | object |
|---|---|
| File match |
rockcraft.yaml
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/rockcraft/latest.json |
| Source | https://raw.githubusercontent.com/canonical/rockcraft/main/schema/rockcraft.json |
Validate with Lintel
npx @lintel/lintel check
Rockcraft project definition.
Properties
The name of the project. This is used when uploading, publishing, or installing.
The project name must consist only of lower-case ASCII letters (a-z), numerals
(0-9), and hyphens (-). It must contain at least one letter, not start or
end with a hyphen, and not contain two consecutive hyphens. The maximum length is 40
characters.
A short, single line description of the rock.
A full description of the rock, potentially including multiple paragraphs.
The base system image for the rock.
Determines which architectures the project builds and runs on.
The self-contained software pieces needed to create the final artifact.
The system used to build the rock.
The author's contact links and email addresses.
The links and email addresses for submitting issues, bugs, and feature requests.
The links to the source code of the project.
The project's license as an SPDX expression
Selects a part to inherit metadata from.
The package repositories to use for build and stage packages.
Additional environment variables for the base image's OCI environment.
The default OCI user. If unset, runs as root.
Services to run in the rock, using Pebble's layer specification syntax.
Health checks for this rock.
The optional name of the Pebble service to serve as the entrypoint.
Overrides the rock's default Pebble OCI entrypoint and CMD properties.
Definitions
Model for a check that executes a command.
How this check is combined with another same-named check.
Lightweight schema validation for a Pebble exec check.
8 nested properties
The command to execute for this health check.
Run the check as the given service's user and group, with that service's working directory and environment variables set.
A mapping of environment variables with which to run the check.
The user that will run the check.
The UID of the user that will run the check.
The group name for the check process to run as.
The GID of the group that will run the check.
The working directory in which the command will run.
Check level, used for filtering checks when calling the health endpoint.
How frequently to run this check.
The time before the check fails if not completed. Must be less than period.
Number of consecutive errors before the check is considered failed.
Lightweight schema validation for a Pebble exec check.
The command to execute for this health check.
Run the check as the given service's user and group, with that service's working directory and environment variables set.
A mapping of environment variables with which to run the check.
The user that will run the check.
The UID of the user that will run the check.
The group name for the check process to run as.
The GID of the group that will run the check.
The working directory in which the command will run.
What to do on a failure exit.
Model for a check that uses HTTP.
How this check is combined with another same-named check.
Lightweight schema validation for a Pebble HTTP check.
2 nested properties
The URL to fetch
Headers to send with the HTTP request.
Check level, used for filtering checks when calling the health endpoint.
How frequently to run this check.
The time before the check fails if not completed. Must be less than period.
Number of consecutive errors before the check is considered failed.
Lightweight schema validation for a Pebble HTTP check.
The URL to fetch
Headers to send with the HTTP request.
A single platform entry in the platforms dictionary.
This model defines how a single value under the platforms key works for a project.
Lightweight schema validation for a Pebble service.
Based on https://canonical-pebble.readthedocs-hosted.com/en/latest/reference/layer-specification/
Whether to replace pre-existing service definitions or merge them.
The command used to run the service.
A short summary of the service.
A detailed, potentially multi-line, description of the service.
Whether the service is enabled automatically when the rock starts.
The names of other services that this service should start after.
The names of other services that this service should start before.
The names of other services that this service requires in order to start.
Environment variables to set for this process.
Run the service as this user.
Run the service with this user ID.
Run the service as this group.
Run the service with this group ID.
Working directory for the service command.
What to do when the service exits with success.
What to do when the service exits with an error.
What to do when a health check fails.
Initial backoff delay for the 'restart' exit action.
Multiplication factor for backoff delay.
Maximum backoff delay.
How long to wait after a SIGTERM and exit pebble uses SIGKILL.
What to do on exit success.
Model for a check that uses TCP.
How this check is combined with another same-named check.
Lightweight schema validation for a Pebble TCP check.
2 nested properties
The TCP port to check is open.
The hostname or IP address to check. Defaults to 'localhost'.
Check level, used for filtering checks when calling the health endpoint.
How frequently to run this check.
The time before the check fails if not completed. Must be less than period.
Number of consecutive errors before the check is considered failed.
Lightweight schema validation for a Pebble TCP check.
The TCP port to check is open.
The hostname or IP address to check. Defaults to 'localhost'.
The part specification data.
The plugin to build the part with.
The location of the source files for the part.
The checksum of the downloaded source, to ensure integrity.
The target branch for Git sources.
The target commit for Git sources.
The commit depth to fetch for Git sources.
The subdirectory of the unpacked source where the build will occur.
The registered submodules to fetch from Git sources.
The target tag for Git sources.
The format of the part's source.
Whether to disable CPU multithreading during the build step.
The parts to process before starting this part's build.
[]
The packages to install in the part's layer.
[]
The snaps to include in the stage environment.
[]
The packages or Chisel slices to include in the stage environment.
[]
The snaps to install in the build environment.
[]
The packages to install in the build environment.
[]
The environment variables to define for the build step, as key-value pairs.
[]
Identifiers that control specific behaviors during the build.
[]
A map of files from the build directory to their destinations in the stage directory.
The files to copy from the part's layer to the stage directory.
The files to copy from the build directory to the stage directory.
The commands to run instead of the default behavior of the pull step.
The commands to run after the part's overlay packages are installed.
Shell script to run inside the overlay chroot after mounting.
The commands to run instead of the default behavior of the build step.
The commands to run instead of the default behavior of the stage step.
The commands to run instead of the default behavior of the prime step.
The ownership and permission settings for a set of files in the part's prime directory.
[]
Description of the ownership and permission settings for a set of files.
A Permissions object specifies that a given pattern-like path should
be owned by owner with a given group, and have the read/write/execute
bits defined by mode.
Notes
pathis optional and defaults to "everything";ownerandgroupare optional if both are omitted - that is, if one of the pair is specified then both must be;modeis a string containing an integer in base 8. For example, "755", "0755" and "0o755" are all accepted and are the equivalent of callingchmod 755 ....
The file path, relative to the prime directory, being assigned permissions.
The numeric user ID (UID) of the desired owner on the host system.
The numeric group (GID) of the desired owner group on the host system.
The numeric representation of the file's read, write, and execute permissions.
All Ruby implementations supported by ruby-install.