From 5f10d15c141296be33dfe23c74c6af090aa84219 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 6 Jul 2023 14:31:46 -0700 Subject: [PATCH 1/8] Create .gitattributes --- .gitattributes | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..307cd13c4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +# text files use OS defaults on checkout, LF on checkin +* text eol=auto + +# shell scripts always use LF +*.sh text eol=lf + +# images are binary +*.png binary From 2027603fc9793b63f3e1f9bdff76297a8c401b24 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 6 Jul 2023 15:24:56 -0700 Subject: [PATCH 2/8] Add dropdown arrows to sections (#639) --- docs/assets/scss/_sidebar-tree.scss | 1 - docs/config.toml | 1 + docs/layouts/partials/sidebar-tree.html | 71 ------------------------- 3 files changed, 1 insertion(+), 72 deletions(-) delete mode 100644 docs/layouts/partials/sidebar-tree.html diff --git a/docs/assets/scss/_sidebar-tree.scss b/docs/assets/scss/_sidebar-tree.scss index a8f9bb568..8a4dfb840 100644 --- a/docs/assets/scss/_sidebar-tree.scss +++ b/docs/assets/scss/_sidebar-tree.scss @@ -58,7 +58,6 @@ &__page { color: $gray-700; - font-weight: $font-weight-light; } } diff --git a/docs/config.toml b/docs/config.toml index c30d4c567..8142ae7e2 100644 --- a/docs/config.toml +++ b/docs/config.toml @@ -93,4 +93,5 @@ version_menu = "Releases" [params.ui] sidebar_menu_compact = true sidebar_search_disable = true +sidebar_menu_foldable = true ul_show = 1 diff --git a/docs/layouts/partials/sidebar-tree.html b/docs/layouts/partials/sidebar-tree.html deleted file mode 100644 index 3b33f9059..000000000 --- a/docs/layouts/partials/sidebar-tree.html +++ /dev/null @@ -1,71 +0,0 @@ -{{/* We cache this partial for bigger sites and set the active class client side. */}} -{{ $sidebarCacheLimit := cond (isset .Site.Params.ui "sidebar_cache_limit") .Site.Params.ui.sidebar_cache_limit 2000 -}} -{{ $shouldDelayActive := ge (len .Site.Pages) $sidebarCacheLimit -}} -
- {{ if not .Site.Params.ui.sidebar_search_disable -}} - - {{ else -}} -
- -
-
- {{ end -}} - -
-{{ define "section-tree-nav-section" -}} -{{ $s := .section -}} -{{ $p := .page -}} -{{ $shouldDelayActive := .shouldDelayActive -}} -{{ $sidebarMenuTruncate := .sidebarMenuTruncate -}} -{{ $treeRoot := cond (eq .ulNr 0) true false -}} -{{ $ulNr := .ulNr -}} -{{ $ulShow := .ulShow -}} -{{ $active := and (not $shouldDelayActive) (eq $s $p) -}} -{{ $activePath := and (not $shouldDelayActive) ($p.IsDescendant $s) -}} -{{ $show := cond (or (lt $ulNr $ulShow) $activePath (and (not $shouldDelayActive) (eq $s.Parent $p.Parent)) (and (not $shouldDelayActive) (eq $s.Parent $p)) (not $p.Site.Params.ui.sidebar_menu_compact) (and (not $shouldDelayActive) ($p.IsDescendant $s.Parent))) true false -}} -{{ $mid := printf "m-%s" ($s.RelPermalink | anchorize) -}} -{{ $pages_tmp := where (union $s.Pages $s.Sections).ByWeight ".Params.toc_hide" "!=" true -}} -{{ $pages := $pages_tmp | first $sidebarMenuTruncate -}} -{{ $withChild := gt (len $pages) 0 -}} -{{ $manualLink := cond (isset $s.Params "manuallink") $s.Params.manualLink ( cond (isset $s.Params "manuallinkrelref") (relref $s $s.Params.manualLinkRelref) $s.RelPermalink) -}} -{{ $manualLinkTitle := cond (isset $s.Params "manuallinktitle") $s.Params.manualLinkTitle $s.Title -}} -
  • - {{ if (and $p.Site.Params.ui.sidebar_menu_foldable (ge $ulNr 1)) -}} - - - {{ else -}} - {{ with $s.Params.Icon}}{{ end }}{{ $s.LinkTitle }} - {{- end }} - {{- if $withChild }} - {{- $ulNr := add $ulNr 1 }} -
      - {{ range $pages -}} - {{ if (not (and (eq $s $p.Site.Home) (eq .Params.toc_root true))) -}} - {{ template "section-tree-nav-section" (dict "page" $p "section" . "shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" $ulNr "ulShow" $ulShow) }} - {{- end }} - {{- end }} -
    - {{- end }} -
  • -{{- end }} \ No newline at end of file From dcd1c2d255f5bbbf8f14dd6134115508a833eab7 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 6 Jul 2023 16:03:08 -0700 Subject: [PATCH 3/8] Add output for failed spellcheck runs (#641) * Add output steps * Add misspelled word * Switch comment provider * Clear comment on success * Rename job * Add concurrency control * Fix spelling issue --- .github/workflows/spellcheck.yaml | 44 ++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index 03a04fa3a..1e0530acf 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -6,22 +6,20 @@ on: branches: - v*.* - edge - paths: - - 'docs/**' - - '.github/workflows/spellcheck.yaml' - - '.github/config/**' pull_request: types: [opened, synchronize, reopened] branches: - v*.* - edge - paths: - - 'docs/**' - - '.github/workflows/spellcheck.yaml' - - '.github/config/**' + +env: + ACTION_LINK: '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' + +concurrency: + group: spellcheck-${{ github.ref }}-${{ github.event.pull_request.number || github.sha }} jobs: - build: + spellcheck: name: Spellcheck runs-on: ubuntu-latest steps: @@ -31,3 +29,31 @@ jobs: uses: rojopolis/spellcheck-github-actions@0.27.0 with: config_path: .github/config/.pyspelling.yml + - name: Post GitHub workkflow output on failure + if: failure() + run: | + echo "## :x: Spellcheck Failed" >> $GITHUB_STEP_SUMMARY + echo "There are spelling errors in your PR. Visit [the workflow output](${{ env.ACTION_LINK }}) to see what words are failing." >> $GITHUB_STEP_SUMMARY + echo "### Adding new words" >> $GITHUB_STEP_SUMMARY + echo "If you are adding a new custom word refer to the [docs guide](https://docs.radapp.dev/contributing/docs/#spelling)" >> $GITHUB_STEP_SUMMARY + - name: Post GitHub workflow output on success + run: | + echo "## :white_check_mark: Spellcheck Passed" >> $GITHUB_STEP_SUMMARY + echo "There are no spelling errors in your PR." >> $GITHUB_STEP_SUMMARY + - name: Post GitHub comment on failure + if: failure() + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: spellcheck + recreate: true + message: | + ## :x: Spellcheck Failed + There are spelling errors in your PR. Visit [the workflow output](${{ env.ACTION_LINK }}) to see what words are failing. + ### Adding new words + If you are adding a new custom word refer to the [docs guide](https://docs.radapp.dev/contributing/docs/#spelling) + - name: Clear GitHub comment on success + uses: marocchino/sticky-pull-request-comment@v2 + continue-on-error: true + with: + header: spellcheck + delete: true From c1aaf86e85525c703875485f8167b371c30a7af9 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Fri, 7 Jul 2023 12:12:21 -0700 Subject: [PATCH 4/8] Disable section pages (#644) * Disable section page nav * Update section pages * Apply suggestions from code review Co-authored-by: Will <28876888+willtsai@users.noreply.github.com> * Remove _ for leaf pages --------- Co-authored-by: Will <28876888+willtsai@users.noreply.github.com> --- .../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 .../workspaces/{_index.md => index.md} | 6 +- .../providers/{_index.md => index.md} | 4 +- .../core-schema/environment-schema/index.md | 2 +- .../{_index.md => index.md} | 2 +- docs/layouts/partials/sidebar-tree.html | 71 ++++++++ 24 files changed, 316 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%) rename docs/content/operations/environments/workspaces/{_index.md => index.md} (98%) rename docs/content/operations/providers/{_index.md => index.md} (98%) rename docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/{_index.md => index.md} (98%) create mode 100644 docs/layouts/partials/sidebar-tree.html diff --git a/docs/content/author-apps/dev-environment/initialize-environment.md b/docs/content/author-apps/dev-environment/initialize-environment.md index 1b73c3edf..c41be30ed 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..3dd2c3cbf --- /dev/null +++ b/docs/content/author-apps/networking/overview/index.md @@ -0,0 +1,77 @@ +--- +type: docs +title: "Overview: Application networking" +linkTitle: "Application networking" +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 similarity index 98% rename from docs/content/operations/environments/workspaces/_index.md rename to 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 similarity index 98% rename from docs/content/operations/providers/_index.md rename to 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 similarity index 98% rename from docs/content/reference/resource-schema/core-schema/volumes/volume-azure-keyvault/_index.md rename to 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 diff --git a/docs/layouts/partials/sidebar-tree.html b/docs/layouts/partials/sidebar-tree.html new file mode 100644 index 000000000..1a63da336 --- /dev/null +++ b/docs/layouts/partials/sidebar-tree.html @@ -0,0 +1,71 @@ +{{/* We cache this partial for bigger sites and set the active class client side. */}} +{{ $sidebarCacheLimit := cond (isset .Site.Params.ui "sidebar_cache_limit") .Site.Params.ui.sidebar_cache_limit 2000 -}} +{{ $shouldDelayActive := ge (len .Site.Pages) $sidebarCacheLimit -}} +
    + {{ if not .Site.Params.ui.sidebar_search_disable -}} + + {{ else -}} +
    + +
    +
    + {{ end -}} + +
    +{{ define "section-tree-nav-section" -}} +{{ $s := .section -}} +{{ $p := .page -}} +{{ $shouldDelayActive := .shouldDelayActive -}} +{{ $sidebarMenuTruncate := .sidebarMenuTruncate -}} +{{ $treeRoot := cond (eq .ulNr 0) true false -}} +{{ $ulNr := .ulNr -}} +{{ $ulShow := .ulShow -}} +{{ $active := and (not $shouldDelayActive) (eq $s $p) -}} +{{ $activePath := and (not $shouldDelayActive) (or (eq $p $s) ($p.IsDescendant $s)) -}} +{{ $show := cond (or (lt $ulNr $ulShow) $activePath (and (not $shouldDelayActive) (eq $s.Parent $p.Parent)) (and (not $shouldDelayActive) (eq $s.Parent $p)) (not $p.Site.Params.ui.sidebar_menu_compact) (and (not $shouldDelayActive) ($p.IsDescendant $s.Parent))) true false -}} +{{ $mid := printf "m-%s" ($s.RelPermalink | anchorize) -}} +{{ $pages_tmp := where (union $s.Pages $s.Sections).ByWeight ".Params.toc_hide" "!=" true -}} +{{ $pages := $pages_tmp | first $sidebarMenuTruncate -}} +{{ $withChild := gt (len $pages) 0 -}} +{{ $manualLink := cond (isset $s.Params "manuallink") $s.Params.manualLink ( cond (isset $s.Params "manuallinkrelref") (relref $s $s.Params.manualLinkRelref) $s.RelPermalink) -}} +{{ $manualLinkTitle := cond (isset $s.Params "manuallinktitle") $s.Params.manualLinkTitle $s.Title -}} +
  • + {{ if (and $p.Site.Params.ui.sidebar_menu_foldable (ge $ulNr 1)) -}} + + + {{ else -}} + {{ with $s.Params.Icon}}{{ end }}{{ $s.LinkTitle }} + {{- end }} + {{- if $withChild }} + {{- $ulNr := add $ulNr 1 }} +
      + {{ range $pages -}} + {{ if (not (and (eq $s $p.Site.Home) (eq .Params.toc_root true))) -}} + {{ template "section-tree-nav-section" (dict "page" $p "section" . "shouldDelayActive" $shouldDelayActive "sidebarMenuTruncate" $sidebarMenuTruncate "ulNr" $ulNr "ulShow" $ulShow) }} + {{- end }} + {{- end }} +
    + {{- end }} +
  • +{{- end }} \ No newline at end of file From 9056807e60393948ded7ff1b98ba72261c3f502a Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Fri, 7 Jul 2023 12:13:56 -0700 Subject: [PATCH 5/8] Update sidebar GitHub links and taxonomies (#638) * Update GitHub issues links * Only show tags/categories on home page --- docs/layouts/partials/page-meta-links.html | 4 ++-- .../layouts/partials/taxonomy_terms_cloud.html | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 docs/layouts/partials/taxonomy_terms_cloud.html diff --git a/docs/layouts/partials/page-meta-links.html b/docs/layouts/partials/page-meta-links.html index 06b57245d..2e117191d 100644 --- a/docs/layouts/partials/page-meta-links.html +++ b/docs/layouts/partials/page-meta-links.html @@ -19,7 +19,7 @@ {{ end }} {{ $editURL := printf "%s/edit/%s" $gh_repo $gh_repo_path }} {{ $createURL := printf "%s/edit/%s" $gh_repo $gh_repo_path }} - {{ $issuesURL := printf "%s/issues/new?title=%s" $gh_repo (safeURL $.Title )}} + {{ $issuesURL := printf "%s/issues/new/choose" $gh_repo }} {{ $newPageStub := resources.Get "stubs/new-page-template.md" }} {{ $newPageQS := querify "value" $newPageStub.Content "filename" "change-me.md" | safeURL }} {{ $newPageURL := printf "%s/new/%s?%s" $gh_repo $gh_repo_path $newPageQS }} @@ -27,7 +27,7 @@ Edit this page New docs issue {{ if $gh_project_repo }} - {{ $project_issueURL := printf "%s/issues/new" $gh_project_repo }} + {{ $project_issueURL := printf "%s/issues/new/choose" $gh_project_repo }} New project issue {{ end }} diff --git a/docs/layouts/partials/taxonomy_terms_cloud.html b/docs/layouts/partials/taxonomy_terms_cloud.html new file mode 100644 index 000000000..8d120710d --- /dev/null +++ b/docs/layouts/partials/taxonomy_terms_cloud.html @@ -0,0 +1,18 @@ +{{ $context := .context }} +{{ $taxo := .taxo }} +{{ $title := .title }} +{{ if and (isset $context.Site.Taxonomies (lower $taxo)) ($context.Page.IsHome) }} + {{ $taxonomy := index $context.Site.Taxonomies (lower $taxo) }} + {{ if (gt (len $taxonomy) 0)}} +
    + {{ with $title }} +
    {{ . }}
    + {{ end }} + +
    + {{ end }} +{{ end }} \ No newline at end of file From d3a8ab145fb0c04fef6becd5617d8a17d05ebe01 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Tue, 11 Jul 2023 08:25:28 -0700 Subject: [PATCH 6/8] Switch to user path --- docs/content/getting-started/install/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/getting-started/install/index.md b/docs/content/getting-started/install/index.md index 55edf3eb5..1b210eaa9 100644 --- a/docs/content/getting-started/install/index.md +++ b/docs/content/getting-started/install/index.md @@ -62,7 +62,7 @@ iwr -useb "https://get.radapp.dev/tools/rad/install.ps1" | iex You may need to refresh your $PATH environment variable to access `rad`: ```powershell -$Env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") +$Env:Path = [System.Environment]::GetEnvironmentVariable("Path","User") ``` {{< /latest >}} {{< edge >}} From fac4abdb57ff05bedbf78fd45e896ff584654125 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 13 Jul 2023 16:03:26 -0700 Subject: [PATCH 7/8] Community call recording --- docs/content/community.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/content/community.md b/docs/content/community.md index 11a5e2f7c..b5590ffe9 100644 --- a/docs/content/community.md +++ b/docs/content/community.md @@ -36,7 +36,8 @@ To present a specific topic on the next Radius community call start by filling o | Thursday Apr 20th 9:00am Pacific Time (PST) | v0.19 release | - | [Stream](https://microsoft.sharepoint.com/:v:/r/teams/radius/Shared%20Documents/General/Community%20Calls/2023-04-20%20Project%20Radius%20Community%20Call.mp4?csf=1&web=1&e=RCA5Qx) | | Thursday May 18th 9:00am Pacific Time (PST) | v0.20 release | - | [Stream](https://microsoft.sharepoint.com/:v:/r/teams/radius/Shared%20Documents/General/Community%20Calls/2023-05-18%20Project%20Radius%20Community%20Call.mp4?csf=1&web=1&e=fKcbzm) | | Thursday June 15th 9:00am Pacific Time (PST) | v0.21 release | - | [Stream](https://microsoft.sharepoint.com/:v:/r/teams/radius/Shared%20Documents/General/Community%20Calls/2023-06-15%20Project%20Radius%20Community%20Call.mp4?csf=1&web=1&e=WIRhP5) | -| Thursday July 13th 9:00am Pacific Time (PST) | v0.22 release | [Teams](https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzI3ZTM1YmYtYTU3Yi00YWQ2LTk3OGQtOGQ5ZTQ5ODhmYmFm%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%223e1a3c9c-fb21-4845-8053-1f53bf388796%22%7d) | | +| Thursday July 13th 9:00am Pacific Time (PST) | v0.22 release | - | [Stream](https://microsoft.sharepoint.com/:v:/r/teams/radius/Shared%20Documents/General/Community%20Calls/2023-07-13%20Project%20Radius%20Community%20Call.mp4?csf=1&web=1&e=v30w8D) | +| Thursday Aug 10th 9:00am Pacific Time (PST) | v0.23 release | TBD | - | ## GitHub Issues & repositories From c60d0b13061edaa6bd54ecfedfd484f842bdb3f3 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 17 Jul 2023 12:56:22 -0700 Subject: [PATCH 8/8] Add DNS label instructions (#648) * Add DNS label instructions * Spelling * Update docs/content/author-apps/networking/howto-tls-termination-cert-manager/index.md * Spellcheck --- .github/config/en-custom.txt | 3 ++- .../index.md | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/config/en-custom.txt b/.github/config/en-custom.txt index 06e0eea34..1f94c9b3b 100644 --- a/.github/config/en-custom.txt +++ b/.github/config/en-custom.txt @@ -419,4 +419,5 @@ ePMKNy gg kubernetesMetadata daprSidecar -manualScaling \ No newline at end of file +manualScaling +Balancer diff --git a/docs/content/author-apps/networking/howto-tls-termination-cert-manager/index.md b/docs/content/author-apps/networking/howto-tls-termination-cert-manager/index.md index d341f9178..348212552 100644 --- a/docs/content/author-apps/networking/howto-tls-termination-cert-manager/index.md +++ b/docs/content/author-apps/networking/howto-tls-termination-cert-manager/index.md @@ -15,6 +15,9 @@ This guide will show you how to integrate Radius with cert-manager and Let's Enc - [rad CLI]({{< ref getting-started >}}) - [kubectl CLI](https://kubernetes.io/docs/tasks/tools/) +- Domain name + DNS A-record: In order to setup TLS communication to Radius you will need to make sure you have a domain name and DNS A-record pointing to your Kubernetes cluster's IP address. This is required for Let's Encrypt to issue a certificate and for traffic to be routed to your application. + - If running Radius on an Azure Kubernetes Service (AKS) cluster you can optionally use a [DNS label](https://learn.microsoft.com/azure/virtual-network/ip-services/public-ip-addresses#dns-name-label) to create a DNS A-record pointing to your cluster. Refer to the [tips and tricks](#using-an-azure-dns-label) section for more information. + - If running Radius on an Elastic Kubernetes Service (EKS) cluster you can optionally leverage [Application Load Balancer](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) for a hosted DNS name and record. ## Step 1: Initialize a Radius environment @@ -23,6 +26,7 @@ Begin by running `rad init` to initialize the Radius environment. ```sh rad init ``` + ## Step 2: Set up domain You'll next need a DNS record to point to your Kubernetes cluster and service in order to issue the certificate and allow traffic to your application. @@ -92,3 +96,17 @@ rad deploy app.bicep Once the deployment is complete the public endpoint of your application will be printed. Navigate to this public endpoint to access the application via HTTPS. You can view the certificate to see it has a Let's Encrypt issuer: Screenshot of the certificate information showing a Lets Encrypt issuer + +## Tips and tricks + +### Using an Azure DNS label + +If you are running Radius on an Azure Kubernetes Service (AKS) cluster you can use a [DNS label](https://learn.microsoft.com/azure/virtual-network/ip-services/public-ip-addresses#dns-name-label) to create a DNS A-record pointing to your cluster. This is useful if you don't have a domain name or don't want to use a subdomain for your dev/test environments. + +To setup a DNS label for your AKS cluster: + +1. Open the Azure portal to the subscription where your AKS cluster is deployed. +1. Open the resource group, prefixed with `MC_`, that contains your AKS cluster. (_i.e. `MC_myrg-mycluster_westus3`_) +1. Select the Public IP address prefixed with `kubernetes-` (_i.e. `kubernetes-a6925d5f55dfa41419c3c93648dbb30a`_) +1. Select 'Configuration' and add a DNS name label. Click save to create the DNS A-record. +1. Update your Radius gateway to use the DNS label as the `fullyQualifiedHostname` value.