diff --git a/src-tsp/main.tsp b/src-tsp/main.tsp index bd19994..f68d707 100644 --- a/src-tsp/main.tsp +++ b/src-tsp/main.tsp @@ -15,11 +15,18 @@ model Recipe { */ description: string, + /** + * Allows setting custom tags on the recipe’s final image. + * Adding tags to this property will override the `latest` and timestamp tags. + */ + "alt-tags"?: Array, + /** * The [OCI](https://opencontainers.org/) image to base your custom image on. * Only atomic Fedora images and those based on them are officially supported. * Universal Blue is recommended. [A list of Universal Blue's images](https://universal-blue.org/images/) can be found on their website - * BlueBuild-built images can be used as well. */ + * BlueBuild-built images can be used as well. + */ "base-image": string, /** @@ -29,6 +36,26 @@ model Recipe { */ "image-version": string, + /** + * A list of [stages](https://blue-build.org/reference/stages/) that are executed before the build of the final image. + * This is useful for compiling programs from source without polluting the final bootable image. + */ + stages?: Array<{ + /** + * The name of the stage. This is used when referencing + * the stage when using the from: property in the [`copy` module](https://blue-build.org/reference/modules/copy/). + */ + name: string, + + /** The full image ref (image name + tag). This will be set in the FROM statement of the stage. */ + from: string, + + /** Allows a user to pass in an array of strings that are passed directly into the [`SHELL` instruction](https://docs.docker.com/reference/dockerfile/#shell). */ + shell?: string, + + modules: Array, + }>, + /** * A list of [modules](https://blue-build.org/reference/module/) that is executed in order. Multiple of the same module can be included. *