From a8688d84c8c87174961f378cb129240cd099a653 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 22 Jan 2024 09:10:21 -0800 Subject: [PATCH 01/25] Fix container name (#58) Signed-off-by: Aaron Crawfis Signed-off-by: Reshma Abdul Rahim --- azure/statestores.bicep | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/azure/statestores.bicep b/azure/statestores.bicep index 8b50bbe..ea733eb 100644 --- a/azure/statestores.bicep +++ b/azure/statestores.bicep @@ -23,6 +23,9 @@ param location string = resourceGroup().location @description('Sets this Dapr State Store as the actor state store. Only one Dapr State Store can be set as the actor state store. Defaults to false.') param actorStateStore bool = false +@description('The name of the container to create within the Azure storage account and to reference within the Dapr component.') +var containerName = context.resource.name + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = { name: 'recipe${uniqueString(context.resource.id, resourceGroup().id)}' location: location @@ -35,7 +38,7 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = { name: 'default' resource container 'containers' = { - name: context.resource.name + name: containerName } } } @@ -67,7 +70,7 @@ resource daprComponent 'dapr.io/Component@v1alpha1' = { } { name: 'containerName' - value: storageAccount::blob::container.name + value: containerName } { name: 'actorStateStore' From a59ab7dc1b2b3645480d6970767b074bf30aef42 Mon Sep 17 00:00:00 2001 From: Will Velida Date: Thu, 22 Feb 2024 06:42:48 +1100 Subject: [PATCH 02/25] Adding tags parameters with radapp defaults to Azure Recipes (#60) * Adding tags parameters with radapp defaults to Azure Recipes Signed-off-by: Will Velida * Add radius-specific tags with optional tag parameters. null checking on application context in tag Signed-off-by: Will Velida * Adding hyphen character in radiusTags object Signed-off-by: Will Velida --------- Signed-off-by: Will Velida Signed-off-by: Reshma Abdul Rahim --- azure/extender-servicebus.bicep | 11 +++++++++++ azure/rediscaches.bicep | 11 +++++++++++ azure/sqldatabases.bicep | 12 ++++++++++++ azure/statestores.bicep | 11 +++++++++++ 4 files changed, 45 insertions(+) diff --git a/azure/extender-servicebus.bicep b/azure/extender-servicebus.bicep index e0128a2..2b4b1d5 100644 --- a/azure/extender-servicebus.bicep +++ b/azure/extender-servicebus.bicep @@ -48,9 +48,20 @@ param skuTier string = 'Standard' @description('ISO 8601 Default message timespan to live value. This is the duration after which the message expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not set on a message itself.') param defaultMessageTimeToLive string = 'P14D' +@description('The user-defined tags that will be applied to the resource. Default is null') +param tags object = {} + +@description('The Radius specific tags that will be applied to the resource') +var radiusTags = { + 'radapp.io-environment': context.environment.id + 'radapp.io-application': context.application == null ? '' : context.application.id + 'radapp.io-resource': context.resource.id +} + resource servicebus 'Microsoft.ServiceBus/namespaces@2021-06-01-preview' = { name: 'servicebus-namespace-${uniqueString(context.resource.id, resourceGroup().id)}' location: location + tags: union(radiusTags, tags) sku: { name: skuName tier: skuTier diff --git a/azure/rediscaches.bicep b/azure/rediscaches.bicep index 05d5b52..0880112 100644 --- a/azure/rediscaches.bicep +++ b/azure/rediscaches.bicep @@ -40,9 +40,20 @@ param skuFamily string = 'C' ]) param skuName string = 'Basic' +@description('The user-defined tags that will be applied to the resource. Default is null') +param tags object = {} + +@description('The Radius specific tags that will be applied to the resource') +var radiusTags = { + 'radapp.io-environment': context.environment.id + 'radapp.io-application': context.application == null ? '' : context.application.id + 'radapp.io-resource': context.resource.id +} + resource azureCache 'Microsoft.Cache/redis@2022-06-01' = { name: 'cache-${uniqueString(context.resource.id, resourceGroup().id)}' location: location + tags: union(tags, radiusTags) properties: { sku: { capacity: skuCapacity diff --git a/azure/sqldatabases.bicep b/azure/sqldatabases.bicep index 67b4280..4146ab7 100644 --- a/azure/sqldatabases.bicep +++ b/azure/sqldatabases.bicep @@ -46,11 +46,22 @@ param skuName string = 'Standard' ]) param skuTier string = 'Standard' +@description('The user-defined tags that will be applied to the resource. Default is null') +param tags object = {} + +@description('The Radius specific tags that will be applied to the resource') +var radiusTags = { + 'radapp.io-environment': context.environment.id + 'radapp.io-application': context.application == null ? '' : context.application.id + 'radapp.io-resource': context.resource.id +} + var mssqlPort = 1433 resource mssql 'Microsoft.Sql/servers@2021-02-01-preview' = { name: '${context.resource.name}-${uniqueString(context.resource.id, resourceGroup().id)}' location: location + tags: union(tags, radiusTags) properties: { administratorLogin: adminLogin administratorLoginPassword: adminPassword @@ -67,6 +78,7 @@ resource mssql 'Microsoft.Sql/servers@2021-02-01-preview' = { resource db 'databases' = { name: database location: location + tags: union(tags, radiusTags) sku: { name: skuName tier: skuTier diff --git a/azure/statestores.bicep b/azure/statestores.bicep index ea733eb..5fba53e 100644 --- a/azure/statestores.bicep +++ b/azure/statestores.bicep @@ -26,9 +26,20 @@ param actorStateStore bool = false @description('The name of the container to create within the Azure storage account and to reference within the Dapr component.') var containerName = context.resource.name +@description('The user-defined tags that will be applied to the resource. Default is null') +param tags object = {} + +@description('The Radius specific tags that will be applied to the resource') +var radiusTags = { + 'radapp.io-environment': context.environment.id + 'radapp.io-application': context.application == null ? '' : context.application.id + 'radapp.io-resource': context.resource.id +} + resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = { name: 'recipe${uniqueString(context.resource.id, resourceGroup().id)}' location: location + tags: union(tags, radiusTags) sku: { name: 'Standard_ZRS' } From f17aeacb6755e0a902bf536238ec7ecd81901e09 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:36:06 -0500 Subject: [PATCH 03/25] Add contribution guides Signed-off-by: Reshma Abdul Rahim --- CONTRIBUTING.md | 64 +++------------- README.md | 86 ++++++---------------- aws/README.MD | 46 ++++++++++++ azure/README.MD | 13 ++++ docs/contributing /contributing-issues.md | 31 ++++++++ docs/contributing /contributing-recipes.md | 36 +++++++++ local-dev/README.md | 19 +++++ 7 files changed, 178 insertions(+), 117 deletions(-) create mode 100644 aws/README.MD create mode 100644 azure/README.MD create mode 100644 docs/contributing /contributing-issues.md create mode 100644 docs/contributing /contributing-recipes.md create mode 100644 local-dev/README.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 13dd053..7fe77f7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,63 +6,17 @@ This project has adopted the [Contributor Covenant Code of Conduct](https://gith Contributions come in many forms: submitting issues, writing code, participating in discussions and community calls. -This document provides the guidelines for how to contribute to the Radius project. +This document provides the guidelines for how to contribute to the recipes repository. -## Issues +## Table of Contents -This section describes the guidelines for submitting issues - -### Issue Types - -There are 2 types of issues: - -- bug: You've found a bug with the code, and want to report it, or create an issue to track the bug. -- feature: Used for items that propose a new idea or functionality. This allows feedback from others before code is written. - -> For questions or feedback please refer to the [Radius Community docs](https://docs.radapp.dev/community/). Discord will be the best way to get in touch with the community and the maintainers. - -### Before You File - -Before you file an issue, make sure you've checked the following: - -1. Is it the right repository? - - The Radius project is distributed across multiple repositories. Check the list of [repositories](https://github.com/radius-project) if you aren't sure which repo is the correct one. -1. Check for existing issues - - Before you create a new issue, please do a search in [open issues](https://github.com/radius-project/recipes/issues) to see if the issue or feature request has already been filed. - - If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reaction-to-pull-requests-issues-and-comments). Use a reaction: - - 👍 up-vote - - 👎 down-vote -1. For bugs - - Check it's not an environment issue. For example, if running on Kubernetes, make sure prerequisites are in place. - - Ensure you have as much data as possible. This usually comes in the form of logs and/or stacktrace. If running on Kubernetes or other environment, look at the logs of the Radius services (UCP, RP, DE). More details on how to get logs can be found [here](https://docs.radapp.dev/reference/troubleshooting-radius/). -1. For proposals - - Many changes to the Radius runtime may require changes to the API. In that case, the best place to discuss the potential feature is the main [Radius repo](https://github.com/radius-project/radius). - - Recipes runtime changes can be discussed in the [Radius repo](https://github.com/radius-project/radius). - - Community Recipes can be discussed within [this repo](https://github.com/radius-project/recipes/issues). - -## Contributing to Radius Recipes - -This section describes the guidelines for contributing code / docs to Radius Recipes. - -### Prerequisites - -Make sure you are familiar with how to author and test Recipes. The [custom Recipes docs](https://docs.radapp.io/guides/recipes/howto-author-recipes/) will walk you through the process. Make sure to test with your own registry and environment before submitting a PR. - -### Pull Requests - -All contributions come through pull requests. To submit a proposed change, we recommend following this workflow: - -1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. -1. Fork the relevant repo and create a new branch -1. Create your change -1. Update relevant documentation for the change -1. Commit and open a PR -1. Wait for the CI process to finish and make sure all checks are green -1. A maintainer of the repo will be assigned, and you can expect a review within a few days - -#### Use work-in-progress PRs for early feedback - -A good way to communicate before investing too much time is to create a draft PR and share it with your reviewers. The standard way of doing this is to mark your PR as draft within GitHub. + - Contributing to Radius Recipes + - How to write your first recipe + - How to run your recipe + - How to contribute the recipe to this repository + - How to validate your recipe + - How to submit a PR + - Contributing Issues ## Thank You! diff --git a/README.md b/README.md index ee9dc68..8f6961a 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,39 @@ # Radius Community Recipes -This repo contains commonly used [Recipe](https://docs.radapp.dev/recipes) templates for Radius Environments. +This repository contains commonly used [Recipe](https://docs.radapp.io/recipes) templates for Radius Environments. ## Recipes Recipes provide self-service infrastructure provisioning for developers. Developers select the resource(s) they need, and operators can configure Recipes with secure, approved, infrastructure. -## Available Recipes - -### local-dev - -The [local-dev](/local-dev) directory contains lightweight Recipes for development purposes. They run containerized infrastructure which is not persisted across restarts and is optimized for CPU and memory usage on a local machine. +## Supported Resources types -> **Note**: These Recipes are automatically installed via `rad init` +Recipes currently support the following resources: -| Recipe | Resource | Description | Template Path | -|--------|----------|-------------|---------------| -| [`local-dev/daprpubsubbrokers`](/local-dev/pubsubbrokers.bicep) | `Applications.Dapr/pubSubBrokers` | A lightweight container running the `redis` image and a Redis Dapr Pub/Sub component for development purposes. | `ghcr.io/radius-project/recipes/local-dev/daprpubsubbrokers:TAG` | -| [`local-dev/daprstatestores`](/local-dev/statestores.bicep) | `Applications.Dapr/stateStores` |A lightweight container running the `redis` image and a Redis Dapr state store component for development purposes. | `ghcr.io/radius-project/recipes/local-dev/daprstatestores:TAG` | -| [`local-dev/extender-postgresql`](/local-dev/extender-postgresql.bicep) | `Applications.Core/extenders` |A lightweight container running the `postgres` image for development purposes. Used with the Radius extender resource. | `ghcr.io/radius-project/recipes/local-dev/extender-postgresql:TAG` | -| [`local-dev/rabbitmqmessagequeues`](/local-dev/rabbitmqmessagequeues.bicep) | `Applications.Messaging/rabbitMQQueues` |A lightweight container running the `rabbitmq` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/rabbitmqmessagequeues:TAG` | -| [`local-dev/rediscaches`](/local-dev/rediscaches.bicep) | `Applications.Datastores/redisCaches` |A lightweight container running the `redis` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/rediscaches:TAG` | -| [`local-dev/mongodatabases`](/local-dev/mongodatabases.bicep) | `Applications.Datastores/mongoDatabases` |A lightweight container running the `mongo` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/mongodatabases:TAG` | -| [`local-dev/sqldatabases`](/local-dev/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` |A lightweight container running the `azure-sql-edge` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/sqldatabases:TAG` | + - Applications.Datastores/redisCaches + - Applications.Datastores/mongoDatabases + - Applications.Datastores/sqlDatabases + - Applications.Messaging/rabbitmqQueues + - Applications.Dapr/stateStores + - Applications.Dapr/pubSubBrokers + - Applications.Dapr/secretStores + - Applications.Core/extenders -### azure +## Supported Cloud Providers -The [azure](/azure) directory contains Recipes for Azure resources. They are configurable via parameters, with the default values optimizing for cost and security. + - Azure + - AWS -| Recipe | Resource | Description | Template Path | -|--------|----------|-------------|---------------| -| [`azure/rediscaches`](/azure/rediscaches.bicep) | `Applications.Datastores/redisCaches` | An Azure Cache for Redis resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/azure/rediscaches:TAG` | +## Supported IaC Languages -### aws + - Bicep + - Terraform -The [aws](/aws) directory contains Recipes for AWS resources. They are configurable via parameters, with the default values optimizing for cost and security. +## Available Recipes -| Recipe | Resource | Description | Template Path | -|--------|----------|-------------|---------------| -| [`aws/rediscaches`](/aws/rediscaches.bicep) | `Applications.Datastores/redisCaches` | An AWS MemoryDB resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/aws/rediscaches:TAG` | + - [Local Dev](/local-dev) + - [Azure](/azure) + - [AWS](/aws) ## Versioning and Tags @@ -54,44 +49,11 @@ Patched versions of Recipes are tagged with the patch number, e.g. `0.21.1`. Whe ## Usage -To use a community recipe from this repo, simply use [`rad recipe register`](https://docs.radapp.dev/reference/cli/rad_recipe_register) with the Recipe's template path, or update your environment's Bicep definition with the Recipe: - -### CLI - -```bash -rad recipe register azure \ - --environment myenv \ - --template-kind bicep \ - --template-path "ghcr.io/radius-project/recipes/azure/rediscaches:TAG" \ - --resource-type "Applications.Datastores/redisCaches" -``` - -### Bicep - -```bicep -import radius as rad - -resource myenv 'Applications.Core/environments' = { - name: 'myenv' - properties: { - compute: {...} - recipes: { - 'Applications.Core/redisCaches': { - 'azure': { - template-kind: 'bicep' - template-path: 'ghcr.io/radius-project/recipes/azure/rediscaches:0.21' - } - } - } - } -} -``` - -For more information on using Recipes refer to the [Radius docs](https://docs.radapp.io/guides/recipes/overview/). +To use a community recipe from this repo, simply use [`rad recipe register`](https://docs.radapp.io/reference/cli/rad_recipe_register) with the Recipe's template path, or update your environment's Bicep definition with the Recipe: -## Contributing +## How to contribute recipes -We welcome contributions to this repo! Please see our [contributing guide](/CONTRIBUTING.md) for more information. +Visit the [contributions guide] to learn how to write your own recipes and contribute to the community. ## Code of Conduct diff --git a/aws/README.MD b/aws/README.MD new file mode 100644 index 0000000..a557dbb --- /dev/null +++ b/aws/README.MD @@ -0,0 +1,46 @@ +# AWS Recipes + +The [aws](/aws) directory contains Recipes for AWS resources. They are configurable via parameters, with the default values optimizing for cost and security. + +## Available Recipes + +| Recipe | Resource | Description | Template Path | +|--------|----------|-------------|---------------| +| [`aws/rediscaches`](/aws/rediscaches.bicep) | `Applications.Datastores/redisCaches` | An AWS MemoryDB resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/aws/rediscaches:TAG` | +| [`aws/sqldatabases`](/aws/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` | An AWS RDS resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/aws/sqldatabases:TAG` | + +You can also contribute your own Azure recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. + + +### CLI + +```bash +rad recipe register azure \ + --environment myenv \ + --template-kind bicep \ + --template-path "ghcr.io/radius-project/recipes/azure/rediscaches:TAG" \ + --resource-type "Applications.Datastores/redisCaches" +``` + +### Bicep + +```bicep +import radius as rad + +resource myenv 'Applications.Core/environments' = { + name: 'myenv' + properties: { + compute: {...} + recipes: { + 'Applications.Core/redisCaches': { + 'azure': { + template-kind: 'bicep' + template-path: 'ghcr.io/radius-project/recipes/azure/rediscaches:0.21' + } + } + } + } +} +``` + +For more information on using Recipes refer to the [Radius docs](https://docs.radapp.io/guides/recipes/overview/). diff --git a/azure/README.MD b/azure/README.MD new file mode 100644 index 0000000..79b8109 --- /dev/null +++ b/azure/README.MD @@ -0,0 +1,13 @@ +## Azure recipes + +The [azure](/azure) directory contains Recipes for Azure resources. They are configurable via parameters, with the default values optimizing for cost and security. + +## Available Recipes + +| Recipe | Resource | Description | Template Path | +|--------|----------|-------------|---------------| +| [`azure/rediscaches`](/azure/rediscaches.bicep) | `Applications.Datastores/redisCaches` | An Azure Cache for Redis resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/azure/rediscaches:TAG` | +| [`azure/sqldatabases`](/azure/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` | An Azure SQL server resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/azure/sqldatabases:TAG` | +| [`azure/statestores`](/azure/statestores.bicep) | `Applications.Dapr/stateStores` |An Azure blob storage state store. | `ghcr.io/radius-project/recipes/azure/statestores:TAG` | + +You can also contribute your own Azure recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. \ No newline at end of file diff --git a/docs/contributing /contributing-issues.md b/docs/contributing /contributing-issues.md new file mode 100644 index 0000000..da2dee9 --- /dev/null +++ b/docs/contributing /contributing-issues.md @@ -0,0 +1,31 @@ +## Contributing to Issues + +This section describes the guidelines for submitting issues + +### Issue Types + +There are 2 types of issues: + +- bug: You've found a bug with the code, and want to report it, or create an issue to track the bug. +- feature: Used for items that propose a new idea or functionality. This allows feedback from others before code is written. + +> For questions or feedback please refer to the [Radius Community docs](https://docs.radapp.dev/community/). Discord will be the best way to get in touch with the community and the maintainers. + +### Before You File + +Before you file an issue, make sure you've checked the following: + +1. Is it the right repository? + - The Radius project is distributed across multiple repositories. Check the list of [repositories](https://github.com/radius-project) if you aren't sure which repo is the correct one. +1. Check for existing issues + - Before you create a new issue, please do a search in [open issues](https://github.com/radius-project/recipes/issues) to see if the issue or feature request has already been filed. + - If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reaction-to-pull-requests-issues-and-comments). Use a reaction: + - 👍 up-vote + - 👎 down-vote +1. For bugs + - Check it's not an environment issue. For example, if running on Kubernetes, make sure prerequisites are in place. + - Ensure you have as much data as possible. This usually comes in the form of logs and/or stacktrace. If running on Kubernetes or other environment, look at the logs of the Radius services (UCP, RP, DE). More details on how to get logs can be found [here](https://docs.radapp.dev/reference/troubleshooting-radius/). +1. For proposals + - Many changes to the Radius runtime may require changes to the API. In that case, the best place to discuss the potential feature is the main [Radius repo](https://github.com/radius-project/radius). + - Recipes runtime changes can be discussed in the [Radius repo](https://github.com/radius-project/radius). + - Community Recipes can be discussed within [this repo](https://github.com/radius-project/recipes/issues). \ No newline at end of file diff --git a/docs/contributing /contributing-recipes.md b/docs/contributing /contributing-recipes.md new file mode 100644 index 0000000..b2301f2 --- /dev/null +++ b/docs/contributing /contributing-recipes.md @@ -0,0 +1,36 @@ +## Contributing to Radius Recipes + +This section describes the guidelines for contributing code / docs to Radius Recipes. + +### How to write your first recipe + +To write your first recipe, follow the steps below: + +1. Familiarize yourself with the IaC language of your choice [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep) or [Terraform](https://developer.hashicorp.com/terraform) +1. Familiarize yourself with the Radius [Recipe](https://docs.radapp.io/recipes) concept +1. Familiarize yourself with the [supported resource types](https://docs.radapp.io/guides/recipes/overview/#supported-resources) to write recipes for. +1. Review the existing recipes in this repository to understand the structure and best practices +1. Follow this [how-to guide](https://docs.radapp.io/guides/recipes/howto-author-recipes/) to write your first recipe, register your recipe in the environment. +1. Test the custom recipe in your application + +### How to add a new recipe to this repository + +To add a recipe to this repository, follow the steps below: + +1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. +1. Fork the repository and create a new branch +1. Add the recipe to the relevant directory + 1. If the recipe is for local dev, add the recipe to the `local-dev` directory + 1. If the recipe is for Azure, add the recipe to the `azure` directory + 1. If the recipe is for AWS, add the recipe to the `aws` directory + 1. If its a terraform recipe, create a `terraform` directory under the relevant environment and add the recipe (e.g. `azure/terraform/redis.tf`) +1. Update the README.md with the new recipe +1. Commit and open a PR +1. Wait for the CI process to finish and make sure all checks are green +1. A maintainer of the repo will be assigned, and you can expect a review within a few days + +All contributions come through pull requests. To submit a proposed change, we recommend following this workflow: + +#### Use work-in-progress PRs for early feedback + +A good way to communicate before investing too much time is to create a draft PR and share it with your reviewers. The standard way of doing this is to mark your PR as draft within GitHub. \ No newline at end of file diff --git a/local-dev/README.md b/local-dev/README.md new file mode 100644 index 0000000..e3f4fdb --- /dev/null +++ b/local-dev/README.md @@ -0,0 +1,19 @@ +## local-dev + +The [local-dev](/local-dev) directory contains lightweight Recipes for development purposes. They run containerized infrastructure which is not persisted across restarts and is optimized for CPU and memory usage on a local machine. + +> **Note**: These Recipes are automatically installed via `rad init` + +| Recipe | Resource | Description | Template Path | +|--------|----------|-------------|---------------| +| [`local-dev/daprpubsubbrokers`](/local-dev/pubsubbrokers.bicep) | `Applications.Dapr/pubSubBrokers` | A lightweight container running the `redis` image and a Redis Dapr Pub/Sub component for development purposes. | `ghcr.io/radius-project/recipes/local-dev/daprpubsubbrokers:TAG` | +| [`local-dev/daprstatestores`](/local-dev/statestores.bicep) | `Applications.Dapr/stateStores` |A lightweight container running the `redis` image and a Redis Dapr state store component for development purposes. | `ghcr.io/radius-project/recipes/local-dev/daprstatestores:TAG` | +| [`local-dev/secretStores`](/local-dev/secretstores.bicep) | `Applications.Dapr/secretStores` | A kubernetes secret store type for development purposes. | `ghcr.io/radius-project/recipes/local-dev/secretstores:TAG` | +| [`local-dev/rabbitmqmessagequeues`](/local-dev/rabbitmqmessagequeues.bicep) | `Applications.Messaging/rabbitMQQueues` |A lightweight container running the `rabbitmq` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/rabbitmqmessagequeues:TAG` | +| [`local-dev/rediscaches`](/local-dev/rediscaches.bicep) | `Applications.Datastores/redisCaches` |A lightweight container running the `redis` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/rediscaches:TAG` | +| [`local-dev/mongodatabases`](/local-dev/mongodatabases.bicep) | `Applications.Datastores/mongoDatabases` |A lightweight container running the `mongo` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/mongodatabases:TAG` | +| [`local-dev/sqldatabases`](/local-dev/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` |A lightweight container running the `azure-sql-edge` image for development purposes. | `ghcr.io/radius-project/recipes/local-dev/sqldatabases:TAG` | + +## How to use these Recipes + +Visit the [how-to-guide](https://docs.radapp.io/guides/recipes/howto-dev-recipes/) in Radius docs to learn how to use the local-dev recipes in your application. \ No newline at end of file From 212a18bdb080ce8f99fa024365a0b885701e1ba9 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:38:14 -0500 Subject: [PATCH 04/25] Add contribution link Signed-off-by: Reshma Abdul Rahim --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f6961a..a03f737 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ To use a community recipe from this repo, simply use [`rad recipe register`](htt ## How to contribute recipes -Visit the [contributions guide] to learn how to write your own recipes and contribute to the community. +Visit the [contributions guide](/contributing) to learn how to write your own recipes and contribute to the community. ## Code of Conduct From db03a5596e807ea92a0c0b3fefc7d489d97142e7 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:42:13 -0500 Subject: [PATCH 05/25] Add contribution link Signed-off-by: Reshma Abdul Rahim --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a03f737..fc9911b 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ To use a community recipe from this repo, simply use [`rad recipe register`](htt ## How to contribute recipes -Visit the [contributions guide](/contributing) to learn how to write your own recipes and contribute to the community. +Visit the [contributions guide](CONTRIBUTING.md) to learn how to write your own recipes and contribute to the community. ## Code of Conduct From 33f86b34a458b7e33fcd69b833bfaf72ef2b1fd5 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:46:41 -0500 Subject: [PATCH 06/25] Add links to contribution guides to code and PR Signed-off-by: Reshma Abdul Rahim --- CONTRIBUTING.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7fe77f7..6e96ffa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,14 +10,13 @@ This document provides the guidelines for how to contribute to the recipes repos ## Table of Contents - - Contributing to Radius Recipes - - How to write your first recipe - - How to run your recipe - - How to contribute the recipe to this repository - - How to validate your recipe - - How to submit a PR - - Contributing Issues + - [Contributing to Radius Recipes](/docs/contributing/contributing-recipes.md) : This guide provides an overview of how to write your own recipes and contribute to the community. + - [Contributing Issues](/docs/contributing/contributing-issues.md) : This guide provides an overview of how to contribute issues to the Recipes. ## Thank You! Your contributions to open source, large or small, make projects like this possible. Thank you for taking the time to contribute. + +## Code of Conduct + +Please refer to our [Radius Community Code of Conduct](https://github.com/radius-project/radius/blob/main/CODE_OF_CONDUCT.md) \ No newline at end of file From 35b2682cabcf6453153d70b5d388cc16b8782f1a Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:56:33 -0500 Subject: [PATCH 07/25] Rename contribution folder Signed-off-by: Reshma Abdul Rahim --- CONTRIBUTING.md | 4 +-- docs/contributing/contributing-issues.md | 31 +++++++++++++++++++ docs/contributing/contributing-recipes.md | 36 +++++++++++++++++++++++ 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 docs/contributing/contributing-issues.md create mode 100644 docs/contributing/contributing-recipes.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e96ffa..2b4772d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,8 +10,8 @@ This document provides the guidelines for how to contribute to the recipes repos ## Table of Contents - - [Contributing to Radius Recipes](/docs/contributing/contributing-recipes.md) : This guide provides an overview of how to write your own recipes and contribute to the community. - - [Contributing Issues](/docs/contributing/contributing-issues.md) : This guide provides an overview of how to contribute issues to the Recipes. + - [Contributing to Radius Recipes](docs/contributing /contributing-recipes.md) : This guide provides an overview of how to write your own recipes and contribute to the community. + - [Contributing Issues](docs/contributing/contributing-issues.md) : This guide provides an overview of how to contribute issues to the Recipes. ## Thank You! diff --git a/docs/contributing/contributing-issues.md b/docs/contributing/contributing-issues.md new file mode 100644 index 0000000..da2dee9 --- /dev/null +++ b/docs/contributing/contributing-issues.md @@ -0,0 +1,31 @@ +## Contributing to Issues + +This section describes the guidelines for submitting issues + +### Issue Types + +There are 2 types of issues: + +- bug: You've found a bug with the code, and want to report it, or create an issue to track the bug. +- feature: Used for items that propose a new idea or functionality. This allows feedback from others before code is written. + +> For questions or feedback please refer to the [Radius Community docs](https://docs.radapp.dev/community/). Discord will be the best way to get in touch with the community and the maintainers. + +### Before You File + +Before you file an issue, make sure you've checked the following: + +1. Is it the right repository? + - The Radius project is distributed across multiple repositories. Check the list of [repositories](https://github.com/radius-project) if you aren't sure which repo is the correct one. +1. Check for existing issues + - Before you create a new issue, please do a search in [open issues](https://github.com/radius-project/recipes/issues) to see if the issue or feature request has already been filed. + - If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reaction-to-pull-requests-issues-and-comments). Use a reaction: + - 👍 up-vote + - 👎 down-vote +1. For bugs + - Check it's not an environment issue. For example, if running on Kubernetes, make sure prerequisites are in place. + - Ensure you have as much data as possible. This usually comes in the form of logs and/or stacktrace. If running on Kubernetes or other environment, look at the logs of the Radius services (UCP, RP, DE). More details on how to get logs can be found [here](https://docs.radapp.dev/reference/troubleshooting-radius/). +1. For proposals + - Many changes to the Radius runtime may require changes to the API. In that case, the best place to discuss the potential feature is the main [Radius repo](https://github.com/radius-project/radius). + - Recipes runtime changes can be discussed in the [Radius repo](https://github.com/radius-project/radius). + - Community Recipes can be discussed within [this repo](https://github.com/radius-project/recipes/issues). \ No newline at end of file diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md new file mode 100644 index 0000000..b2301f2 --- /dev/null +++ b/docs/contributing/contributing-recipes.md @@ -0,0 +1,36 @@ +## Contributing to Radius Recipes + +This section describes the guidelines for contributing code / docs to Radius Recipes. + +### How to write your first recipe + +To write your first recipe, follow the steps below: + +1. Familiarize yourself with the IaC language of your choice [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep) or [Terraform](https://developer.hashicorp.com/terraform) +1. Familiarize yourself with the Radius [Recipe](https://docs.radapp.io/recipes) concept +1. Familiarize yourself with the [supported resource types](https://docs.radapp.io/guides/recipes/overview/#supported-resources) to write recipes for. +1. Review the existing recipes in this repository to understand the structure and best practices +1. Follow this [how-to guide](https://docs.radapp.io/guides/recipes/howto-author-recipes/) to write your first recipe, register your recipe in the environment. +1. Test the custom recipe in your application + +### How to add a new recipe to this repository + +To add a recipe to this repository, follow the steps below: + +1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. +1. Fork the repository and create a new branch +1. Add the recipe to the relevant directory + 1. If the recipe is for local dev, add the recipe to the `local-dev` directory + 1. If the recipe is for Azure, add the recipe to the `azure` directory + 1. If the recipe is for AWS, add the recipe to the `aws` directory + 1. If its a terraform recipe, create a `terraform` directory under the relevant environment and add the recipe (e.g. `azure/terraform/redis.tf`) +1. Update the README.md with the new recipe +1. Commit and open a PR +1. Wait for the CI process to finish and make sure all checks are green +1. A maintainer of the repo will be assigned, and you can expect a review within a few days + +All contributions come through pull requests. To submit a proposed change, we recommend following this workflow: + +#### Use work-in-progress PRs for early feedback + +A good way to communicate before investing too much time is to create a draft PR and share it with your reviewers. The standard way of doing this is to mark your PR as draft within GitHub. \ No newline at end of file From 163067193b67f4b0fc11aa80189f3221f01a7dbb Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Wed, 21 Feb 2024 16:58:38 -0500 Subject: [PATCH 08/25] Add links to contribution guides to code and PR Signed-off-by: Reshma Abdul Rahim --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2b4772d..a09bef3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ This document provides the guidelines for how to contribute to the recipes repos ## Table of Contents - - [Contributing to Radius Recipes](docs/contributing /contributing-recipes.md) : This guide provides an overview of how to write your own recipes and contribute to the community. + - [Contributing to Radius Recipes](docs/contributing/contributing-recipes.md) : This guide provides an overview of how to write your own recipes and contribute to the community. - [Contributing Issues](docs/contributing/contributing-issues.md) : This guide provides an overview of how to contribute issues to the Recipes. ## Thank You! From c3cee5253f974873fe025e69a55e6ff5a9977c67 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Thu, 22 Feb 2024 17:31:06 -0500 Subject: [PATCH 09/25] Add testing steps Signed-off-by: Reshma Abdul Rahim --- .DS_Store | Bin 0 -> 6148 bytes CONTRIBUTING.md | 6 +- README.md | 53 ++++++++++--- aws/README.MD | 33 -------- docs/contributing /contributing-issues.md | 31 -------- docs/contributing /contributing-recipes.md | 36 --------- docs/contributing/contributing-recipes.md | 85 +++++++++++++++++++-- 7 files changed, 124 insertions(+), 120 deletions(-) create mode 100644 .DS_Store delete mode 100644 docs/contributing /contributing-issues.md delete mode 100644 docs/contributing /contributing-recipes.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 For questions or feedback please refer to the [Radius Community docs](https://docs.radapp.dev/community/). Discord will be the best way to get in touch with the community and the maintainers. - -### Before You File - -Before you file an issue, make sure you've checked the following: - -1. Is it the right repository? - - The Radius project is distributed across multiple repositories. Check the list of [repositories](https://github.com/radius-project) if you aren't sure which repo is the correct one. -1. Check for existing issues - - Before you create a new issue, please do a search in [open issues](https://github.com/radius-project/recipes/issues) to see if the issue or feature request has already been filed. - - If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reaction-to-pull-requests-issues-and-comments). Use a reaction: - - 👍 up-vote - - 👎 down-vote -1. For bugs - - Check it's not an environment issue. For example, if running on Kubernetes, make sure prerequisites are in place. - - Ensure you have as much data as possible. This usually comes in the form of logs and/or stacktrace. If running on Kubernetes or other environment, look at the logs of the Radius services (UCP, RP, DE). More details on how to get logs can be found [here](https://docs.radapp.dev/reference/troubleshooting-radius/). -1. For proposals - - Many changes to the Radius runtime may require changes to the API. In that case, the best place to discuss the potential feature is the main [Radius repo](https://github.com/radius-project/radius). - - Recipes runtime changes can be discussed in the [Radius repo](https://github.com/radius-project/radius). - - Community Recipes can be discussed within [this repo](https://github.com/radius-project/recipes/issues). \ No newline at end of file diff --git a/docs/contributing /contributing-recipes.md b/docs/contributing /contributing-recipes.md deleted file mode 100644 index b2301f2..0000000 --- a/docs/contributing /contributing-recipes.md +++ /dev/null @@ -1,36 +0,0 @@ -## Contributing to Radius Recipes - -This section describes the guidelines for contributing code / docs to Radius Recipes. - -### How to write your first recipe - -To write your first recipe, follow the steps below: - -1. Familiarize yourself with the IaC language of your choice [Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep) or [Terraform](https://developer.hashicorp.com/terraform) -1. Familiarize yourself with the Radius [Recipe](https://docs.radapp.io/recipes) concept -1. Familiarize yourself with the [supported resource types](https://docs.radapp.io/guides/recipes/overview/#supported-resources) to write recipes for. -1. Review the existing recipes in this repository to understand the structure and best practices -1. Follow this [how-to guide](https://docs.radapp.io/guides/recipes/howto-author-recipes/) to write your first recipe, register your recipe in the environment. -1. Test the custom recipe in your application - -### How to add a new recipe to this repository - -To add a recipe to this repository, follow the steps below: - -1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. -1. Fork the repository and create a new branch -1. Add the recipe to the relevant directory - 1. If the recipe is for local dev, add the recipe to the `local-dev` directory - 1. If the recipe is for Azure, add the recipe to the `azure` directory - 1. If the recipe is for AWS, add the recipe to the `aws` directory - 1. If its a terraform recipe, create a `terraform` directory under the relevant environment and add the recipe (e.g. `azure/terraform/redis.tf`) -1. Update the README.md with the new recipe -1. Commit and open a PR -1. Wait for the CI process to finish and make sure all checks are green -1. A maintainer of the repo will be assigned, and you can expect a review within a few days - -All contributions come through pull requests. To submit a proposed change, we recommend following this workflow: - -#### Use work-in-progress PRs for early feedback - -A good way to communicate before investing too much time is to create a draft PR and share it with your reviewers. The standard way of doing this is to mark your PR as draft within GitHub. \ No newline at end of file diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index b2301f2..f584a97 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -1,8 +1,8 @@ ## Contributing to Radius Recipes -This section describes the guidelines for contributing code / docs to Radius Recipes. +This section describes the guidelines for contributing code / docs to Radius Recipes. Contribution can be in the form of adding new recipes for the supported resource types and IaC languages, improving existing recipes or the documentation. -### How to write your first recipe +### 1. How to write your first recipe To write your first recipe, follow the steps below: @@ -11,11 +11,86 @@ To write your first recipe, follow the steps below: 1. Familiarize yourself with the [supported resource types](https://docs.radapp.io/guides/recipes/overview/#supported-resources) to write recipes for. 1. Review the existing recipes in this repository to understand the structure and best practices 1. Follow this [how-to guide](https://docs.radapp.io/guides/recipes/howto-author-recipes/) to write your first recipe, register your recipe in the environment. -1. Test the custom recipe in your application +### 2. How to test the recipe locally + +>[!Note] +>Since we do not have an automated testing framework for recipes and is in our [backlog](https://github.com/radius-project/recipes/issues/62), we recommend testing the recipe locally in your environment before contributing it to the repository. + +To test the recipe locally, follow the steps below: + +1. Publish the recipe to a Registry + Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`]({{< ref rad_bicep_publish >}}): + + ```bash + rad bicep publish --file myrecipe.bicep --target br:ghcr.io/USERNAME/recipes/myrecipe:1.1.0 + ``` + + Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. + +1. Register the recipe in your environment using the `rad recipe register` command + + ```bash + # Bicep + rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind bicep --template-path ghcr.io/USERNAME/recipes/myrecipe:1.1.0 + ``` + + ```bash + # Terraform + rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind terraform --template-path user/recipes/myrecipe --template-version "1.1.0" + ``` + + ```bicep + # Bicep environment + import radius as radius + resource env 'Applications.Core/environments@2023-10-01-preview' = { + name: 'prod' + properties: { + compute: { + kind: 'kubernetes' + resourceId: 'self' + namespace: 'default' + } + recipes: { + 'Applications.Datastores/redisCaches':{ + 'redis-bicep': { + templateKind: 'bicep' + templatePath: 'https://ghcr.io/USERNAME/recipes/myrecipe:1.1.0' + // Optionally set parameters for all resources calling this Recipe + parameters: { + port: 3000 + } + } + 'redis-terraform': { + templateKind: 'terraform' + templatePath: 'user/recipes/myrecipe' + templateVersion: '1.1.0' + // Optionally set parameters for all resources calling this Recipe + parameters: { + port: 3000 + } + } + } + } + } + } + ``` +1. Use the recipe in your application and verify that it works as expected + ```bicep + resource redis 'Applications.Datastores/redisCaches@2023-10-01-preview'= { + name: 'myresource' + properties: { + environment: environment + application: application + recipe: { + name: 'myrecipe' + } + } + } + ### How to add a new recipe to this repository -To add a recipe to this repository, follow the steps below: +After you have tested the recipe in an application, you can follow the steps below to add the recipe to the repository: 1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. 1. Fork the repository and create a new branch @@ -23,7 +98,7 @@ To add a recipe to this repository, follow the steps below: 1. If the recipe is for local dev, add the recipe to the `local-dev` directory 1. If the recipe is for Azure, add the recipe to the `azure` directory 1. If the recipe is for AWS, add the recipe to the `aws` directory - 1. If its a terraform recipe, create a `terraform` directory under the relevant environment and add the recipe (e.g. `azure/terraform/redis.tf`) + 1. If its a terraform recipe, create a directory name `` under the relevant environment and add the recipe (e.g. `azure/redis/main.tf`) 1. Update the README.md with the new recipe 1. Commit and open a PR 1. Wait for the CI process to finish and make sure all checks are green From 64e21c8e30859f33767a99fca45e456b6fde3b2a Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Thu, 22 Feb 2024 17:32:42 -0500 Subject: [PATCH 10/25] Add testing steps Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index f584a97..c14fa35 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -88,7 +88,7 @@ To test the recipe locally, follow the steps below: } } -### How to add a new recipe to this repository +### 3. How to add a new recipe to this repository After you have tested the recipe in an application, you can follow the steps below to add the recipe to the repository: From 6c6c4dc3757c63ccb5ac2a2e4bdf5d88250a2776 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Thu, 22 Feb 2024 17:36:24 -0500 Subject: [PATCH 11/25] close bicep code snippet Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index c14fa35..d2309c8 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -87,7 +87,8 @@ To test the recipe locally, follow the steps below: } } } - + ``` + ### 3. How to add a new recipe to this repository After you have tested the recipe in an application, you can follow the steps below to add the recipe to the repository: From c58becee31b21a796ca27ead155f2d9827f0d390 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:35:20 -0500 Subject: [PATCH 12/25] Delete .DS_Store Signed-off-by: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Signed-off-by: Reshma Abdul Rahim --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Date: Fri, 23 Feb 2024 13:37:34 -0500 Subject: [PATCH 13/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index d2309c8..f10ae13 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -31,17 +31,17 @@ To test the recipe locally, follow the steps below: 1. Register the recipe in your environment using the `rad recipe register` command ```bash - # Bicep + # **Bicep recipe via rad CLI** rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind bicep --template-path ghcr.io/USERNAME/recipes/myrecipe:1.1.0 ``` ```bash - # Terraform + # **Terraform recipe via rad CLI** rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind terraform --template-path user/recipes/myrecipe --template-version "1.1.0" ``` ```bicep - # Bicep environment + # **Bicep environment** import radius as radius resource env 'Applications.Core/environments@2023-10-01-preview' = { name: 'prod' From 0d56f54e5137112414ab55665924b33adfd84ac3 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Date: Fri, 23 Feb 2024 13:33:01 -0500 Subject: [PATCH 14/25] Update docs/contributing/contributing-recipes.md Co-authored-by: Aaron Crawfis Signed-off-by: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index f10ae13..49220af 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -29,7 +29,7 @@ To test the recipe locally, follow the steps below: Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. 1. Register the recipe in your environment using the `rad recipe register` command - + **Bicep Recipe via rad CLI** ```bash # **Bicep recipe via rad CLI** rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind bicep --template-path ghcr.io/USERNAME/recipes/myrecipe:1.1.0 From 48aee838ba536d5bd57262a0d4fcb3883b6eca79 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Fri, 23 Feb 2024 13:39:56 -0500 Subject: [PATCH 15/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index 49220af..5eb4203 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -20,7 +20,7 @@ To write your first recipe, follow the steps below: To test the recipe locally, follow the steps below: 1. Publish the recipe to a Registry - Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`]({{< ref rad_bicep_publish >}}): + Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: ```bash rad bicep publish --file myrecipe.bicep --target br:ghcr.io/USERNAME/recipes/myrecipe:1.1.0 @@ -29,19 +29,19 @@ To test the recipe locally, follow the steps below: Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. 1. Register the recipe in your environment using the `rad recipe register` command + **Bicep Recipe via rad CLI** ```bash - # **Bicep recipe via rad CLI** rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind bicep --template-path ghcr.io/USERNAME/recipes/myrecipe:1.1.0 ``` + **Terraform recipe via rad CLI** ```bash - # **Terraform recipe via rad CLI** rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind terraform --template-path user/recipes/myrecipe --template-version "1.1.0" ``` + **Bicep environment** ```bicep - # **Bicep environment** import radius as radius resource env 'Applications.Core/environments@2023-10-01-preview' = { name: 'prod' @@ -75,6 +75,7 @@ To test the recipe locally, follow the steps below: } } ``` + 1. Use the recipe in your application and verify that it works as expected ```bicep resource redis 'Applications.Datastores/redisCaches@2023-10-01-preview'= { From ef505560368afc550cd546eeb1dc432611c8e817 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Fri, 23 Feb 2024 13:57:43 -0500 Subject: [PATCH 16/25] Update publish in test workflow to exclude readme file) Signed-off-by: Reshma Abdul Rahim --- .github/workflows/test.yaml | 2 +- docs/contributing/contributing-recipes.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index f41f4be..58c5753 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -55,7 +55,7 @@ jobs: ./.github/scripts/install-radius.sh $RADIUS_VERSION - name: Publish Recipes run: | - files_list=$(ls "local-dev") + files_list=$(ls "local-dev" | grep '\.bicep$') for file in $files_list; do echo "Publishing recipe: local-dev/$file" recipeName="${file%.*}" diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index 5eb4203..cda48fe 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -75,7 +75,7 @@ To test the recipe locally, follow the steps below: } } ``` - + 1. Use the recipe in your application and verify that it works as expected ```bicep resource redis 'Applications.Datastores/redisCaches@2023-10-01-preview'= { From 8cbb91a4f00d835a1bf52e96b121528dee347162 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Fri, 23 Feb 2024 14:04:47 -0500 Subject: [PATCH 17/25] Empty-Commit Signed-off-by: Reshma Abdul Rahim From 3a74109921cb3f599ce23befa433c87f1b8a0b51 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:46:16 -0500 Subject: [PATCH 18/25] Update aws/README.MD Co-authored-by: Karishma Chawla Signed-off-by: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> --- aws/README.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aws/README.MD b/aws/README.MD index 0b8a36f..2fcb026 100644 --- a/aws/README.MD +++ b/aws/README.MD @@ -9,5 +9,5 @@ The [aws](/aws) directory contains Recipes for AWS resources. They are configura | [`aws/rediscaches`](/aws/rediscaches.bicep) | `Applications.Datastores/redisCaches` | An AWS MemoryDB resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/aws/rediscaches:TAG` | | [`aws/sqldatabases`](/aws/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` | An AWS RDS resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/aws/sqldatabases:TAG` | -You can also contribute your own Azure recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. +You can also contribute your own AWS recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. From bf440ae8a0f38de9f00d24dc4894e6cde98aa55f Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:47:29 -0500 Subject: [PATCH 19/25] Apply suggestions from code review Co-authored-by: Karishma Chawla Signed-off-by: Reshma Abdul Rahim <61033581+Reshrahim@users.noreply.github.com> --- docs/contributing/contributing-recipes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index cda48fe..a8932b6 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -20,7 +20,7 @@ To write your first recipe, follow the steps below: To test the recipe locally, follow the steps below: 1. Publish the recipe to a Registry - Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: + For Bicep, Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: ```bash rad bicep publish --file myrecipe.bicep --target br:ghcr.io/USERNAME/recipes/myrecipe:1.1.0 @@ -40,7 +40,7 @@ To test the recipe locally, follow the steps below: rad recipe register myrecipe --environment myenv --resource-type Applications.Datastores/redisCaches --template-kind terraform --template-path user/recipes/myrecipe --template-version "1.1.0" ``` - **Bicep environment** + **Via Radius environment bicep** ```bicep import radius as radius resource env 'Applications.Core/environments@2023-10-01-preview' = { From 57cfbe2faaf8f96a86f0288908c6b4dde0350a53 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 14:22:13 -0500 Subject: [PATCH 20/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- README.md | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/README.md b/README.md index 74f78ad..f2f9726 100644 --- a/README.md +++ b/README.md @@ -4,30 +4,7 @@ This repository contains commonly used [Recipe](https://docs.radapp.io/recipes) ## Recipes -Recipes provide self-service infrastructure provisioning for developers. Developers select the resource(s) they need, and operators can configure Recipes with secure, approved, infrastructure. - -## Supported Resources types - -Recipes currently support the following resources: - - - [Applications.Datastores/redisCaches](https://docs.radapp.io/reference/resource-schema/cache/redis/) - - [Applications.Datastores/mongoDatabases](https://docs.radapp.io/reference/resource-schema/databases/mongodb/) - - [Applications.Datastores/sqlDatabases](https://docs.radapp.io/reference/resource-schema/databases/microsoft-sql/) - - [Applications.Messaging/rabbitmqQueues](https://docs.radapp.io/reference/resource-schema/messaging/rabbitmq/) - - [Applications.Dapr/stateStores](https://docs.radapp.io/reference/resource-schema/dapr-schema/statestore/) - - [Applications.Dapr/pubSubBrokers](https://docs.radapp.io/reference/resource-schema/dapr-schema/pubsub/) - - [Applications.Dapr/secretStores](https://docs.radapp.io/reference/resource-schema/dapr-schema/secretstore/) - - [Applications.Core/extenders](https://docs.radapp.io/reference/resource-schema/core-schema/extender/) - -## Supported Cloud Providers - - - Azure - - AWS - -## Supported IaC Languages - - - Bicep - - Terraform +Recipes provide self-service infrastructure provisioning for developers. Developers select the resource(s) they need, and operators can configure Recipes with secure, approved, infrastructure. For more information about the supported resource types and the IaC languages, please refer to the [Recipes overview](https://docs.radapp.io/guides/recipes/overview/) page. ## Available Recipes From 88b096be30224b62b7a8618a21d309c92492bdc7 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 17:20:15 -0500 Subject: [PATCH 21/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- README.md | 12 +++++++++++- azure/README.MD | 18 +++++++++++++++++- docs/contributing/contributing-recipes.md | 11 ++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f2f9726..cfdd093 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,17 @@ Recipes provide self-service infrastructure provisioning for developers. Develop ## Available Recipes - - [Local Dev](/local-dev) +Recipes in this repository are organized by the environments and the resource types they support. Below is the structure: + + - eg : aws + - eg : rediscaches.bicep + - eg : rediscaches + - + - + +All the available Recipes can be found in the folders below: + + - [Local Dev](/local-dev) - [Azure](/azure) - [AWS](/aws) diff --git a/azure/README.MD b/azure/README.MD index 79b8109..5c33eae 100644 --- a/azure/README.MD +++ b/azure/README.MD @@ -10,4 +10,20 @@ The [azure](/azure) directory contains Recipes for Azure resources. They are con | [`azure/sqldatabases`](/azure/sqldatabases.bicep) | `Applications.Datastores/sqlDatabases` | An Azure SQL server resource with a configurable size and SKU. | `ghcr.io/radius-project/recipes/azure/sqldatabases:TAG` | | [`azure/statestores`](/azure/statestores.bicep) | `Applications.Dapr/stateStores` |An Azure blob storage state store. | `ghcr.io/radius-project/recipes/azure/statestores:TAG` | -You can also contribute your own Azure recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. \ No newline at end of file +You can also contribute your own Azure recipes for the supported resource types and IaC languages. Visit the [contributions guide](/contributing/contributing-recipes.md) to learn how to write your own recipes and contribute to the community. + +## Tags + +1. For Azure recipes, make sure to add tags to the recipe to indicate the infrastructure deployed by Recipes is created by Radius. For example: + + ```bicep + @description('The user-defined tags that will be applied to the resource. Default is null') + param tags object = {} + + @description('The Radius specific tags that will be applied to the resource') + var radiusTags = { + 'radapp.io-environment': context.environment.id + 'radapp.io-application': context.application == null ? '' : context.application.id + 'radapp.io-resource': context.resource.id + } + ``` \ No newline at end of file diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index a8932b6..b028c7e 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -22,8 +22,17 @@ To test the recipe locally, follow the steps below: 1. Publish the recipe to a Registry For Bicep, Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: + - Make sure you have the right permissions to push to the registry. Owner or Contributor alone won't allow you to push. + - Make sure to login to your registry before publishing the recipe. Eg: + + ```bash + az acr login --name + ``` + + - Publish the recipe to the registry + ```bash - rad bicep publish --file myrecipe.bicep --target br:ghcr.io/USERNAME/recipes/myrecipe:1.1.0 + rad bicep publish --file myrecipe.bicep --target br:/myrecipe:1.1.0 ``` Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. From 04a99f7256923ccfefbacca98755c07bb396b19a Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 17:22:00 -0500 Subject: [PATCH 22/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index b028c7e..cda4836 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -20,9 +20,11 @@ To write your first recipe, follow the steps below: To test the recipe locally, follow the steps below: 1. Publish the recipe to a Registry + For Bicep, Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: - Make sure you have the right permissions to push to the registry. Owner or Contributor alone won't allow you to push. + - Make sure to login to your registry before publishing the recipe. Eg: ```bash @@ -31,11 +33,11 @@ To test the recipe locally, follow the steps below: - Publish the recipe to the registry - ```bash - rad bicep publish --file myrecipe.bicep --target br:/myrecipe:1.1.0 - ``` + ```bash + rad bicep publish --file myrecipe.bicep --target br:/myrecipe:1.1.0 + ``` - Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. + - Follow the [Terraform module publishing docs](https://developer.hashicorp.com/terraform/registry/modules/publish) to setup and publish a Terraform module to a Terraform registry. 1. Register the recipe in your environment using the `rad recipe register` command From a8f8913b09997fb8c0255dc86c00291d5a910fe2 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 17:31:03 -0500 Subject: [PATCH 23/25] Address feedback Signed-off-by: Reshma Abdul Rahim --- README.md | 2 +- docs/contributing/contributing-recipes.md | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cfdd093..f65355e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository contains commonly used [Recipe](https://docs.radapp.io/recipes) Recipes provide self-service infrastructure provisioning for developers. Developers select the resource(s) they need, and operators can configure Recipes with secure, approved, infrastructure. For more information about the supported resource types and the IaC languages, please refer to the [Recipes overview](https://docs.radapp.io/guides/recipes/overview/) page. -## Available Recipes +## Repository Structure Recipes in this repository are organized by the environments and the resource types they support. Below is the structure: diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index cda4836..84ab821 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -107,11 +107,7 @@ After you have tested the recipe in an application, you can follow the steps bel 1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. 1. Fork the repository and create a new branch -1. Add the recipe to the relevant directory - 1. If the recipe is for local dev, add the recipe to the `local-dev` directory - 1. If the recipe is for Azure, add the recipe to the `azure` directory - 1. If the recipe is for AWS, add the recipe to the `aws` directory - 1. If its a terraform recipe, create a directory name `` under the relevant environment and add the recipe (e.g. `azure/redis/main.tf`) +1. Add the recipe to the relevant directory following the [repository structure](./recipes/README.MD#repository-structure) 1. Update the README.md with the new recipe 1. Commit and open a PR 1. Wait for the CI process to finish and make sure all checks are green From 91fdac34aed78bb765b79e53ced0820e3b2627c3 Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 17:38:49 -0500 Subject: [PATCH 24/25] Add hyperlink Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index 84ab821..5db2df8 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -107,7 +107,7 @@ After you have tested the recipe in an application, you can follow the steps bel 1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. 1. Fork the repository and create a new branch -1. Add the recipe to the relevant directory following the [repository structure](./recipes/README.MD#repository-structure) +1. Add the recipe to the relevant directory following the [repository structure](../../README.MD#repository-structure) 1. Update the README.md with the new recipe 1. Commit and open a PR 1. Wait for the CI process to finish and make sure all checks are green From 88c35794183d0ef3c9038b398c3c5bea32b8234b Mon Sep 17 00:00:00 2001 From: Reshma Abdul Rahim Date: Mon, 26 Feb 2024 17:41:59 -0500 Subject: [PATCH 25/25] Add hyperlink Signed-off-by: Reshma Abdul Rahim --- docs/contributing/contributing-recipes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/contributing/contributing-recipes.md b/docs/contributing/contributing-recipes.md index 5db2df8..d1e4c06 100644 --- a/docs/contributing/contributing-recipes.md +++ b/docs/contributing/contributing-recipes.md @@ -21,7 +21,7 @@ To test the recipe locally, follow the steps below: 1. Publish the recipe to a Registry - For Bicep, Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/).: + For Bicep, Recipes leverage [Bicep registries](https://learn.microsoft.com/azure/azure-resource-manager/bicep/private-module-registry) for template storage. - Make sure you have the right permissions to push to the registry. Owner or Contributor alone won't allow you to push. @@ -31,7 +31,7 @@ To test the recipe locally, follow the steps below: az acr login --name ``` - - Publish the recipe to the registry + - Once you've authored a Recipe, you can publish it to your preferred OCI-compliant registry with [`rad bicep publish`](https://docs.radapp.io/reference/cli/rad_bicep_publish/). ```bash rad bicep publish --file myrecipe.bicep --target br:/myrecipe:1.1.0 @@ -107,7 +107,7 @@ After you have tested the recipe in an application, you can follow the steps bel 1. Make sure there's an issue (bug or feature) raised, which sets the expectations for the contribution you are about to make. 1. Fork the repository and create a new branch -1. Add the recipe to the relevant directory following the [repository structure](../../README.MD#repository-structure) +1. Add the recipe to the relevant directory following the [repository structure](../../README.md#repository-structure) 1. Update the README.md with the new recipe 1. Commit and open a PR 1. Wait for the CI process to finish and make sure all checks are green