Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -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
44 changes: 35 additions & 9 deletions .github/workflows/spellcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
1 change: 0 additions & 1 deletion docs/assets/scss/_sidebar-tree.scss
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@

&__page {
color: $gray-700;
font-weight: $font-weight-light;
}
}

Expand Down
1 change: 1 addition & 0 deletions docs/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,5 @@ version_menu = "Releases"
[params.ui]
sidebar_menu_compact = true
sidebar_search_disable = true
sidebar_menu_foldable = true
ul_show = 1
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand Down
68 changes: 0 additions & 68 deletions docs/content/author-apps/networking/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<img src="networking-cycles.png" style="width:400px" alt="Diagram of Radius service-to-service networking with cycles" /><br />

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.

<img src="networking-gateways.png" style="width:400px" alt="Diagram of Radius gateways" /><br />

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 >}}
77 changes: 77 additions & 0 deletions docs/content/author-apps/networking/overview/index.md
Original file line number Diff line number Diff line change
@@ -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.

<img src="networking-cycles.png" style="width:400px" alt="Diagram of Radius service-to-service networking with cycles" /><br />

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.

<img src="networking-gateways.png" style="width:400px" alt="Diagram of Radius gateways" /><br />

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 >}}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading