Model, visualize, and deploy applications with Radius Canvas

Use Radius Canvas to model, visualize, and deploy applications in the GitHub Copilot app

Prerequisites

Before you begin, you need:

Sample repositories

You can use your own application or fork one of these open-source samples:

Step 1: Install the plugin

  1. Open the GitHub Copilot app.

  2. Open the Customize tab in the side menu, and then select Plugins. Search for radius, and then install the plugin.


  3. Restart your Copilot session so the skills and Radius Canvas become available.

After installation, use the plugin’s three-dot menu to update or uninstall it.

Step 2: Model your Application

  1. Create a new Copilot session. Select GitHub repository, and then add the repository you want to model.


  2. In the Copilot chat, enter:

    Show the application graph
    


    Copilot analyzes your source code, manifests, and Dockerfiles, generates an application definition at .radius/app.bicep, and opens it in the Modeled view of Radius Canvas.


    The Application graph represents the workloads, routes, backing services, and connections Radius identified in the repository.

    Review the graph to confirm that it includes the expected workloads, backing services, infrastructure dependencies, and connections. Select a resource, and then select View source code to open the source file where Radius detected it.

  3. Select Create Environment next to the Modeled view to begin configuring the Environment and planning the deployment.

Step 3: Configure your Environment

An Environment defines where your Application runs and the infrastructure available to it. After you select Create Environment, Radius Canvas opens the Environment configuration flow.

  1. Under Choose Cloud credentials, open the credential profile dropdown, and then select Create new profile.

    A credential profile is a reusable set of Azure tenant and subscription details that Radius uses to authenticate to Azure and configure OIDC trust for GitHub Actions.


  2. Enter a profile name, select Azure as the provider, and enter your Azure tenant ID and subscription.


  3. Select Verify credentials.

  4. After verification succeeds, select Save and continue.

  5. Next, enter a name for the Environment and select the GitHub account and the saved credential profile under Connect GitHub to a cloud.


  6. Under Deploy identity, the Microsoft Entra app registration name is already populated.

  7. Under Infrastructure, select the Azure resource group and AKS cluster. Select an existing Kubernetes namespace or enter a namespace such as my-app.

  8. Select Create the Environment. You can follow the status of the Environment configuration.


    Radius establishes OIDC trust with GitHub Actions, so deployment workflows authenticate with short-lived credentials instead of long-lived secrets stored in the repository.

Step 4: Plan the deployment

When the Environment configuration is complete, Radius Canvas displays Plan deployment, which opens the Planned view.

  1. Confirm that the correct Application, branch, and Environment are selected.


  2. Review the planned Application and supporting infrastructure.

  3. Select a resource to review its Radius resource type, connections, and links to View source code or View app definition.

Reviewing the plan does not deploy or change cloud resources.

Step 5: Deploy your Application

In the Planned view, select Deploy Application.


Radius Canvas opens the Deployments view and dispatches a GitHub Actions workflow that provisions the required infrastructure and deploys the Application to the selected Environment. Monitor progress in the view, or open the workflow run for details.

The workflow is committed to your repository, so you can review it before it runs and maintain it alongside your application code.

When the deployment completes, return to the Application graph and open the Deployed view to see the Application and its resources running in the Environment.


Step 6: Access your Application

In the Copilot chat, enter:

Access my deployed application

Copilot sets up port forwarding and provides a URL. Open the URL to access the deployed Application.

Step 7: Compare Application changes

Make changes to your Application on a branch, and then open the Diff view to compare the updated Application against main.

  1. Select your Application.
  2. Select main as the Base branch.
  3. Select the branch containing your changes as the Head branch.
  4. Review which components, connections, and dependencies your changes add, remove, or modify.

You can generate a Markdown summary of the Diff view and post it as part of a pull request comment, so reviewers can see the architectural impact alongside the code.


Step 8: Clean up

  1. In the Deployments view, select Delete Deployment, and then confirm the deletion.
  2. Monitor the deletion workflow until it completes. Radius deletes the Application and the infrastructure resources owned by it.
  3. If you no longer need the Radius Environment, open the Environments view and delete it.

Troubleshooting

  • Radius Canvas does not open. Ask Copilot to Fix my Radius Canvas. This invokes the Radius repair skill, which copies the required Radius Canvas files into place.
  • Modeling cannot find a Dockerfile. Radius Canvas currently supports only applications with a Dockerfile. Ask Copilot to Create a Dockerfile for my application, and then model the Application again.
  • gh is not recognized or command not found: gh. Install the GitHub CLI and restart your terminal, then run gh auth login.
  • The active GitHub account is missing the read:packages or write:packages scope. Run the authentication command shown by Radius Canvas, and then retry. If GH_TOKEN controls authentication, use a token that includes both scopes.
  • Timed out waiting for credential verification to complete. If the repository’s default branch is protected, Environment setup might have created a pull request for the Radius workflow files. Open and merge that pull request, then retry verification.
  • Branch not pushed yet or Extension "radius" is not recognized. Commit and push the complete generated .radius directory, including bicepconfig.json, to the branch you are deploying, and then deploy again.
  • An image build fails with exec format error. Ask Copilot to review the Dockerfile’s target-platform handling and update the application definition with supported build platforms, and then deploy again.
  • A removed resource remains after redeployment. Radius re-deployments are incremental and do not automatically delete resources removed from the application definition. If the resource is no longer needed, delete it in the Azure portal.

Report bugs and feedback

Before opening an issue, check the existing Radius AI extensions backlog for a matching report.

Submit bugs and feedback with the feedback or bug report form. You can also open the form from the feedback button in the bottom-right corner of Radius Canvas.