Skip to content
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

Add info about C2 cluster #396

Merged
merged 17 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 45 additions & 40 deletions public-site/docs/docs/topic-domain-names/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,95 +4,100 @@ title: Domain names

# Domain names

There can be several domain names mapped to [application components](/start/radix-concepts/index.md#component) in Radix. In general you will want to use the [public name](#public-name), but you should understand all options.
There can be several domain names mapped to [application components](/start/radix-concepts/index.md#component) in Radix.

:::tip Domain names
Some domain names include a `clusterEnvNamepace` component. This varies depending on the type of cluster. In Radix there are two(three) **cluster types**; these are the values for `clusterEnvNamepace` in each type
The domain names are composed with information from the application, and the [Radix cluster](../../start/radix-clusters/) where the application is hosted:

- platform (_blank_) - (eu-"weeknumber")
- playground (`playground`) - (playground-"weeknumber")
- (dev (`dev`))
:::

## Canonical name

```text
[componentName]-[appName]-[envName].[clusterName].[clusterEnvNamepace].radix.equinor.com
```

The authoritative name for a specific component in a specific cluster. The _canonical name_ can be useful when debugging, however.

- Always allocated
- Automatically allocated
- One per component

Examples:

- `frontend-myapp-production.playground-92.playground.radix.equinor.com`
- `backend-myapp-production.playground-92.playground.radix.equinor.com`
- `serializer-oneapp-qa.eu-12.radix.equinor.com`
- `component-name`: The name of the component, e.g. `frontend`.
- `app-name`: The name of the application, e.g. `myapp`.
- `env-name`: The name of the environment where the component is deployed to, e.g. `production`.
- `cluster-name`: The name of the underlying Kubernetes cluster used for hosting a specific [Radix cluster](../../start/radix-clusters/), e.g. `eu-18`. This value can change, for example during upgrade of a Radix cluster. Domain names using this value should only be used for debugging purposes, and should never be used by end users/services.
nilsgstrabo marked this conversation as resolved.
Show resolved Hide resolved
- `cluster-dns-zone`: The DNS zone for the [Radix cluster](../../start/radix-clusters/) where the application is hosted, e.g. `radix.equinor.com`.
nilsgstrabo marked this conversation as resolved.
Show resolved Hide resolved

## Public name

```text
[componentName]-[appName]-[envName].[clusterEnvNamepace].radix.equinor.com
[component-name]-[app-name]-[env-name].[cluster-dns-zone]
```

- Automatically allocated
- One per component
nilsgstrabo marked this conversation as resolved.
Show resolved Hide resolved

Examples:

- `frontend-myapp-production.playground.radix.equinor.com`
- `backend-myapp-production.playground.radix.equinor.com`
- `serializer-oneapp-qa.radix.equinor.com`
- `frontend-myapp-production.c2.radix.equinor.com`
- `backend-myapp-production.playground.radix.equinor.com`

## App default alias

```text
[appName].app.[clusterEnvNamepace].radix.equinor.com
[app-name].app.[cluster-dns-zone]
```

The _app default alias_ is a convenience domain name to make it easier to publish and use your application. It points to a specific component and environment in your application, and allows a reasonable URL to be distributed to end-users without the hassle of setting up [external aliases](#external-alias).
The _app default alias_ is a convenience domain name to make it easier to publish and use your application. It points to a specific component and environment in your application, and allows a reasonable URL to be distributed to end users/services without the hassle of setting up [external aliases](#external-alias).

- One per application
- [Defined in `radixconfig.yaml`](/radix-config/index.md#dnsappalias)

Examples:

- `myapp.app.playground.radix.equinor.com`
- `oneapp.app.radix.equinor.com`
- `otherapp.app.c2.radix.equinor.com`
- `myapp.app.playground.radix.equinor.com`

## App alias

```text
[appName].[clusterEnvNamepace].radix.equinor.com
[subdomain].[cluster-dns-zone]
```
`dnsAlias` creates one or several DNS aliases in the form of `<alias>.radix.equinor.com` for the specified environment and component. There are few reserved aliases which cannot be used:

- Difference from App default alias - it does not have `app.` domain before `radix.equinor.com` and there can be multiple aliases per application, per environment, per component
The _app alias_ allows you to configure a custom subdomain in the `[cluster-dns-zone]` where the application is hosted. With the exception of a few reserved names, the rule is _"first come, first served"_.


- Multiple allowed per component
- [Defined in `radixconfig.yaml`](/radix-config/index.md#dnsalias)

Examples:

- `myapp.playground.radix.equinor.com`
- `oneapp.radix.equinor.com`
- `otherapp.c2.radix.equinor.com`
- `myapp.playground.radix.equinor.com`

## External alias

```text
[whatever]
[a valid external DNS name]
```

For ultimate customisation of your domain names, you can "bring your own" domain into Radix with an _external alias_. There is a [detailed guide](/guides/external-alias/) on how to configure this.

- Multiple allowed per component
- [Defined in `radixconfig.yaml`](/radix-config/index.md#dnsexternalalias)
- Requires external DNS alias management
- Requires custom TLS certificate
- Bring your own TLS certificate, or let Radix handle it
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Bring your own TLS certificate, or let Radix handle it
- Bring your own TLS certificate, or let Radix to handle it

Should we add a link to docs where it is described how Radix can handle it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added links to manual and automatic TLS certs


Examples:

- `myapp.equinor.com`
- `www.mydomain.com`
## Canonical name

```text
[component-name]-[app-name]-[env-name].[cluster-name].[cluster-dns-zone]
```

The authoritative name for a specific component in a specific Kubernetes- and Radix-cluster.

- Automatically allocated
- One per component

:::warning
The _canonical name_ should never be used by end users/services because `[cluster-name]` is not considered stable, and can change without warning.
:::

Examples:

- `cowabunga.equinor.com`
- `cheap-domains-r-us.net`
- `go0gle.com`
- `serializer-oneapp-qa.eu-18.radix.equinor.com`
- `frontend-myapp-production.c2-11.c2.radix.equinor.com`
- `backend-myapp-production.playground-92.playground.radix.equinor.com`
4 changes: 2 additions & 2 deletions public-site/docs/docs/topic-dynatrace-int/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ spec:
- DT_CONNECTION_POINT # formattedCommunicationEndpoints from response
```

After changing your `radixconfig.yaml` file and pushing the changes, you must log in to your Application Configuration page in [Radix Console](https://console.radix.equinor.com) and paste in the PaaS-Token in **Private image hubs** under **App Secrets**.
Then you must update environment secrets in each component with corresponding Dynatrace configuration: `DT_TENANT`, `DT_TENANTTOKEN` (`tenantToken`) and `DT_CONNECTION_POINT` (`formattedCommunicationEndpoints`).
After changing your `radixconfig.yaml` file and pushing the changes, you must open the application's configuration page in [Web Console](https://console.radix.equinor.com) and paste in the PaaS-Token in **Private image hubs** under **App Secrets**.
You must then update environment secrets in each component with corresponding Dynatrace configuration: `DT_TENANT`, `DT_TENANTTOKEN` (`tenantToken`) and `DT_CONNECTION_POINT` (`formattedCommunicationEndpoints`).
```request
GET https://spa-equinor.kanari.com/e/<DT_TENANT>/api/v1/deployment/installer/agent/connectioninfo
accept: application/json
Expand Down
44 changes: 11 additions & 33 deletions public-site/docs/docs/topic-radix-cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,57 +6,35 @@ title: Radix CLI

## Purpose

[Radix command line interface](https://github.com/equinor/radix-cli) is an application to execute commands for getting information, creating a Radix application or pipeline jobs, setting values of secrets, start and stop Radis components and other operations, described below. The Radix CLI, available for multiple platforms, it can be downloaded from the [GitHub repository](https://github.com/equinor/radix-cli/tags).
[Radix CLI](https://github.com/equinor/radix-cli) is an application to execute commands for getting information, creating a Radix application or pipeline jobs, setting values of secrets, start and stop Radis components and other operations, described below. The Radix CLI, available for multiple platforms, it can be downloaded from the [GitHub repository](https://github.com/equinor/radix-cli/releases).

## Use

The Radix CLI can be used on local PC, in CI workflow, in a docker container.
Radix CLI can be installed and run from your local PC, as a Docker container, or in CI workflows, like GitHub actions.

Commands can be executed for `platform` or `playground` cluster, specified by an option `--context` or `-c`. Example: `--context platform` or `-c playground`. When no context specified, `platform` is used.
Commands can be executed towards all Radix cluster, either by setting the `--context` flag when executing a command, or by configuring the default context. `platform` is used if no context is specified.

The default context can be changed
Set the default context:
```shell
rx set context --context playground
```
Check the current context
Check the current context:
```shell
rx get context
```

Only applications, permitted for users or Azure AD groups, where they are member of, are available to execute commands for.

The command `rx --version` or `rx -v` shows the version, installed on the PC.

To get debug information about request, sent by the Radix CLI prefix the command with set of environment variable `DEBUG`: `DEBUG=true rx get application -a your-app-name`

### Run on a local PC

Download a [version of a Radix CLI](https://github.com/equinor/radix-cli/tags) for a required platform, extract an executable binary from an archive and move it to a folder, where executables usually located on the PC (or it can remain the folder, from it can be run). Example for a Linux or Mac:

```shell
LATEST_VERSION=$(
curl --silent "https://api.github.com/repos/equinor/radix-cli/releases/latest" |
grep '"tag_name":' |
sed -E 's/.*"v([^"]+)".*/\1/'
)

rx_tar=radix-cli_${LATEST_VERSION}_Darwin_x86_64.tar.gz
curl -OL "https://github.com/equinor/radix-cli/releases/download/v${LATEST_VERSION}/${rx_tar}"
tar -xf ${rx_tar}

sudo mv rx /usr/local/bin/rx
rm ${rx_tar}
```
Install Radix CLI locally by following the installation instructions in the [Radix CLI GitHub repository](https://github.com/equinor/radix-cli#installation).

To start working with Radix CLI, first login to the cluster:
To start working with Radix CLI you must first login:
```shell
rx login
```
Follow the provided Microsoft sign in device login URL and enter the provided code.

On successful login - commands can be executed within your user permissions to the Radix.
After successful login, you can start executing commands.

To clean up the login data - logout from the Radix:
To clean up the login data, logout from the Radix:
```shell
rx logout
```
Expand Down Expand Up @@ -107,7 +85,7 @@ Scope can be specified for most commands:
:::tip
An option `job` of commands `create`, `get logs` is replaced with `pipeline-job`. It will be supported for backward compatibility.
:::
* Create a new "deploy only" pipeline job with specified image tags. When `radixconfig.yaml` contains `image` option with dynamic [imageTagName](https://radix.equinor.com/radix-config/index.md#imagetagname), this `imageTagName` can be altered in the Radix CLI `create pipeline-job deploy` command option `image-tag-name`. This option will override values defined in the `radixconfig.yaml` and can be defined for multiple components in the command. `image-tag-name`, provided as an option in the command `rx create pipeline-job deploy` is shown in the Radix pipeline orchestration job log. Component names that does not exist within the Radix application environment will be ignored.
* Create a new "deploy only" pipeline job with specified image tags. When `radixconfig.yaml` contains `image` option with dynamic [imageTagName](../../radix-config/index.md#imagetagname), this `imageTagName` can be altered in the Radix CLI `create pipeline-job deploy` command option `image-tag-name`. This option will override values defined in the `radixconfig.yaml` and can be defined for multiple components in the command. `image-tag-name`, provided as an option in the command `rx create pipeline-job deploy` is shown in the Radix pipeline orchestration job log. Component names that does not exist within the Radix application environment will be ignored.
```shell
rx create pipeline-job deploy --application your-app-name --environment dev --image-tag-name web-app=stable-123 --image-tag-name api=1.22.0
rx create pipeline-job deploy -a your-app-name -e dev -t web-app=stable-123 -t api=1.22.0
Expand Down Expand Up @@ -190,7 +168,7 @@ An option `job` of commands `create`, `get logs` is replaced with `pipeline-job`
```
:::info
This scale will persist after re-deployment, so remember to reset the component when you are finished.
After reset, scaled component gets replicas specified in the `radixconfig.yaml`, "1" if not specified, or set by [horizontal scaling](https://radix.equinor.com/radix-config/index.md#environmentconfig)
After reset, scaled component gets replicas specified in the [`radixconfig.yaml`](../../radix-config/index.md), "1" if not specified, or set by [`horizontal scaling`](../../radix-config/index.md#horizontalscaling)
:::
#### Manage components
* Set a value of a component secret (runtime secret)
Expand Down
9 changes: 5 additions & 4 deletions public-site/docs/docs/topic-uptime/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ The monitoring has not been active for 90 days yet, so the current report will s

The Radix Platform should be used when your team has chosen Radix as PaaS (Platform-as-a-Service) for a product under development or in production.

| Cluster | Purpose | Upgrade | Support |
| -------------- | ------------------------------------------- | :-----------------: | :---------: |
| **Platform** | Products under development or in production | Every ~6 months | Yes |
| **Playground** | Testing and experimenting with Radix | | Best-effort |
| Cluster | Purpose | Upgrade | Support |
| ---------------------------- | ------------------------------------------- | :-------------: | :---------: |
| **Platform (North Europe)** | Apps under development or in production | Every ~6 months | Yes |
| **Platform 2 (West Europe)** | Apps under development or in production | Every ~6 months | Yes |
| **Playground** | Testing and experimenting with Radix | | Best-effort |

### Support

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ When manually scaled a component, it will be persisted accross deployments. Clic

## Reset

*Reset* removes the manually configured replicas count and will use the number of replica to the number set in the [`radixconfig.yaml`](/radix-config/index.md) for the *active deployment* or by [horizontal scaling](https://radix.equinor.com/radix-config/index.md#environmentconfig).
*Reset* removes the manually configured replica count and sets it to the value defined in [`replicas`](../../radix-config/index.md#replicas) or [`horizontalScaling`](../../radix-config/index.md#horizontalscaling) defined by the *active deployment*.

## Restarting

Expand Down
6 changes: 3 additions & 3 deletions public-site/docs/guides/deploy-only/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ In the `radixconfig.yaml` above, there are two tagging strategies;

A dynamic tag in this context means that there is a new tag produced for every build, either referring to the release tag, or the commit sha (in the case above) or any other attributes that uniquely identifies what the image is produced from. The dynamic tag will give better control over what runs in the environment, and it also allows for promoting older deployments in case there is a need for a rollback.

A static tag will not permit radix to update an existing deployment by relying on changes to `imageTagName` to pull a new image. To force radix to pull a new image from the image-hub, the component must be restarted using the component page on the web-console or restart call to the [API](https://api.radix.equinor.com/swaggerui/#/component/restartComponent) or [CLI](https://github.com/equinor/radix-cli). There is currently no log trace of components starting and stopping. If this is necessary, one may call `deploy-only` once on the application before `restart` on each component using static tags.
A static tag will not permit radix to update an existing deployment by relying on changes to [`imageTagName`](../../radix-config/index.md#imagetagname) to pull a new image. To force radix to pull a new image from the image-hub, the component must be restarted using the component page on the web-console or restart call to the [Radix API](https://api.radix.equinor.com/swaggerui/#/component/restartComponent) or [CLI](https://github.com/equinor/radix-cli). The URL for Radix API depends on which [Radix cluster](../../start/radix-clusters/) is hosting the application.

The second part of the `radixconfig.yaml` which distinguishes itself from a regular radix application is the [`privateImageHubs` property](/radix-config/index.md#privateimagehubs). In short, it will allow for the image produced outside of Radix to be pulled down to the Radix cluster.

Expand Down Expand Up @@ -122,7 +122,7 @@ Read about [how to connect GitHub actions and Azure](https://learn.microsoft.com

With the access token you can make calls to Radix API through either:

- Calling the API directly ([Radix Platform API](https://api.radix.equinor.com/swaggerui/) or [Radix Playground API](https://api.playground.radix.equinor.com/swaggerui/)), by passing the bearer token (i.e. curl -X GET --header "Authorization: Bearer \$token")
- Calling the Radix API directly by passing the bearer token (i.e. curl -X GET --header "Authorization: Bearer \$token")
- Calling the API though functions in the [Radix CLI](https://github.com/equinor/radix-cli), which allows for simpler access to the API
- Calling the API through [Radix GitHub Actions](https://github.com/equinor/radix-github-actions). If you have opted for GitHub Actions as your CI tool, then calling the Radix API indirectly through the Radix CLI using the Radix GitHub Actions can be done. It allows for simpler access to the CLI in your action's workflow.

Expand Down Expand Up @@ -212,7 +212,7 @@ Disclaimer: Please seek advice elsewhere on whether GitHub Actions and/or GitHub

When a Radix application has multiple components and only one or some of them need to be deployed, an option `component` can be used to specify these components. Multiple components can be specified. Other components, if exist in the environment, will not be re-deployed, keeping their `commitID` and `gitTags`, environment variables, secrets, etc. Replicas of not deployed components will not be restarted on deployment.

Please look at [Radix CLI deploy command](/docs/topic-radix-cli/index.md#deploy-pipeline-job) for examples. The `component` option can also be used with [Radix GitHub action](https://github.com/equinor/radix-github-actions) and [Radix API](https://api.radix.equinor.com/swaggerui/).
Please look at [Radix CLI deploy command](/docs/topic-radix-cli/index.md#deploy-pipeline-job) for examples. The `component` option can also be used with [Radix GitHub action](https://github.com/equinor/radix-github-actions) and Radix API.

When deploy pipeline job has been run with `component` option, Radix console will indicate on pipeline job, deployment and environment pages which components were not deployed:

Expand Down
Loading