Skip to content

Commit

Permalink
Merge branch 'v0.27' into v0.27-reference-whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronCrawfis authored Nov 27, 2023
2 parents eae807a + 41c93b3 commit d72ab58
Show file tree
Hide file tree
Showing 66 changed files with 436 additions and 385 deletions.
3 changes: 2 additions & 1 deletion .github/config/en-custom.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1076,4 +1076,5 @@ Russinovich
InfoWorld
reimagines
TechCrunch
ZDNET
ZDNET
Newstrail
8 changes: 4 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ This directory contains the files to generate the https://docs.radapp.io site. P
The easiest way to get up and runnning with a docs environment is a GitHub codespace.

1. Open codespace
2. Ensure postCreate script has completed (takes ~2 minutes)
3. Run `cd docs` to change into the docs directory
4. Run `npm run start` to run a docs server
5. Click the `localhost:1313` link in your terminal to open the Codespace tunnel to the page
1. Ensure postCreate script has completed (takes ~2 minutes)
1. Run `cd docs` to change into the docs directory
1. Run `npm run start` to run a docs server
1. Click the `localhost:1313` link in your terminal to open the Codespace tunnel to the page

## Local machine

Expand Down
31 changes: 15 additions & 16 deletions docs/assets/scss/_nav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,12 @@
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
font-weight: 900;
font-weight: 900;
content: "\f0d9";
padding-left: 0.5em;
padding-right: 0.5em;
}
}
}
}

// Foldable sidebar menu
Expand All @@ -136,18 +136,18 @@ nav.foldable-nav {
&#td-section-nav {
position: relative;
}

&#td-section-nav label {
margin-bottom: 0;
width: 100%;
}

.td-sidebar-nav__section, .with-child ul {
list-style: none;
padding: 0;
margin: 0;
}

.ul-1 > li {
padding-left: 1.5em;
}
Expand All @@ -165,8 +165,8 @@ nav.foldable-nav {

input[type=checkbox] { display: none; }

.with-child, .without-child {
position: relative;
.with-child, .without-child {
position: relative;
padding-left: 1.3em;
}

Expand All @@ -189,30 +189,29 @@ nav.foldable-nav {
}
}

.ul-1 .with-child > input:checked ~ label:before {
.ul-1 .with-child > input:checked ~ label:before {
color: $primary;
transform: rotate(90deg);
transition: transform 0.5s;
transition: transform 0.5s;
}

.with-child ul { margin-top: 0.1em; }

}
}

