-
Notifications
You must be signed in to change notification settings - Fork 49
Revamp installation how-to guides #1568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Reshrahim
wants to merge
32
commits into
edge
Choose a base branch
from
re/installation
base: edge
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
86702e3
Installation how-to
Reshrahim 88d0754
Revert install command
Reshrahim e8db5c3
Revert install command
Reshrahim d255ee9
Fix build
Reshrahim 72c1f37
Merge branch 'edge' into re/installation
Reshrahim c62ebc2
Update uninstall guides
Reshrahim ae57f81
Updates
Reshrahim 1213832
Rebase
Reshrahim 34fc599
Rebase
Reshrahim 331bd17
Update installation
Reshrahim 04a6e07
Shortcode
Reshrahim aa93180
Shortcode
Reshrahim 8e20c37
Upd link
Reshrahim 8e8c98f
Upd shortcode
Reshrahim c2ef714
Updates
Reshrahim 709fd64
Merge uninstall into install
Reshrahim 4568f52
UnMerge uninstall from install
Reshrahim 3080c88
Remove uninstall merge updates
Reshrahim 9c49e95
Revamp installation
Reshrahim ff29c35
Installation guide updates
Reshrahim a9c692c
FIX LINK
Reshrahim a9898b6
Fix style
Reshrahim 3f4eb44
Fix style
Reshrahim 79dc781
Updates
Reshrahim dd7cc19
Updates to rollback and upgrade
Reshrahim 3def165
Add upgrade docs
Reshrahim bdd90ae
Merge conflict
Reshrahim 8665d59
Updates
Reshrahim 93e9db0
Updates
Reshrahim 1fecb53
Resolve conflicts
Reshrahim cef9c42
Address feedback-1)
Reshrahim 659c127
Merge branch 'edge' into re/installation
Reshrahim File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,88 +1,110 @@ | ||
| // Code formatting. | ||
| /* ---- Code block overrides (Chroma + Highlight.js) ---- */ | ||
|
|
||
| .highlight .copy-icon { | ||
| position: absolute; | ||
| right: 20px; | ||
| top: 18px; | ||
| opacity: 0.7; | ||
| /* Ensure the copy icon is always visible and positioned */ | ||
| .td-content .highlight { | ||
| position: relative; /* anchor for absolutely positioned copy icon */ | ||
| } | ||
|
|
||
|
|
||
| .highlight pre { | ||
| /* Avoid pushing up the copy buttons. */ | ||
| margin: 0; | ||
| /* --- Copy icon: always visible and colored --- */ | ||
| .td-content .highlight { | ||
| position: relative; | ||
| } | ||
|
|
||
| .td-content { | ||
|
|
||
| // Highlighted code. | ||
| .highlight { | ||
| @extend .card; | ||
|
|
||
| margin: 0rem 0; | ||
| padding: 0rem; | ||
|
|
||
| margin-bottom: 2rem; | ||
|
|
||
| max-width: 100%; | ||
|
|
||
| border: none; | ||
|
|
||
| pre { | ||
| margin: 0; | ||
| padding: 1rem; | ||
| border-radius: 10px; | ||
| } | ||
| /* Always visible */ | ||
| .td-content .highlight .copy-icon { | ||
| position: absolute; | ||
| right: 20px; | ||
| top: 18px; | ||
| z-index: 2; | ||
|
|
||
| /* Always show */ | ||
| opacity: 1 !important; | ||
| visibility: visible !important; | ||
| pointer-events: auto; | ||
| transition: none !important; | ||
|
|
||
| /* 🔹 Visual style */ | ||
| background-color: #444; /* primary blue, adjust as needed */ | ||
| color: #ffffff; /* white icon/text */ | ||
| border: none; | ||
| border-radius: 6px; | ||
| padding: 6px 8px; | ||
| font-size: 0.85rem; | ||
| cursor: pointer; | ||
| display: flex; | ||
| align-items: center; | ||
| justify-content: center; | ||
|
|
||
| &:hover { | ||
| background-color: #444; /* darker blue on hover */ | ||
| } | ||
| } | ||
|
|
||
| table td:nth-child(2) { | ||
| display: grid; | ||
| background-color: #fff; | ||
| /* Make ALL code block surfaces light grey, regardless of renderer */ | ||
| .td-content .highlight, | ||
| .td-content .highlight pre, | ||
| .td-content .highlight table, | ||
| .td-content .highlight td, | ||
| .td-content pre, | ||
| .td-content pre > code, | ||
| .td-content .chroma, | ||
| .td-content .chroma .hl, | ||
| .td-content code[class*="language-"], | ||
| .td-content pre[class*="language-"] { | ||
| background-color: #f5f5f5 !important; /* light grey */ | ||
| color: #1a1a1a; /* readable text */ | ||
| border-radius: 10px; | ||
| } | ||
|
|
||
| pre { | ||
| border-radius: 0px 0px 0px 0px; | ||
| } | ||
| } | ||
| } | ||
| /* Fix the table layout Chroma uses so the grey fills the code cell */ | ||
| .td-content .highlight table { | ||
| width: 100%; | ||
| border-collapse: separate; | ||
| border-spacing: 0; | ||
| } | ||
|
|
||
| // Inline code | ||
| p code, | ||
| li>code, | ||
| table code { | ||
| color: inherit; | ||
| padding: 0.2em 0.4em; | ||
| margin: 0; | ||
| font-size: 85%; | ||
| word-break: normal; | ||
| background-color: rgba($black, 0.05); | ||
| border-radius: $border-radius; | ||
| .td-content .highlight td { | ||
| border: 0; | ||
| padding: 0; | ||
| } | ||
|
|
||
| br { | ||
| display: none; | ||
| } | ||
| } | ||
| /* Keep inner <pre> edges flush when inside the table wrapper */ | ||
| .td-content .highlight table td:nth-child(2) pre { | ||
| border-radius: 0 0 0 0; | ||
| margin: 0; | ||
| padding: 1rem; | ||
| } | ||
|
|
||
| /* Override Chroma inline string/link color (yellow) for better readability */ | ||
| .td-content .highlight span[style*="#e6db74"], | ||
| .td-content .highlight span[style*="#f1fa8c"], | ||
| .td-content pre span[style*="#e6db74"], | ||
| .td-content pre span[style*="#f1fa8c"] { | ||
| color: #1d4ed8 !important; | ||
| } | ||
|
|
||
| // Code blocks | ||
| pre { | ||
| word-wrap: normal; | ||
| background-color: $gray-100; | ||
| padding: $spacer; | ||
| /* Generic <pre> blocks outside .highlight */ | ||
| .td-content pre { | ||
| margin: 0; | ||
| padding: 1rem; | ||
| word-wrap: normal; | ||
| } | ||
|
|
||
| max-width: 100%; | ||
| /* Inline code stays subtle */ | ||
| .td-content p code, | ||
| .td-content li > code, | ||
| .td-content table code { | ||
| background-color: rgba(0, 0, 0, 0.05); | ||
| } | ||
|
|
||
| >code { | ||
| background-color: inherit !important; | ||
| padding: 0; | ||
| margin: 0; | ||
| font-size: 100%; | ||
| word-break: normal; | ||
| white-space: pre; | ||
| border: 0; | ||
| } | ||
| } | ||
| /* Override string color (yellow) in code blocks */ | ||
| .td-content .highlight .chroma .s, | ||
| .td-content .highlight .chroma .s1, | ||
| .td-content .highlight .chroma .s2 { | ||
| color: #0a66c2 !important; /* example: Azure blue */ | ||
| } | ||
|
|
||
| pre.mermaid { | ||
| background-color: inherit; | ||
| font-size: 0; | ||
| } | ||
| } | ||
| /* Or neutralize syntax coloring for a more uniform look */ | ||
| .td-content .highlight .chroma * { | ||
| color: #1a1a1a !important; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| --- | ||
| type: docs | ||
| title: "Installation Guide" | ||
| linkTitle: "Installation" | ||
| description: "Learn how to install and manage Radius" | ||
| weight: 100 | ||
| --- | ||
|
|
||
| Radius installation spans across your Kubernetes cluster, developer workstations, and OCI registries to deliver the platform's capabilities. Use this page as your installation planning checklist and understand how each component fits into the deployment. | ||
|
|
||
| ## Installation Components | ||
|
|
||
| ### Radius components | ||
|
|
||
| - **Radius CLI (`rad`)** – The installer places `rad` binary on your PATH and downloads the bundled `rad-bicep` compiler to compile and deploy the Applications. | ||
|
|
||
| - **Radius control plane** – The Helm chart deploys the Controller, Universal Control Plane (UCP), Applications RP, Dynamic RP, Deployment Engine, and optional Dashboard and Contour. All these components run in the `radius-system` namespace. | ||
|
|
||
| - **Ingress or gateway controller** – Radius installs Contour as the ingress controller by default. You can skip installing it and any alternative must be configured to route traffic to the Radius APIs. | ||
|
|
||
| - **Dashboard** – The Backstage based UI for managing Radius resources. You can disable it during installation. | ||
|
|
||
| - **Bicep extensions** – Radius packages Resource Type definitions as Bicep extensions stored in OCI registries or a file share. To use the Resource Types in your application, a workstation or CI runner must have config file (`bicepconfig.json`) that points to the extensions. Checkout the [how-to generate Bicep extensions](TODO) for more information. | ||
|
|
||
| ### External tools and services Radius interacts with | ||
|
|
||
| - **OCI registries** – Hosts the Radius control-plane images, Bicep extensions, and Recipes (for example GHCR or ACR). Ensure authentication is setup if working off a private network or of the Recipes and extensions are stored in private registries. Checkout the [how-to publish Recipes](TODO) and [how-to publish Bicep extensions](TODO) for more information. | ||
|
|
||
| - **Git repositories** – Terraform based Recipes are stored in Git repositories. Ensure authentication is set up if the repositories are private. Checkout the [Recipe guides]({{< ref "/guides/recipes" >}}) for more information. | ||
|
|
||
| - **Observability back ends** – Prometheus and Zipkin/Jaeger endpoints collect metrics and traces using the chart settings. Checkout the [Observability guide](TODO) for more information. | ||
|
|
||
| ## Installation Requirements | ||
|
|
||
| ### Kubernetes requirements | ||
|
|
||
| Building on the [technical architecture overview]({{< ref "concepts/#technical-architecture" >}}), Radius runs on Kubernetes and exposes its Universal Control Plane (UCP) through the Kubernetes API aggregation layer. Hence, installing Radius requires **cluster-admin permissions**, so it can register CRDs, namespaces, and RBAC objects. | ||
|
|
||
| {{< tabs AKS EKS k3d kind>}} | ||
| {{% codetab %}} | ||
|
|
||
| Visit the [Azure docs](https://docs.microsoft.com/azure/aks/learn/quick-kubernetes-deploy-portal?tabs=azure-cli) to set up an AKS cluster. | ||
|
|
||
| {{% /codetab %}} | ||
| {{% codetab %}} | ||
|
|
||
| Visit [AWS docs](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) to set up an EKS cluster. | ||
| {{% /codetab %}} | ||
| {{% codetab %}} | ||
|
|
||
| [k3d](https://k3d.io) is a lightweight wrapper to run [k3s](https://github.com/rancher/k3s) (Rancher Lab’s minimal Kubernetes distribution) in Docker. | ||
|
|
||
| First, ensure that memory resource is 8GB or more in `Resource` setting of `Preferences` if you're using Docker Desktop. Also make sure you've enabled Rosetta if you're running on an Apple M1 chip: | ||
|
|
||
| Use the following command to create a new cluster and install the Radius control plane | ||
|
|
||
| ```bash | ||
| k3d cluster create -p "8081:80@loadbalancer" --k3s-arg "--disable=traefik@server:*" --k3s-arg "--disable=servicelb@server:*" | ||
| ``` | ||
|
|
||
| - The first parameter adds a port mapping which routes traffic from the local machine into the cluster. | ||
| - The second parameter disables [`traefik`](https://k3d.io/v5.1.0/usage/k3s/#traefik) pods because Radius provides an ingress controller. | ||
| - The third parameter disables the [k3d internal load balancer](https://k3d.io/v5.1.0/usage/k3s/#servicelb-klipper-lb). | ||
|
|
||
| Next install the Radius control plane with an override of the default public endpoint: | ||
|
|
||
| ```bash | ||
| rad install kubernetes --set rp.publicEndpointOverride=localhost:8081 | ||
| ``` | ||
| {{% /codetab %}} | ||
| {{% codetab %}} | ||
|
|
||
| [Kind](https://kind.sigs.k8s.io/) is a tool for running local Kubernetes clusters inside Docker containers. Use the following setup to create a new cluster and install the Radius control plane, along with a new environment: | ||
|
|
||
| First, ensure that memory resource is 8GB or more in `Resource` setting of `Preferences` if you're using Docker Desktop. Also make sure you've enabled Rosetta if you're running on an Apple M1 chip: | ||
|
|
||
| Second, copy the text below into a new file `kind-config.yaml`: | ||
|
|
||
| ```yaml | ||
| kind: Cluster | ||
| apiVersion: kind.x-k8s.io/v1alpha4 | ||
| nodes: | ||
| - role: control-plane | ||
| - role: worker | ||
| extraPortMappings: | ||
| - containerPort: 80 | ||
| hostPort: 8080 | ||
| listenAddress: "0.0.0.0" | ||
| - containerPort: 443 | ||
| hostPort: 8443 | ||
| listenAddress: "0.0.0.0" | ||
| ``` | ||
|
|
||
| Then, create a kind cluster with this config and initialize your Radius Environment: | ||
| ```bash | ||
| # Create the kind cluster | ||
| kind create cluster --config kind-config.yaml | ||
| ``` | ||
|
|
||
| {{% /codetab %}} | ||
| {{< /tabs >}} | ||
|
|
||
| #### Other tooling requirements | ||
|
|
||
| - `kubectl` to troubleshoot installations. Radius CLI uses the active kubeconfig context. | ||
|
|
||
| - If you plan to install directly with Helm, use Helm 3 or later. | ||
|
|
||
| - Install [Node.js](https://nodejs.org/) to generate or publish Bicep extensions. | ||
|
|
||
| - Ensure you can authenticate to your registries (`docker login`/`az acr login`) from any workstation or CI runner that will push Recipes, Bicep extensions, or mirrored control-plane images if working off a private network. | ||
|
|
||
| Use the following how-to guides to install, upgrade, and maintain Radius. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@willdavsmith may have more information here