From 0be1b07ac7256bb2656477d58a9adae8fd444b33 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 6 Jul 2023 17:16:08 -0700 Subject: [PATCH] Update section pages --- .../dev-environment/initialize-environment.md | 2 +- docs/content/author-apps/networking/_index.md | 68 -------- .../author-apps/networking/overview/index.md | 77 +++++++++ .../{ => overview}/networking-cycles.png | Bin .../{ => overview}/networking-gateways.png | Bin .../snippets/networking-sslpassthrough.bicep | 0 .../snippets/networking-tlstermination.bicep | 0 .../{ => overview}/snippets/networking.bicep | 0 .../quickstarts/quickstart-aws/index.md | 4 +- .../quickstart-container-wi/index.md | 2 +- .../quickstart-environment-variables/index.md | 2 +- .../quickstarts/quickstart-volumes/index.md | 2 +- .../supported-languages/_index.md | 8 - .../custom-recipes/{_index.md => index.md} | 0 .../content/operations/environments/_index.md | 146 ----------------- .../{ => overview}/environments.png | Bin .../operations/environments/overview/index.md | 155 ++++++++++++++++++ .../{ => overview}/providers-overview.png | Bin .../{ => overview}/snippets/environment.bicep | 0 .../environments/workspaces/_index.md | 6 +- docs/content/operations/providers/_index.md | 4 +- .../core-schema/environment-schema/index.md | 2 +- .../volumes/volume-azure-keyvault/_index.md | 2 +- 23 files changed, 245 insertions(+), 235 deletions(-) create mode 100644 docs/content/author-apps/networking/overview/index.md rename docs/content/author-apps/networking/{ => overview}/networking-cycles.png (100%) rename docs/content/author-apps/networking/{ => overview}/networking-gateways.png (100%) rename docs/content/author-apps/networking/{ => overview}/snippets/networking-sslpassthrough.bicep (100%) rename docs/content/author-apps/networking/{ => overview}/snippets/networking-tlstermination.bicep (100%) rename docs/content/author-apps/networking/{ => overview}/snippets/networking.bicep (100%) rename docs/content/operations/custom-recipes/{_index.md => index.md} (100%) rename docs/content/operations/environments/{ => overview}/environments.png (100%) create mode 100644 docs/content/operations/environments/overview/index.md rename docs/content/operations/environments/{ => overview}/providers-overview.png (100%) rename docs/content/operations/environments/{ => overview}/snippets/environment.bicep (100%) diff --git a/docs/content/author-apps/dev-environment/initialize-environment.md b/docs/content/author-apps/dev-environment/initialize-environment.md index 1b73c3edf..da75349fa 100644 --- a/docs/content/author-apps/dev-environment/initialize-environment.md +++ b/docs/content/author-apps/dev-environment/initialize-environment.md @@ -25,7 +25,7 @@ Radius development environments enable you to quickly get started with Radius an ## How-to: Initialize a new dev environment -1. Initialize a new [Radius environment]{{(< ref "operations/environments">)}} with `rad init --dev` command: +1. Initialize a new [Radius environment]{{(< ref "operations/environments/overview">)}} with `rad init --dev` command: ```bash rad init --dev ``` diff --git a/docs/content/author-apps/networking/_index.md b/docs/content/author-apps/networking/_index.md index d0cc0f573..a995eac9d 100644 --- a/docs/content/author-apps/networking/_index.md +++ b/docs/content/author-apps/networking/_index.md @@ -7,71 +7,3 @@ weight: 400 categories: "Concept" tags: ["routes","gateways"] --- - -Radius networking resources allow you to model: - -- Communication between a user and a service -- Communication between services - -## HTTP Routes - -An `HttpRoute` resources defines HTTP communication between two [services]({{< ref container >}}). They can be used to define both one-way communication, as well as cycles of communication between services. - -Diagram of Radius service-to-service networking with cycles
- -Refer to the [HTTP Route schema]({{< ref httproute >}}) for more information on how to model HTTP routes. - -A gateway can optionally be added for external users to access the Route. - -## Gateways - -`Gateway` defines how requests are routed to different resources, and also provides the ability to expose traffic to the internet. Conceptually, gateways allow you to have a single point of entry for traffic in your application, whether it be internal or external traffic. - -`Gateway` in Radius are split into two main pieces; the `Gateway` resource itself, which defines which port and protocol to listen on, and Route(s) which define the rules for routing traffic to different resources. - -Diagram of Radius gateways
- -Refer to the [Gateway schema]({{< ref gateway >}}) for more information on how to model gateways. - -### TLS Termination - -Gateways support TLS termination. This allows incoming encrypted traffic to be decrypted with a user-specific certificate and then routed, unencrypted, to the specified routes. TLS certificates can be stored or referenced via a [Radius secret store]({{< ref secretstore >}}). - -### SSL Passthrough - -A gateway can be configured to passthrough encrypted SSL traffic to an HTTP route and container. This is useful for applications that already have SSL termination configured, and do not want to terminate SSL at the gateway. - -To set up SSL passthrough, set `tls.sslPassthrough` to `true` on the gateway, and set a single route with no `path` defined (just `destination`). - -## Example - -### Path-based HTTP routing - -{{< tabs Bicep >}} - -{{< codetab >}} -{{< rad file="snippets/networking.bicep" embed=true >}} -{{< /codetab >}} - -{{< /tabs >}} - -### TLS termination - -{{< tabs Bicep >}} - -{{< codetab >}} -{{< rad file="snippets/networking-tlstermination.bicep" embed=true marker="//GATEWAY" >}} -{{< /codetab >}} - -{{< /tabs >}} - - -### SSL Passthrough - -{{< tabs Bicep >}} - -{{< codetab >}} -{{< rad file="snippets/networking-sslpassthrough.bicep" embed=true marker="//GATEWAY" >}} -{{< /codetab >}} - -{{< /tabs >}} diff --git a/docs/content/author-apps/networking/overview/index.md b/docs/content/author-apps/networking/overview/index.md new file mode 100644 index 000000000..dcf2dd5c7 --- /dev/null +++ b/docs/content/author-apps/networking/overview/index.md @@ -0,0 +1,77 @@ +--- +type: docs +title: "Overview: Application networking" +linkTitle: "Network communication" +description: "Learn how to add networking to your Radius application" +weight: 100 +categories: "Overview" +tags: ["routes","gateways"] +--- + +Radius networking resources allow you to model: + +- Communication between a user and a service +- Communication between services + +## HTTP Routes + +An `HttpRoute` resources defines HTTP communication between two [services]({{< ref container >}}). They can be used to define both one-way communication, as well as cycles of communication between services. + +Diagram of Radius service-to-service networking with cycles
+ +Refer to the [HTTP Route schema]({{< ref httproute >}}) for more information on how to model HTTP routes. + +A gateway can optionally be added for external users to access the Route. + +## Gateways + +`Gateway` defines how requests are routed to different resources, and also provides the ability to expose traffic to the internet. Conceptually, gateways allow you to have a single point of entry for traffic in your application, whether it be internal or external traffic. + +`Gateway` in Radius are split into two main pieces; the `Gateway` resource itself, which defines which port and protocol to listen on, and Route(s) which define the rules for routing traffic to different resources. + +Diagram of Radius gateways
+ +Refer to the [Gateway schema]({{< ref gateway >}}) for more information on how to model gateways. + +### TLS Termination + +Gateways support TLS termination. This allows incoming encrypted traffic to be decrypted with a user-specific certificate and then routed, unencrypted, to the specified routes. TLS certificates can be stored or referenced via a [Radius secret store]({{< ref secretstore >}}). + +### SSL Passthrough + +A gateway can be configured to passthrough encrypted SSL traffic to an HTTP route and container. This is useful for applications that already have SSL termination configured, and do not want to terminate SSL at the gateway. + +To set up SSL passthrough, set `tls.sslPassthrough` to `true` on the gateway, and set a single route with no `path` defined (just `destination`). + +## Example + +### Path-based HTTP routing + +{{< tabs Bicep >}} + +{{< codetab >}} +{{< rad file="snippets/networking.bicep" embed=true >}} +{{< /codetab >}} + +{{< /tabs >}} + +### TLS termination + +{{< tabs Bicep >}} + +{{< codetab >}} +{{< rad file="snippets/networking-tlstermination.bicep" embed=true marker="//GATEWAY" >}} +{{< /codetab >}} + +{{< /tabs >}} + + +### SSL Passthrough + +{{< tabs Bicep >}} + +{{< codetab >}} +{{< rad file="snippets/networking-sslpassthrough.bicep" embed=true marker="//GATEWAY" >}} +{{< /codetab >}} + +{{< /tabs >}} diff --git a/docs/content/author-apps/networking/networking-cycles.png b/docs/content/author-apps/networking/overview/networking-cycles.png similarity index 100% rename from docs/content/author-apps/networking/networking-cycles.png rename to docs/content/author-apps/networking/overview/networking-cycles.png diff --git a/docs/content/author-apps/networking/networking-gateways.png b/docs/content/author-apps/networking/overview/networking-gateways.png similarity index 100% rename from docs/content/author-apps/networking/networking-gateways.png rename to docs/content/author-apps/networking/overview/networking-gateways.png diff --git a/docs/content/author-apps/networking/snippets/networking-sslpassthrough.bicep b/docs/content/author-apps/networking/overview/snippets/networking-sslpassthrough.bicep similarity index 100% rename from docs/content/author-apps/networking/snippets/networking-sslpassthrough.bicep rename to docs/content/author-apps/networking/overview/snippets/networking-sslpassthrough.bicep diff --git a/docs/content/author-apps/networking/snippets/networking-tlstermination.bicep b/docs/content/author-apps/networking/overview/snippets/networking-tlstermination.bicep similarity index 100% rename from docs/content/author-apps/networking/snippets/networking-tlstermination.bicep rename to docs/content/author-apps/networking/overview/snippets/networking-tlstermination.bicep diff --git a/docs/content/author-apps/networking/snippets/networking.bicep b/docs/content/author-apps/networking/overview/snippets/networking.bicep similarity index 100% rename from docs/content/author-apps/networking/snippets/networking.bicep rename to docs/content/author-apps/networking/overview/snippets/networking.bicep diff --git a/docs/content/getting-started/quickstarts/quickstart-aws/index.md b/docs/content/getting-started/quickstarts/quickstart-aws/index.md index 4a7be9d5b..a4bbf8419 100644 --- a/docs/content/getting-started/quickstarts/quickstart-aws/index.md +++ b/docs/content/getting-started/quickstarts/quickstart-aws/index.md @@ -33,7 +33,7 @@ eksctl create cluster --name my-cluster --region=us-west-2 --zones=us-west-2a,us ## Step 2: Create a Radius environment with the AWS cloud provider -Create a [Radius environment]({{< ref "operations/environments" >}}) where you will deploy your application. +Create a [Radius environment]({{< ref "operations/environments/overview" >}}) where you will deploy your application. 1. You can view the current context for kubectl by running: @@ -49,7 +49,7 @@ Create a [Radius environment]({{< ref "operations/environments" >}}) where you w rad init ``` - Follow the prompts to install Radius, create an [environment resource]({{< ref "operations/environments" >}}), and create a [local workspace]({{< ref workspaces >}}). You will be asked for: + Follow the prompts to install Radius, create an [environment resource]({{< ref "operations/environments/overview" >}}), and create a [local workspace]({{< ref workspaces >}}). You will be asked for: - **Namespace** - When an application is deployed, this is the namespace where your containers and other Kubernetes resources will be run. By default, this will be in the `default` namespace. {{% alert title="💡 About namespaces" color="success" %}} When you initialize a Radius Kubernetes environment, Radius installs the control plane resources within the `radius-system` namespace in your cluster, separate from your applications. The namespace specified in this step will be used for your application deployments. diff --git a/docs/content/getting-started/quickstarts/quickstart-container-wi/index.md b/docs/content/getting-started/quickstarts/quickstart-container-wi/index.md index eefd53eb1..4098613e2 100644 --- a/docs/content/getting-started/quickstarts/quickstart-container-wi/index.md +++ b/docs/content/getting-started/quickstarts/quickstart-container-wi/index.md @@ -33,7 +33,7 @@ rad init ## Step 2: Define a Radius environment -Create a file named `app.bicep` and define a Radius environment with [identity property]({{< ref "operations/environments" >}}) set. This configures your environment to use your Azure AD workload identity installation with your cluster's OIDC endpoint: +Create a file named `app.bicep` and define a Radius environment with [identity property]({{< ref "operations/environments/overview" >}}) set. This configures your environment to use your Azure AD workload identity installation with your cluster's OIDC endpoint: {{< rad file="snippets/container-wi.bicep" embed=true marker="//ENVIRONMENT">}} diff --git a/docs/content/getting-started/quickstarts/quickstart-environment-variables/index.md b/docs/content/getting-started/quickstarts/quickstart-environment-variables/index.md index ebeba1094..e1c19b3bc 100644 --- a/docs/content/getting-started/quickstarts/quickstart-environment-variables/index.md +++ b/docs/content/getting-started/quickstarts/quickstart-environment-variables/index.md @@ -17,7 +17,7 @@ This quickstart will teach you: ## Prerequisites - [Radius CLI]({{< ref "getting-started" >}}) -- [Radius environment]({{< ref "operations/environments" >}}) +- [Radius environment]({{< ref "operations/environments/overview" >}}) ## Step 1: Model an app and container diff --git a/docs/content/getting-started/quickstarts/quickstart-volumes/index.md b/docs/content/getting-started/quickstarts/quickstart-volumes/index.md index 265a5700f..d442808f5 100644 --- a/docs/content/getting-started/quickstarts/quickstart-volumes/index.md +++ b/docs/content/getting-started/quickstarts/quickstart-volumes/index.md @@ -16,7 +16,7 @@ This quickstart will provide an overview of how to: ## Prerequisites - [rad CLI]({{< ref getting-started >}}) -- [Radius environment]({{< ref "operations/environments" >}}) +- [Radius environment]({{< ref "operations/environments/overview" >}}) ## Step 1: Define an app and a container diff --git a/docs/content/getting-started/supported-languages/_index.md b/docs/content/getting-started/supported-languages/_index.md index 1ac7a041d..3dfac0fc6 100644 --- a/docs/content/getting-started/supported-languages/_index.md +++ b/docs/content/getting-started/supported-languages/_index.md @@ -7,11 +7,3 @@ weight: 900 categories: "How-To" tags: ["infrastructure-as-code"] --- - -Radius supports a variety of infrastructure-as-code (IaC) languages. - -{{% alert title="Other languages" color="info" %}} -Currently, Radius supports Bicep. Terraform support is underway as our next priority IaC language. -{{% /alert %}} - -## Languages diff --git a/docs/content/operations/custom-recipes/_index.md b/docs/content/operations/custom-recipes/index.md similarity index 100% rename from docs/content/operations/custom-recipes/_index.md rename to docs/content/operations/custom-recipes/index.md diff --git a/docs/content/operations/environments/_index.md b/docs/content/operations/environments/_index.md index c484ecea5..28681e981 100644 --- a/docs/content/operations/environments/_index.md +++ b/docs/content/operations/environments/_index.md @@ -4,152 +4,6 @@ title: "Radius environments" linkTitle: "Environments" description: "Learn about Radius environments and how to interact with them" weight: 200 -categories: "How-To" tags: ["environments"] --- -Radius environments are prepared "landing zones" for Radius applications. Applications deployed to an environment will inherit the container runtime, configuration, and other settings from the environment. Stay tuned for additional environment capabilities coming soon. - -## Configuration - -The following configuration options are available for environments: - -### Container runtime - -Radius environments can be configured with a container runtime, where Radius [containers]({{< ref container >}}) will be run, along with [gateways and routes]({{< ref networking >}}). - -A Kubernetes namespace is specified on the environment to tell Radius where to render application resources at deploy time. - -Diagram showing a Radius environment mapping to a Kubernetes cluster and namespace - -### Cloud Provider - -You can optionally configure cloud providers allow you to deploy and connect to cloud resources across various cloud platforms. For example, you can use the Radius Azure provider to run your application's services in your Kubernetes cluster, while deploying Azure resources to a specified Azure subscription and resource group. More information on setting up a cloud provider can be found in the [providers]({{< ref providers >}}) section. - -#### Supported cloud providers - -| Provider | Description | -|----------|-------------| -| [Microsoft Azure]({{< ref "providers#azure-provider" >}}) | Deploy and connect to Azure resources | -| [Amazon Web Services]({{< ref "providers#aws-provider" >}}) | Deploy and connect to AWS resources | - -### External identity provider - -You can optionally specify an external identity provider for your environment. This allows you to add to a Radius container an external identity such as an Azure user-assigned managed identity, and then specify role-based access control (RBAC) policies for that identity on Azure resources. - -Supported identity providers: - -- [Azure AD workload identity](https://azure.github.io/azure-workload-identity/docs/introduction.html) - -Visit the Azure direct connection quickstart for more information. (coming soon) - -## CLI commands - -The following commands let you interact with Radius environments: - -{{< tabs init list show delete switch >}} - -{{% codetab %}} -`rad init` initializes a new Kubernetes environment: - -```bash -rad init -``` -{{% /codetab %}} - -{{% codetab %}} -[rad env list]({{< ref rad_env_list >}}) lists all of the environments in your [workspace]({{< ref workspaces >}}): - -```bash -rad env list -``` -{{% /codetab %}} - -{{% codetab %}} -[rad env show]({{< ref rad_env_show >}}) prints information on the default or specified environment: - -```bash -rad env show -``` -{{% /codetab %}} - -{{% codetab %}} -[rad env delete]({{< ref rad_env_delete >}}) deletes the specified environment: - -```bash -rad env delete -e myenv -``` -{{% /codetab %}} - -{{% codetab %}} -[rad env switch]({{< ref rad_env_switch >}}) switches the default environment: - -```bash -rad env switch -e myenv -``` -{{% /codetab %}} - -{{< /tabs >}} - -## Schema - -Visit the [environment schema page]({{< ref environment-schema >}}) to learn more about environment properties and values. - -{{< button page="environment-schema" text="Schema" >}} - -## Example - -The following example shows an environment configured with Kubernetes as the target runtime. The `default` namespace designates where to render application resources. - -{{< rad file="snippets/environment.bicep" embed=true marker="//ENV" >}} - -## How-to: Initialize a new environment - -1. Begin by deploying a compatible [Kubernetes cluster]({{< ref "/operations/platforms/kubernetes" >}}) - - *Visit the [Kubernetes platform docs]({{< ref "/operations/platforms/kubernetes" >}}) for a list of supported clusters and specific cluster requirements.* - -1. Ensure your target kubectl context is set as the default: - ```bash - kubectl config current-context - ``` -1. Initialize a new environment with `rad init` command: - ```bash - rad init - ``` -1. Follow the prompts, specifying: - - **Namespace** - The Kubernetes namespace where your application containers and networking resources will be deployed (different than the Radius control-plane namespace, `radius-system`) - - **Azure provider** (optional) - Allows you to [deploy and manage Azure resources]({{< ref "providers#azure-provider" >}}) - - **AWS provider** (optional) - Allows you to [deploy and manage AWS resources]({{< ref "providers#aws-provider" >}}) - - **Environment name** - The name of the environment to create -1. Let the rad CLI run the following tasks: - 1. **Install Radius** - Radius installs the [control plane services]({{< ref architecture-concept >}}) in the `radius-system` namespace - 2. **Create the environment** - An environment resource is created in the Radius control plane. It maps to a Kubernetes namespace. - 3. **Add the Azure Cloud Provider** - The Azure cloud provider configuration is saved in the Radius control plane - 4. **Add the AWS Cloud Provider** - The AWS cloud provider configuration is saved in the Radius control plane - 5. **Create a workspace** - [Workspaces]({{< ref workspaces >}}) are local pointers to a cluster running Radius, and an environment. Workspaces are saved to the Radius config file (`~/.rad/config.yaml` on Linux and macOS, `%USERPROFILE%\.rad\config.yaml` on Windows) -2. Verify the initialization by running: - ```bash - kubectl get deployments -n radius-system - ``` - - You should see: - - ``` - NAME READY UP-TO-DATE AVAILABLE AGE - ucp 1/1 1 1 53s - appcore-rp 1/1 1 1 53s - bicep-de 1/1 1 1 53s - contour-contour 1/1 1 1 46s - dapr-dashboard 1/1 1 1 35s - dapr-sidecar-injector 1/1 1 1 35s - dapr-sentry 1/1 1 1 35s - dapr-operator 1/1 1 1 35s - ``` - - You can also use [`rad env list`]({{< ref rad_env_list.md >}}) to see if the created environment gets listed: - - ```bash - rad env list - ``` - diff --git a/docs/content/operations/environments/environments.png b/docs/content/operations/environments/overview/environments.png similarity index 100% rename from docs/content/operations/environments/environments.png rename to docs/content/operations/environments/overview/environments.png diff --git a/docs/content/operations/environments/overview/index.md b/docs/content/operations/environments/overview/index.md new file mode 100644 index 000000000..b488a477b --- /dev/null +++ b/docs/content/operations/environments/overview/index.md @@ -0,0 +1,155 @@ +--- +type: docs +title: "Overview: Radius environments" +linkTitle: "Overview" +description: "Learn about Radius environments and how to interact with them" +weight: 100 +categories: "Overview" +tags: ["environments"] +--- + +Radius environments are prepared "landing zones" for Radius applications. Applications deployed to an environment will inherit the container runtime, configuration, and other settings from the environment. Stay tuned for additional environment capabilities coming soon. + +## Configuration + +The following configuration options are available for environments: + +### Container runtime + +Radius environments can be configured with a container runtime, where Radius [containers]({{< ref container >}}) will be run, along with [gateways and routes]({{< ref networking >}}). + +A Kubernetes namespace is specified on the environment to tell Radius where to render application resources at deploy time. + +Diagram showing a Radius environment mapping to a Kubernetes cluster and namespace + +### Cloud Provider + +You can optionally configure cloud providers allow you to deploy and connect to cloud resources across various cloud platforms. For example, you can use the Radius Azure provider to run your application's services in your Kubernetes cluster, while deploying Azure resources to a specified Azure subscription and resource group. More information on setting up a cloud provider can be found in the [providers]({{< ref providers >}}) section. + +#### Supported cloud providers + +| Provider | Description | +|----------|-------------| +| [Microsoft Azure]({{< ref "providers#azure-provider" >}}) | Deploy and connect to Azure resources | +| [Amazon Web Services]({{< ref "providers#aws-provider" >}}) | Deploy and connect to AWS resources | + +### External identity provider + +You can optionally specify an external identity provider for your environment. This allows you to add to a Radius container an external identity such as an Azure user-assigned managed identity, and then specify role-based access control (RBAC) policies for that identity on Azure resources. + +Supported identity providers: + +- [Azure AD workload identity](https://azure.github.io/azure-workload-identity/docs/introduction.html) + +Visit the Azure direct connection quickstart for more information. (coming soon) + +## CLI commands + +The following commands let you interact with Radius environments: + +{{< tabs init list show delete switch >}} + +{{% codetab %}} +`rad init` initializes a new Kubernetes environment: + +```bash +rad init +``` +{{% /codetab %}} + +{{% codetab %}} +[rad env list]({{< ref rad_env_list >}}) lists all of the environments in your [workspace]({{< ref workspaces >}}): + +```bash +rad env list +``` +{{% /codetab %}} + +{{% codetab %}} +[rad env show]({{< ref rad_env_show >}}) prints information on the default or specified environment: + +```bash +rad env show +``` +{{% /codetab %}} + +{{% codetab %}} +[rad env delete]({{< ref rad_env_delete >}}) deletes the specified environment: + +```bash +rad env delete -e myenv +``` +{{% /codetab %}} + +{{% codetab %}} +[rad env switch]({{< ref rad_env_switch >}}) switches the default environment: + +```bash +rad env switch -e myenv +``` +{{% /codetab %}} + +{{< /tabs >}} + +## Schema + +Visit the [environment schema page]({{< ref environment-schema >}}) to learn more about environment properties and values. + +{{< button page="environment-schema" text="Schema" >}} + +## Example + +The following example shows an environment configured with Kubernetes as the target runtime. The `default` namespace designates where to render application resources. + +{{< rad file="snippets/environment.bicep" embed=true marker="//ENV" >}} + +## How-to: Initialize a new environment + +1. Begin by deploying a compatible [Kubernetes cluster]({{< ref "/operations/platforms/kubernetes" >}}) + + *Visit the [Kubernetes platform docs]({{< ref "/operations/platforms/kubernetes" >}}) for a list of supported clusters and specific cluster requirements.* + +1. Ensure your target kubectl context is set as the default: + ```bash + kubectl config current-context + ``` +1. Initialize a new environment with `rad init` command: + ```bash + rad init + ``` +1. Follow the prompts, specifying: + - **Namespace** - The Kubernetes namespace where your application containers and networking resources will be deployed (different than the Radius control-plane namespace, `radius-system`) + - **Azure provider** (optional) - Allows you to [deploy and manage Azure resources]({{< ref "providers#azure-provider" >}}) + - **AWS provider** (optional) - Allows you to [deploy and manage AWS resources]({{< ref "providers#aws-provider" >}}) + - **Environment name** - The name of the environment to create +1. Let the rad CLI run the following tasks: + 1. **Install Radius** - Radius installs the [control plane services]({{< ref architecture-concept >}}) in the `radius-system` namespace + 2. **Create the environment** - An environment resource is created in the Radius control plane. It maps to a Kubernetes namespace. + 3. **Add the Azure Cloud Provider** - The Azure cloud provider configuration is saved in the Radius control plane + 4. **Add the AWS Cloud Provider** - The AWS cloud provider configuration is saved in the Radius control plane + 5. **Create a workspace** - [Workspaces]({{< ref workspaces >}}) are local pointers to a cluster running Radius, and an environment. Workspaces are saved to the Radius config file (`~/.rad/config.yaml` on Linux and macOS, `%USERPROFILE%\.rad\config.yaml` on Windows) +2. Verify the initialization by running: + ```bash + kubectl get deployments -n radius-system + ``` + + You should see: + + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + ucp 1/1 1 1 53s + appcore-rp 1/1 1 1 53s + bicep-de 1/1 1 1 53s + contour-contour 1/1 1 1 46s + dapr-dashboard 1/1 1 1 35s + dapr-sidecar-injector 1/1 1 1 35s + dapr-sentry 1/1 1 1 35s + dapr-operator 1/1 1 1 35s + ``` + + You can also use [`rad env list`]({{< ref rad_env_list.md >}}) to see if the created environment gets listed: + + ```bash + rad env list + ``` + diff --git a/docs/content/operations/environments/providers-overview.png b/docs/content/operations/environments/overview/providers-overview.png similarity index 100% rename from docs/content/operations/environments/providers-overview.png rename to docs/content/operations/environments/overview/providers-overview.png diff --git a/docs/content/operations/environments/snippets/environment.bicep b/docs/content/operations/environments/overview/snippets/environment.bicep similarity index 100% rename from docs/content/operations/environments/snippets/environment.bicep rename to docs/content/operations/environments/overview/snippets/environment.bicep diff --git a/docs/content/operations/environments/workspaces/_index.md b/docs/content/operations/environments/workspaces/_index.md index 2606bf3c3..91306ee93 100644 --- a/docs/content/operations/environments/workspaces/_index.md +++ b/docs/content/operations/environments/workspaces/_index.md @@ -1,10 +1,10 @@ --- type: docs -title: "Radius workspaces" +title: "Overview: Radius workspaces" linkTitle: "Workspaces" description: "Learn how to handle multiple Radius platforms and environments with workspaces" -weight: 100 -categories: "How-To" +weight: 200 +categories: "Overview" --- Workspaces allow you to manage multiple Radius platforms and environments using a local configuration file. You can easily define and switch between workspaces to deploy and manage applications across local, test, and production environments. diff --git a/docs/content/operations/providers/_index.md b/docs/content/operations/providers/_index.md index 1bfb39ca6..92c2bec03 100644 --- a/docs/content/operations/providers/_index.md +++ b/docs/content/operations/providers/_index.md @@ -38,7 +38,7 @@ The Azure provider allows you to deploy and connect to Azure resources from a se #### Add a cloud provider when initializing an environment -1. Initialize a new [environment]({{< ref "operations/environments" >}}) with `rad init` +1. Initialize a new [environment]({{< ref "operations/environments/overview" >}}) with `rad init` 1. Select the Kubernetes cluster to install Radius into. Enter an environment name and base Kubernetes namespace to deploy the apps into. 1. Select "yes" to add a cloud provider and select Azure as the cloud provider 1. Specify your Azure subscription and resource group @@ -83,7 +83,7 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius #### Add a cloud provider when initializing an environment -1. Initialize a new [environment]({{< ref "operations/environments" >}}) with `rad init` +1. Initialize a new [environment]({{< ref "operations/environments/overview" >}}) with `rad init` 1. Select the Kubernetes cluster to install Radius into. Enter an environment name and base Kubernetes namespace to deploy the apps into. 1. Select "yes" to add a cloud provider and select AWS as the cloud provider diff --git a/docs/content/reference/resource-schema/core-schema/environment-schema/index.md b/docs/content/reference/resource-schema/core-schema/environment-schema/index.md index 045238f7e..e49a7e058 100644 --- a/docs/content/reference/resource-schema/core-schema/environment-schema/index.md +++ b/docs/content/reference/resource-schema/core-schema/environment-schema/index.md @@ -89,4 +89,4 @@ The [Kubernetes Metadata extension]({{< ref "/operations/platforms/kubernetes/ku ## Further reading -- [Radius environments]({{< ref "operations/environments" >}}) +- [Radius environments]({{< ref "operations/environments/overview" >}}) diff --git a/docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/_index.md b/docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/_index.md index 801bf28c8..f07cc2812 100644 --- a/docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/_index.md +++ b/docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/_index.md @@ -12,7 +12,7 @@ Radius supports mounting an Azure Key Vault as a persistent volume to the contai - [Azure Key Vault CSI Driver](https://azure.github.io/secrets-store-csi-driver-provider-azure/demos/standard-walkthrough/) installed on your cluster - [Azure AD Workload Identity](https://azure.github.io/azure-workload-identity/docs/installation.html) installed on your cluster -- `azure.com.workload` identity configured on your [environment]({{< ref "operations/environments" >}}) +- `azure.com.workload` identity configured on your [environment]({{< ref "operations/environments/overview" >}}) - Your Azure Key Vault access policy should be set to [Azure role-based access control](https://learn.microsoft.com/azure/key-vault/general/rbac-guide?tabs=azure-cli) ## Resource format