@media (hover: hover) and (pointer: fine) {

nav.foldable-nav {

.ul-1 .with-child > label:hover:before {
.ul-1 .with-child > label:hover:before {
color: $primary;
transform: rotate(30deg);
transition: transform 0.5s;
transition: transform 0.5s;
}

.ul-1 .with-child > input:checked ~ label:hover:before {
.ul-1 .with-child > input:checked ~ label:hover:before {
color: $primary;
transform: rotate(60deg) !important;
transition: transform 0.5s;
transition: transform 0.5s;
}
}
}
44 changes: 28 additions & 16 deletions docs/content/community/contributing/contributing-docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ It's easy to get up and running with a GitHub Codespace. This will give you a fu
> Note the `postCreateCommand` may take up to 3 minutes to complete after the codespace is created to complete.
1. Start Codespace
2. Wait for `postCreateCommand` to complete
3. Run `cd docs` to enter the hugo site directory
4. Run `hugo server` to start the local server
5. Click on the link in the terminal to open the docs in your browser
1. Wait for `postCreateCommand` to complete
1. Run `cd docs` to enter the hugo site directory
1. Run `hugo server` to start the local server
1. Click on the link in the terminal to open the docs in your browser

### Local machine

Expand All @@ -42,35 +42,35 @@ It's easy to get up and running with a GitHub Codespace. This will give you a fu
### Environment setup

1. Ensure pre-requisites are installed
2. Clone this repository and the radius repository
1. Clone this repository and the radius repository

```sh
git clone https://github.com/radius-project/radius.git
git clone https://github.com/radius-project/docs.git
```

3. Generate CLI docs:
1. Generate CLI docs:

```sh
pushd radius
go run ./cmd/docgen/main.go ../docs/docs/content/reference/cli
popd
```

4. Update submodules:
1. Update submodules:

```sh
cd docs
git submodule update --init --recursive
```

5. Install npm packages:
1. Install npm packages:

```sh
npm install
```

6. Initialize the docsy theme:
1. Initialize the docsy theme:

```sh
cd themes/docsy
Expand All @@ -81,13 +81,13 @@ It's easy to get up and running with a GitHub Codespace. This will give you a fu
### Run local server

1. Make sure you're still in the `docs` directory
2. Run
1. Run

```sh
hugo server
```

3. Navigate to `http://localhost:1313/`
1. Navigate to `http://localhost:1313/`

## Developer Certificate of Origin

Expand All @@ -114,9 +114,9 @@ Visual Studio Code has a setting, `git.alwaysSignOff` to automatically add a Sig
There are 5 types of docs in Radius:

1. **Concept** - A concept doc is a high-level overview of the project or an area of the project.
2. **Overview** - A overview page documents a specific feature or capability of the project, with information on what the feature is and additional context and links on how to use it.
3. **How-To** - A how-to guide is a step-by-step guide to help the reader achieve a specific task. It assumes the reader has a basic understanding of the project and its concepts. For more information on how-to guides, see [Diátaxis](https://diataxis.fr/how-to-guides/).
4. **Reference** - A reference doc is a detailed description of a specific feature or capability of the project. It assumes the reader has a basic understanding of the project and its concepts. For more information on reference docs, see [Diátaxis](https://diataxis.fr/reference/).
1. **Overview** - A overview page documents a specific feature or capability of the project, with information on what the feature is and additional context and links on how to use it.
1. **How-To** - A how-to guide is a step-by-step guide to help the reader achieve a specific task. It assumes the reader has a basic understanding of the project and its concepts. For more information on how-to guides, see [Diátaxis](https://diataxis.fr/how-to-guides/).
1. **Reference** - A reference doc is a detailed description of a specific feature or capability of the project. It assumes the reader has a basic understanding of the project and its concepts. For more information on reference docs, see [Diátaxis](https://diataxis.fr/reference/).

Overall:

Expand Down Expand Up @@ -146,6 +146,7 @@ Visit [Diátaxis](https://diataxis.fr/explanation/) for more information on expl
### How-To guides

Visit [Diátaxis](https://diataxis.fr/how-to-guides/) for more information on how-to documentation that helps the user accomplish a specific task.

- Do not assume the reader is using a specific environment unless the article itself is specific to an environment. This includes OS (Windows/Linux/MacOS), deployment target (Kubernetes, IoT, etc.), or programming language. If instructions vary between operating systems, provide guidance for all.
- Include code/sample/config snippets that can be easily copied and pasted.
- Provide the reader with related links if needed (this can be other concepts, overviews, how-to guides, or references)
Expand Down Expand Up @@ -176,6 +177,18 @@ These conventions should be followed throughout all Radius documentation to ensu

The docs pipeline uses [aspell](http://aspell.net/) to check for spelling mistakes. If you need to add a new custom word to the allow-list, update `.github/config/en-custom.txt`.

### Numbering

All numbered lists use `1.` as the number, regardless of the order. The list numbers are then incremented automatically during the build process of the docs.

#### Example

```md
1. This is the second step, and will be displayed with a 2 in the docs.
1. This is the third step, and will be displayed with a 3.
1. This is the first step of a process.
```

## Tips and tricks

Any contribution must ensure not to break the website build. The way Hugo builds the website requires following the below guidance.
Expand Down Expand Up @@ -344,7 +357,6 @@ resource app 'radius.dev/Application@v1alpha1' = {
//BINDINGS
connections: {
backend: {
source: other.id
}
}
Expand Down Expand Up @@ -591,7 +603,7 @@ By default, buttons are padded with new lines below the button. To remove these
{{< button text="Previous" link="https://example.com" newline="false" >}}
{{< button text="Next" link="https://example.com" >}}

#### Categorize content
#### Categorize content

You can use the `categorizeby` shortcode to pull and organize content by either categories and tags. This is useful when you want to categorize content by tags and the type of the document

Expand Down
27 changes: 13 additions & 14 deletions docs/content/community/media-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,26 @@ weight: 400
## Blog posts

| Blog Title | Source | Date |
| ---------- | ------ | ---- |
|[The Microsoft Azure Incubations Team launches Radius, a new open application platform for the cloud](https://azure.microsoft.com/en-us/blog/the-microsoft-azure-incubations-team-launches-radius-a-new-open-application-platform-for-the-cloud/)|Microsoft Azure Blog|Oct 18, 2023|
|[Enabling developer collaboration with Radius](https://cloudblogs.microsoft.com/opensource/2023/10/18/enabling-developer-collaboration-with-radius/)|Microsoft Open Source Blog|Oct 18, 2023|
|------------|--------|------|
| [The Microsoft Azure Incubations Team launches Radius, a new open application platform for the cloud](https://azure.microsoft.com/en-us/blog/the-microsoft-azure-incubations-team-launches-radius-a-new-open-application-platform-for-the-cloud/) | Microsoft Azure Blog | Oct 18, 2023 |
| [Enabling developer collaboration with Radius](https://cloudblogs.microsoft.com/opensource/2023/10/18/enabling-developer-collaboration-with-radius/) | Microsoft Open Source Blog | Oct 18, 2023 |

Ongoing blog posts can be found at [Radius Blog](https://blog.radapp.io)

## Videos

| Video | Event | Date |
| ----- | ----- | ---- |
|[ Brendan Burns and Mark Russinovich at Ignite about Radius](https://www.youtube.com/watch?v=gaG77PiYv5w&ab_channel=MicrosoftIgnite)| Microsoft Ignite | Nov 17, 2023 |
|[Introducing Radius - Open at Microsoft ](https://www.youtube.com/watch?v=mT_NWFnYn0A)| Open at Microsoft | Nov 7, 2023 |
|[Mark Russinovich at the Linux Foundation Member Summit](https://aka.ms/radius-lfms)|Linux Foundation Member Summit | Oct 24, 2023 |


|-------|-------|------|
| [Brendan Burns and Mark Russinovich at Ignite about Radius](https://www.youtube.com/watch?v=gaG77PiYv5w&ab_channel=MicrosoftIgnite)| Microsoft Ignite | Nov 17, 2023 |
| [Introducing Radius - Open at Microsoft ](https://www.youtube.com/watch?v=mT_NWFnYn0A)| Open at Microsoft | Nov 7, 2023 |
| [Mark Russinovich at the Linux Foundation Member Summit](https://aka.ms/radius-lfms)|Linux Foundation Member Summit | Oct 24, 2023 |

## Press articles

| Article Title | Media Source | Date |
| ------------- | ------------ | ---- |
|[Microsoft Azure introduces Radius, an open-source development platform for multi-cloud computing](https://www.zdnet.com/article/microsoft-azure-introduces-radius-an-open-source-development-platform-for-multi-cloud-computing/)| ZDNET | Oct 27, 2023 |
|[Microsoft’s Radius and the future of cloud-native development](https://www.infoworld.com/article/3709448/microsofts-radius-and-the-future-of-cloud-native-development.html)| InfoWorld | Oct 26, 2023 |
|[Microsoft reimagines Modern Application Deployment With Radius Platform](https://www.forbes.com/sites/janakirammsv/2023/10/23/microsoft-reimagines-modern-application-deployment-with-radius-platform/?sh=6a78a37c76d7)| Forbes | Oct 23, 2023 |
|[ Microsoft launches Radius, an open-source application platform for the cloud-native era](https://techcrunch.com/2023/10/18/microsoft-launches-radius-an-open-source-application-platform-for-the-cloud/)| TechCrunch | Oct 18, 2023 |
|---------------|--------------|------|
| [Microsoft Azure’s Cloud-Native Advances: Innovations and Future Outlook](https://www.newstrail.com/microsoft-azures/) | Newstrail | Nov 23, 2023 |
| [Microsoft Azure introduces Radius, an open-source development platform for multi-cloud computing](https://www.zdnet.com/article/microsoft-azure-introduces-radius-an-open-source-development-platform-for-multi-cloud-computing/)| ZDNET | Oct 27, 2023 |
| [Microsoft’s Radius and the future of cloud-native development](https://www.infoworld.com/article/3709448/microsofts-radius-and-the-future-of-cloud-native-development.html)| InfoWorld | Oct 26, 2023 |
| [Microsoft reimagines Modern Application Deployment With Radius Platform](https://www.forbes.com/sites/janakirammsv/2023/10/23/microsoft-reimagines-modern-application-deployment-with-radius-platform/?sh=6a78a37c76d7)| Forbes | Oct 23, 2023 |
| [ Microsoft launches Radius, an open-source application platform for the cloud-native era](https://techcrunch.com/2023/10/18/microsoft-launches-radius-an-open-source-application-platform-for-the-cloud/)| TechCrunch | Oct 18, 2023 |
14 changes: 7 additions & 7 deletions docs/content/concepts/api-concept/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,22 @@ In the example provided, the virtual machine is the **resource** and the API pro

Resource providers sometimes provide operations in addition to the CRUDL operations that are specific to the type of resource. For a virtual machine, a resource provider might provide additional operations like:

- Rebooting a virtual machine
- Restoring a virtual machine from backup
- Rebooting a virtual machine
- Restoring a virtual machine from backup

As a result the set of operations is sometimes written as **CRUDL+**, meaning that a resource provider must implement the **CRUDL** operations at a minimum and sometimes more.
As a result the set of operations is sometimes written as **CRUDL+**, meaning that a resource provider must implement the **CRUDL** operations at a minimum and sometimes more.

Resources have a type (in the programming sense) and a means of being identified (name or id). For example an AWS virtual machine's type would be `AWS::EC2::Instance` and might have a generated name like `i-0123456789abcdef`. The name must be provided to operations like Update so that the resource provider can identify which resource to update. The name and type can also be combined with additional context to form a unique identifier. For example on AWS the virtual machine name would be combined with the user's account id and the selected region to form a unique identifier called an [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). These identifiers are useful because they provide a universal way to identify which resource is being named.

A resource could be anything that's useful to manage through an API. For example, a resource could be an on-premises networking configuration, a 3rd party SaaS account, a Kubernetes `Pod`, or a value stored in a cloud secret store. Resources with CRUDL+ operations, types, and universal identifiers are the central concepts in Radius' API because they are a tested approach for deployment and management of software systems.

## Principles for the Radius API

Radius provides a general resource manager that can manage cloud or on-premises resources as well as opinionated support cloud-native application concerns like containers and databases. Such an API needs to be powerful, flexible, and extensible enough to communicate with a variety of existing systems that were created by different organizations.
Radius provides a general resource manager that can manage cloud or on-premises resources as well as opinionated support cloud-native application concerns like containers and databases. Such an API needs to be powerful, flexible, and extensible enough to communicate with a variety of existing systems that were created by different organizations.

The design of the Radius API incorporates the following principles:

- Universal addressing: every resource has a unique identifier called a resource id.
- Universal addressing: every resource has a unique identifier called a resource id.
- CRUDL+ lifecycle: resources their functionality through a common set of HTTP contracts in a consistent way.
- Federation based on metadata: rather that duplicate the functionality of existing resource managers, Radius delegates functionality to external APIs and is powered by the metadata of those APIs.

Expand All @@ -62,9 +62,9 @@ The common structure of a resource id is the following:
{rootScope}/{resourceNamespace}/{resourceType}/{resourceName}
```

### Root scope
### Root scope

A hierarchical set of key-value pairs that identify the origin of the resource. Root scopes answer questions like:
A hierarchical set of key-value pairs that identify the origin of the resource. Root scopes answer questions like:

- *"What cloud is this resource from?"*
- *"What cloud account contains this resource?"*
Expand Down
12 changes: 6 additions & 6 deletions docs/content/concepts/architecture-concept/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ This section describes example tasks that can be performed with Radius and how t
When listing applications using the `rad` CLI:

1. The client sends an HTTP request to the Radius API requesting the list of applications.
2. UCP receives the request for the `Applications.Core/applications` List operation and looks up the internal address for the `Applications.Core` resource provider.
3. UCP proxies the HTTP request to the `Applications.Core` resource provider.
4. The `Applications.Core` resource provider handles the request and responds with the list of applications.
1. UCP receives the request for the `Applications.Core/applications` List operation and looks up the internal address for the `Applications.Core` resource provider.
1. UCP proxies the HTTP request to the `Applications.Core` resource provider.
1. The `Applications.Core` resource provider handles the request and responds with the list of applications.

{{< image src="flow-list-apps.png" alt="Diagram of the API flow described above" width="1000px" >}}

Expand All @@ -142,9 +142,9 @@ When listing applications using the `rad` CLI:
When using Bicep to author and deploy Radius Applications:

1. The client compiles the Bicep file to an ARM-JSON template and submits a request for processing as a `Bicep.Deployments/deployments` resource.
2. UCP receives the request for the `Bicep.Deployments/deployments` Create operation and looks up the internal address for the `Bicep.Deployments` resource provider.
3. UCP proxies the HTTP request to the `Bicep.Deployments` resource provider.
4. The `Bicep.Deployments` resource provider processes the ARM-JSON template. For each resource in the template:
1. UCP receives the request for the `Bicep.Deployments/deployments` Create operation and looks up the internal address for the `Bicep.Deployments` resource provider.
1. UCP proxies the HTTP request to the `Bicep.Deployments` resource provider.
1. The `Bicep.Deployments` resource provider processes the ARM-JSON template. For each resource in the template:
a. The `Bicep.Deployments` resource provider makes a request to UCP to Create/Update the resource.
b. UCP routes the request to the appropriate resource provider to be handled.

Expand Down
Loading

0 comments on commit d72ab58

Please sign in to comment.