DevelopersDeploymentSourcesIntroduction

Blueprint Sources

Blueprints can be built and distributed in multiple formats (visible on the sidebar).

A blueprint can define many sources of different types in the manifest of its binary crate:

[package.metadata.blueprint]
sources = [
    { type = "Container", registry = "docker.io", image = "some-user/my-blueprint", tag = "latest" },
    # Fallback container source
    { type = "Container", registry = "ghcr.io", image = "some-user/my-blueprint", tag = "latest" },
    # Native binary source
    { type = "Native", owner = "some-github-user", repo = "some-blueprint", tag = "0.1.0", binaries = [
        { arch = "Amd64", os = "Linux", name = "my-blueprint-bin" },
    ] },
]

The above example has two container sources, which allows an operator to attempt a pull from different sources in the event that one of the registries is unreachable. Additionally, it has a native source which can act as a fallback for operators that either cannot or prefer not to support running containerized blueprints.