diff --git a/docs/assets/scss/_styles_project.scss b/docs/assets/scss/_styles_project.scss index d16146dd9..cc608d285 100644 --- a/docs/assets/scss/_styles_project.scss +++ b/docs/assets/scss/_styles_project.scss @@ -1,3 +1,13 @@ .td-navbar .navbar-brand__name { display: none; +} + +.btn-success { + background: #3176d9; + background-color: #3176d9; + border-color: #3176d9; +} + +.btn { + border-radius: 10px; } \ No newline at end of file diff --git a/docs/assets/scss/_variables_project.scss b/docs/assets/scss/_variables_project.scss index 0b486faf5..e0418b6d0 100644 --- a/docs/assets/scss/_variables_project.scss +++ b/docs/assets/scss/_variables_project.scss @@ -1,5 +1,5 @@ $info: #b89112; -$primary: #25BADC; +$primary: #c43821; input[type="text"] { width: 75%; diff --git a/docs/content/_index.md b/docs/content/_index.md index 315287bdd..799d0faa9 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -9,8 +9,11 @@ no_list: true Welcome to the Radius documentation! Here you'll find everything you need to know about Radius, from getting started to advanced topics. -{{% alert title="What is Radius?" color="primary" %}} +{{% alert color="primary" %}} +Radius logo

Radius is a cloud native application platform. It enables developers and IT operators to collaborate on delivering and managing cloud-native applications. With Radius, teams can easily understand their applications and how applications are running environments including dev, cloud, edge, and on-prem. Plus, teams can ensure their application infrastructure meets cost, operations, and security requirements. Open-source and multi-cloud, Radius is the cloud-native application platform for delivering and managing applications anywhere. + +[**Learn more**](https://radapp.dev/) {{% /alert %}} {{< button text="Get started with Radius 🚀" page="getting-started" color="success" size="btn-lg" >}} diff --git a/docs/content/community/overview.md b/docs/content/community/overview.md index bb65b37fa..761370533 100644 --- a/docs/content/community/overview.md +++ b/docs/content/community/overview.md @@ -6,22 +6,22 @@ description: "Information about the Radius community" weight: 80 --- -Welcome to the Radius community. We are currently in a private release phase which is open to Microsoft FTEs and select partners. The team is working on a public preview release which will be announced on this page. +Welcome to the Radius community! ## Discussions -The best way to interact with us currently is through Discord over at the Radius Discord server: +The best way to interact with the community is via the Radius Discord server: {{< button link="https://discord.gg/SRG3ePMKNy" text="Radius Discord" newtab="true" >}} ## Community meetings Every month we host a community meeting to showcase new features, review upcoming milestones, and engage in a Q&A. -Anyone from the Radius Private Preview community can participate, present a topic, or host. All are welcome! +Anyone from the Radius community can participate, present a topic, or host. All are welcome! ### Meeting link -The meeting link and details are sent out via email. Contact your Radius Core Team contact to be added to the meeting invite. +The meeting link and details are sent out via email. ### Present your topic @@ -42,8 +42,8 @@ To present a specific topic on the next Radius community call start by filling o ## GitHub Issues & repositories -GitHub access is optional and not required to try out and run Radius. If you would like to directly file Issues and have access to the source code, please contact your Radius Core Team contact. +If you would like to file Issues, access the source code, or use Codespaces please visit the [Radius GitHub repo] (https://github.com/radius-project). ## How can I get involved? -One of the easiest ways to contribute is to participate in discussions at community engagements or the Teams channel. We are always seeking feedback from. Suggestions around improving the product and docs are always welcome. +One of the easiest ways to contribute is to participate in discussions at community engagements or via the Discord server referenced above. We are always seeking feedback, especially for suggestions around improving the product and docs. diff --git a/docs/content/guides/author-apps/networking/howto-service-networking/backend-connection.png b/docs/content/guides/author-apps/networking/howto-service-networking/backend-connection.png new file mode 100644 index 000000000..65868c289 Binary files /dev/null and b/docs/content/guides/author-apps/networking/howto-service-networking/backend-connection.png differ diff --git a/docs/content/guides/author-apps/networking/howto-service-networking/index.md b/docs/content/guides/author-apps/networking/howto-service-networking/index.md new file mode 100644 index 000000000..4a90860a2 --- /dev/null +++ b/docs/content/guides/author-apps/networking/howto-service-networking/index.md @@ -0,0 +1,74 @@ +--- +type: docs +title: "How To: Service to service networking" +linkTitle: "Service networking" +description: "Learn how your Radius services can communicate with each other" +weight: 200 +slug: 'service-networking' +categories: "How-To" +--- + +This guide will show you how two services can communicate with each other. In this example, we will have a frontend container service that communicates with a backend container service. + +Diagram of the frontend talking to the backend over HTTP port 80 + +## Prerequisites + +- [rad CLI]({{< ref "/guides/tooling/rad-cli/overview" >}}) +- [Radius environment]({{< ref getting-started >}}) + +## Step 1: Define the services + +First, define the containers in a file named `app.bicep`. We will define two services: `frontend` and `backend`: + +{{< rad file="snippets/1-app.bicep" embed=true markdownConfig="{linenos=table}" >}} + +Note the frontend container doesn't yet have a connection to the backend container. We will add that in the next step. + +## Step 2: Add a connection + +With the services defined, we can now add the connection between them. Add a connection to `frontend`: + +{{< rad file="snippets/2-app.bicep" embed=true marker="//FRONTEND" markdownConfig="{linenos=table,hl_lines=[\"14-18\"],linenostart=5}" >}} + +## Step 3: Deploy the application + +Deploy the application using the `rad deploy` command: + +```bash +rad run app.bicep -a networking-demo +``` + +You should see the application deploy successfully and the log stream start: + +``` +Building app.bicep... +Deploying template 'app.bicep' for application 'networking-demo' and environment 'default' from workspace 'default'... + +Deployment In Progress... + +Completed backend Applications.Core/containers +Completed frontend Applications.Core/containers + +Deployment Complete + +Resources: + backend Applications.Core/containers + frontend Applications.Core/containers + +Starting log stream... +``` + +## Step 4: Test the connection + +Visit [http://localhost:3000](http://localhost:3000) in your browser. You should see a connection to the backend container, along with the environment variables that have automatically been set on the frontend container: + +Screenshot of the demo container showing the backend connections + +## Done + +You have successfully added a connection between two containers. Make sure to delete your application to clean up the containers: + +```bash +rad app delete networking-demo -y +``` diff --git a/docs/content/guides/author-apps/networking/howto-service-networking/overview.png b/docs/content/guides/author-apps/networking/howto-service-networking/overview.png new file mode 100644 index 000000000..0c840b052 Binary files /dev/null and b/docs/content/guides/author-apps/networking/howto-service-networking/overview.png differ diff --git a/docs/content/guides/author-apps/networking/howto-service-networking/snippets/1-app.bicep b/docs/content/guides/author-apps/networking/howto-service-networking/snippets/1-app.bicep new file mode 100644 index 000000000..bba37c060 --- /dev/null +++ b/docs/content/guides/author-apps/networking/howto-service-networking/snippets/1-app.bicep @@ -0,0 +1,34 @@ +import radius as rad + +@description('The application ID of the Radius environment. Automatically set by the rad CLI.') +param application string + +resource frontend 'Applications.Core/containers@2023-10-01-preview' = { + name: 'frontend' + properties: { + application: application + container: { + image: 'radius.azurecr.io/tutorial/webapp:edge' + ports: { + web: { + containerPort: 3000 + } + } + } + } +} + +resource backend 'Applications.Core/containers@2023-10-01-preview' = { + name: 'backend' + properties: { + application: application + container: { + image: 'nginx:latest' + ports: { + web: { + containerPort: 80 + } + } + } + } +} diff --git a/docs/content/guides/author-apps/networking/howto-service-networking/snippets/2-app.bicep b/docs/content/guides/author-apps/networking/howto-service-networking/snippets/2-app.bicep new file mode 100644 index 000000000..51826c363 --- /dev/null +++ b/docs/content/guides/author-apps/networking/howto-service-networking/snippets/2-app.bicep @@ -0,0 +1,41 @@ +import radius as rad + +@description('The application ID of the Radius environment. Automatically set by the rad CLI.') +param application string + +//FRONTEND +resource frontend 'Applications.Core/containers@2023-10-01-preview' = { + name: 'frontend' + properties: { + application: application + container: { + image: 'radius.azurecr.io/tutorial/webapp:edge' + ports: { + web: { + containerPort: 3000 + } + } + } + connections: { + backend: { + source: 'http://backend:80' + } + } + } +} +//FRONTEND + +resource backend 'Applications.Core/containers@2023-10-01-preview' = { + name: 'backend' + properties: { + application: application + container: { + image: 'nginx:latest' + ports: { + web: { + containerPort: 80 + } + } + } + } +} diff --git a/docs/content/guides/author-apps/networking/overview/index.md b/docs/content/guides/author-apps/networking/overview/index.md index 240ee3ac6..4fdda9d7c 100644 --- a/docs/content/guides/author-apps/networking/overview/index.md +++ b/docs/content/guides/author-apps/networking/overview/index.md @@ -5,31 +5,36 @@ linkTitle: "Overview" 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 +- Communication between a user and a service -## HTTP Routes +Diagram of a gateway with traffic going to a frontend container, which in turn sends traffic to the basket and catalog containers -An `HttpRoute` resources defines HTTP communication between two [services]({{< ref "guides/author-apps/containers" >}}). They can be used to define both one-way communication, as well as cycles of communication between services. +## Service to service communication -Diagram of Radius service-to-service networking with cycles
+Radius containers can define connections to other containers, just like they can define connections to dependencies. -Refer to the [HTTP Route schema]({{< ref httproute >}}) for more information on how to model HTTP routes. +Network connections are defined as strings containing: -A gateway can optionally be added for external users to access the Route. +- The **scheme** (protocol) of the connection _(http, https, tcp, etc.)_ +- The **target** container/service to connect to _(basket, catalog, etc.)_ +- The **port** to connect to _(80, 443, etc.)_ -## Gateways +For example, a frontend container may need to connect to a basket container. The frontend container would define a connection to the basket container, with the scheme `http`, the target `basket`, and the port `3000`. The connection would look like this: `http://basket:3000`. -`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. +Diagram showing the components of a network connection -`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. +For more information on how to do service to service networking, visit the [service networking how-to guide]({{< ref howto-service-networking >}}): + +{{< button text="How-To: Service to service networking" page="howto-service-networking" >}} + +## Gateways -Diagram of Radius gateways
+A `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. Refer to the [Gateway schema]({{< ref gateway >}}) for more information on how to model gateways. diff --git a/docs/content/guides/author-apps/networking/overview/network-connection.png b/docs/content/guides/author-apps/networking/overview/network-connection.png new file mode 100644 index 000000000..7575f6cfc Binary files /dev/null and b/docs/content/guides/author-apps/networking/overview/network-connection.png differ diff --git a/docs/content/guides/author-apps/networking/overview/networking-cycles.png b/docs/content/guides/author-apps/networking/overview/networking-cycles.png deleted file mode 100644 index 917190575..000000000 Binary files a/docs/content/guides/author-apps/networking/overview/networking-cycles.png and /dev/null differ diff --git a/docs/content/guides/author-apps/networking/overview/networking-gateways.png b/docs/content/guides/author-apps/networking/overview/networking-gateways.png deleted file mode 100644 index 31381e694..000000000 Binary files a/docs/content/guides/author-apps/networking/overview/networking-gateways.png and /dev/null differ diff --git a/docs/content/guides/author-apps/networking/overview/networking.png b/docs/content/guides/author-apps/networking/overview/networking.png new file mode 100644 index 000000000..b458d4fe5 Binary files /dev/null and b/docs/content/guides/author-apps/networking/overview/networking.png differ diff --git a/docs/content/guides/author-apps/networking/overview/snippets/networking-sslpassthrough.bicep b/docs/content/guides/author-apps/networking/overview/snippets/networking-sslpassthrough.bicep deleted file mode 100644 index d7aac2b0d..000000000 --- a/docs/content/guides/author-apps/networking/overview/snippets/networking-sslpassthrough.bicep +++ /dev/null @@ -1,34 +0,0 @@ -import radius as radius - -param environment string - -resource app 'Applications.Core/applications@2023-10-01-preview' = { - name: 'myapp' - properties: { - environment: environment - } -} - -resource httpRoute 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'http-route' - properties: { - application: app.id - } -} - -//GATEWAY -resource internetGateway 'Applications.Core/gateways@2023-10-01-preview' = { - name: 'internet-gateway' - properties: { - application: app.id - tls: { - sslPassthrough: true - } - routes: [ - { - destination: httpRoute.id - } - ] - } -} -//GATEWAY diff --git a/docs/content/guides/author-apps/networking/overview/snippets/networking-tlstermination.bicep b/docs/content/guides/author-apps/networking/overview/snippets/networking-tlstermination.bicep deleted file mode 100644 index 3d342c005..000000000 --- a/docs/content/guides/author-apps/networking/overview/snippets/networking-tlstermination.bicep +++ /dev/null @@ -1,68 +0,0 @@ -import radius as radius - -@description('The ID of your Radius environment. Set automatically by the rad CLI.') -param environment string - -resource app 'Applications.Core/applications@2023-10-01-preview' = { - name: 'myapp' - properties: { - environment: environment - } -} - -resource httpRoute 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'http-route' - properties: { - application: app.id - } -} - -//GATEWAY -resource internetGateway 'Applications.Core/gateways@2023-10-01-preview' = { - name: 'internet-gateway' - properties: { - application: app.id - hostname: { - // Specify your hostname used with the TLS certificate - fullyQualifiedHostname: 'www.radapp.dev' - } - tls: { - // Specify TLS Termination for your app. Mutually exclusive with SSL Passthrough. - - // The Radius Secret Store holding TLS certificate data - certificateFrom: wwwRadiusTLS.id - // The minimum TLS protocol version to support. Defaults to 1.2 - minimumProtocolVersion: '1.2' - } - routes: [ - { - destination: httpRoute.id - } - ] - } -} - -// secretstore resource to reference the TLS certficate and key. -resource wwwRadiusTLS 'Applications.Core/secretStores@2023-10-01-preview' = { - name: 'tls-wwwradius' - properties: { - application: app.id - type: 'certificate' - - // Reference to an existing Kubernetes namespace and secret. - // Here, it is the 'wwwradiustls' TLS secret in the 'default' namespace. - resource: 'default/wwwradiustls' - - // The secrets to make available to other Radius resources via this secret store. - // To enable TLS termination in Applications.Core/gateways, both 'tls.crt' and 'tls.key' secrets must exist - // in the referenced secret store and also be listed here. - data: { - // Specify the secret keys to be made available, with no additional configuration. - // These secrets must already exist in the referenced Kubernetes secret, 'default/wwwradiustls'. - // If they do not exist, an error will be thrown. - 'tls.crt': {} - 'tls.key': {} - } - } -} -//GATEWAY diff --git a/docs/content/guides/author-apps/networking/overview/snippets/networking.bicep b/docs/content/guides/author-apps/networking/overview/snippets/networking.bicep deleted file mode 100644 index c32062342..000000000 --- a/docs/content/guides/author-apps/networking/overview/snippets/networking.bicep +++ /dev/null @@ -1,90 +0,0 @@ -import radius as radius - -param environment string - -resource app 'Applications.Core/applications@2023-10-01-preview' = { - name: 'myapp' - properties: { - environment: environment - } -} - -resource serviceA 'Applications.Core/containers@2023-10-01-preview' = { - name: 'service-a' - properties: { - application: app.id - container: { - image: 'servicea' - ports: { - web: { - containerPort: 80 - provides: routeAWeb.id - } - api: { - containerPort: 3000 - provides: routeAApi.id - } - } - } - connections: { - serviceB: { - source: routeB.id - } - } - } -} - -resource routeAWeb 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'route-a-web' - properties: { - application: app.id - } -} - -resource routeAApi 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'route-a-api' - properties: { - application: app.id - } -} - -resource serviceB 'Applications.Core/containers@2023-10-01-preview' = { - name: 'service-b' - properties: { - application: app.id - container: { - image: 'serviceb' - ports: { - api: { - containerPort: 3000 - provides: routeB.id - } - } - } - connections: { - serviceA: { - source: routeAApi.id - } - } - } -} - -resource routeB 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'route-b' - properties: { - application: app.id - } -} - -resource internetGateway 'Applications.Core/gateways@2023-10-01-preview' = { - name: 'internet-gateway' - properties: { - application: app.id - routes: [ - { - path: '/' - destination: routeAWeb.id - } - ] - } -} diff --git a/docs/content/guides/operations/control-plane/howto-postman/index.md b/docs/content/guides/operations/control-plane/howto-postman/index.md index 8e57f1b6c..76563a31e 100644 --- a/docs/content/guides/operations/control-plane/howto-postman/index.md +++ b/docs/content/guides/operations/control-plane/howto-postman/index.md @@ -1,8 +1,8 @@ --- type: docs title: "How-To: Interact with the Radius API in Postman" -linkTitle: "How-To: Postman" -weight: 400 +linkTitle: "How-To: Interact with Radius API" +weight: 500 description: "How-To: Interact directly with the Radius API using Postman" categories: ["How-To"] tags: ["Radius API"] diff --git a/docs/content/guides/operations/control-plane/observability/logging/_index.md b/docs/content/guides/operations/control-plane/logs/_index.md similarity index 77% rename from docs/content/guides/operations/control-plane/observability/logging/_index.md rename to docs/content/guides/operations/control-plane/logs/_index.md index 975a73c91..d5ce5501f 100644 --- a/docs/content/guides/operations/control-plane/observability/logging/_index.md +++ b/docs/content/guides/operations/control-plane/logs/_index.md @@ -1,7 +1,7 @@ --- type: docs title: "Control plane logging" -linkTitle: "Logging" -weight: 100 +linkTitle: "Logs" +weight: 200 description: "How to setup logging for the Radius control plane" --- \ No newline at end of file diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/fluentd-config-map.yaml b/docs/content/guides/operations/control-plane/logs/fluentd/fluentd-config-map.yaml similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/fluentd-config-map.yaml rename to docs/content/guides/operations/control-plane/logs/fluentd/fluentd-config-map.yaml diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/fluentd-radius-with-rbac.yaml b/docs/content/guides/operations/control-plane/logs/fluentd/fluentd-radius-with-rbac.yaml similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/fluentd-radius-with-rbac.yaml rename to docs/content/guides/operations/control-plane/logs/fluentd/fluentd-radius-with-rbac.yaml diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/index.md b/docs/content/guides/operations/control-plane/logs/fluentd/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/index.md rename to docs/content/guides/operations/control-plane/logs/fluentd/index.md diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-1.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-1.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-1.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-1.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-2.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-2.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-2.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-2.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-3.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-3.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-3.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-3.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-4.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-4.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-4.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-4.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-5.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-5.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-5.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-5.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-6.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-6.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-6.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-6.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-7.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-7.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-7.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-7.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-8.png b/docs/content/guides/operations/control-plane/logs/fluentd/kibana-8.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/logging/fluentd/kibana-8.png rename to docs/content/guides/operations/control-plane/logs/fluentd/kibana-8.png diff --git a/docs/content/guides/operations/control-plane/observability/logging/logs.md b/docs/content/guides/operations/control-plane/logs/overview/overview.md similarity index 65% rename from docs/content/guides/operations/control-plane/observability/logging/logs.md rename to docs/content/guides/operations/control-plane/logs/overview/overview.md index d7ac9c682..1d5b7bdb0 100644 --- a/docs/content/guides/operations/control-plane/observability/logging/logs.md +++ b/docs/content/guides/operations/control-plane/logs/overview/overview.md @@ -1,10 +1,10 @@ --- type: docs -title: "How-To: Control plane logs" -linkTitle: "Logs" +title: "Overview: Control plane logs" +linkTitle: "Overview" weight: 100 -description: "Use logs to monitor and troubleshoot the control plane." -categories: "How-To" +description: "Learn about Radius logs for monitoring and troubleshooting the control plane." +categories: "Overview" tags: ["logs","troubleshooting", "observability"] --- @@ -40,19 +40,19 @@ If you are using the Azure Kubernetes Service, you can use [Azure Monitor for co Control plane logs contain the following fields: -| Field | Description | Example | -|-------|-------------------|---------| -| `timestamp` | [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp | `2011-10-05T14:48:00.000Z` | -| `severity` | Log level. Available levels are info, warn, debug, and error. | `info` | -| `message` | Log message | `proxying request target: http://de-api.radius-system:6443` | -| `name` | Logging scope | `ucplogger.api` | -| `caller` | Service logging point | `planes/proxyplane.go:171` -| `version` | Control plane version | `0.18` | +| Field | Description | Example | +|---------------|-------------------|---------| +| `timestamp` | [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp | `2011-10-05T14:48:00.000Z` | +| `severity` | Log level. Available levels are info, warn, debug, and error. | `info` | +| `message` | Log message | `proxying request target: http://de-api.radius-system:6443` | +| `name` | Logging scope | `ucplogger.api` | +| `caller` | Service logging point | `planes/proxyplane.go:171` +| `version` | Control plane version | `0.18` | | `serviceName` | Name of control plane service | `ucplogger` | -| `hostName` | Service host name | `ucp-77bc9b4cbb-nmjlz` | -| `resourceId` | The resourceId being affected, if applicable | `/apis/api.ucp.dev/v1alpha3/planes/deployments/local/resourcegroups/myrg/providers/Microsoft.Resources/deployments/rad-deploy-6c0d37b0-705e-454b-9167-877aa080e656` | -| `traceId` | [w3c traceId](https://www.w3.org/TR/trace-context/#trace-id). Used to uniquely identify a [distributed trace](https://www.w3.org/TR/trace-context/#dfn-distributed-traces) through a system. | `d1ba9c7d2326ee1b44eb0b8177ef554f` | -| `spanId` | [w3c spanId](https://www.w3.org/TR/trace-context/#parent-id) The ID of this request as known by the caller. Also known as `parent-id` in some tracing systems. | `ce52a91ed3c86c6d` | +| `hostName` | Service host name | `ucp-77bc9b4cbb-nmjlz` | +| `resourceId` | The resourceId being affected, if applicable | `/apis/api.ucp.dev/v1alpha3/planes/deployments/local/resourcegroups/myrg/providers/Microsoft.Resources/deployments/rad-deploy-6c0d37b0-705e-454b-9167-877aa080e656` | +| `traceId` | [w3c traceId](https://www.w3.org/TR/trace-context/#trace-id). Used to uniquely identify a [distributed trace](https://www.w3.org/TR/trace-context/#dfn-distributed-traces) through a system. | `d1ba9c7d2326ee1b44eb0b8177ef554f` | +| `spanId` | [w3c spanId](https://www.w3.org/TR/trace-context/#parent-id) The ID of this request as known by the caller. Also known as `parent-id` in some tracing systems. | `ce52a91ed3c86c6d` | #### Example diff --git a/docs/content/guides/operations/control-plane/observability/metrics/_index.md b/docs/content/guides/operations/control-plane/metrics/_index.md similarity index 91% rename from docs/content/guides/operations/control-plane/observability/metrics/_index.md rename to docs/content/guides/operations/control-plane/metrics/_index.md index e39dd43e1..45f6e3e8d 100644 --- a/docs/content/guides/operations/control-plane/observability/metrics/_index.md +++ b/docs/content/guides/operations/control-plane/metrics/_index.md @@ -2,6 +2,6 @@ type: docs title: "Control plane metrics" linkTitle: "Metrics" -weight: 200 +weight: 300 description: "How to setup metrics for the Radius control plane" --- \ No newline at end of file diff --git a/docs/content/guides/operations/control-plane/observability/metrics/grafana/index.md b/docs/content/guides/operations/control-plane/metrics/grafana/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/grafana/index.md rename to docs/content/guides/operations/control-plane/metrics/grafana/index.md diff --git a/docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-overview-1.png b/docs/content/guides/operations/control-plane/metrics/grafana/radius-overview-1.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-overview-1.png rename to docs/content/guides/operations/control-plane/metrics/grafana/radius-overview-1.png diff --git a/docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-overview-2.png b/docs/content/guides/operations/control-plane/metrics/grafana/radius-overview-2.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-overview-2.png rename to docs/content/guides/operations/control-plane/metrics/grafana/radius-overview-2.png diff --git a/docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-resource-provider-1.png b/docs/content/guides/operations/control-plane/metrics/grafana/radius-resource-provider-1.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-resource-provider-1.png rename to docs/content/guides/operations/control-plane/metrics/grafana/radius-resource-provider-1.png diff --git a/docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-resource-provider-2.png b/docs/content/guides/operations/control-plane/metrics/grafana/radius-resource-provider-2.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/grafana/radius-resource-provider-2.png rename to docs/content/guides/operations/control-plane/metrics/grafana/radius-resource-provider-2.png diff --git a/docs/content/guides/operations/control-plane/observability/metrics/overview/index.md b/docs/content/guides/operations/control-plane/metrics/overview/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/overview/index.md rename to docs/content/guides/operations/control-plane/metrics/overview/index.md diff --git a/docs/content/guides/operations/control-plane/observability/metrics/prometheus/index.md b/docs/content/guides/operations/control-plane/metrics/prometheus/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/metrics/prometheus/index.md rename to docs/content/guides/operations/control-plane/metrics/prometheus/index.md diff --git a/docs/content/guides/operations/control-plane/observability/_index.md b/docs/content/guides/operations/control-plane/observability/_index.md deleted file mode 100644 index c16faebf4..000000000 --- a/docs/content/guides/operations/control-plane/observability/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "Observe Radius control plane" -linkTitle: "Observability" -weight: 300 -description: "How to observe and gain insights into the Radius control plane" ---- diff --git a/docs/content/guides/operations/control-plane/observability/tracing/_index.md b/docs/content/guides/operations/control-plane/traces/_index.md similarity index 93% rename from docs/content/guides/operations/control-plane/observability/tracing/_index.md rename to docs/content/guides/operations/control-plane/traces/_index.md index 80ff455d5..080091904 100644 --- a/docs/content/guides/operations/control-plane/observability/tracing/_index.md +++ b/docs/content/guides/operations/control-plane/traces/_index.md @@ -2,6 +2,6 @@ type: docs title: "Control plane tracing" linkTitle: "Tracing" -weight: 150 +weight: 400 description: "How to setup your observability tools to receive Radius control plane traces" --- \ No newline at end of file diff --git a/docs/content/guides/operations/control-plane/observability/tracing/jaeger/index.md b/docs/content/guides/operations/control-plane/traces/jaeger/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/tracing/jaeger/index.md rename to docs/content/guides/operations/control-plane/traces/jaeger/index.md diff --git a/docs/content/guides/operations/control-plane/observability/tracing/jaeger/jaeger.yaml b/docs/content/guides/operations/control-plane/traces/jaeger/jaeger.yaml similarity index 100% rename from docs/content/guides/operations/control-plane/observability/tracing/jaeger/jaeger.yaml rename to docs/content/guides/operations/control-plane/traces/jaeger/jaeger.yaml diff --git a/docs/content/guides/operations/control-plane/observability/tracing/jaeger/jaeger_ui.png b/docs/content/guides/operations/control-plane/traces/jaeger/jaeger_ui.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/tracing/jaeger/jaeger_ui.png rename to docs/content/guides/operations/control-plane/traces/jaeger/jaeger_ui.png diff --git a/docs/content/guides/operations/control-plane/observability/tracing/zipkin/index.md b/docs/content/guides/operations/control-plane/traces/zipkin/index.md similarity index 100% rename from docs/content/guides/operations/control-plane/observability/tracing/zipkin/index.md rename to docs/content/guides/operations/control-plane/traces/zipkin/index.md diff --git a/docs/content/guides/operations/control-plane/observability/tracing/zipkin/zipkin_ui.png b/docs/content/guides/operations/control-plane/traces/zipkin/zipkin_ui.png similarity index 100% rename from docs/content/guides/operations/control-plane/observability/tracing/zipkin/zipkin_ui.png rename to docs/content/guides/operations/control-plane/traces/zipkin/zipkin_ui.png diff --git a/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md b/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md index 10b3434f7..cf7182278 100644 --- a/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md +++ b/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md @@ -41,7 +41,6 @@ You can set labels and annotations on an environment, application, or container Kubernetes metadata can be applied at the environment, application, or container layers. Metadata cascades down from the environment to the application to the containers, gateway and route resources. For example, you can set labels and annotations at an environment level and all containers within the environment will gain these labels and annotation, without the need for an explicit extension on the containers. The following resources will gain the Kubernetes metadata for their [output resources]({{< ref "/guides/operations/kubernetes/overview#resource-mapping" >}}) from labels, annotations set at Environment, Application levels: - Applications.Core/containers -- Applications.Core/httpRoutes - Applications.Core/gateways ### Metadata processing order diff --git a/docs/content/guides/operations/kubernetes/overview/index.md b/docs/content/guides/operations/kubernetes/overview/index.md index 740ec5447..82f526f8c 100644 --- a/docs/content/guides/operations/kubernetes/overview/index.md +++ b/docs/content/guides/operations/kubernetes/overview/index.md @@ -22,8 +22,7 @@ Radius resources, when deployed to a Kubernetes environment, are mapped to one o | Radius resource | Kubernetes object | |----------------------------------|-------------------| -| [`Applications.Core/containers`]({{< ref container-schema >}}) | `apps/Deployment@v1` | -| [`Applications.Core/httpRoutes`]({{< ref httproute >}}) | `core/Service@v1` | +| [`Applications.Core/containers`]({{< ref container-schema >}}) | `apps/Deployment@v1`
`core/Service@v1` _(if ports defined)_ | | [`Applications.Core/gateways`]({{< ref gateway >}}) | `projectcontour.io/HTTPProxy@v1` | | [`Applications.Dapr/pubSubBrokers`]({{< ref dapr-pubsub >}}) | `dapr.io/Component@v1alpha1` | | [`Applications.Dapr/secretStores`]({{< ref dapr-secretstore >}}) | `dapr.io/Component@v1alpha1` | diff --git a/docs/content/radius-logo.svg b/docs/content/radius-logo.svg new file mode 100644 index 000000000..864a0fd3b --- /dev/null +++ b/docs/content/radius-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/content/reference/api/applications.core/api-httproutes.md b/docs/content/reference/api/applications.core/api-httproutes.md deleted file mode 100644 index 4bddf57b8..000000000 --- a/docs/content/reference/api/applications.core/api-httproutes.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -type: api -title: "Applications.Core/httpRoutes API reference" -linkTitle: "httpRoutes" -description: "Detailed reference documentation on the Applications.Core/httpRoutes API" -slug: "http-routes" ---- - -{{< redoc "swagger/specification/applications/resource-manager/Applications.Core/preview/2023-10-01-preview/openapi.json" >}} diff --git a/docs/content/reference/api/resource-policies/_index.md b/docs/content/reference/api/resource-policies/_index.md index df2a08aab..bcceebe1f 100644 --- a/docs/content/reference/api/resource-policies/_index.md +++ b/docs/content/reference/api/resource-policies/_index.md @@ -45,8 +45,6 @@ Each resource type controller decides whether it will retry to process the opera | Applications.Core/containers | PUT/PATCH/DELETE | Asynchronous | 300 | default | | Applications.Core/gateways | LIST/GET | Synchronous | default | | | Applications.Core/gateways | PUT/PATCH/DELETE | Asynchronous | default | default | -| Applications.Core/httpRoutes | LIST/GET | Synchronous | default | | -| Applications.Core/httpRoutes | PUT/PATCH/DELETE | Asynchronous | default | default | | Applications.Core/extenders | LIST/GET/PUT/PATCH/DELETE | Synchronous | default | | | Applications.Core/extenders | POST ListSecret | Synchronous | default | | diff --git a/docs/content/reference/resource-schema/core-schema/container-schema/_index.md b/docs/content/reference/resource-schema/core-schema/container-schema/_index.md index 2d99baf88..ee8e6db1f 100644 --- a/docs/content/reference/resource-schema/core-schema/container-schema/_index.md +++ b/docs/content/reference/resource-schema/core-schema/container-schema/_index.md @@ -54,7 +54,6 @@ The ports offered by the container are defined in the `ports` section. | name | y | A name key for the port. | `http` | containerPort | y | The port the container exposes. | `80` | protocol | n | The protocol the container exposes. Options are 'TCP' and 'UCP'. | `'TCP'` -| provides | n | The id of the [Route]({{< ref networking >}}) the container provides. | `http.id` #### Volumes @@ -96,7 +95,7 @@ The ports offered by the container are defined in the `ports` section. | Key | Required | Description | Example | |------|:--------:|-------------|---------| | name | y | A name key for the port. | `inventory` -| source | y | The id of the resource the container is connecting to. | `db.id` +| source | y | The id of the resource the container is connecting to. For network connections to other services this is in the form `'[scheme]://[serviceName]:[port]'` | `db.id`, `'http://inventory:8080'` | [iam](#iam) | n | Identity and access management (IAM) roles to set on the target resource. | [See below](#iam) #### IAM diff --git a/docs/content/reference/resource-schema/core-schema/container-schema/snippets/container.bicep b/docs/content/reference/resource-schema/core-schema/container-schema/snippets/container.bicep index d1a101667..a5f5b5875 100644 --- a/docs/content/reference/resource-schema/core-schema/container-schema/snippets/container.bicep +++ b/docs/content/reference/resource-schema/core-schema/container-schema/snippets/container.bicep @@ -30,7 +30,6 @@ resource frontend 'Applications.Core/containers@2023-10-01-preview' = { http: { containerPort: 80 protocol: 'TCP' - provides: http.id } } volumes: { @@ -113,13 +112,6 @@ resource frontend 'Applications.Core/containers@2023-10-01-preview' = { } //CONTAINER -resource http 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'http' - properties: { - application: app.id - } -} - resource db 'Applications.Datastores/mongoDatabases@2023-10-01-preview' = { name: 'database' properties: { diff --git a/docs/content/reference/resource-schema/core-schema/gateway/index.md b/docs/content/reference/resource-schema/core-schema/gateway/index.md index b345ee682..4db8b2bdc 100644 --- a/docs/content/reference/resource-schema/core-schema/gateway/index.md +++ b/docs/content/reference/resource-schema/core-schema/gateway/index.md @@ -29,12 +29,10 @@ weight: 401 #### Routes -You can define a list of routes, each representing a connection to a service. Specifying a route opens the destination [HTTP Route]({{< ref httproute >}}) to the internet. - | Key | Required | Description | Example | |------|:--------:|-------------|---------| | path | y* | The path to match the incoming request path on. Not required when `tls.sslPassthrough` is set to `'true'`. | `'/service'` -| destination | y | The [HttpRoute]({{< ref httproute >}}) to direct traffic to when the path is matched. | `route.id` +| destination | y | The service to route traffic to, in the form `'[scheme]://[serviceName]:[port]'` | `'http://backend:80'` | replacePrefix | n | The prefix to replace in the incoming request path that is sent to the destination route. | `'/'` #### Hostname diff --git a/docs/content/reference/resource-schema/core-schema/gateway/snippets/gateway.bicep b/docs/content/reference/resource-schema/core-schema/gateway/snippets/gateway.bicep index c0cab72fb..399b4822a 100644 --- a/docs/content/reference/resource-schema/core-schema/gateway/snippets/gateway.bicep +++ b/docs/content/reference/resource-schema/core-schema/gateway/snippets/gateway.bicep @@ -25,11 +25,11 @@ resource gateway 'Applications.Core/gateways@2023-10-01-preview' = { routes: [ { path: '/frontend' - destination: frontendroute.id + destination: 'http://${frontend.name}:3000' } { path: '/backend' - destination: backendroute.id + destination: 'http://${backend.name}:8080' } ] tls: { @@ -54,24 +54,6 @@ resource secretstore 'Applications.Core/secretStores@2023-10-01-preview' = { } } -//FRONTENDROUTE -resource frontendroute 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'frontendroute' - properties: { - application: app.id - } -} -//FRONTENDROUTE - -//BACKENDROUTE -resource backendroute 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'backendroute' - properties: { - application: app.id - } -} -//BACKENDROUTE - //FRONTEND resource frontend 'Applications.Core/containers@2023-10-01-preview' = { name: 'frontend' @@ -82,16 +64,12 @@ resource frontend 'Applications.Core/containers@2023-10-01-preview' = { ports: { http: { containerPort: 3000 - provides: frontendroute.id } } - env: { - BACKEND_URL: backendroute.properties.url - } } connections: { backend: { - source: backendroute.id + source: 'http://backend:8080' } } } @@ -108,7 +86,6 @@ resource backend 'Applications.Core/containers@2023-10-01-preview' = { ports: { http: { containerPort: 8080 - provides: backendroute.id } } } diff --git a/docs/content/reference/resource-schema/core-schema/httproute/index.md b/docs/content/reference/resource-schema/core-schema/httproute/index.md deleted file mode 100644 index e81188b25..000000000 --- a/docs/content/reference/resource-schema/core-schema/httproute/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -type: docs -title: "HTTP Route" -linkTitle: "HTTP Route" -description: "Learn how to define HTTP communication with an HTTP Route" -weight: 400 ---- - -## Resource format - -{{< rad file="snippets/httproute.bicep" embed=true marker="//HTTPROUTE" >}} - -### Top-level - -| Key | Required | Description | Example | -|------|:--------:|-------------|---------| -| name | y | The name of your HttpRoute. Used to provide status and visualize the resource. | `'web'` -| location | y | The location of your resource. See [common values]({{< ref "resource-schema.md#common-values" >}}) for more information. | `global` -| [properties](#properties) | y | Properties of the resource. | [See below](#properties) - -### Properties - -| Property | Description | Example | -|----------|-------------|-------------| -| application | The ID of the application resource this resource belongs to. | `app.id` -| hostname | The internal hostname accepting traffic for the HTTP Route. Read only. | `example.com` | -| port | The port number for the HTTP Route. Defaults to 80. Read only. | `80` | -| scheme | The scheme used for traffic. Read only. | `http` | -| url | A stable URL that that can be used to route traffic to a resource. Read only. | `http://example.com:80` | - -## Example - -The following example shows two containers, one providing an HttpRoute and the other consuming it: - -### Providing container - -Once an HttpRoute is defined, you can provide it from a [container]({{< ref "guides/author-apps/containers" >}}) by using the `provides` property: - -{{< rad file="snippets/httproute.bicep" embed=true marker="//BACKEND" >}} - -### Consuming container - -To consume an HttpRoute, you can use the `connections` property: - -{{< rad file="snippets/httproute.bicep" embed=true marker="//FRONTEND" >}} diff --git a/docs/content/reference/resource-schema/core-schema/httproute/snippets/httproute.bicep b/docs/content/reference/resource-schema/core-schema/httproute/snippets/httproute.bicep deleted file mode 100644 index 44cbfbf88..000000000 --- a/docs/content/reference/resource-schema/core-schema/httproute/snippets/httproute.bicep +++ /dev/null @@ -1,57 +0,0 @@ -import radius as radius - -param environment string - -resource app 'Applications.Core/applications@2023-10-01-preview' = { - name: 'myapp' - properties: { - environment: environment - } -} - -//HTTPROUTE -resource httproute 'Applications.Core/httpRoutes@2023-10-01-preview' = { - name: 'httproute' - properties: { - application: app.id - } -} -//HTTPROUTE - -//FRONTEND -resource frontend 'Applications.Core/containers@2023-10-01-preview' = { - name: 'frontend' - properties: { - application: app.id - container: { - image: 'registry/container:tag' - env: { - BACKEND_URL: httproute.properties.url - } - } - connections: { - http: { - source: httproute.id - } - } - } -} -//FRONTEND - -//BACKEND -resource backend 'Applications.Core/containers@2023-10-01-preview' = { - name: 'backend' - properties: { - application: app.id - container: { - image: 'registry/container:tag' - ports: { - http: { - containerPort: 80 - provides: httproute.id - } - } - } - } -} -//BACKEND diff --git a/docs/content/reference/resource-schema/dapr-schema/dapr-pubsub/snippets/dapr-pubsub-manual.bicep b/docs/content/reference/resource-schema/dapr-schema/dapr-pubsub/snippets/dapr-pubsub-manual.bicep index 04697d1be..071deb02b 100644 --- a/docs/content/reference/resource-schema/dapr-schema/dapr-pubsub/snippets/dapr-pubsub-manual.bicep +++ b/docs/content/reference/resource-schema/dapr-schema/dapr-pubsub/snippets/dapr-pubsub-manual.bicep @@ -25,10 +25,6 @@ resource publisher 'Applications.Core/containers@2023-10-01-preview' = { } } -resource kafkaRoute 'Applications.Core/httpRoutes@2023-10-01-preview' existing = { - name: 'kafka-route' -} - //SAMPLE resource pubsub 'Applications.Dapr/pubSubBrokers@2023-10-01-preview' = { name: 'pubsub' @@ -36,12 +32,9 @@ resource pubsub 'Applications.Dapr/pubSubBrokers@2023-10-01-preview' = { environment: environment application: app.id resourceProvisioning: 'manual' - resources: [ - { id: kafkaRoute.id } - ] type: 'pubsub.kafka' metadata: { - brokers: kafkaRoute.properties.url + brokers: '' authRequired: false consumeRetryInternal: 1024 }