Skip to content

Repository files navigation

Radius Resource Types and Recipes Contributions

Overview

This repository contains the Resource Type definitions and Recipes for deploying those Resource Types via Radius. It includes:

  • Resource Type Definitions: Schema definitions for Resource Types available for developers to use while defining their application
  • Recipes: Platform-specific Infrastructure as Code (Bicep or Terraform) used to deploy the associated Resource Type
  • Recipe Packs: Bundled collections of Recipes, grouped by compute platform, that provide the recipe definitions for every Resource Type in the repository

What are Resource Types?

Resource Types are abstractions that define the schema for resources in the Radius. They provide a consistent interface that enables developers to define their application's resources that is separated from the platform engineer's implementation.

What are Recipes?

Recipes define how the Resource Types are provisioned on different compute platforms and cloud environments. A Recipe provides the implementation of the interface defined in the Resource Type definition. Today Radius supports Bicep and Terraform Recipe drivers, so a Recipe can be a Bicep template or a Terraform configuration. It can also point to well-maintained community modules like the Azure Verified Modules or the AWS Terraform modules. To learn more about Recipes, please visit Recipes overview in the Radius documentation.

What are Recipe Packs?

Recipe Packs are collections of Recipes grouped together to provide a complete solution for a specific compute platform. Platform engineers add an entire collection of Recipes to a Radius Environment by referencing a single Recipe Pack, rather than registering Recipes one Resource Type at a time.

Repository Structure

resource-types-contrib/
├── <resource_type_namespace>/          # Namespace excluding Radius; the namespace Radius.Data is in the Data directory
│   └── <resource_type_name>/           # e.g., redisCaches/
│       ├── README.md                   # Documentation for platform engineers
│       ├── <resource_type_name>.yaml   # e.g., redisCaches.yaml
│       └── test/
│               └── app.bicep           # Developer-facing test application
└── recipe-packs/                       # Recipe packs cover recipe definitions for all types in the repo
    ├── azure/                          # Azure recipe pack (recipes for all types + environment)
    │       ├── README.md               # Documentation for the Azure recipe pack
    │       └── aks-recipepack.bicep    # Recipe pack wiring Bicep and Terraform recipes
    ├── aws/                            # AWS recipe pack
    │       ├── README.md
    │       └── eks-recipepack.bicep
    ├── kubernetes/                     # Default recipe pack (zero-config, in-cluster)
            ├── README.md
            └── default-recipepack.bicep

Discovering and using Resource Types and Recipe Packs

Developers can discover the Resource Types in this repository and use them in a Radius application, and platform engineers can use the Recipe Packs to configure how those types are provisioned in an Environment. For a step-by-step guide on discovering, registering, and using Resource Types and Recipe Packs, see Discovering and Using Resource Types and Recipe Packs.

Every Resource Type in this repository can be registered via rad resource-type create. A subset is also registered as defaults in Radius, so they are available out of the box without any user action. The default resource types are paired with the default Recipe Pack under recipe-packs/default-kubernetes/, a zero-config, in-cluster Kubernetes pack that ships out of the box, so they can be deployed without any cloud provider configuration. The list of default resource types is managed in the Radius repository via deploy/manifest/defaults.yaml.

Contributing

Community members can contribute new Resource Types, Recipes, and Recipe Packs to this repository. We welcome contributions in many forms: submitting issues, writing code, participating in discussions, reviewing pull requests. For information on contributing, follow these guides:

Thanks to everyone who has contributed!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Code of Conduct

Please refer to our Radius Community Code of Conduct

About

Source for Radius tested types and backing recipes.

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages