Skip to content

[Compute Extensibility] Recipe Pack Creation and Management #9832

@willtsai

Description

@willtsai

Overview of feature request

Implement a system for packaging and versioning sets of related recipes (Recipe Packs) to simplify distribution and management. This includes defining a clear structure for Recipe Packs and providing CLI commands for creating, updating, and applying them. Default Recipes for Kubernetes and ACI will be provided by Radius as part of the initial Recipe Packs.

Acceptance criteria

  • Recipe Pack Manifest:
    • A schema for the Recipe Pack manifest (e.g., YAML or JSON) is defined, supporting pack name, version, and a list of recipes.
    • Each recipe entry in the manifest must specify resourceType (e.g., Applications.Core/containers@2025-05-01-preview), templateKind (Bicep/Terraform), templatePath (OCI URI or local path for development), and optional default parameters.
  • CLI for Recipe Pack Management:
    • rad recipe-pack register command can apply/register a Recipe Pack to a target environment using a local manifest file or an OCI URI.
    • Applying a Recipe Pack successfully registers all individual recipes defined within it to the specified environment, associating them with their respective resource types.
    • CLI commands are available to list registered Recipe Packs in an environment, show details of a specific Recipe Pack, and unregister a Recipe Pack (which removes its constituent recipe registrations).
    • The CLI provides clear user feedback and robust error reporting for all Recipe Pack operations.
  • Versioning:
    • Recipe Packs support semantic versioning (e.g., my-pack:1.0.0, my-pack:1.1.0).
    • The CLI allows registration and management of specific versions of Recipe Packs.
    • Updating a Recipe Pack registration (e.g., to a new version) correctly updates the underlying recipe associations in the environment.
  • Default Recipe Packs:
    • Radius publishes at least two default Recipe Packs: one for Kubernetes and one for Azure Container Instances (ACI).
    • These default Recipe Packs are versioned and available from a public OCI registry (e.g., ghcr.io/radius-project/radius-recipe-packs/).
    • The default Recipe Packs include recipes for the new UDT versions of core types (Applications.Core/containers@2025-05-01-preview, Applications.Core/gateways@2025-05-01-preview, Applications.Core/secretStores@2025-05-01-preview, and Applications.Core/volumes@2025-05-01-preview).
    • Users can successfully deploy applications using these core types to Kubernetes and ACI environments after registering the respective default Recipe Pack.
  • Distribution and Management Simplification:
    • Recipe Packs can be distributed as OCI artifacts or version-controlled manifest files.
    • The system allows a collection of recipes to be managed (applied, updated, removed) as a single, versioned unit within a Radius environment.
  • Documentation:
    • Comprehensive documentation is provided for the Recipe Pack manifest structure, all related CLI commands, and instructions on how to find, register, and use the default Recipe Packs.

Additional context

parent: radius-project/roadmap#73

Would you like to support us?

  • Yes, I would like to support you

AB#16263

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureThis issue describes a feature request in RadiustriagedThis issue has been reviewed and triaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions