From 63e38ee37a58e306e8e232684432ded3569536b6 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 27 Nov 2023 13:48:53 -0800 Subject: [PATCH 1/4] Add news article Signed-off-by: Aaron Crawfis --- docs/content/community/media-coverage.md | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/content/community/media-coverage.md b/docs/content/community/media-coverage.md index ba70d2076..a36fde64c 100644 --- a/docs/content/community/media-coverage.md +++ b/docs/content/community/media-coverage.md @@ -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 | From d8c44b6b8ff2b198ffe57c77b34f1e9e988b7dd8 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 27 Nov 2023 13:57:19 -0800 Subject: [PATCH 2/4] Spellcheck Signed-off-by: Aaron Crawfis --- .github/config/en-custom.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/config/en-custom.txt b/.github/config/en-custom.txt index c18c3c79c..b29b77a9f 100644 --- a/.github/config/en-custom.txt +++ b/.github/config/en-custom.txt @@ -1076,4 +1076,5 @@ Russinovich InfoWorld reimagines TechCrunch -ZDNET \ No newline at end of file +ZDNET +Newstrail From 43d690514cdd6716db76d472817a8756505e5cd1 Mon Sep 17 00:00:00 2001 From: Emanuel Palm Date: Mon, 27 Nov 2023 14:51:14 -0800 Subject: [PATCH 3/4] Whitespace removal and formatting (#979) * whitespace and markdown formatting Signed-off-by: Emanuel Palm * Markdown numbered lists changed to 1 Signed-off-by: Emanuel Palm --------- Signed-off-by: Emanuel Palm Co-authored-by: Aaron Crawfis --- docs/assets/scss/_nav.scss | 31 +++++----- .../contributing/contributing-docs/index.md | 4 +- docs/content/concepts/api-concept/index.md | 14 ++--- .../concepts/collaboration-concept/index.md | 5 +- docs/content/concepts/faq/index.md | 20 +++---- .../overview/snippets/appmodel-concept.bicep | 2 +- .../concepts/why-radius-concept/index.md | 6 +- docs/content/getting-started/index.md | 24 ++++---- .../author-apps/application/overview/index.md | 2 +- .../aws/howto-aws-resources/index.md | 19 +++--- .../guides/author-apps/aws/overview/index.md | 6 +- .../aws/overview/snippets/aws.bicep | 2 +- .../azure/howto-azure-resources/index.md | 6 +- .../snippets/container-wi.bicep | 4 +- .../howto-connect-dependencies/index.md | 3 +- .../containers/howto-keyvault-volume/index.md | 10 ++-- .../snippets/keyvault-wi.bicep | 6 +- .../containers/howto-volumes/index.md | 4 +- .../author-apps/containers/overview/index.md | 8 +-- .../guides/author-apps/dapr/overview/index.md | 2 +- .../kubernetes/how-to-patch-pod/index.md | 3 +- .../author-apps/networking/howto-tls/index.md | 7 ++- .../secrets/howto-new-secretstore/index.md | 10 ++-- .../author-apps/secrets/overview/index.md | 2 +- .../environments/howto-environment/index.md | 59 ++++++++++--------- .../guides/deploy-apps/howto-delete/index.md | 4 +- .../howto-deploy/howto-deploy-cicd/index.md | 3 +- .../howto-deploy-rad-cli/index.md | 5 +- .../howto-deploy/howto-run-app/index.md | 5 +- .../howto-troubleshootapps/index.md | 6 +- .../control-plane/howto-postman/index.md | 9 ++- .../control-plane/logs/fluentd/index.md | 14 ++--- .../control-plane/metrics/grafana/index.md | 10 ++-- .../control-plane/traces/jaeger/index.md | 4 +- .../groups/howto-resourcegroups/index.md | 2 +- .../kubernetes/kubernetes-install/index.md | 5 ++ .../kubernetes/kubernetes-metadata/index.md | 4 +- .../kubernetes/kubernetes-upgrade/index.md | 4 +- .../providers/howto-aws-provider/index.md | 28 +++++---- .../providers/howto-azure-provider/index.md | 31 ++++++---- .../workspaces/howto-workspaces/index.md | 20 ++++++- .../operations/workspaces/overview/index.md | 5 ++ .../snippets/redis-kubernetes-main.tf | 2 +- .../snippets/redis-kubernetes.bicep | 2 +- .../guides/recipes/howto-dev-recipes/index.md | 5 +- docs/content/guides/recipes/overview/index.md | 8 +-- .../tooling/rad-cli/howto-rad-cli/index.md | 2 +- .../guides/tooling/rad-cli/overview/index.md | 7 +-- docs/content/tutorials/eshop/_index.md | 4 +- docs/content/tutorials/helm/index.md | 6 +- docs/content/tutorials/new-app/index.md | 57 ++++++++---------- .../tutorials/tutorial-add-radius/index.md | 24 ++++---- docs/content/tutorials/tutorial-dapr/index.md | 8 +-- .../tutorials/tutorial-recipe/index.md | 19 +++--- docs/layouts/partials/page-meta-links.html | 2 +- docs/layouts/partials/section-index.html | 4 +- docs/layouts/shortcodes/categorizeby.html | 7 +-- docs/layouts/shortcodes/redoc.html | 2 +- .../install-radius/initialize-radius.md | 2 +- .../vscode-bicep/install-vscode-bicep.md | 2 +- 60 files changed, 311 insertions(+), 270 deletions(-) diff --git a/docs/assets/scss/_nav.scss b/docs/assets/scss/_nav.scss index 9b5137509..7027a480c 100644 --- a/docs/assets/scss/_nav.scss +++ b/docs/assets/scss/_nav.scss @@ -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 @@ -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; } @@ -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; } @@ -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; } } } diff --git a/docs/content/community/contributing/contributing-docs/index.md b/docs/content/community/contributing/contributing-docs/index.md index cab4ec1f4..9d49159fd 100644 --- a/docs/content/community/contributing/contributing-docs/index.md +++ b/docs/content/community/contributing/contributing-docs/index.md @@ -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) @@ -344,7 +345,6 @@ resource app 'radius.dev/Application@v1alpha1' = { //BINDINGS connections: { backend: { - source: other.id } } @@ -591,7 +591,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 diff --git a/docs/content/concepts/api-concept/index.md b/docs/content/concepts/api-concept/index.md index 10930fb4e..b4e06ec14 100644 --- a/docs/content/concepts/api-concept/index.md +++ b/docs/content/concepts/api-concept/index.md @@ -27,10 +27,10 @@ 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. @@ -38,11 +38,11 @@ A resource could be anything that's useful to manage through an API. For example ## 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. @@ -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?"* diff --git a/docs/content/concepts/collaboration-concept/index.md b/docs/content/concepts/collaboration-concept/index.md index 6516130ea..862b94aa7 100644 --- a/docs/content/concepts/collaboration-concept/index.md +++ b/docs/content/concepts/collaboration-concept/index.md @@ -17,10 +17,9 @@ An emerging group of enterprises have a created a *platform engineering* effort A few common challenges emerged from our conversations. The platform engineering philosophy also aims to address these concerns: -- Developers benefit from paved-paths for best-practices: enterprises gain operational efficiency by standardizing how applications are deployed, report diagnostics, and provision cloud resources. When this is done well, developers find and use the recommended technologies with ease. When this is done poorly, developers struggle with many templates, dependencies, and other assets to manage over time. +- Developers benefit from paved-paths for best-practices: enterprises gain operational efficiency by standardizing how applications are deployed, report diagnostics, and provision cloud resources. When this is done well, developers find and use the recommended technologies with ease. When this is done poorly, developers struggle with many templates, dependencies, and other assets to manage over time. - Developer velocity is improved by self-service for the cloud: Platform engineering efforts optimize the developer workflow with self-service tools that provide guardrails to drive adherence to best-practices. These guardrails help manage costs and increase an organization's security posture by providing correctly configured tools and infrastructure. In addition, self-service minimizes inefficient manual workflows that add friction to the development process. - ## Introducing the Environment Environments in Radius provide a landing-zone for Applications that is configured with the organization's chosen best-practices, settings, and Recipes. Environments encapsulate and store configuration for the compute platform, networking configuration, diagnostics systems, and other operational concerns. Environments enable a *separation of concerns* between developers and the IT organizations supporting those developers. Environments allow the configuration to vary across different types of deployments (like a staging deployment), deployment regions or even different clouds. @@ -35,7 +34,7 @@ When an Application is deployed, Radius will *bind* the Application to the confi Recipes use infrastructure-as-code templates stored in the Environment to create cloud resources on-demand when an Application is deployed. Since the Recipes are stored in the Environment, the set of available cloud resources and the configuration used for provisioning can be tightly controlled. Recipes use the credentials stored in the Environment when provisioning cloud resources to limit those who need access to cloud accounts. The Recipes configured in an Environment are versioned, and can be updated in a granular way to lower the risk of unforeseen changes. When a Recipe is executed, it automatically catalogs the infrastructure used as part of the Radius Application Graph where it is visible to the whole organization. Because Recipes are part of the Environment, they can also vary across environments. For example, a cache might need to be bigger in one cloud region, like Europe, than it was in a different cloud region, like North America. For a multi-cloud Application, an enterprise could create an Environment for an AWS region and a different Environment for an Azure region. The recipe to create a Redis cache in the AWS Environment might deploy Amazon Elasticache for Redis and the recipe in the Azure Environment might deploy Azure Cache for Redis. The Application would just use the Redis cache recipe, unaware of what underlying infrastructure was deployed to provide the cache. Lastly, the infrastructure created by Recipes is stored by Radius, so it can be automatically cleaned up to help manage costs. -Within an IT or platform engineering team, many organizations have defined specialized roles like SecOps, FinOps, and cloud centers-of-excellence to address their complex needs for using the cloud. Recipes are designed for these engineers to standardize and govern the organizations use of the cloud while still supporting self-service deployment. Since the Recipes are stored in the Environment they do not need to be shared directly with or understood and managed by application developers. By providing Recipes, platform engineers can streamline and simplify the interface to the cloud used by application developers. Since Recipes execute as part of Application deployment, the provisioning of cloud resources is part of an existing process rather than a manual step. +Within an IT or platform engineering team, many organizations have defined specialized roles like SecOps, FinOps, and cloud centers-of-excellence to address their complex needs for using the cloud. Recipes are designed for these engineers to standardize and govern the organizations use of the cloud while still supporting self-service deployment. Since the Recipes are stored in the Environment they do not need to be shared directly with or understood and managed by application developers. By providing Recipes, platform engineers can streamline and simplify the interface to the cloud used by application developers. Since Recipes execute as part of Application deployment, the provisioning of cloud resources is part of an existing process rather than a manual step. Applications use Recipes to create cloud infrastructure during deployment without describing how that infrastructure will be provisioned. For example a developer, might include a Redis Cache as part of an Application. When the Application is deployed, the Redis Cache will be created according to the Recipe, ensuring that it uses a supported configuration. Recipes make it easy for the Application to connect to the cloud resources by automatically configuring access-policies, networking, and connection settings for the Application code. Since that Application can rely on the recipe to provision the correct infrastructure and deliver the correct configuration, it is easy to deploy the same Application to different Environments without code changes. diff --git a/docs/content/concepts/faq/index.md b/docs/content/concepts/faq/index.md index 58925a22d..89b8f7197 100644 --- a/docs/content/concepts/faq/index.md +++ b/docs/content/concepts/faq/index.md @@ -8,7 +8,7 @@ weight: 999 ## General -### Is Kubernetes required to use Radius? +### Is Kubernetes required to use Radius? Currently yes. Although Radius is architected to run on any platform, today Kubernetes is the only hosting platform for Radius for the Radius control-plane and for containerized workloads. In the future, we plan to support other hosting platforms for serverless platforms. @@ -16,11 +16,11 @@ Currently yes. Although Radius is architected to run on any platform, today Kube Yes. The easiest way to add Radius to an existing application is through [Radius annotations](#TODO). Simply add the annotations to your existing Helm chart or Kubernetes YAML and you can use the Radius app graph, connections, and Recipes. [Try the tutorial](#TODO) to learn more. -### Do I have to self-host Radius? Is there a managed service for Radius? +### Do I have to self-host Radius? Is there a managed service for Radius? Open-source Radius requires that you self-host and run your own Radius instance in your Kubernetes cluster. In the future, we hope for providers to include Radius as a part of their managed service offerings. -### What languages does Radius support? +### What languages does Radius support? For application code, Radius supports any programming language as long as it is containerized. @@ -45,7 +45,7 @@ Users can employ multiple environments for isolation and organization, for examp Recipes currently support the set of [Radius portable resources]({{< ref "/guides/author-apps/portable-resources/overview" >}}): Redis, Mongo, RabbitMQ, SQL, Dapr State Stores, Dapr Secret Stores, Dapr Pub/Sub, and the untyped extender resource. Additional support for other resources (_Azure, AWS, etc._) will come in a future release. -### What infrastructure can Recipes deploy? +### What infrastructure can Recipes deploy? Radius Recipes support any resources that can be modeled in Bicep, or the AWS, Azure, and Kubernetes Terraform providers. @@ -53,9 +53,9 @@ Radius Recipes support any resources that can be modeled in Bicep, or the AWS, A Terraform Recipes currently support the Azure, AWS, and Kubernetes providers, plus any provider that does not require any credentials or configuration to be passed in (_e.g. Oracle, GCP, etc. are not currently supported_). Support for provider configuration is a high priority we plan to address in an upcoming release. -### Do developers need write access to a cloud provider (_Azure subscription, AWS account, etc._) to use Recipes? +### Do developers need write access to a cloud provider (_Azure subscription, AWS account, etc._) to use Recipes? -No. Recipes are deployed on-behalf-of the Radius Environment so developers do not need any write access to an Azure subscription, resource group, or AWS account. This allows a least-privilege access model to cloud resources and for IT operators to only allow approved IaC templates to be deployed to their cloud environments. +No. Recipes are deployed on-behalf-of the Radius Environment so developers do not need any write access to an Azure subscription, resource group, or AWS account. This allows a least-privilege access model to cloud resources and for IT operators to only allow approved IaC templates to be deployed to their cloud environments. ## Cloud/platform support @@ -63,17 +63,17 @@ No. Recipes are deployed on-behalf-of the Radius Environment so developers do no Radius Applications can include AWS services that are also supported by the AWS cloud control API. See the [AWS resource library]({{< ref "/guides/author-apps/aws/overview#resource-library" >}}) for the complete list of supported AWS resources. Connections from a Radius container to an AWS resource are not yet supported. Properties such as hostnames, ports, endpoints, and connection strings need to be manually specified as environment variables. Additional support for Connections to AWS resources is on our backlog. -### What Azure services does Radius support? +### What Azure services does Radius support? Radius Applications can include any Azure service, with support for direct connections and managed identities. Compute services (Web Apps, Container Apps, App Service, Functions, Logic Apps, and others) can be deployed but cannot currently declare connections to other resources. -### Does Radius support Google Cloud Platform (GCP)? +### Does Radius support Google Cloud Platform (GCP)? Not yet, but it is on the backlog. -### Does Radius support Dapr? +### Does Radius support Dapr? -Yes. Radius has first-class support for [Dapr building blocks]({{< ref "/guides/author-apps/dapr" >}}) such as state stores, secret stores, and pub/sub brokers. Developers can add Dapr resources to their applications and operators can define Recipes that deploy and manage the underlying infrastructure. +Yes. Radius has first-class support for [Dapr building blocks]({{< ref "/guides/author-apps/dapr" >}}) such as state stores, secret stores, and pub/sub brokers. Developers can add Dapr resources to their applications and operators can define Recipes that deploy and manage the underlying infrastructure. ## Comparison to other tools diff --git a/docs/content/concepts/overview/snippets/appmodel-concept.bicep b/docs/content/concepts/overview/snippets/appmodel-concept.bicep index 0b2ddceff..3d8af9cc8 100644 --- a/docs/content/concepts/overview/snippets/appmodel-concept.bicep +++ b/docs/content/concepts/overview/snippets/appmodel-concept.bicep @@ -31,7 +31,7 @@ resource frontend 'Applications.Core/containers@2023-10-01-preview' = { } } //CONTAINER - // Connect container to database + // Connect container to database connections: { itemstore: { source: databaseId diff --git a/docs/content/concepts/why-radius-concept/index.md b/docs/content/concepts/why-radius-concept/index.md index 68add0a2c..a570ebecc 100644 --- a/docs/content/concepts/why-radius-concept/index.md +++ b/docs/content/concepts/why-radius-concept/index.md @@ -43,11 +43,11 @@ We hope that this holistic way of thinking about applications becomes the standa ## What we're not rethinking -Many practices and technologies in cloud-native development are a success and don't need to be re-thought. +Many practices and technologies in cloud-native development are a success and don't need to be re-thought. -- Radius makes is easy for application developers to adopt because it supports your existing containerized code, Dockerfiles, and Helm charts. +- Radius makes is easy for application developers to adopt because it supports your existing containerized code, Dockerfiles, and Helm charts. - We believe that [twelve-factor](https://12factor.net/) is still a great set of ideas and so any twelve-factor style application should be easy to use with Radius. -- We like infrastructure-as-code as for its repeatability and use it for both Recipes and application descriptions. +- We like infrastructure-as-code as for its repeatability and use it for both Recipes and application descriptions. - There are plenty of great CI/CD systems, application delivery pipelines, and Gitops systems out there and Radius can work with any of them. ## Open-source from the start diff --git a/docs/content/getting-started/index.md b/docs/content/getting-started/index.md index e2425f0b7..c9b17ed5e 100644 --- a/docs/content/getting-started/index.md +++ b/docs/content/getting-started/index.md @@ -46,7 +46,7 @@ mkdir first-app cd first-app ``` -Initialize Radius. For this example, accept all the default options (press ENTER to confirm): +Initialize Radius. For this example, accept all the default options (press ENTER to confirm): ```bash rad init @@ -55,21 +55,21 @@ rad init Example output: ``` -Initializing Radius... +Initializing Radius... -✅ Install Radius {{< param version >}} - - Kubernetes cluster: k3d-k3s-default - - Kubernetes namespace: radius-system -✅ Create new environment default - - Kubernetes namespace: default - - Recipe pack: local-dev -✅ Scaffold application docs -✅ Update local configuration +✅ Install Radius {{< param version >}} + - Kubernetes cluster: k3d-k3s-default + - Kubernetes namespace: radius-system +✅ Create new environment default + - Kubernetes namespace: default + - Recipe pack: local-dev +✅ Scaffold application docs +✅ Update local configuration Initialization complete! Have a RAD time 😎 ``` -In addition to starting Radius services in your Kubernetes cluster, this initialization command creates a default application (`app.bicep`) as your starting point. It contains a single container definition (`demo`). +In addition to starting Radius services in your Kubernetes cluster, this initialization command creates a default application (`app.bicep`) as your starting point. It contains a single container definition (`demo`). {{< rad file="snippets/app.bicep" embed=true markdownConfig="{linenos=table,linenostart=1}" >}} @@ -175,7 +175,7 @@ Resources: ## Recap and next steps -It's easy to build on the default app and add more resources to the app. +It's easy to build on the default app and add more resources to the app. To delete your app, see [rad app delete]({{< ref rad_application_delete >}}). diff --git a/docs/content/guides/author-apps/application/overview/index.md b/docs/content/guides/author-apps/application/overview/index.md index 26d5edd71..339d9d0c7 100644 --- a/docs/content/guides/author-apps/application/overview/index.md +++ b/docs/content/guides/author-apps/application/overview/index.md @@ -38,7 +38,7 @@ Radius Applications are more than just client-side configuration and automation, {{< image src="app-graph.png" alt="Diagram of the application graph" width=500px >}} -## Resource schema +## Resource schema Refer to the [application schema docs]({{< ref application-schema >}}) for more information on how to define an application. diff --git a/docs/content/guides/author-apps/aws/howto-aws-resources/index.md b/docs/content/guides/author-apps/aws/howto-aws-resources/index.md index 5aa3b5e4d..12e5005da 100644 --- a/docs/content/guides/author-apps/aws/howto-aws-resources/index.md +++ b/docs/content/guides/author-apps/aws/howto-aws-resources/index.md @@ -13,25 +13,25 @@ This how-to guide will show you: - How to model an AWS S3 resource in Bicep - How to use a sample application to interact with AWS S3 bucket - {{< image src="s3appdiagram.png" alt="Screenshot of the sample application to interact with s3 bucket " width=400 >}} +{{< image src="s3appdiagram.png" alt="Screenshot of the sample application to interact with s3 bucket " width=400 >}} ## Prerequisites - Make sure you have an [AWS account](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account) and an [IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) - - [Create an IAM AWS access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) and copy the AWS Access Key ID and the AWS Secret Access Key to a secure location for use later. If you have already created an Access Key pair, you can use that instead. + - [Create an IAM AWS access key](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) and copy the AWS Access Key ID and the AWS Secret Access Key to a secure location for use later. If you have already created an Access Key pair, you can use that instead. - [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) - - Configure your CLI with [`aws configure`](https://docs.aws.amazon.com/cli/latest/reference/configure/index.html), specifying your configuration values + - Configure your CLI with [`aws configure`](https://docs.aws.amazon.com/cli/latest/reference/configure/index.html), specifying your configuration values - [eksctl CLI](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html) -- [kubectl CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - [rad CLI]({{< ref "installation#step-1-install-the-rad-cli" >}}) - [Radius Bicep VSCode extension]({{< ref "installation#step-2-install-the-radius-bicep-extension" >}}) ## Step 1: Create an EKS Cluster -Create an EKS cluster by using the `eksctl` CLI. +Create an EKS cluster by using the `eksctl` CLI. ```bash -eksctl create cluster --name --region= +eksctl create cluster --name --region= ``` ## Step 2: Create a Radius Environment with the AWS cloud provider @@ -79,9 +79,10 @@ This creates a container that will be deployed to your Kubernetes cluster. This ```bash rad deploy ./app.bicep -p aws_access_key_id= -p aws_secret_access_key= ``` + > Replace `` and `` with the values obtained from the previous step. - {{% alert title="Warning" color="warning" %}}It is always recommended to have separate IAM credentials for your container to communicate with S3 or any other data store. + {{% alert title="Warning" color="warning" %}}It is always recommended to have separate IAM credentials for your container to communicate with S3 or any other data store. Radius is currently working on supporting direct connections to AWS resources so that your container can automatically communicate with the data store securely without having to manage separate credentials for data plane operations{{% /alert %}} 1. Port-forward the container to your machine with [`rad resource expose`]({{< ref rad_resource_expose >}}): @@ -111,6 +112,7 @@ If you hit errors while deploying the application, please follow the steps below ```bash rad debug-logs ``` + Inspect the UCP logs to see if there are any errors If you have issues with the sample application, where the container doesn't connect with the S3 bucket, please follow the steps below to troubleshoot: @@ -120,10 +122,11 @@ If you have issues with the sample application, where the container doesn't conn ```bash rad resource logs containers frontend -a s3app ``` + Also make sure to [open an Issue](https://github.com/radius-project/radius/issues/new/choose) if you encounter a generic `Internal server error` message or an error message that is not self-serviceable, so we can address the root error not being forwarded to the user. ## Further Reading {{< categorizeby category="Overview" tag="AWS" >}} -{{< categorizeby category="How-To" tag="AWS" >}} \ No newline at end of file +{{< categorizeby category="How-To" tag="AWS" >}} diff --git a/docs/content/guides/author-apps/aws/overview/index.md b/docs/content/guides/author-apps/aws/overview/index.md index a00005157..71a3743ea 100644 --- a/docs/content/guides/author-apps/aws/overview/index.md +++ b/docs/content/guides/author-apps/aws/overview/index.md @@ -21,13 +21,13 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius {{< tabs Bicep >}} {{% codetab %}} -In the following example, a [Container]({{< ref "guides/author-apps/containers" >}}) is connecting to an S3 bucket. +In the following example, a [Container]({{< ref "guides/author-apps/containers" >}}) is connecting to an S3 bucket. {{< rad file="snippets/aws.bicep" embed=true >}} -{{% /codetab %}} +{{% /codetab %}} {{< /tabs >}} ## Resource library -{{< button text="AWS resource library" link="/reference/resource-schema/aws" newtab="true" >}} \ No newline at end of file +{{< button text="AWS resource library" link="/reference/resource-schema/aws" newtab="true" >}} diff --git a/docs/content/guides/author-apps/aws/overview/snippets/aws.bicep b/docs/content/guides/author-apps/aws/overview/snippets/aws.bicep index 906c4fc52..c1db7cbd4 100644 --- a/docs/content/guides/author-apps/aws/overview/snippets/aws.bicep +++ b/docs/content/guides/author-apps/aws/overview/snippets/aws.bicep @@ -7,7 +7,7 @@ param environment string param bucket string = 'mybucket' @secure() -param aws_access_key_id string +param aws_access_key_id string @secure() param aws_secret_access_key string diff --git a/docs/content/guides/author-apps/azure/howto-azure-resources/index.md b/docs/content/guides/author-apps/azure/howto-azure-resources/index.md index a21fb0a73..03b4fa6ee 100644 --- a/docs/content/guides/author-apps/azure/howto-azure-resources/index.md +++ b/docs/content/guides/author-apps/azure/howto-azure-resources/index.md @@ -2,7 +2,7 @@ type: docs title: "How-To: Connect a container to an Azure resource" linkTitle: "Deploy Azure resources" -description: "Learn how to connect a container to an Azure resource with managed identities and RBAC" +description: "Learn how to connect a container to an Azure resource with managed identities and RBAC" weight: 600 slug: 'azure-connection' categories: "How-To" @@ -24,7 +24,7 @@ The steps below will showcase a "rad-ified" version of the existing [Azure AD wo - [Setup a supported Kubernetes cluster]({{< ref "/guides/operations/kubernetes/overview#supported-clusters" >}}) - [Azure AD Workload Identity](https://azure.github.io/azure-workload-identity/docs/installation.html) installed in your cluster, including the [Mutating Admission Webhook](https://azure.github.io/azure-workload-identity/docs/installation/mutating-admission-webhook.html) -## Step 1: Initialize Radius +## Step 1: Initialize Radius Begin by running [`rad init --full`]({{< ref rad_init >}}). Make sure to configure an Azure cloud provider: @@ -32,7 +32,7 @@ Begin by running [`rad init --full`]({{< ref rad_init >}}). Make sure to configu rad init --full ``` -## Step 2: Define a Radius Environment +## Step 2: Define a Radius Environment Create a file named `app.bicep` and define a Radius Environment with [identity property]({{< ref "/guides/deploy-apps/environments/overview" >}}) set. This configures your environment to use your Azure AD workload identity installation with your cluster's OIDC endpoint: diff --git a/docs/content/guides/author-apps/azure/howto-azure-resources/snippets/container-wi.bicep b/docs/content/guides/author-apps/azure/howto-azure-resources/snippets/container-wi.bicep index 9840e5735..e57420aad 100644 --- a/docs/content/guides/author-apps/azure/howto-azure-resources/snippets/container-wi.bicep +++ b/docs/content/guides/author-apps/azure/howto-azure-resources/snippets/container-wi.bicep @@ -5,7 +5,7 @@ import radius as radius param azLocation string = resourceGroup().location @description('Specifies the OIDC issuer URL') -param oidcIssuer string +param oidcIssuer string resource env 'Applications.Core/environments@2023-10-01-preview' = { name: 'iam-quickstart' @@ -68,7 +68,7 @@ resource keyvault 'Microsoft.KeyVault/vaults@2021-10-01' = { properties: { enabledForTemplateDeployment: true tenantId: subscription().tenantId - enableRbacAuthorization:true + enableRbacAuthorization: true sku: { name: 'standard' family: 'A' diff --git a/docs/content/guides/author-apps/containers/howto-connect-dependencies/index.md b/docs/content/guides/author-apps/containers/howto-connect-dependencies/index.md index 9cdf24527..54e22b152 100644 --- a/docs/content/guides/author-apps/containers/howto-connect-dependencies/index.md +++ b/docs/content/guides/author-apps/containers/howto-connect-dependencies/index.md @@ -41,10 +41,11 @@ Connections from a container to a resource result in environment variables for c ```bash rad run ./app.bicep -a demo ``` + 1. Visit [localhost:3000](http://localhost:3000) in your browser. You should see the following page, now showing injected environment variables: {{< image src="./demo-with-redis-screenshot.png" alt="Screenshot of the demo app with all environment variables" width=1000px >}} - + ## Step 5: View the Application Connections Radius Connections are more than just environment variables and configuration. You can also access the "application graph" and understand the connections within your application with the following command: diff --git a/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md b/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md index 97b054876..210bd5a92 100644 --- a/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md +++ b/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md @@ -2,7 +2,7 @@ type: docs title: "How-To: Mount an Azure Key Vault as a volume to a container" linkTitle: "Mount a Key Vault" -description: "Learn how to mount an Azure Key Vault as a volume to a container" +description: "Learn how to mount an Azure Key Vault as a volume to a container" weight: 600 slug: 'volume-keyvault' categories: "How-To" @@ -23,9 +23,9 @@ This how-to guide will provide an overview of how to: - [Supported Kubernetes cluster]({{< ref "guides/operations/kubernetes" >}}) - [Azure AD Workload Identity](https://azure.github.io/azure-workload-identity/docs/installation.html) installed on your cluster - [Azure Keyvault Provider](https://azure.github.io/secrets-store-csi-driver-provider-azure/docs/getting-started/installation/) - - The above installation will also install the required [Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/getting-started/installation.html) + - The above installation will also install the required [Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/getting-started/installation.html) -## Step 1: Initialize Radius +## Step 1: Initialize Radius Begin by running [`rad init --full`]({{< ref rad_init >}}). Make sure to configure an Azure cloud provider: @@ -73,7 +73,7 @@ rad deploy ./app.bicep -p oidcIssuer= [myapp-mycontainer-d8b4fc44-qrhnn] secret context : supersecret ``` - Note: You might need to wait 1-2 minutes for the pods and identities to be set up completely. Retry in a few minutes if you are unable to view the secret contents. + Note: You might need to wait 1-2 minutes for the pods and identities to be set up completely. Retry in a few minutes if you are unable to view the secret contents. ## Cleanup @@ -82,5 +82,5 @@ rad deploy ./app.bicep -p oidcIssuer= ```bash rad app delete myapp --yes ``` - + 2. Delete the deployed Azure Key Vault via the Azure portal or the Azure CLI diff --git a/docs/content/guides/author-apps/containers/howto-keyvault-volume/snippets/keyvault-wi.bicep b/docs/content/guides/author-apps/containers/howto-keyvault-volume/snippets/keyvault-wi.bicep index a2910e02e..774c42e21 100644 --- a/docs/content/guides/author-apps/containers/howto-keyvault-volume/snippets/keyvault-wi.bicep +++ b/docs/content/guides/author-apps/containers/howto-keyvault-volume/snippets/keyvault-wi.bicep @@ -84,13 +84,11 @@ resource container 'Applications.Core/containers@2023-10-01-preview' = { volkv: { kind: 'persistent' source: volume.id - mountPath: '/var/secrets' + mountPath: '/var/secrets' } } - + } } } //CONTAINER - - diff --git a/docs/content/guides/author-apps/containers/howto-volumes/index.md b/docs/content/guides/author-apps/containers/howto-volumes/index.md index 0be989c3f..e510b0818 100644 --- a/docs/content/guides/author-apps/containers/howto-volumes/index.md +++ b/docs/content/guides/author-apps/containers/howto-volumes/index.md @@ -34,11 +34,13 @@ The `samples/volumes` container will display the status and contents of the `/tm ```bash rad deploy ./app.bicep ``` + 1. Once complete, port forward to your container with [`rad resource expose`]({{< ref rad_resource_expose >}}): ```bash rad resource expose containers mycontainer -a myapp --port 5000 ``` + 1. Visit [localhost:5000](http://localhost:5000) in your browser. You should see a message warning that the directory `/tmpdir` does not exist: {{< image src="screenshot-error.jpg" width=500px alt="Screenshot of container showing that the tmp directory does not exist" >}} @@ -62,7 +64,7 @@ Within the `container.volume` property, add a new volume named `temp` and config ```bash rad resource expose containers mycontainer -a myapp --port 5000 ``` - + 1. Visit [localhost:5000](http://localhost:5000) in your browser. You should see the contents of `/tmpdir`, showing an empty directory. {{< image src="screenshot-empty.jpg" width=500px alt="Screenshot of container showing that the tmp directory has no items" >}} diff --git a/docs/content/guides/author-apps/containers/overview/index.md b/docs/content/guides/author-apps/containers/overview/index.md index bbf5e125a..5782682f0 100644 --- a/docs/content/guides/author-apps/containers/overview/index.md +++ b/docs/content/guides/author-apps/containers/overview/index.md @@ -30,7 +30,7 @@ Radius provides a way to apply custom Kubernetes configurations to container res You can provide a Kubernetes YAML definition as a base or foundation upon which Radius will build your containers, enabling you to incrementally adopting Radius by starting with your existing YAML definition and use applying Radius customizations on top. The provided YAML is fully passed through to Kubernetes when Radius creates the container resource, which means that you may even provide a definition for a CRD that Radius has no visibility into. -Radius currently supports the following Kubernetes resource types for the `base` property: +Radius currently supports the following Kubernetes resource types for the `base` property: | Kubernetes Resource Types | Number of resources | Limitation | |---------------------------|---------------------|------------| @@ -66,7 +66,7 @@ Health probes are used to determine the health of a container. There are two typ ### Readiness Probe -Readiness probes detect when a container begins reporting it is ready to receive traffic, such as after loading a large configuration file that may take a couple seconds to process. There are three types of probes available, httpGet, tcp and exec. +Readiness probes detect when a container begins reporting it is ready to receive traffic, such as after loading a large configuration file that may take a couple seconds to process. There are three types of probes available, httpGet, tcp and exec. For an **httpGet** probe, an HTTP GET request at the specified endpoint will be used to probe the application. If a success code is returned, the probe passes. If no code or an error code is returned, the probe fails, and the container won’t receive any requests after a specified number of failures. Any code greater than or equal to 200 and less than 400 indicates success. Any other code indicates failure. @@ -92,7 +92,7 @@ Refer to the probes section of the [container resource schema]({{< ref "containe When a connection between two resources is declared, Radius injects resource related information into environment variables that are then used to access the respective resource without having to hard code URIs, connection strings, access keys, or anything that application code needs to successfully communicate. -These environment variables follow a naming convention that makes their use predictable. The naming pattern is derived from the connection name and resource type, which determines what values are required. This way the code that needs to read the values gets to define how they are named. Refer to the [reference documentation]({{< ref resource-schema >}}) of each resource for more information. +These environment variables follow a naming convention that makes their use predictable. The naming pattern is derived from the connection name and resource type, which determines what values are required. This way the code that needs to read the values gets to define how they are named. Refer to the [reference documentation]({{< ref resource-schema >}}) of each resource for more information. For example, adding a connection called `database` that connects to a MongoDB resource would result in the following environment variables being injected: @@ -103,7 +103,7 @@ For example, adding a connection called `database` that connects to a MongoDB re | `CONNECTION_DATABASE_USERNAME` | Username of the target database | | `CONNECTION_DATABASE_PASSWORD` | Password of the target database | -Alternatively, if you already have another convention you would like to follow or if you just prefer to be explicit, you may ignore the values generated by a connection and instead override it by setting your own environment variable values. +Alternatively, if you already have another convention you would like to follow or if you just prefer to be explicit, you may ignore the values generated by a connection and instead override it by setting your own environment variable values. diff --git a/docs/content/guides/author-apps/dapr/overview/index.md b/docs/content/guides/author-apps/dapr/overview/index.md index bdfad1fe4..c26f7668e 100644 --- a/docs/content/guides/author-apps/dapr/overview/index.md +++ b/docs/content/guides/author-apps/dapr/overview/index.md @@ -10,7 +10,7 @@ tags: ["Dapr"] Radius offers first-class support for the [Dapr](https://dapr.io) runtime and building blocks to make it easy to make your code fully portable across code and infrastructure. Simply drop in your Dapr building blocks as resources and Radius will automatically configure and apply the accompanying Dapr configuration. -## Installation +## Installation Follow the [Dapr installation instructions](https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-deploy/) to install Dapr in your Kubernetes cluster. Once installed, you can begin adding Dapr sidecars and building blocks. diff --git a/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md b/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md index 5a4c58e32..c1b3344eb 100644 --- a/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md +++ b/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md @@ -58,7 +58,6 @@ Begin by creating a file named `app.bicep` with a Radius [container]({{< ref "gu 2. Run the command below, which will list the pods in your Kubernetes cluster, using the `-o` flag to specify the relevant information to output: - ```bash kubectl get pods -A -l app.kubernetes.io/name=demo -o custom-columns=POD:.metadata.name,STATUS:.status.phase,CONTAINER_NAMES:spec.containers[:].name,CONTAINER_IMAGES:spec.containers[:].image ``` @@ -126,7 +125,7 @@ Add the following [`runtimes`]({{< ref "reference/resource-schema/core-schema/co ## Cleanup Run the following command to [delete]({{< ref "guides/deploy-apps/howto-delete" >}}) your app and container: - + ```bash rad app delete demo ``` diff --git a/docs/content/guides/author-apps/networking/howto-tls/index.md b/docs/content/guides/author-apps/networking/howto-tls/index.md index fd8718a4c..2c68a3679 100644 --- a/docs/content/guides/author-apps/networking/howto-tls/index.md +++ b/docs/content/guides/author-apps/networking/howto-tls/index.md @@ -16,8 +16,8 @@ This guide will show you how to add TLS and HTTPS to an application with a gatew - [Radius Bicep VSCode extension]({{< ref "installation#step-2-install-the-vs-code-extension" >}}) - [Radius environment]({{< ref "installation#step-3-initialize-radius" >}}) - Domain name + DNS A-record pointing to your Kubernetes cluster - - 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. - - If running Radius on an Elastic Kubernetes Service (EKS) cluster you can optionally leverage an [Application Load Balancer](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) for a hosted DNS name and record. + - 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. + - If running Radius on an Elastic Kubernetes Service (EKS) cluster you can optionally leverage an [Application Load Balancer](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) for a hosted DNS name and record. ## Step 1: Define a container @@ -37,7 +37,6 @@ TLS certificates need to be referenced via a Radius [secret store]({{< ref "/gui [cert-manager](https://cert-manager.io/docs/) is a great way to manage certificates in Kubernetes and make them available as a Kubernetes secret. This example uses a Kubernetes secret that was setup by cert-manager {{< /alert >}} - {{< rad file="snippets/app-existing.bicep" marker="//SECRETS" embed=true >}} {{< /codetab >}} @@ -65,6 +64,7 @@ Now that your certificate data is ready add a gateway and reference the secret s ```sh rad deploy app.bicep -a tlsdemo ``` + {{% /codetab %}} {{% codetab %}} @@ -72,6 +72,7 @@ rad deploy app.bicep -a tlsdemo ```sh rad deploy app.bicep -a tlsdemo -p tlscrt= -p tlskey= ``` + {{% /codetab %}} {{< /tabs >}} diff --git a/docs/content/guides/author-apps/secrets/howto-new-secretstore/index.md b/docs/content/guides/author-apps/secrets/howto-new-secretstore/index.md index 5f9e0c67c..9589ceee6 100644 --- a/docs/content/guides/author-apps/secrets/howto-new-secretstore/index.md +++ b/docs/content/guides/author-apps/secrets/howto-new-secretstore/index.md @@ -12,10 +12,10 @@ Radius secret stores securely manage secrets for your Environment and Applicatio By default, Radius leverages the hosting platform's secrets management solution to create and store the secret. For example, if you are deploying to Kubernetes, the secret store will be created as a Kubernetes Secret. -## Pre-requisites +## Pre-requisites - [rad CLI]({{< ref "installation#step-1-install-the-rad-cli" >}}) -- [kubectl CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [kubectl CLI](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - [Radius Bicep VSCode extension]({{< ref "installation#step-2-install-the-radius-bicep-vs-code-extension" >}}) - [Radius environment]({{< ref "installation#step-3-initialize-the-radius-control-plane-and-the-radius-environment" >}}) @@ -25,7 +25,7 @@ Open the `app.bicep` from the current working directory and add a new Secret Sto {{< rad file="snippets/secretstore.bicep" embed=true marker="//SECRET_STORE_NEW" >}} -In this example a new secret store resource is created for storing a TLS certificate in it. +In this example a new secret store resource is created for storing a TLS certificate in it. ## Step 2: Deploy the application @@ -35,9 +35,9 @@ Deploy the application with [`rad deploy`]({{< ref "rad_deploy" >}}): rad deploy app.bicep -a secretdemo ``` -## Step 3: Verify the secrets are deployed +## Step 3: Verify the secrets are deployed -Use the below command to verify if the secret got deployed +Use the below command to verify if the secret got deployed: ```bash kubectl get secret -n default-secretdemo diff --git a/docs/content/guides/author-apps/secrets/overview/index.md b/docs/content/guides/author-apps/secrets/overview/index.md index fba40d2c3..8a4e1f9fa 100644 --- a/docs/content/guides/author-apps/secrets/overview/index.md +++ b/docs/content/guides/author-apps/secrets/overview/index.md @@ -14,7 +14,7 @@ Sensitive data, such as TLS certificates, tokens, passwords, and keys that serve An independent resource with its own lifecycle, a Radius Secret Store ensures that data is persisted across container restarts or mounts and can interact directly with the Radius Application Model. For instance, an Applications.Core/gateways resource can use this resource to store a TLS certificate and reference it. -## Create a new Secret Store +## Create a new Secret Store Radius leverages the secrets management solution available on the hosting platform to create and store the secret. For example, if you are deploying to Kubernetes, the secret will be created in Kubernetes Secrets. Follow the [how-to guide on creating new secret store]({{< ref "/guides/author-apps/secrets/howto-new-secretstore" >}}) to learn more about creating a new secret store resource and storing a TLS certificate in it. diff --git a/docs/content/guides/deploy-apps/environments/howto-environment/index.md b/docs/content/guides/deploy-apps/environments/howto-environment/index.md index bf1241797..dddb7263c 100644 --- a/docs/content/guides/deploy-apps/environments/howto-environment/index.md +++ b/docs/content/guides/deploy-apps/environments/howto-environment/index.md @@ -24,21 +24,21 @@ Radius Environments can be setup with the rad CLI via two paths: interactive or ```bash rad init ``` - + Select `Yes` to setup the app.bicep in the current directory ``` - Initializing Radius... - - 🕔 Install Radius {{< param version >}} + Initializing Radius... + + 🕔 Install Radius {{< param version >}} - Kubernetes cluster: kind - - Kubernetes namespace: radius-system - ⏳ Create new environment default - - Kubernetes namespace: default - - Recipe pack: local-dev - ⏳ Scaffold application - ⏳ Update local configuration - ``` + - Kubernetes namespace: radius-system + ⏳ Create new environment default + - Kubernetes namespace: default + - Recipe pack: local-dev + ⏳ Scaffold application + ⏳ Update local configuration + ``` 2. Verify the initialization by running: ```bash @@ -56,24 +56,29 @@ Radius Environments can be setup with the rad CLI via two paths: interactive or ``` You can also use [`rad env list`]({{< ref rad_env_list.md >}}) to view your environment: - + ```bash rad env list ``` + 3. Use `rad recipe list` to see the list of available Recipes: + ```bash rad recipe list ``` + ``` NAME TYPE TEMPLATE KIND TEMPLATE default Applications.Datastores/mongoDatabases bicep ghcr.io/radius-project/recipes/local-dev/mongodatabases:latest default Applications.Datastores/redisCaches bicep ghcr.io/radius-project/recipes/local-dev/rediscaches:latest - ``` + ``` + You can follow the [Recipes]({{< ref "/guides/recipes/overview" >}}) documentation to learn more about the Recipes and how to use them in your application. ## Create an environment interactively 1. Initialize a new environment with [`rad init --full`]({{< ref rad_init >}}): + ```bash rad init --full ``` @@ -87,21 +92,22 @@ Radius Environments can be setup with the rad CLI via two paths: interactive or You should see the following output: ``` - Initializing Radius... + Initializing Radius... - ✅ Install Radius {{< param version >}} - - Kubernetes cluster: k3d-k3s-default - - Kubernetes namespace: radius-system - ✅ Create new environment default - - Kubernetes namespace: default - - Recipe pack: dev - ✅ Scaffold application samples - ✅ Update local configuration + ✅ Install Radius {{< param version >}} + - Kubernetes cluster: k3d-k3s-default + - Kubernetes namespace: radius-system + ✅ Create new environment default + - Kubernetes namespace: default + - Recipe pack: dev + ✅ Scaffold application samples + ✅ Update local configuration Initialization complete! Have a RAD time 😎 ``` 1. Verify the Radius services were installed by running: + ```bash kubectl get deployments -n radius-system ``` @@ -152,7 +158,6 @@ Radius can also be installed and an environment created with manual rad CLI comm Run [`rad install kubernetes`]({{< ref rad_install_kubernetes >}}) to install Radius into your default Kubernetes context and cluster: - ```bash rad install kubernetes ``` @@ -181,9 +186,9 @@ Radius can also be installed and an environment created with manual rad CLI comm 1. Create your Radius Environment: - + Run [`rad env create`]({{< ref rad_env_create >}}) to create a new environment in your resource group. Specify the `--namespace` flag to select the Kubernetes namespace to deploy resources into: - + ```bash rad env create myEnvironment --group myGroup --namespace my-namespace ``` @@ -223,6 +228,6 @@ Radius can also be installed and an environment created with manual rad CLI comm myEnvironment ``` -## Next steps +## Next steps -Follow the [cloud provider guides]({{< ref providers >}}) to configure cloud providers for your environment to deploy and manage cloud resources \ No newline at end of file +Follow the [cloud provider guides]({{< ref providers >}}) to configure cloud providers for your environment to deploy and manage cloud resources. \ No newline at end of file diff --git a/docs/content/guides/deploy-apps/howto-delete/index.md b/docs/content/guides/deploy-apps/howto-delete/index.md index ff1275a3b..5f553016d 100644 --- a/docs/content/guides/deploy-apps/howto-delete/index.md +++ b/docs/content/guides/deploy-apps/howto-delete/index.md @@ -12,7 +12,7 @@ tags: ["delete"] - A [deployed application]({{< ref deploy-apps >}}) in a Radius Environment. -## Step 1: Delete the Radius Application from the environment +## Step 1: Delete the Radius Application from the environment You can delete the Radius Application using the [`rad app delete`]({{< ref rad_application_delete >}}) command: @@ -21,7 +21,7 @@ rad app delete ``` This will delete the following resources from the Radius Environment - + 1. All the resources created by Radius on the Kubernetes cluster under the `-` namespace 2. All the resources provisioned by Recipes diff --git a/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-cicd/index.md b/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-cicd/index.md index 1cedabc3d..6d65551ec 100644 --- a/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-cicd/index.md +++ b/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-cicd/index.md @@ -2,7 +2,7 @@ type: docs title: "How-To: Deploy an application with Github Actions" linkTitle: "Deploy via GitHub Actions" -description: "Learn about adding your Radius apps to your deployment pipelines with GitHub Actions" +description: "Learn about adding your Radius apps to your deployment pipelines with GitHub Actions" weight: 300 categories: "How-To" tags: ["CI/CD"] @@ -71,6 +71,7 @@ Ensure the service principal created above has the proper RBAC assignment to dow - name: Configure kubectl context run: az aks get-credentials --name ${CLUSTER} --resource-group ${RESOURCE_GROUP} --subscription ${SUBSCRIPTION_ID} ``` + {{% /codetab %}} {{% codetab %}} diff --git a/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-rad-cli/index.md b/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-rad-cli/index.md index 407f39bf4..3d6d33397 100644 --- a/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-rad-cli/index.md +++ b/docs/content/guides/deploy-apps/howto-deploy/howto-deploy-rad-cli/index.md @@ -8,7 +8,8 @@ categories: "How-To" tags: ["deployments"] --- -## Pre-requisites +## Pre-requisites + - [An authored Radius Application]({{< ref author-apps >}}) ## Step 1 : Deploy an application into a Radius Environment @@ -21,6 +22,7 @@ An application can be deployed to an environment with [`rad deploy`]({{< ref rad ```bash rad deploy app.bicep ``` + This will deploy the application to the created Radius Environment. {{% /codetab %}} @@ -39,4 +41,3 @@ Parameters can be included as part of `rad deploy` via the `-p/--parameters` fla {{< /tabs >}} > Follow the [how-to guide]({{< ref howto-troubleshootapps >}}) for guidance on troubleshooting your Radius Application - diff --git a/docs/content/guides/deploy-apps/howto-deploy/howto-run-app/index.md b/docs/content/guides/deploy-apps/howto-deploy/howto-run-app/index.md index baf03af94..b9f168d21 100644 --- a/docs/content/guides/deploy-apps/howto-deploy/howto-run-app/index.md +++ b/docs/content/guides/deploy-apps/howto-deploy/howto-run-app/index.md @@ -8,7 +8,8 @@ categories: "How-To" tags: ["deployments"] --- -## Pre-requisites +## Pre-requisites + - [An authored Radius Application]({{< ref author-apps >}}) ## Step 1: Run an application @@ -39,4 +40,4 @@ You can find more examples of deploying applications with parameters [here]({{< {{< /tabs >}} - > Follow the [how-to guide]({{< ref howto-troubleshootapps >}}) for guidance on troubleshooting your apps + > Follow the [how-to guide]({{< ref howto-troubleshootapps >}}) for guidance on troubleshooting your apps. diff --git a/docs/content/guides/deploy-apps/howto-troubleshootapps/index.md b/docs/content/guides/deploy-apps/howto-troubleshootapps/index.md index f22ef1fb4..d7570acc5 100644 --- a/docs/content/guides/deploy-apps/howto-troubleshootapps/index.md +++ b/docs/content/guides/deploy-apps/howto-troubleshootapps/index.md @@ -19,6 +19,7 @@ Use the below command to port-forward the container to your local machine. This ```bash rad resource expose containers -a --port ``` + Refer to [`rad resource expose`]({{< ref rad_resource_expose >}}) for more details on the command. ## Step 2: Inspect container logs @@ -29,7 +30,7 @@ If your Radius Application is unresponsive or does not connect to its dependenci rad resource logs containers -a ``` -> Also refer to the [connections section]({{< ref "guides/author-apps/containers/overview#connections" >}}) to know about the naming convention of the environment variables and inspect if your application uses the right variables. +> Also refer to the [connections section]({{< ref "guides/author-apps/containers/overview#connections" >}}) to know about the naming convention of the environment variables and inspect if your application uses the right variables. ## Step 3: Inspect control-plane logs @@ -38,6 +39,7 @@ If you hit errors while deploying the application, look at the control plane log ```bash rad debug-logs ``` -Inspect the UCP and DE logs to see if there are any errors + +Inspect the UCP and DE logs to see if there are any errors. >Also make sure to [open an Issue](https://github.com/radius-project/radius/issues/new/choose) if you encounter a generic `Internal server error` message or an error message that is not self-serviceable, so we can address the root error not being forwarded to the user. 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 1597b4b5b..6533ff1ff 100644 --- a/docs/content/guides/operations/control-plane/howto-postman/index.md +++ b/docs/content/guides/operations/control-plane/howto-postman/index.md @@ -73,7 +73,7 @@ Now that you have created the necessary Kubernetes objects, you can generate a t 1. Run the following command to generate a token for the `postman-account` service account: ```bash - kubectl create token postman-account -n radius-system + kubectl create token postman-account -n radius-system ``` This will create a token with the default expiration time of 1 hour. If you want to set a different expiration time, you can use the `--duration` flag to specify a duration in seconds (up to 48 hours). @@ -98,13 +98,13 @@ Next, you'll need to get the control plane API endpoint and use Postman to inter 1. Open Postman and create a new request 1. Set the method to `GET` 1. Set the URL to the following, which will [retrieve all your resource groups]({{< ref api-ucp >}}): - + ``` /apis/api.ucp.dev/v1alpha3/planes/radius/local/resourcegroups?api-version=2023-10-01-preview ``` {{< image src="postman-url.png" width=900px alt="Screenshot of Postman with filled out URL" >}} - + 1. Open the `Authorization` tab and select `Bearer Token` from the `Type` dropdown. Paste the token you generated in step 2 into the `Token` field: {{< image src="postman-auth.png" width=900px alt="Screenshot of Postman with filled out auth token" >}} @@ -124,6 +124,7 @@ Next, you'll need to get the control plane API endpoint and use Postman to inter ] } ``` + 1. Update your request URL to [list all the Radius Environments]({{< ref api-environments >}}) in your resource group (_make sure to update the name of your resource group in the URL. In this example the resource group name is default_): ``` @@ -155,8 +156,6 @@ Next, you'll need to get the control plane API endpoint and use Postman to inter } ``` - - ## Next step: Explore the Radius API Now that you have successfully authenticated to the Radius API and interacted with resources, you can explore the API using the [Radius API reference]({{< ref api >}}). diff --git a/docs/content/guides/operations/control-plane/logs/fluentd/index.md b/docs/content/guides/operations/control-plane/logs/fluentd/index.md index 59c6e3e1d..1b46e4a71 100644 --- a/docs/content/guides/operations/control-plane/logs/fluentd/index.md +++ b/docs/content/guides/operations/control-plane/logs/fluentd/index.md @@ -96,7 +96,7 @@ tags: ["logs","observability"] fluentd-sdrld 1/1 Running 0 14s ``` -## Install Radius control plane +## Install Radius control plane Visit the [Kubernetes docs]({{< ref "guides/operations/kubernetes" >}}) to learn how to install the Radius control plane. By default, Radius has JSON logging enabled. @@ -117,9 +117,9 @@ _Note: There is a small delay for Elastic Search to index the logs that Fluentd ```bash kubectl port-forward svc/kibana-kibana 5601 -n radius-monitoring ``` - + You should see: - + ``` Forwarding from 127.0.0.1:5601 -> 5601 Forwarding from [::1]:5601 -> 5601 @@ -167,7 +167,7 @@ _Note: There is a small delay for Elastic Search to index the logs that Fluentd ## References -* [Fluentd for Kubernetes](https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd) -* [Elastic search helm chart](https://github.com/elastic/helm-charts/tree/master/elasticsearch) -* [Kibana helm chart](https://github.com/elastic/helm-charts/tree/master/kibana) -* [Kibana Query Language](https://www.elastic.co/guide/en/kibana/current/kuery-query.html) +- [Fluentd for Kubernetes](https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd) +- [Elastic search helm chart](https://github.com/elastic/helm-charts/tree/master/elasticsearch) +- [Kibana helm chart](https://github.com/elastic/helm-charts/tree/master/kibana) +- [Kibana Query Language](https://www.elastic.co/guide/en/kibana/current/kuery-query.html) diff --git a/docs/content/guides/operations/control-plane/metrics/grafana/index.md b/docs/content/guides/operations/control-plane/metrics/grafana/index.md index 61ced907d..73e2cd9d8 100644 --- a/docs/content/guides/operations/control-plane/metrics/grafana/index.md +++ b/docs/content/guides/operations/control-plane/metrics/grafana/index.md @@ -37,7 +37,6 @@ The [radius-resource-provider-dashboard.json](https://raw.githubusercontent.com/ - [Setup Prometheus]({{}}) on your Kubernetes cluster - [Helm 3](https://helm.sh/) - ### Install Grafana 1. Add the Grafana Helm repo: @@ -72,6 +71,7 @@ The [radius-resource-provider-dashboard.json](https://raw.githubusercontent.com/ ```bash kubectl get pods -n radius-monitoring ``` + You should see something similar to the following: ``` @@ -135,13 +135,13 @@ Now that Grafana is installed, you need to configure it to use Prometheus as a d ### Import dashboards in Grafana 1. Download the Grafana dashboard templates: - - [radius-overview-dashboard.json](https://raw.githubusercontent.com/radius-project/radius/main/grafana/radius-overview-dashboard.json) + - [radius-overview-dashboard.json](https://raw.githubusercontent.com/radius-project/radius/main/grafana/radius-overview-dashboard.json) - [radius-resource-provider-dashboard.json](https://raw.githubusercontent.com/radius-project/radius/main/grafana/radius-resource-provider-dashboard.json) 1. In the upper left corner of the Grafana home screen, click the "+" option, then "Import", and select your templates. 1. Select the dashboard that you imported and enjoy! ## References -* [Prometheus Installation](https://github.com/prometheus-community/helm-charts) -* [Prometheus on Kubernetes](https://github.com/coreos/kube-prometheus) -* [Prometheus Query Language](https://prometheus.io/docs/prometheus/latest/querying/basics/) +- [Prometheus Installation](https://github.com/prometheus-community/helm-charts) +- [Prometheus on Kubernetes](https://github.com/coreos/kube-prometheus) +- [Prometheus Query Language](https://prometheus.io/docs/prometheus/latest/querying/basics/) diff --git a/docs/content/guides/operations/control-plane/traces/jaeger/index.md b/docs/content/guides/operations/control-plane/traces/jaeger/index.md index 68329e2c3..c69848960 100644 --- a/docs/content/guides/operations/control-plane/traces/jaeger/index.md +++ b/docs/content/guides/operations/control-plane/traces/jaeger/index.md @@ -55,7 +55,7 @@ The following steps show you how to configure the Radius control plane to send d 1. Port forward the Jaeger service to your local machine: ```bash - kubectl port-forward svc/tracing 16686 -n radius-monitoring + kubectl port-forward svc/tracing 16686 -n radius-monitoring ``` 2. In your browser, go to [http://localhost:16686](http://localhost:16686) to see the Jaeger UI: @@ -64,4 +64,4 @@ The following steps show you how to configure the Radius control plane to send d ## References -- [Jaeger Getting Started](https://www.jaegertracing.io/docs/1.21/getting-started/#all-in-one) \ No newline at end of file +- [Jaeger Getting Started](https://www.jaegertracing.io/docs/1.21/getting-started/#all-in-one) diff --git a/docs/content/guides/operations/groups/howto-resourcegroups/index.md b/docs/content/guides/operations/groups/howto-resourcegroups/index.md index 2f870c40c..7ff18769e 100644 --- a/docs/content/guides/operations/groups/howto-resourcegroups/index.md +++ b/docs/content/guides/operations/groups/howto-resourcegroups/index.md @@ -49,7 +49,7 @@ rad group show myGroup You should see: ``` -ID NAME +ID NAME /planes/radius/local/resourcegroups/myGroup myGroup ``` diff --git a/docs/content/guides/operations/kubernetes/kubernetes-install/index.md b/docs/content/guides/operations/kubernetes/kubernetes-install/index.md index 917d46f15..55ea0b343 100644 --- a/docs/content/guides/operations/kubernetes/kubernetes-install/index.md +++ b/docs/content/guides/operations/kubernetes/kubernetes-install/index.md @@ -26,15 +26,20 @@ rad install kubernetes --set global.zipkin.url=http://jaeger-collector.radius-mo ## Install with Helm 1. Begin by adding the Radius Helm repository: + ```bash helm repo add radius https://radius.azurecr.io/helm/v1/repo helm repo update ``` + 1. Get all available versions: + ```bash helm search repo radius --versions ``` + 1. Install the specified chart: + ```bash helm upgrade radius radius/radius --install --create-namespace --namespace radius-system --version {{< param chart_version >}} --wait --timeout 15m0s ``` diff --git a/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md b/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md index f4f3c8310..e2c4d7755 100644 --- a/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md +++ b/docs/content/guides/operations/kubernetes/kubernetes-metadata/index.md @@ -65,7 +65,7 @@ Other extensions may set Kubernetes metadata. For example, the `daprSidecar` ext The order in which extensions are executed is as follows, from first to last: -1. Dapr sidecar extension +1. Dapr sidecar extension 1. Manual scale extension 1. Kubernetes metadata extension @@ -116,4 +116,4 @@ The labels & annotations were set based on the following: | `radapp.io/resource-type` | `applications.core-containers` | Radius-injected label | **Annotations** | `prometheus.io/port` | `9090` | Application annotation is applied -| `prometheus.io/scrape` | `true `| Application annotation is applied +| `prometheus.io/scrape` | `true`| Application annotation is applied diff --git a/docs/content/guides/operations/kubernetes/kubernetes-upgrade/index.md b/docs/content/guides/operations/kubernetes/kubernetes-upgrade/index.md index 600eb76d6..dc942e341 100644 --- a/docs/content/guides/operations/kubernetes/kubernetes-upgrade/index.md +++ b/docs/content/guides/operations/kubernetes/kubernetes-upgrade/index.md @@ -9,12 +9,12 @@ categories: "How-To" Radius does not offer backward compatibility with previous releases. Breaking changes may happen between releases and we recommend doing a fresh installation of the latest version of Radius after every release. -## Step 1 : Delete any existing Radius Environments +## Step 1 : Delete any existing Radius Environments To delete any existing Radius Environments, run the following command: ```bash -rad env delete +rad env delete ``` ## Step 2: Uninstall the existing Radius control-plane diff --git a/docs/content/guides/operations/providers/howto-aws-provider/index.md b/docs/content/guides/operations/providers/howto-aws-provider/index.md index 341138bc8..8d5aa4042 100644 --- a/docs/content/guides/operations/providers/howto-aws-provider/index.md +++ b/docs/content/guides/operations/providers/howto-aws-provider/index.md @@ -9,6 +9,7 @@ tags: ["AWS"] --- The AWS provider allows you to deploy and connect to AWS resources from a Radius Environment on an EKS cluster. It can be configured: + - [Interactively via `rad init`](#interactive-configuration) - [Manually via `rad env update` and `rad credential register`](#manual-configuration) @@ -20,6 +21,7 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius ## Interactive configuration 1. Initialize a new environment with [`rad init --full`]({{< ref rad_init >}}): + ```bash rad init --full ``` @@ -32,17 +34,17 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius You should see the following output: ``` - Initializing Radius... - - ✅ Install Radius {{< param version >}} - - Kubernetes cluster: k3d-k3s-default - - Kubernetes namespace: radius-system - - AWS IAM access key ID: **** - ✅ Create new environment default - - Kubernetes namespace: default - - AWS: account ***** and region: us-west-2 - ✅ Scaffold application samples - ✅ Update local configuration + Initializing Radius... + + ✅ Install Radius {{< param version >}} + - Kubernetes cluster: k3d-k3s-default + - Kubernetes namespace: radius-system + - AWS IAM access key ID: **** + ✅ Create new environment default + - Kubernetes namespace: default + - AWS: account ***** and region: us-west-2 + ✅ Scaffold application samples + ✅ Update local configuration Initialization complete! Have a RAD time 😎 ``` @@ -50,13 +52,17 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius ## Manual configuration 1. Update your Radius Environment with your AWS region and AWS account ID: + ```bash rad env update myEnvironment --aws-region myAwsRegion --aws-account-id myAwsAccountId ``` + This command updates the configuration of an environment for properties that are able to be changed. For more information visit [`rad env update`]({{< ref rad_env_update >}}) 2. Add your AWS cloud provider credentials: + ```bash rad credential register aws --access-key-id myAccessKeyId --secret-access-key mySecretAccessKey ``` + For more information on the command arguments visit [`rad credential register aws`]({{< ref rad_credential_register_aws >}}) diff --git a/docs/content/guides/operations/providers/howto-azure-provider/index.md b/docs/content/guides/operations/providers/howto-azure-provider/index.md index e1a62e13f..5d0472cb1 100644 --- a/docs/content/guides/operations/providers/howto-azure-provider/index.md +++ b/docs/content/guides/operations/providers/howto-azure-provider/index.md @@ -9,6 +9,7 @@ tags: ["Azure"] --- The Azure provider allows you to deploy and connect to Azure resources from a self-hosted Radius Environment. It can be configured: + - [Interactively via `rad init`](#interactive-configuration) - [Manually via `rad env update` and `rad credential register`](#manual-configuration) @@ -21,6 +22,7 @@ The Azure provider allows you to deploy and connect to Azure resources from a se ## Interactive configuration 1. Initialize a new environment with [`rad init --full`]({{< ref rad_init >}}): + ```bash rad init --full ``` @@ -29,6 +31,7 @@ The Azure provider allows you to deploy and connect to Azure resources from a se - **Namespace** - The Kubernetes namespace where your application containers and networking resources will be deployed (different than the Radius control-plane namespace, `radius-system`) - **Add an Azure provider** - Pick the subscription and resource group to deploy your Azure resources to Run `az ad sp create-for-rbac` to create a Service Principal without a role assignment and obtain your `appId`, `displayName`, `password`, and `tenant` information. + ``` { "appId": "****", @@ -38,26 +41,27 @@ The Azure provider allows you to deploy and connect to Azure resources from a se } ``` Enter the `appId`, `password`, and `tenant` information when prompted. + - **Environment name** - The name of the environment to create You should see the following output: ``` - Initializing Radius... - - ✅ Install Radius {{< param version >}} - - Kubernetes cluster: k3d-k3s-default - - Kubernetes namespace: radius-system - - Azure service principal: **** - ✅ Create new environment default - - Kubernetes namespace: default - - Azure: subscription ***** and resource group *** - ✅ Scaffold application samples - ✅ Update local configuration + Initializing Radius... + + ✅ Install Radius {{< param version >}} + - Kubernetes cluster: k3d-k3s-default + - Kubernetes namespace: radius-system + - Azure service principal: **** + ✅ Create new environment default + - Kubernetes namespace: default + - Azure: subscription ***** and resource group *** + ✅ Scaffold application samples + ✅ Update local configuration Initialization complete! Have a RAD time 😎 ``` - + ## Manual configuration 1. Use [`rad env update`]({{< ref rad_env_update >}}) to update your Radius Environment with your Azure subscription ID and Azure resource group: @@ -77,9 +81,10 @@ The Azure provider allows you to deploy and connect to Azure resources from a se } ``` - 3. Use [`rad credential register azure`]({{< ref rad_credential_register_azure >}}) to add the Azure service principal to your Radius installation: + ```bash rad credential register azure --client-id myClientId --client-secret myClientSecret --tenant-id myTenantId ``` + Radius will use the provided service principal for all interactions with Azure, including Bicep and Recipe deployments. diff --git a/docs/content/guides/operations/workspaces/howto-workspaces/index.md b/docs/content/guides/operations/workspaces/howto-workspaces/index.md index ebc6802e8..65dd7b5d3 100644 --- a/docs/content/guides/operations/workspaces/howto-workspaces/index.md +++ b/docs/content/guides/operations/workspaces/howto-workspaces/index.md @@ -17,35 +17,50 @@ categories: "How-To" When you have multiple environments initialized for different purposes workspaces enable you to switch between different environments easily. You can create separate workspaces and switch between them as you are working through your deployment lifecycle. 1. Install the Radius control plane on kubernetes cluster + ```sh rad install kubernetes ``` + 1. Create a resource group named `myworkspace` using [`rad group create`]({{< ref rad_group_create >}}): + ```sh rad group create myworkspace ``` + 1. Create an environment named `myworkspace` using [`rad env create`]({{< ref rad_env_create >}}): + ```sh rad env create myworkspace ``` + 1. Create a workspace named `myworkspace` using [`rad workspace create`]({{< ref rad_workspace_create >}}): - ```sh + + ```sh rad workspace create kubernetes myworkspace --group myworkspace --environment myworkspace ``` + Radius writes the workspace details to your local configuration file (`~/.rad/config.yaml` on Linux and macOS, `%USERPROFILE%\.rad\config.yaml` on Windows). 1. Create another resource group named `yourworkspace` using [`rad group create`]({{< ref rad_group_create >}}): + ```sh rad group create yourworkspace ``` + 1. Create an environment named `yourworkspace` using [`rad env create`]({{< ref rad_env_create >}}): + ```sh rad env create yourworkspace ``` + 1. Create a workspace named `yourworkspace` using [`rad workspace create`]({{< ref rad_workspace_create >}}): - ```sh + + ```sh rad workspace create kubernetes yourworkspace --group yourworkspace --environment yourworkspace ``` + 1. Verify your `config.yaml` file. It should show both `myworkspace` and `yourworkspace` workspaces, with your environments: + ```yaml workspaces: default: yourworkspace @@ -65,4 +80,5 @@ When you have multiple environments initialized for different purposes workspace /providers/applications.core/environments/myworkspace scope: /planes/radius/local/resourceGroups/myworkspace ``` + 1. You can now deploy applications to both myworkspace and yourworkspace using [`rad deploy`]({{< ref rad_deploy >}}), specifying the `-w` flag. diff --git a/docs/content/guides/operations/workspaces/overview/index.md b/docs/content/guides/operations/workspaces/overview/index.md index 5400e10a3..ea9eb1f7f 100644 --- a/docs/content/guides/operations/workspaces/overview/index.md +++ b/docs/content/guides/operations/workspaces/overview/index.md @@ -23,6 +23,7 @@ The following commands let you interact with Radius Environments: ```bash rad workspace init kubernetes ``` + {{% /codetab %}} {{% codetab %}} @@ -31,6 +32,7 @@ rad workspace init kubernetes ```bash rad workspacae list ``` + {{% /codetab %}} {{% codetab %}} @@ -39,6 +41,7 @@ rad workspacae list ```bash rad workspace show ``` + {{% /codetab %}} {{% codetab %}} @@ -47,6 +50,7 @@ rad workspace show ```bash rad workspace delete -w myenv ``` + {{% /codetab %}} {{% codetab %}} @@ -55,6 +59,7 @@ rad workspace delete -w myenv ```bash rad env switch -e myenv ``` + {{% /codetab %}} {{< /tabs >}} diff --git a/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes-main.tf b/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes-main.tf index 936060371..68308f203 100644 --- a/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes-main.tf +++ b/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes-main.tf @@ -35,7 +35,7 @@ resource "kubernetes_deployment" "redis" { spec { container { name = "redis" - image = "redis:6" + image = "redis:6" port { container_port = 6379 } diff --git a/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes.bicep b/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes.bicep index 27c1b6a6e..b8d1d2469 100644 --- a/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes.bicep +++ b/docs/content/guides/recipes/howto-author-recipes/snippets/redis-kubernetes.bicep @@ -75,7 +75,7 @@ resource svc 'core/Service@v1' = { output result object = { values: { host: '${svc.metadata.name}.${svc.metadata.namespace}.svc.cluster.local' - port: svc.spec.ports[0].port + port: svc.spec.ports[0].port username: '' } secrets: { diff --git a/docs/content/guides/recipes/howto-dev-recipes/index.md b/docs/content/guides/recipes/howto-dev-recipes/index.md index 053adf59a..8e9a6724b 100644 --- a/docs/content/guides/recipes/howto-dev-recipes/index.md +++ b/docs/content/guides/recipes/howto-dev-recipes/index.md @@ -24,6 +24,7 @@ Local development environments created by the rad init command include a set of mkdir recipes cd recipes ``` + 2. Initialize a new dev environment: ```bash @@ -39,7 +40,7 @@ Local development environments created by the rad init command include a set of ``` You should see a table of available Recipes: - + ``` NAME TYPE TEMPLATE KIND TEMPLATE VERSION TEMPLATE default Applications.Datastores/sqlDatabases bicep ghcr.io/radius-project/recipes/local-dev/sqldatabases:latest @@ -50,6 +51,7 @@ Local development environments created by the rad init command include a set of default Applications.Datastores/mongoDatabases bicep ghcr.io/radius-project/recipes/local-dev/mongodatabases:latest default Applications.Datastores/redisCaches bicep ghcr.io/radius-project/recipes/local-dev/rediscaches:latest ``` + > Visit the [Recipes repo](https://github.com/radius-project/recipes) to learn more about the definition of these `local-dev` recipe templates. When a Recipe is named "default" it will be used automatically when a resource doesn't specify a Recipe name. This makes it easy for applications to fully defer to the Environment for how to manage infrastructure. @@ -71,6 +73,7 @@ Note that no Recipe name is specified within 'db', so it will be using the defau ``` You should see the following output: + ``` Building app.bicep... Deploying template './app.bicep' for application 'local-dev-app' and environment 'default' from workspace 'default'... diff --git a/docs/content/guides/recipes/overview/index.md b/docs/content/guides/recipes/overview/index.md index 0588d0ba5..222288c4e 100644 --- a/docs/content/guides/recipes/overview/index.md +++ b/docs/content/guides/recipes/overview/index.md @@ -25,7 +25,7 @@ Recipes enable a **separation of concerns** between IT operators and developers Recipes can be used in any environment, from dev to prod. You can run a default recipe registered in your environment or select the specific Recipe you want to run. To run a default recipe, simply add the resource you want to your app and omit the Recipe name: -{{< rad file="snippets/recipe-link-example.bicep" embed=true marker="//DEFAULT" >}} +{{< rad file="snippets/recipe-link-example.bicep" embed=true marker="//DEFAULT" >}} If you want to use a specific Recipe, you can specify the Recipe name in the `recipe` parameter: @@ -53,11 +53,11 @@ It's easy to author and register your own Recipes which define how to deploy and Recipes currently support the following resources. Support for additional resources is actively being worked on. -| Supported resources | +| Supported resources | |---------------------| -| [`Applications.Datastores/redisCaches`]({{< ref redis >}}) | +| [`Applications.Datastores/redisCaches`]({{< ref redis >}}) | | [`Applications.Datastores/mongoDatabases`]({{< ref mongodb >}}) | -| [`Applications.Datastores/sqlDatabases`]({{< ref microsoft-sql >}}) | +| [`Applications.Datastores/sqlDatabases`]({{< ref microsoft-sql >}}) | | [`Applications.Messaging/rabbitmqQueues`]({{< ref rabbitmq >}}) | | [`Applications.Dapr/stateStores`]({{< ref dapr-statestore >}}) | | [`Applications.Dapr/pubSubBrokers`]({{< ref dapr-pubsub >}}) | diff --git a/docs/content/guides/tooling/rad-cli/howto-rad-cli/index.md b/docs/content/guides/tooling/rad-cli/howto-rad-cli/index.md index 6c0f359b2..005d5727e 100644 --- a/docs/content/guides/tooling/rad-cli/howto-rad-cli/index.md +++ b/docs/content/guides/tooling/rad-cli/howto-rad-cli/index.md @@ -8,4 +8,4 @@ categories: "How-To" tags: ["rad CLI", "Bicep"] --- -{{< read file= "/shared-content/installation/rad-cli/install-rad-cli.md" >}} \ No newline at end of file +{{< read file= "/shared-content/installation/rad-cli/install-rad-cli.md" >}} diff --git a/docs/content/guides/tooling/rad-cli/overview/index.md b/docs/content/guides/tooling/rad-cli/overview/index.md index 6cfd8f96d..1dfbb1e50 100644 --- a/docs/content/guides/tooling/rad-cli/overview/index.md +++ b/docs/content/guides/tooling/rad-cli/overview/index.md @@ -63,7 +63,7 @@ export RADIUS_INSTALL_DIR=~/ By default, the rad CLI installation script installs the rad CLI to `%LOCALAPPDATA%\radius\rad.exe` {{% /codetab %}} - + {{< /tabs >}} ### Configuration location @@ -79,12 +79,11 @@ The rad CLI stores configuration under `~/.rad` {{% codetab %}} The rad CLI stores configuration under `%USERPROFILE%\rad` {{% /codetab %}} - -{{< /tabs >}} +{{< /tabs >}} ## Reference documentation Visit the [reference documentation]({{< ref "/reference/cli" >}}) to learn more about the rad CLI and its commands. -{{< button text="Reference docs" page="/reference/cli" >}} \ No newline at end of file +{{< button text="Reference docs" page="/reference/cli" >}} diff --git a/docs/content/tutorials/eshop/_index.md b/docs/content/tutorials/eshop/_index.md index 8d62f42d1..bdb3a4457 100644 --- a/docs/content/tutorials/eshop/_index.md +++ b/docs/content/tutorials/eshop/_index.md @@ -26,7 +26,7 @@ eShop on Containers uses a microservice oriented architecture implementation wit [Deploying eShop without Radius](https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/deploy/k8s) requires deploying a cluster and the backing infrastructure, configuring multiple CLIs and tools, running deployment scripts, and manually copying/pasting credentials and endpoints. -eShop provides instructions to [deploy to Azure](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploying-Azure-resources) or to [deploy to an AKS cluster](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS)) (and even to [deploy to AKS using ARM/Bicep templates](https://github.com/Azure/bicep/tree/main/docs/examples/101/aks)). +eShop provides instructions to [deploy to Azure](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploying-Azure-resources) or to [deploy to an AKS cluster](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS)) (and even to [deploy to AKS using ARM/Bicep templates](https://github.com/Azure/bicep/tree/main/docs/examples/101/aks)). Once the cluster and infrastructure resources are deployed, you can [deploy the eShop application using Helm charts and PowerShell](https://github.com/dotnet-architecture/eShopOnContainers/wiki/Deploy-to-Azure-Kubernetes-Service-(AKS)#install-eshoponcontainers-using-helm). @@ -40,4 +40,4 @@ Adding Radius to the eShop on containers application allows teams to: {{< button text="View eShop sample" githubRepo="samples" githubPath="samples/eshop" color="success" size="btn-lg" >}} -*Visit the [GitHub docs]({{< ref github >}}) if you need access to the organization* \ No newline at end of file +*Visit the [GitHub docs]({{< ref github >}}) if you need access to the organization* diff --git a/docs/content/tutorials/helm/index.md b/docs/content/tutorials/helm/index.md index 33343bc59..66bbdab64 100644 --- a/docs/content/tutorials/helm/index.md +++ b/docs/content/tutorials/helm/index.md @@ -112,7 +112,7 @@ rad init ```bash kubectl create namespace demo - kubectl create secret generic --namespace demo --from-literal=url=redis://fake-server redis-secret + kubectl create secret generic --namespace demo --from-literal=url=redis://fake-server redis-secret helm upgrade demo ./Chart -n demo --install ``` @@ -122,7 +122,7 @@ rad init > kubectl create namespace demo namespace/demo created - > kubectl create secret generic --namespace demo --from-literal=url=redis://fake-server redis-secret + > kubectl create secret generic --namespace demo --from-literal=url=redis://fake-server redis-secret secret/redis-secret created > helm upgrade demo ./Chart -n demo --install @@ -297,7 +297,7 @@ In this step you will: {{< alert title="💡 Recipes" color="info" >}} Radius includes Recipes for local development when you use `rad init`. These [**local-dev**](https://github.com/radius-project/recipes/tree/main/local-dev) Recipes run popular OSS technologies as containerized infrastructure without requiring a cloud account. - + In a production environment you can substitute recipes that will create cloud or on-premises dependencies instead. {{< /alert >}} diff --git a/docs/content/tutorials/new-app/index.md b/docs/content/tutorials/new-app/index.md index 7cadf5464..ef4103987 100644 --- a/docs/content/tutorials/new-app/index.md +++ b/docs/content/tutorials/new-app/index.md @@ -37,7 +37,7 @@ By the end of the tutorial, you will have created and deployed a new Radius Appl ``` 1. Initialize a new Radius Environment with [`rad init`]({{< ref rad_init >}}): - + ```bash rad init ``` @@ -59,7 +59,7 @@ Radius Applications are where all your app's resources and relationships come to ``` You will see the full App definition in its raw JSON format: - + ``` { "id": "/planes/radius/local/resourcegroups/default/providers/Applications.Core/applications/myapp", @@ -80,7 +80,7 @@ Radius Applications are where all your app's resources and relationships come to "type": "Applications.Core/applications" } ``` - + There are a few important things to note about the application definition: - **`id`** is the fully-qualified UCP resource ID of the application. This value is used to uniquely identify the application in the Radius system. @@ -98,7 +98,7 @@ Radius Applications are where all your app's resources and relationships come to ``` Displaying application: myapp - + (empty) ``` @@ -126,7 +126,6 @@ Radius Applications are where all your app's resources and relationships come to Deployment In Progress... - Deployment Complete Resources: @@ -138,12 +137,12 @@ Radius Applications are where all your app's resources and relationships come to ```bash rad app connections ``` - + You should see the container you just deployed, along with the underlying Kubernetes resources that were created to run it: - + ``` Displaying application: myapp - + Name: demo (Applications.Core/containers) Connections: (none) Resources: @@ -157,7 +156,7 @@ Radius Applications are where all your app's resources and relationships come to {{< alert title="💡 Kubernetes mapping" color="info" >}} Radius Environments map how Applications "bind" to a particular platform. Earlier we saw the Application compute was set to `kubernetes` and the namespace was set to `default-myapp`. This means the container resources were deployed to the `default-myapp` namespace in the Kubernetes cluster where Radius is installed. Visit the [Kubernetes mapping docs]({{< ref "/guides/operations/kubernetes/overview#resource-mapping" >}}) to learn more. {{< /alert >}} - + ## Step 4: Run your application When working with Radius Applications you will probably want to access container endpoints and view logs. [`rad run`]({{< ref rad_run >}}) makes it simple to deploy your application and automatically set up port-forwarding and log streaming: @@ -212,13 +211,13 @@ In addition to containers, you can add dependencies like Redis caches, Dapr Stat ```bash rad recipe show default --resource-type Applications.Datastores/mongoDatabases ``` - + You'll see details on the Recipe, including available parameters and defaults: ``` NAME TYPE TEMPLATE KIND TEMPLATE VERSION TEMPLATE default Applications.Datastores/mongoDatabases bicep ghcr.io/radius-project/recipes/local-dev/mongodatabases:latest - + PARAMETER NAME TYPE DEFAULT VALUE MIN MAX username string admin - - password secureString Password1234== - - @@ -244,17 +243,16 @@ In addition to containers, you can add dependencies like Redis caches, Dapr Stat ``` Building .\app.bicep... Deploying template '.\app.bicep' for application 'myapp' and environment 'default' from workspace 'default'... - + Deployment In Progress... - - + Deployment Complete - + Resources: myapp Applications.Core/applications demo Applications.Core/containers mongodb Applications.Datastores/mongoDatabases - + Starting log stream... ``` @@ -269,12 +267,12 @@ In addition to containers, you can add dependencies like Redis caches, Dapr Stat ```bash rad app connections ``` - + You should see the container and Mongo database you just deployed, along with the underlying Kubernetes resources that were created to run them: - + ``` Displaying application: myapp - + Name: demo (Applications.Core/containers) Connections: demo -> mongodb (Applications.Datastores/mongoDatabases) @@ -285,7 +283,7 @@ In addition to containers, you can add dependencies like Redis caches, Dapr Stat demo (kubernetes: core/ServiceAccount) demo (kubernetes: rbac.authorization.k8s.io/Role) demo (kubernetes: rbac.authorization.k8s.io/RoleBinding) - + Name: mongodb (Applications.Datastores/mongoDatabases) Connections: demo (Applications.Core/containers) -> mongodb @@ -315,17 +313,16 @@ In addition to dependencies, you can add more containers to make your applicatio ``` Building .\app.bicep... Deploying template '.\app.bicep' for application 'myapp' and environment 'default' from workspace 'default'... - + Deployment In Progress... - - + Deployment Complete - + Resources: demo Applications.Core/containers backend Applications.Core/containers mongodb Applications.Datastores/mongoDatabases - + Starting log stream... ``` @@ -352,18 +349,17 @@ Finally, you can add a gateway to your application. Gateways are used to expose ``` Building .\app.bicep... Deploying template '.\app.bicep' for application 'myapp' and environment 'default' from workspace 'default'... - + Deployment In Progress... - - + Deployment Complete - + Resources: demo Applications.Core/containers backend Applications.Core/containers gateway Applications.Core/gateways mongodb Applications.Datastores/mongoDatabases - + Public Endpoints: gateway Applications.Core/gateways http://localhost ``` @@ -375,4 +371,3 @@ Finally, you can add a gateway to your application. Gateways are used to expose ## Next steps Now that you've created your first application, try out more [tutorials]({{< ref tutorials >}}) or jump into the [user guides]({{< ref guides >}}) to learn more about Radius. - diff --git a/docs/content/tutorials/tutorial-add-radius/index.md b/docs/content/tutorials/tutorial-add-radius/index.md index 01d2ee96d..6cb5fc0ad 100644 --- a/docs/content/tutorials/tutorial-add-radius/index.md +++ b/docs/content/tutorials/tutorial-add-radius/index.md @@ -49,24 +49,24 @@ The Guestbook application consists of a web front end along with primary and sec > The `kubernetes/guestbook` directory contains the Kubernetes YAML manifest files for their Guestbook sample application, copied directly from the [Kubernetes examples repo](https://github.com/kubernetes/examples/tree/master/guestbook). 3. Initialize Radius - + Run this command to initialize Radius. For this example, answer **NO** when asked whether to set up an application: ```bash rad init ``` - + You should see output similar to: ``` - Initializing Radius... - ✅ Install Radius {{< param version >}} - - Kubernetes cluster: k3d-k3s-default - - Kubernetes namespace: radius-system - ✅ Create new environment default - - Kubernetes namespace: default - - Recipe pack: local-dev - ✅ Update local configuration + Initializing Radius... + ✅ Install Radius {{< param version >}} + - Kubernetes cluster: k3d-k3s-default + - Kubernetes namespace: radius-system + ✅ Create new environment default + - Kubernetes namespace: default + - Recipe pack: local-dev + ✅ Update local configuration Initialization complete! Have a RAD time 😎 ``` @@ -222,7 +222,7 @@ You will now add Radius to the Guestbook application's Kubernetes deployment man 2. Verify that the application successfully deployed: ```bash - kubectl get deployments -n demo; + kubectl get deployments -n demo kubectl get services -n demo ``` @@ -319,4 +319,4 @@ This output shows that Radius has detected the three container resources in the - To learn more about authoring Radius applications, visit the [Authoring applications guide]({{< ref "guides/author-apps" >}}) - To learn more about deploying applications using Radius, visit the [Deploying applications guide]({{< ref "guides/deploy-apps" >}}) -- To learn more about Radius Recipes, visit the [Recipes guide]({{< ref "guides/recipes" >}}) \ No newline at end of file +- To learn more about Radius Recipes, visit the [Recipes guide]({{< ref "guides/recipes" >}}) diff --git a/docs/content/tutorials/tutorial-dapr/index.md b/docs/content/tutorials/tutorial-dapr/index.md index 7b82b66bb..48f1b9901 100644 --- a/docs/content/tutorials/tutorial-dapr/index.md +++ b/docs/content/tutorials/tutorial-dapr/index.md @@ -32,9 +32,9 @@ For more details on the app and access to the source code, visit the `tutorials/ mkdir dapr cd dapr ``` - + 2. Initialize a new dev environment: - + *Select 'Yes' when prompted to create an application.* ```bash @@ -82,8 +82,8 @@ Begin by creating a new file named `dapr.bicep` with a Radius Application that c You should see the following output: ``` - NAMESPACE NAME TYPE VERSION SCOPES CREATED AGE - default-dapr statestore state.redis v1 2023-07-21 16:04.27 21m + NAMESPACE NAME TYPE VERSION SCOPES CREATED AGE + default-dapr statestore state.redis v1 2023-07-21 16:04.27 21m ``` ## Step 4: Define the `frontend` container diff --git a/docs/content/tutorials/tutorial-recipe/index.md b/docs/content/tutorials/tutorial-recipe/index.md index 12b63d0b0..bc2af1987 100644 --- a/docs/content/tutorials/tutorial-recipe/index.md +++ b/docs/content/tutorials/tutorial-recipe/index.md @@ -55,11 +55,11 @@ Developers don't need to specify what cloud resources they're using in their app 3. Use [`rad recipe list`]({{< ref rad_recipe_list >}}) to view the Recipes in your environment: ```bash - rad recipe list + rad recipe list ``` You should see a table of available Recipes: - + ``` NAME TYPE TEMPLATE KIND TEMPLATE VERSION TEMPLATE default Applications.Datastores/sqlDatabases bicep ghcr.io/radius-project/recipes/local-dev/sqldatabases:latest @@ -159,7 +159,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 2. Register the Recipe to your Radius Environment: ```bash - rad recipe register azure --environment default --template-kind bicep --template-path ghcr.io/radius-project/recipes/azure/rediscaches:{{< param tag_version >}} --resource-type Applications.Datastores/redisCaches + rad recipe register azure --environment default --template-kind bicep --template-path ghcr.io/radius-project/recipes/azure/rediscaches:{{< param tag_version >}} --resource-type Applications.Datastores/redisCaches ``` 3. Update your db resource to use the `azure` Recipe, instead of the default Recipe: @@ -169,7 +169,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 4. Redeploy your application to your environment: ```bash - rad deploy ./app.bicep + rad deploy ./app.bicep ``` This operation may take some time, as the 'azure' Recipe is deploying an Azure Cache for Redis resource into your Azure subscription. Once complete, you should see: @@ -193,7 +193,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 5. Use the az CLI to see your newly deployed Azure Cache for Redis: ```bash - az redis list --subscription "My Subscription" --query "[].name" + az redis list --subscription "My Subscription" --query "[].name" ``` You should see the name of your Redis cache, which is prefixed `cache`: @@ -211,7 +211,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 1. Visit [`http://localhost:3000`](http://localhost:3000) in your browser. - You can now see environment variables of your container under Radius Connections updated with the details of the Azure Cache for Redis and the Todo app now uses the Azure cache for Redis as the data store + You can now see environment variables of your container under Radius Connections updated with the details of the Azure Cache for Redis, and the Todo app now uses the Azure cache for Redis as the data store. {{< image src="todoapp.png" width="700px" alt="screenshot of the todo application" >}} @@ -247,7 +247,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 1. Deploy your application to your environment: ```bash - rad deploy ./app.bicep + rad deploy ./app.bicep ``` This operation may take some time, as the ‘aws’ Recipe is deploying an AWS MemoryDB for Redis resource in your AWS account. Once complete, you should see: @@ -276,7 +276,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou 1. Visit [`http://localhost:3000`](http://localhost:3000) in your browser. - You can now see environment variables of your container under Radius Connections updated with the details of the Amazon Memory Db for Redis and the Todo app now uses the Amazon Memory Db for Redis as the data store + You can now see environment variables of your container under Radius Connections updated with the details of the Amazon Memory Db for Redis, and the Todo app now uses the Amazon Memory Db for Redis as the data store. {{< image src="todoapp.png" width="700px" alt="screenshot of the todo application" >}} @@ -284,11 +284,10 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou {{< /tabs >}} - ## Step 5: Cleanup your environment 1. You can use the rad CLI to [delete your environment]({{< ref rad_env_delete.md >}}) and all the Radius resources running on your cluster: - + ```bash rad env delete default --yes ``` diff --git a/docs/layouts/partials/page-meta-links.html b/docs/layouts/partials/page-meta-links.html index 2e117191d..623fdcd9b 100644 --- a/docs/layouts/partials/page-meta-links.html +++ b/docs/layouts/partials/page-meta-links.html @@ -7,7 +7,7 @@ {{ $gh_branch := (default "master" ($.Param "github_branch")) }}
{{ if $gh_url }} - {{ T "post_edit_this" }} + {{ T "post_edit_this" }} {{ else if $gh_repo }} {{ $gh_repo_path := printf "%s/content/%s" $gh_branch $pathFormatted }} {{ if and ($gh_subdir) (.Site.Language.Lang) }} diff --git a/docs/layouts/partials/section-index.html b/docs/layouts/partials/section-index.html index 06635e17a..04d814f1e 100644 --- a/docs/layouts/partials/section-index.html +++ b/docs/layouts/partials/section-index.html @@ -82,10 +82,10 @@
function filterCards() { // Get the search input value var searchInput = document.getElementById('search-input').value; - + // Get all the cards var cards = document.querySelectorAll('.card'); - + // Loop through the cards and show only the ones that match the search input value for (var i = 0; i < cards.length; i++) { var card = cards[i]; diff --git a/docs/layouts/shortcodes/categorizeby.html b/docs/layouts/shortcodes/categorizeby.html index f33236cd7..2853f4674 100644 --- a/docs/layouts/shortcodes/categorizeby.html +++ b/docs/layouts/shortcodes/categorizeby.html @@ -5,7 +5,7 @@ {{ $pages := where site.Pages "Params.categories" (printf "%s" $categories) }} {{ $pages = where $pages "Params.tags" "intersect" (slice $tags ) }} -
+
 
@@ -32,12 +32,9 @@

{{ $key }}

  • {{ .Title }}
  • {{ end }} {{ end }} -
    +
    {{end}} {{ end }} {{ end }} - - - diff --git a/docs/layouts/shortcodes/redoc.html b/docs/layouts/shortcodes/redoc.html index 720e4b6fc..4f8816e0f 100644 --- a/docs/layouts/shortcodes/redoc.html +++ b/docs/layouts/shortcodes/redoc.html @@ -108,4 +108,4 @@ }, document.getElementById('redoc-container') ) - \ No newline at end of file + \ No newline at end of file diff --git a/docs/shared-content/installation/install-radius/initialize-radius.md b/docs/shared-content/installation/install-radius/initialize-radius.md index da2c78385..4f12ce4cf 100644 --- a/docs/shared-content/installation/install-radius/initialize-radius.md +++ b/docs/shared-content/installation/install-radius/initialize-radius.md @@ -2,7 +2,7 @@ Initializing Radius installs the Radius control-plane and creates a Radius Envir 1. Create a Kubernetes cluster - Radius runs inside [Kubernetes]({{< ref "guides/operations/kubernetes" >}}). Create one from the [supported k8s clusters]({{< ref "/guides/operations/kubernetes/overview#supported-kubernetes-clusters" >}}) + Radius runs inside [Kubernetes]({{< ref "guides/operations/kubernetes" >}}). Create one from the [supported k8s clusters]({{< ref "/guides/operations/kubernetes/overview#supported-kubernetes-clusters" >}}) > *If you don't have a preferred way to create Kubernetes clusters, you could try using [k3d](https://k3d.io/), which runs a minimal Kubernetes distribution in Docker.* Ensure your cluster is set as your current context: diff --git a/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md b/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md index e74e1b9db..0cb2f4f6d 100644 --- a/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md +++ b/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md @@ -20,7 +20,7 @@ To verify you've installed the extension, open any file with the .bicep file ext In VSCode, manually install the extension using the *Install from VSIX* command in the Extensions view command drop-down. Screenshot of installing a vsix extension
    - + You can also import this extension on the [command-line](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix) with: ```bash From 41c93b378aaf3caae3c645a257eb09467fde24bc Mon Sep 17 00:00:00 2001 From: Emanuel Palm Date: Mon, 27 Nov 2023 14:59:27 -0800 Subject: [PATCH 4/4] Markdown numbering consistency and updated contribution guide (#983) * explanation of numbered lists for markdown in contribution guide * numbered lists changed to 1 for all markdown Signed-off-by: Emanuel Palm --------- Signed-off-by: Emanuel Palm Signed-off-by: Aaron Crawfis Co-authored-by: Aaron Crawfis --- docs/README.md | 8 ++-- .../contributing/contributing-docs/index.md | 40 ++++++++++++------- .../concepts/architecture-concept/index.md | 12 +++--- docs/content/concepts/faq/index.md | 2 +- .../aws/howto-aws-resources/index.md | 4 +- .../azure/howto-azure-resources/index.md | 4 +- .../containers/howto-keyvault-volume/index.md | 6 +-- .../kubernetes/how-to-patch-pod/index.md | 4 +- .../environments/howto-environment/index.md | 6 +-- .../guides/deploy-apps/howto-delete/index.md | 2 +- .../control-plane/logs/fluentd/index.md | 26 ++++++------ .../control-plane/metrics/prometheus/index.md | 4 +- .../control-plane/traces/jaeger/index.md | 8 ++-- .../control-plane/traces/zipkin/index.md | 6 +-- .../providers/howto-aws-provider/index.md | 2 +- .../providers/howto-azure-provider/index.md | 5 ++- .../guides/recipes/howto-dev-recipes/index.md | 5 +-- docs/content/tutorials/helm/index.md | 28 ++++++------- .../tutorials/tutorial-add-radius/index.md | 20 +++++----- docs/content/tutorials/tutorial-dapr/index.md | 4 +- .../tutorials/tutorial-recipe/index.md | 18 ++++----- .../vscode-bicep/install-vscode-bicep.md | 10 ++--- 22 files changed, 117 insertions(+), 107 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8c464447d..3f78356f1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 diff --git a/docs/content/community/contributing/contributing-docs/index.md b/docs/content/community/contributing/contributing-docs/index.md index 9d49159fd..c0bd16afb 100644 --- a/docs/content/community/contributing/contributing-docs/index.md +++ b/docs/content/community/contributing/contributing-docs/index.md @@ -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 @@ -42,14 +42,14 @@ 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 @@ -57,20 +57,20 @@ It's easy to get up and running with a GitHub Codespace. This will give you a fu 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 @@ -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 @@ -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: @@ -177,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. diff --git a/docs/content/concepts/architecture-concept/index.md b/docs/content/concepts/architecture-concept/index.md index 372764235..108decbc7 100644 --- a/docs/content/concepts/architecture-concept/index.md +++ b/docs/content/concepts/architecture-concept/index.md @@ -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" >}} @@ -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. diff --git a/docs/content/concepts/faq/index.md b/docs/content/concepts/faq/index.md index 89b8f7197..12656ca7a 100644 --- a/docs/content/concepts/faq/index.md +++ b/docs/content/concepts/faq/index.md @@ -84,7 +84,7 @@ Yes. Radius has first-class support for [Dapr building blocks]({{< ref "/guides/ Radius leverages Kubernetes in two ways: 1. As a hosting platform for the Radius control-plane -2. As a runtime for containerized workloads +1. As a runtime for containerized workloads While Radius only supports Kubernetes today, it is architected to support other hosting platforms in the future, including serverless platforms. Radius is not a Kubernetes controller and the primary user experience is not through CRDs. Instead, Radius Applications are an abstraction layer on top of Kubernetes and other cloud platforms. diff --git a/docs/content/guides/author-apps/aws/howto-aws-resources/index.md b/docs/content/guides/author-apps/aws/howto-aws-resources/index.md index 12e5005da..d002241dc 100644 --- a/docs/content/guides/author-apps/aws/howto-aws-resources/index.md +++ b/docs/content/guides/author-apps/aws/howto-aws-resources/index.md @@ -99,7 +99,7 @@ This creates a container that will be deployed to your Kubernetes cluster. This 1. When you're done with testing, you can use the rad CLI to [delete an environment]({{< ref rad_env_delete.md >}}) to delete all Radius resources running on the EKS Cluster. -2. Cleanup AWS Resources - AWS resources are not deleted when deleting a Radius Environment, so make sure to delete all resources created in this reference app to prevent additional charges. You can delete these resources in the AWS Console or via the AWS CLI. Instructions to delete an AWS S3 Bucket are available [here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html). +1. Cleanup AWS Resources - AWS resources are not deleted when deleting a Radius Environment, so make sure to delete all resources created in this reference app to prevent additional charges. You can delete these resources in the AWS Console or via the AWS CLI. Instructions to delete an AWS S3 Bucket are available [here](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html). ## Troubleshooting @@ -107,7 +107,7 @@ If you hit errors while deploying the application, please follow the steps below 1. Check if the AWS credentials are valid. Login to the AWS console and check if the IAM access key and secret access key are valid and not expired. -2. Look at the control plane logs to see if there are any errors. You can use the following command to view the logs: +1. Look at the control plane logs to see if there are any errors. You can use the following command to view the logs: ```bash rad debug-logs diff --git a/docs/content/guides/author-apps/azure/howto-azure-resources/index.md b/docs/content/guides/author-apps/azure/howto-azure-resources/index.md index 03b4fa6ee..a9608a548 100644 --- a/docs/content/guides/author-apps/azure/howto-azure-resources/index.md +++ b/docs/content/guides/author-apps/azure/howto-azure-resources/index.md @@ -60,7 +60,7 @@ rad deploy ./app.bicep -p oidcIssuer= rad resource logs containers mycontainer -a myapp ``` -2. You should see the contents of the secret from your Key Vault: +1. You should see the contents of the secret from your Key Vault: ```txt [myapp-mycontainer-79c54bd7c7-tgdpn] I1108 18:39:53.636314 1 main.go:33] "successfully got secret" secret="supersecret" @@ -76,4 +76,4 @@ rad deploy ./app.bicep -p oidcIssuer= rad app delete myapp --yes ``` -2. Delete the deployed Azure Key Vault via the Azure portal or the Azure CLI +1. Delete the deployed Azure Key Vault via the Azure portal or the Azure CLI diff --git a/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md b/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md index 210bd5a92..927fda410 100644 --- a/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md +++ b/docs/content/guides/author-apps/containers/howto-keyvault-volume/index.md @@ -67,7 +67,7 @@ rad deploy ./app.bicep -p oidcIssuer= rad resource logs containers mycontainer -a myapp ``` -2. You should see the contents of the `/var/secrets` mount path defined in your `app.bicep` file: +1. You should see the contents of the `/var/secrets` mount path defined in your `app.bicep` file: ``` [myapp-mycontainer-d8b4fc44-qrhnn] secret context : supersecret @@ -82,5 +82,5 @@ rad deploy ./app.bicep -p oidcIssuer= ```bash rad app delete myapp --yes ``` - -2. Delete the deployed Azure Key Vault via the Azure portal or the Azure CLI + +1. Delete the deployed Azure Key Vault via the Azure portal or the Azure CLI diff --git a/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md b/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md index c1b3344eb..65afeaeb5 100644 --- a/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md +++ b/docs/content/guides/author-apps/kubernetes/how-to-patch-pod/index.md @@ -56,7 +56,7 @@ Begin by creating a file named `app.bicep` with a Radius [container]({{< ref "gu
    When you're ready to move on to the next step, use `CTRL` + `C` to exit the command. -2. Run the command below, which will list the pods in your Kubernetes cluster, using the `-o` flag to specify the relevant information to output: +1. Run the command below, which will list the pods in your Kubernetes cluster, using the `-o` flag to specify the relevant information to output: ```bash kubectl get pods -A -l app.kubernetes.io/name=demo -o custom-columns=POD:.metadata.name,STATUS:.status.phase,CONTAINER_NAMES:spec.containers[:].name,CONTAINER_IMAGES:spec.containers[:].image @@ -105,7 +105,7 @@ Add the following [`runtimes`]({{< ref "reference/resource-schema/core-schema/co
    When you're ready to move on to the next step, use `CTRL` + `C` to exit the command. -2. Run the command below, which will list the pods in your Kubernetes cluster, using the `-o` flag to specify the relevant information to output: +1. Run the command below, which will list the pods in your Kubernetes cluster, using the `-o` flag to specify the relevant information to output: ```bash kubectl get pods -A -l app.kubernetes.io/name=demo -o custom-columns=POD:.metadata.name,STATUS:.status.phase,CONTAINER_NAMES:spec.containers[:].name,CONTAINER_IMAGES:spec.containers[:].image diff --git a/docs/content/guides/deploy-apps/environments/howto-environment/index.md b/docs/content/guides/deploy-apps/environments/howto-environment/index.md index dddb7263c..b86fe8f1f 100644 --- a/docs/content/guides/deploy-apps/environments/howto-environment/index.md +++ b/docs/content/guides/deploy-apps/environments/howto-environment/index.md @@ -40,7 +40,7 @@ Radius Environments can be setup with the rad CLI via two paths: interactive or ⏳ Update local configuration ``` -2. Verify the initialization by running: +1. Verify the initialization by running: ```bash kubectl get deployments -n radius-system ``` @@ -60,9 +60,7 @@ Radius Environments can be setup with the rad CLI via two paths: interactive or ```bash rad env list ``` - -3. Use `rad recipe list` to see the list of available Recipes: - +1. Use `rad recipe list` to see the list of available Recipes: ```bash rad recipe list ``` diff --git a/docs/content/guides/deploy-apps/howto-delete/index.md b/docs/content/guides/deploy-apps/howto-delete/index.md index 5f553016d..bb7eda08a 100644 --- a/docs/content/guides/deploy-apps/howto-delete/index.md +++ b/docs/content/guides/deploy-apps/howto-delete/index.md @@ -23,7 +23,7 @@ rad app delete This will delete the following resources from the Radius Environment 1. All the resources created by Radius on the Kubernetes cluster under the `-` namespace -2. All the resources provisioned by Recipes +1. All the resources provisioned by Recipes ## Step 2: Delete any cloud/platform resources diff --git a/docs/content/guides/operations/control-plane/logs/fluentd/index.md b/docs/content/guides/operations/control-plane/logs/fluentd/index.md index 1b46e4a71..e6ac7453c 100644 --- a/docs/content/guides/operations/control-plane/logs/fluentd/index.md +++ b/docs/content/guides/operations/control-plane/logs/fluentd/index.md @@ -22,14 +22,14 @@ tags: ["logs","observability"] kubectl create namespace radius-monitoring ``` -2. Add the helm repo for Elastic Search +1. Add the helm repo for Elastic Search ```bash helm repo add elastic https://helm.elastic.co helm repo update ``` -3. Install Elastic Search using Helm +1. Install Elastic Search using Helm _By default, the chart creates three replicas which must be on different nodes. If your cluster has fewer than 3 nodes, specify a smaller number of replicas with the `--set replicas=1` flag:_ @@ -43,13 +43,13 @@ tags: ["logs","observability"] helm install elasticsearch elastic/elasticsearch --version 7.17.3 -n radius-monitoring --set persistence.enabled=false,replicas=1 ``` -4. Install Kibana +1. Install Kibana ```bash helm install kibana elastic/kibana --version 7.17.3 -n radius-monitoring ``` -5. Ensure that Elastic Search and Kibana are running in your Kubernetes cluster +1. Ensure that Elastic Search and Kibana are running in your Kubernetes cluster ```bash kubectl get pods -n radius-monitoring @@ -80,7 +80,7 @@ tags: ["logs","observability"] kubectl apply -f ./fluentd-radius-with-rbac.yaml ``` -2. Ensure that Fluentd is running as a daemonset. The number of Fluentd instances should be the same as the number of cluster nodes. In the example below, there is only one node in the cluster: +1. Ensure that Fluentd is running as a daemonset. The number of Fluentd instances should be the same as the number of cluster nodes. In the example below, there is only one node in the cluster: ```bash kubectl get pods -n kube-system -w @@ -129,37 +129,37 @@ _Note: There is a small delay for Elastic Search to index the logs that Fluentd 1. Browse to `http://localhost:5601` -2. Expand the drop-down menu and click **Management → Stack Management** +1. Expand the drop-down menu and click **Management → Stack Management** ![Stack Management item under Kibana Management menu options](kibana-1.png) -3. On the Stack Management page, select **Data → Index Management** and wait until `radius-*` is indexed. +1. On the Stack Management page, select **Data → Index Management** and wait until `radius-*` is indexed. ![Index Management view on Kibana Stack Management page](kibana-2.png) -4. Once `radius-*` is indexed, click on **Kibana → Index Patterns** and then the **Create index pattern** button. +1. Once `radius-*` is indexed, click on **Kibana → Index Patterns** and then the **Create index pattern** button. ![Kibana create index pattern button](kibana-3.png) -5. Define a new index pattern by typing `radius*` into the **Index Pattern name** field, then click the **Next step** button to continue. +1. Define a new index pattern by typing `radius*` into the **Index Pattern name** field, then click the **Next step** button to continue. ![Kibana define an index pattern page](kibana-4.png) -6. Configure the primary time field to use with the new index pattern by selecting the `@timestamp` option from the **Time field** drop-down. Click the **Create index pattern** button to complete creation of the index pattern. +1. Configure the primary time field to use with the new index pattern by selecting the `@timestamp` option from the **Time field** drop-down. Click the **Create index pattern** button to complete creation of the index pattern. ![Kibana configure settings page for creating an index pattern](kibana-5.png) -7. The newly created index pattern should be shown. Confirm that the fields of interest such as `scope`, `type`, `app_id`, `level`, etc. are being indexed by using the search box in the **Fields** tab. +1. The newly created index pattern should be shown. Confirm that the fields of interest such as `scope`, `type`, `app_id`, `level`, etc. are being indexed by using the search box in the **Fields** tab. _Note: If you cannot find the indexed field, please wait. The time it takes to search across all indexed fields depends on the volume of data and size of the resource that the elastic search is running on._ ![View of created Kibana index pattern](kibana-6.png) -8. To explore the indexed data, expand the drop-down menu and click **Analytics → Discover**. +1. To explore the indexed data, expand the drop-down menu and click **Analytics → Discover**. ![Discover item under Kibana Analytics menu options](kibana-7.png) -9. In the search box, type in a query string such as `scope:*` and click the **Refresh** button to view the results. +1. In the search box, type in a query string such as `scope:*` and click the **Refresh** button to view the results. _Note: This can take a long time. The time it takes to return all results depends on the volume of data and size of the resource that the elastic search is running on._ diff --git a/docs/content/guides/operations/control-plane/metrics/prometheus/index.md b/docs/content/guides/operations/control-plane/metrics/prometheus/index.md index 660b4e91f..809f65469 100644 --- a/docs/content/guides/operations/control-plane/metrics/prometheus/index.md +++ b/docs/content/guides/operations/control-plane/metrics/prometheus/index.md @@ -25,7 +25,7 @@ tags: ["metrics", "observability"] kubectl create namespace radius-monitoring ``` -2. Install Prometheus into your monitoring namespace: +1. Install Prometheus into your monitoring namespace: ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts @@ -39,7 +39,7 @@ tags: ["metrics", "observability"] helm install radius-prom prometheus-community/prometheus -n radius-monitoring --set alertmanager.persistentVolume.enable=false --set pushgateway.persistentVolume.enabled=false --set server.persistentVolume.enabled=false ``` -3. Validate your Prometheus installation: +1. Validate your Prometheus installation: ```bash kubectl get pods -n radius-monitoring diff --git a/docs/content/guides/operations/control-plane/traces/jaeger/index.md b/docs/content/guides/operations/control-plane/traces/jaeger/index.md index c69848960..637999290 100644 --- a/docs/content/guides/operations/control-plane/traces/jaeger/index.md +++ b/docs/content/guides/operations/control-plane/traces/jaeger/index.md @@ -24,17 +24,17 @@ The following steps show you how to configure the Radius control plane to send d kubectl create namespace radius-monitoring ``` -2. Create the file `jaeger.yaml`, and paste the following YAML: +1. Create the file `jaeger.yaml`, and paste the following YAML: {{< button text="Download jaeger.yaml" link="jaeger.yaml" >}} -3. Install Jaeger: +1. Install Jaeger: ```bash kubectl apply -f jaeger.yaml ``` -4. Wait for Jaeger to be up and running +1. Wait for Jaeger to be up and running ```bash kubectl wait deploy --selector app=jaeger --for=condition=available -n radius-monitoring @@ -58,7 +58,7 @@ The following steps show you how to configure the Radius control plane to send d kubectl port-forward svc/tracing 16686 -n radius-monitoring ``` -2. In your browser, go to [http://localhost:16686](http://localhost:16686) to see the Jaeger UI: +1. In your browser, go to [http://localhost:16686](http://localhost:16686) to see the Jaeger UI: {{< image src="jaeger_ui.png" alt="" style="width:100%" >}} diff --git a/docs/content/guides/operations/control-plane/traces/zipkin/index.md b/docs/content/guides/operations/control-plane/traces/zipkin/index.md index 498b2543b..c297e3396 100644 --- a/docs/content/guides/operations/control-plane/traces/zipkin/index.md +++ b/docs/content/guides/operations/control-plane/traces/zipkin/index.md @@ -24,7 +24,7 @@ The following steps show you how to configure the [Radius control plane]({{< ref kubectl create namespace radius-monitoring ``` -2. Deploy the Zipkin deployment and service: +1. Deploy the Zipkin deployment and service: ```bash kubectl create deployment zipkin --image openzipkin/zipkin -n radius-monitoring @@ -52,11 +52,11 @@ The following steps show you how to configure the [Radius control plane]({{< ref kubectl port-forward svc/zipkin 9411:9411 -n radius-monitoring ``` -2. In your browser, go to [http://localhost:9411](http://localhost:9411) to see the Zipkin UI and run a query: +1. In your browser, go to [http://localhost:9411](http://localhost:9411) to see the Zipkin UI and run a query: {{< image src="zipkin_ui.png" alt="" style="width:100%" >}} -3. Done! You can now use the Zipkin UI to view tracing data for your Radius control plane. +1. Done! You can now use the Zipkin UI to view tracing data for your Radius control plane. ## References diff --git a/docs/content/guides/operations/providers/howto-aws-provider/index.md b/docs/content/guides/operations/providers/howto-aws-provider/index.md index 8d5aa4042..e61f19ad2 100644 --- a/docs/content/guides/operations/providers/howto-aws-provider/index.md +++ b/docs/content/guides/operations/providers/howto-aws-provider/index.md @@ -59,7 +59,7 @@ The AWS provider allows you to deploy and connect to AWS resources from a Radius This command updates the configuration of an environment for properties that are able to be changed. For more information visit [`rad env update`]({{< ref rad_env_update >}}) -2. Add your AWS cloud provider credentials: +1. Add your AWS cloud provider credentials: ```bash rad credential register aws --access-key-id myAccessKeyId --secret-access-key mySecretAccessKey diff --git a/docs/content/guides/operations/providers/howto-azure-provider/index.md b/docs/content/guides/operations/providers/howto-azure-provider/index.md index 5d0472cb1..d55b95f9b 100644 --- a/docs/content/guides/operations/providers/howto-azure-provider/index.md +++ b/docs/content/guides/operations/providers/howto-azure-provider/index.md @@ -70,7 +70,7 @@ The Azure provider allows you to deploy and connect to Azure resources from a se rad env update myEnvironment --azure-subscription-id myAzureSubscriptionId --azure-resource-group myAzureResourceGroup ``` -2. Run `az ad sp create-for-rbac` to create a Service Principal without a role assignment and obtain your `appId`, `displayName`, `password`, and `tenant` information. +1. Run `az ad sp create-for-rbac` to create a Service Principal without a role assignment and obtain your `appId`, `displayName`, `password`, and `tenant` information. ``` { @@ -81,7 +81,8 @@ The Azure provider allows you to deploy and connect to Azure resources from a se } ``` -3. Use [`rad credential register azure`]({{< ref rad_credential_register_azure >}}) to add the Azure service principal to your Radius installation: + +1. Use [`rad credential register azure`]({{< ref rad_credential_register_azure >}}) to add the Azure service principal to your Radius installation: ```bash rad credential register azure --client-id myClientId --client-secret myClientSecret --tenant-id myTenantId diff --git a/docs/content/guides/recipes/howto-dev-recipes/index.md b/docs/content/guides/recipes/howto-dev-recipes/index.md index 8e9a6724b..69714be45 100644 --- a/docs/content/guides/recipes/howto-dev-recipes/index.md +++ b/docs/content/guides/recipes/howto-dev-recipes/index.md @@ -24,8 +24,7 @@ Local development environments created by the rad init command include a set of mkdir recipes cd recipes ``` - -2. Initialize a new dev environment: +1. Initialize a new dev environment: ```bash rad init @@ -33,7 +32,7 @@ Local development environments created by the rad init command include a set of **Select 'No' when prompted to create an application.** -3. Use [`rad recipe list`]({{< ref rad_recipe_list >}}) to view the Recipes in your environment: +1. Use [`rad recipe list`]({{< ref rad_recipe_list >}}) to view the Recipes in your environment: ```bash rad recipe list diff --git a/docs/content/tutorials/helm/index.md b/docs/content/tutorials/helm/index.md index 66bbdab64..cf6bf170d 100644 --- a/docs/content/tutorials/helm/index.md +++ b/docs/content/tutorials/helm/index.md @@ -108,7 +108,7 @@ rad init {{< alert title="💡 Redis" color="info" >}} For now you're not going to actually deploy Redis and the URL in this step is fake. You will deploy Redis using a Recipe later in the tutorial that will replace the fake URL contained within `redis-secret` with an actual container and URL.{{< /alert >}} -2. Complete these steps by running the following commands: +1. Complete these steps by running the following commands: ```bash kubectl create namespace demo @@ -137,7 +137,7 @@ rad init {{< alert title="⚠️ Chart Directory" color="warning" >}} If you see an error message like **Error: path "./Chart" not found** then you are in the wrong directory. Make sure your terminal is in the `./demo` directory of the `samples` repository.{{< /alert >}} -3. Run the following command to check if everything is running: +1. Run the following command to check if everything is running: ```bash kubectl get all -n demo @@ -198,7 +198,7 @@ From here you will go through a series of steps to incrementally add more Radius Adding the `radapp.io/enabled: 'true'` annotation enables Radius for the deployment. -2. Save the file after you have made the edits and deploy the application again using Helm. Since the namespace and secret have already been created, we only need to run the `helm` command. +1. Save the file after you have made the edits and deploy the application again using Helm. Since the namespace and secret have already been created, we only need to run the `helm` command. ```bash helm upgrade demo ./Chart -n demo --install @@ -219,7 +219,7 @@ From here you will go through a series of steps to incrementally add more Radius You should confirm that your output contains `REVISION: 2`, that means that the changes were applied. -3. Run the following command to confirm that everything is running: +1. Run the following command to confirm that everything is running: ```bash kubectl get all -n demo @@ -241,7 +241,7 @@ From here you will go through a series of steps to incrementally add more Radius Notice that the `AGE` of `pod/webapp-...` reflects the time of your **first** deployment. Enabling Radius for an application does not change any of its behaviors, so Kubernetes did not need to restart the container. -4. Now that Radius has been enabled, run this command to display the state of the Radius application: +1. Now that Radius has been enabled, run this command to display the state of the Radius application: ```bash rad app graph -a demo -g default-demo @@ -301,7 +301,7 @@ In this step you will: In a production environment you can substitute recipes that will create cloud or on-premises dependencies instead. {{< /alert >}} -2. Make sure the `app.yaml` file from `./demo/Chart/templates/app.yaml` is open in your editor. At the bottom of the file add the following text, including the `---`: +1. Make sure the `app.yaml` file from `./demo/Chart/templates/app.yaml` is open in your editor. At the bottom of the file add the following text, including the `---`: ```yaml --- @@ -320,7 +320,7 @@ In this step you will: - The `.spec.type` field defines the type of resource to create. `Applications.Datastores/redisCaches` is the type for a Redis Cache. - The `.spec.secretName` field tells Radius where to store connection information. This is optional, and should be used to interoperate with other Kubernetes technologies that read from secrets. This tutorial example uses the secret to populate an environment variable. -3. Save the file after you have made the edits and deploy the application again using Helm. Since the namespace and secret have already been created, you only need to run the `helm` command. +1. Save the file after you have made the edits and deploy the application again using Helm. Since the namespace and secret have already been created, you only need to run the `helm` command. ```bash helm upgrade demo ./Chart -n demo --install @@ -341,7 +341,7 @@ In this step you will: This time you should see `REVISION: 3`. -4. Now that you are using a Recipe, you should see more resources running in Kubernetes. Run the following command: +1. Now that you are using a Recipe, you should see more resources running in Kubernetes. Run the following command: ```bash kubectl get all -n demo @@ -374,7 +374,7 @@ In this step you will: {{< alert title="⚠️ Missing resources" color="warning" >}} If you do not see the additional resources starting with `redis-` then it's likely they are in a different Kubernetes namespace. Run `kubectl get all -A` to see everything.{{< /alert >}} -5. Now that you have added a Recipe, run this command to display the state of the Radius application: +1. Now that you have added a Recipe, run this command to display the state of the Radius application: ```bash rad app graph -a demo -g default-demo @@ -406,7 +406,7 @@ In this step you will: The Redis Cache created by the recipe is visible as part of the application. You can also see the `Resources` created in Kubernetes that make up the Redis Cache. In a previous step you saw these listed by `kubectl`. Since Radius deployed the Recipe, it knows that these resources *logically* are part of the Redis Cache in the application. -6. You can also see the contents of `redis-secret` as created by Radius. Run the following command: +1. You can also see the contents of `redis-secret` as created by Radius. Run the following command: ```bash kubectl get secret -n demo redis-secret -o yaml @@ -476,7 +476,7 @@ Make sure the `app.yaml` file from `./demo/Chart/templates/app.yaml` is open in Since you're using a connection called `redis`, Radius will automatically define the `CONNECTION_REDIS_URL` environment variable. The prefix of `CONNECTION_REDIS_` will be combined with each of the settings that you could see in the `redis-secret` secret in the previous step. -2. You can remove the manual definition of `CONNECTION_REDIS_URL` from `app.yaml` since Radius will provide it automatically. Find the `env` property and delete all of its contents. You can also remove `.spec.secretName` from the `Recipe`. +1. You can remove the manual definition of `CONNECTION_REDIS_URL` from `app.yaml` since Radius will provide it automatically. Find the `env` property and delete all of its contents. You can also remove `.spec.secretName` from the `Recipe`. The final contents of `app.yaml` should look like: @@ -513,7 +513,7 @@ Make sure the `app.yaml` file from `./demo/Chart/templates/app.yaml` is open in type: Applications.Datastores/redisCaches ``` -3. Save the file after you have made the edits and deploy the application again using Helm. +1. Save the file after you have made the edits and deploy the application again using Helm. ```bash helm upgrade demo ./Chart -n demo --install @@ -567,7 +567,7 @@ Make sure the `app.yaml` file from `./demo/Chart/templates/app.yaml` is open in Depending on the timing you may see pods in the `Terminating` state. This is normal as old replicas take some time to shut down. -4. Check the Radius status again. Now Radius is aware of the connection from `webapp->db`: +1. Check the Radius status again. Now Radius is aware of the connection from `webapp->db`: ```bash rad app graph -a demo -g default-demo @@ -614,7 +614,7 @@ In this step you can access the application and explore its features. Since the You can use the homepage to view information about the container and its settings. -2. Navigate to the ToDo List tab and test out the application. Using the ToDo page will update the saved state in Redis. +1. Navigate to the ToDo List tab and test out the application. Using the ToDo page will update the saved state in Redis. Screenshot of the todolist

    diff --git a/docs/content/tutorials/tutorial-add-radius/index.md b/docs/content/tutorials/tutorial-add-radius/index.md index 6cb5fc0ad..9ec1f3500 100644 --- a/docs/content/tutorials/tutorial-add-radius/index.md +++ b/docs/content/tutorials/tutorial-add-radius/index.md @@ -40,7 +40,7 @@ The Guestbook application consists of a web front end along with primary and sec git clone https://github.com/radius-project/samples.git ``` -2. Navigate to the `samples/kubernetes/guestbook` directory: +1. Navigate to the `samples/kubernetes/guestbook` directory: ```bash cd samples/kubernetes/guestbook @@ -48,7 +48,7 @@ The Guestbook application consists of a web front end along with primary and sec > The `kubernetes/guestbook` directory contains the Kubernetes YAML manifest files for their Guestbook sample application, copied directly from the [Kubernetes examples repo](https://github.com/kubernetes/examples/tree/master/guestbook). -3. Initialize Radius +1. Initialize Radius: Run this command to initialize Radius. For this example, answer **NO** when asked whether to set up an application: @@ -78,13 +78,13 @@ Step 2: Deploy and test the existing Guestbook application using `kubectl` kubectl create namespace demo ``` -2. Create and deploy the Guestbook application to the `demo` namespace: +1. Create and deploy the Guestbook application to the `demo` namespace: ```bash kubectl apply -n demo -f ./deploy ``` -3. Verify that the application successfully deployed: +1. Verify that the application successfully deployed: ```bash kubectl get all -n demo @@ -117,7 +117,7 @@ Step 2: Deploy and test the existing Guestbook application using `kubectl` replicaset.apps/frontend-77dfc58d7c 3 3 3 10s ``` -4. Validate that the application is running as expected: +1. Validate that the application is running as expected: Run this command to port forward the Guestbook application to port `8080` on your local machine: @@ -131,7 +131,7 @@ Step 2: Deploy and test the existing Guestbook application using `kubectl` Terminate the port forwarding process by pressing `CTRL+C` in your terminal. -5. Confirm that Radius has not yet been added: +1. Confirm that Radius has not yet been added: Run this command to view the state of your application using Radius: @@ -209,7 +209,7 @@ You will now add Radius to the Guestbook application's Kubernetes deployment man - containerPort: 80 ``` -2. Save your changes to the YAML files. +1. Save your changes to the YAML files. ## Step 4: Deploy and test the updated Guestbook application using `kubectl` @@ -219,7 +219,7 @@ You will now add Radius to the Guestbook application's Kubernetes deployment man kubectl apply -n demo -f ./deploy ``` -2. Verify that the application successfully deployed: +1. Verify that the application successfully deployed: ```bash kubectl get deployments -n demo @@ -239,7 +239,7 @@ You will now add Radius to the Guestbook application's Kubernetes deployment man redis-replica ClusterIP 10.43.118.183 6379/TCP 10m ``` -3. Validate that the application is running as expected: +1. Validate that the application is running as expected: Once again, run this command to port forward the Guestbook application to port `8080` on your local machine: @@ -303,7 +303,7 @@ This output shows that Radius has detected the three container resources in the service "redis-replica" deleted ``` -2. Run the following command to delete the `demo` namespace: +1. Run the following command to delete the `demo` namespace: ```bash kubectl delete namespace demo diff --git a/docs/content/tutorials/tutorial-dapr/index.md b/docs/content/tutorials/tutorial-dapr/index.md index 48f1b9901..fedb7020e 100644 --- a/docs/content/tutorials/tutorial-dapr/index.md +++ b/docs/content/tutorials/tutorial-dapr/index.md @@ -32,8 +32,8 @@ For more details on the app and access to the source code, visit the `tutorials/ mkdir dapr cd dapr ``` - -2. Initialize a new dev environment: + +1. Initialize a new dev environment: *Select 'Yes' when prompted to create an application.* diff --git a/docs/content/tutorials/tutorial-recipe/index.md b/docs/content/tutorials/tutorial-recipe/index.md index bc2af1987..23ff53618 100644 --- a/docs/content/tutorials/tutorial-recipe/index.md +++ b/docs/content/tutorials/tutorial-recipe/index.md @@ -44,7 +44,7 @@ Developers don't need to specify what cloud resources they're using in their app mkdir recipes cd recipes ``` -2. Initialize a new dev environment: +1. Initialize a new dev environment: ```bash rad init @@ -52,7 +52,7 @@ Developers don't need to specify what cloud resources they're using in their app **Select 'Yes' when prompted to create an application.** -3. Use [`rad recipe list`]({{< ref rad_recipe_list >}}) to view the Recipes in your environment: +1. Use [`rad recipe list`]({{< ref rad_recipe_list >}}) to view the Recipes in your environment: ```bash rad recipe list @@ -114,7 +114,7 @@ Note that no Recipe name is specified with 'db', so it will be using the default Your application is now deployed and running in your Kubernetes cluster. -2. List your Kubernetes Pods to see the infrastructure container deployed by the Recipe: +1. List your Kubernetes Pods to see the infrastructure container deployed by the Recipe: ```bash kubectl get pods -n default-recipes @@ -128,13 +128,13 @@ Note that no Recipe name is specified with 'db', so it will be using the default redis-ymbjcqyjzwkpg-66fdbf8bb6-brb6q 2/2 Running 0 13m ``` -3. Port-forward the container to your machine with `rad resource expose`: +1. Port-forward the container to your machine with `rad resource expose`: ```bash rad resource expose containers frontend --port 3000 ``` -4. Visit [`http://localhost:3000`](http://localhost:3000) in your browser. +1. Visit [`http://localhost:3000`](http://localhost:3000) in your browser. You can now see both the environment variables of your container under Radius Connections as well as interact with the `Todo App` and add/remove items in it as wanted: @@ -156,17 +156,17 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou Follow the steps [here]({{< ref "howto-azure-provider#manual-configuration" >}}) to add the Azure cloud provider to your existing environment. -2. Register the Recipe to your Radius Environment: +1. Register the Recipe to your Radius Environment: ```bash rad recipe register azure --environment default --template-kind bicep --template-path ghcr.io/radius-project/recipes/azure/rediscaches:{{< param tag_version >}} --resource-type Applications.Datastores/redisCaches ``` -3. Update your db resource to use the `azure` Recipe, instead of the default Recipe: +1. Update your db resource to use the `azure` Recipe, instead of the default Recipe: {{< rad file="snippets/app-azure.bicep" marker="//DB" embed=true >}} -4. Redeploy your application to your environment: +1. Redeploy your application to your environment: ```bash rad deploy ./app.bicep @@ -190,7 +190,7 @@ This step requires an Azure subscription or an AWS account to deploy cloud resou db Applications.Datastores/redisCaches ``` -5. Use the az CLI to see your newly deployed Azure Cache for Redis: +1. Use the az CLI to see your newly deployed Azure Cache for Redis: ```bash az redis list --subscription "My Subscription" --query "[].name" diff --git a/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md b/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md index 0cb2f4f6d..e5af7e5f0 100644 --- a/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md +++ b/docs/shared-content/installation/vscode-bicep/install-vscode-bicep.md @@ -8,15 +8,15 @@ You can only have one VSCode Bicep extension installed at a time. To build on Ra Screenshot of Radius Bicep extension in VSCode Marketplace

    -2. Select Install +1. Select Install To verify you've installed the extension, open any file with the .bicep file extension and start [authoring Radius application]({{< ref author-apps >}}) to verify the auto-complete and other validation features. {{< /latest >}} {{< edge >}} 1. Visit the [GitHub Actions runs](https://github.com/radius-project/bicep/actions/workflows/radius-build.yml?query=event%3Apush+branch%3Abicep-extensibility) -2. Click on the latest successful run -3. Scroll down to Artifacts and download `release` -4. Extract the archive and Install the `rad-vscode-bicep.vsix` file: +1. Click on the latest successful run +1. Scroll down to Artifacts and download `release` +1. Extract the archive and Install the `rad-vscode-bicep.vsix` file: In VSCode, manually install the extension using the *Install from VSIX* command in the Extensions view command drop-down. Screenshot of installing a vsix extension
    @@ -28,6 +28,6 @@ To verify you've installed the extension, open any file with the .bicep file ext ``` If you're on macOS, make sure to [setup the `code` alias](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line). -5. If running on Windows Subsystem for Linux (WSL), make sure to install the extension in WSL as well:
    +1. If running on Windows Subsystem for Linux (WSL), make sure to install the extension in WSL as well:
    Screenshot of installing a vsix extension in WSL {{< /edge >}}