Skip to content

Commit

Permalink
Feat: adding cdn flag + reveview doc organization on domain (#458)
Browse files Browse the repository at this point in the history
* feat: added cancel info for lifecycle jobs

* chore: improve dependency info on demo cluster

* feat: added CDN flag and reorganized the doc

* fix
  • Loading branch information
acarranoqovery authored Aug 1, 2024
1 parent 0f59591 commit 0bbc232
Show file tree
Hide file tree
Showing 16 changed files with 168 additions and 181 deletions.
84 changes: 42 additions & 42 deletions scripts/generate/templates/_partials/_configure_domains.md.erb
Original file line number Diff line number Diff line change
@@ -1,10 +1,36 @@
Within this section you can customize the domain used to reach your <%= service %>.
## Connecting from the internet

Your <%= service %> can be reached from the internet by publicly exposing at least one of its ports (See the [Ports](#ports) section to know more). Once this is done, Qovery will generate and assign a domain to your application (See [this section](#qovery-provided-domains) to know more). You can customize the domain assigned to your application via the `Domain` section in the settings (see [this section](#custom-domains) to know more).

### Qovery provided domains

For each port publicly exposed, a domain is automatically assigned by Qovery to your <%= service %>. Qovery will manage for you the networking and the TLS configuration for these domains.

Example: `p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` or `<service_name>-p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` for helm services.

Note:
- each service deployed on the same cluster will have the same root domain assigned (example: `za8ad0657.bool.sh`)
- the first characters of the domain (before the `-`) is based on the portName given to the port associated with this domain (See the [port section](#ports))
- a default domain (without the portName) is assigned to the `default port`(See the [port section](#ports)). Example `zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh`

**Special Case - Preview Environment**
For each port exposed publicly, an additional domain will be created with the following pattern `portName-prId-srvName-envSourceName.cluster_domain`:
- portName: is the port name, as explained above
- prID: is the id of the PR that has generated the preview environment
- srvName: is the name of the service
- envSourceName: is the name of the blueprint environment that has created the current preview environment

domain example: `p80-123-frontend-blueprint.za8ad0657.bool.sh`

### Custom domains

If you prefer to assign your own domain to the <%= service %>, you can customize it from the "Domain" section within the <%= service %> settings.

You can customize the domain of your <%= service %> in different ways, depending on what you want to achieve:
* You want to use your own domain for your <%= service %>
* You want to modify the subdomain assigned to your <%= service %> by Qovery (i.e. change `p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` into `my-app-domain.za8ad0657.bool.sh`).
* You want to modify the subdomain assigned to your <%= service %> by Qovery (i.e. change `p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` into `my-app-domain.za8ad0657.bool.sh`). See [this section](#qovery-provided-domains) to know more about these domains.

In both cases, you can assign the new custom domain to your <%= service %> press the `Add Domain` button.
In both cases, you can assign the new custom domain by pressing the `Add Domain` button.

<p align="center">
<img src="/img/configuration/application/app-16.png" alt="Application Domains" />
Expand All @@ -20,29 +46,31 @@ This configuration will be **automatically removed** on every cloned environment

Once the domain is added within the Qovery console (Example: mydomain.com), you need to configure within your DNS two `CNAME` records pointing to the domain provided by Qovery, as shown in the UI (example: mydomain.com CNAME za7cc1b71-z4b8474b3-gtw.zc531a994.rustrocks.cloud and *.mydomain.com CNAME za7cc1b71-z4b8474b3-gtw.zc531a994.rustrocks.cloud).

Having a wildcard domain (example: *.mydomain.com) configured on your DNS will avoid you to modify the Qovery setup every time you want to add a new subdomain. If `wildcard` is not supported by your DNS provider, you will have to configure each subdomain manually.
Having a wildcard domain entry (example: *.mydomain.com) configured on your DNS will avoid you to modify the Qovery setup every time you want to add a new subdomain. If `wildcard` is not supported by your DNS provider, you will have to configure each subdomain manually.

If the service needs to expose more than one port publicly, you can define a dedicated subdomain to redirect the traffic on the right port by setting the “Port Name” value within the [port settings](#ports).
If a service needs to expose more than one port publicly, you can define a dedicated subdomain to redirect the traffic on the right port by setting the “Port Name” value within the [port settings](#ports).

From this point, Qovery will automatically handle the TLS/SSL certificate creation and renewal for the configured domain.
After re-deploying the service, Qovery will automatically handle the TLS/SSL certificate creation and renewal for the configured domain.

<p align="center">
<img src="/img/configuration/application/custom-domain.png" alt="Custom Domain" />
</p>

** Special case - CDN in proxy mode **
<Alert type="info">

[We prepared a guide and video tutorial that explains how to set up your custom domain.][guides.getting-started.setting-custom-domain]

</Alert>

** Special case - domain behind a CDN **

If your service is behind a CDN using a `proxy mode` (i.e. the traffic is routed through the CDN to Qovery), make sure to disable the option "Generate certificate" on the domain setup. Since the certificate of your domain is directly managed by the CDN, Qovery won't be able to do that for you and it will raise warnings on your application status.
If your service is behind a CDN using a `proxy mode` (i.e. the traffic is routed through the CDN to Qovery), make sure to enable the option `Domain behind a CDN` and disable the option "Generate certificate" on the domain setup. Since the certificate of your domain is directly managed by the CDN, Qovery won't be able to do that for you and it will raise warnings on your application status.

<p align="center">
<img src="/img/configuration/application/cdn-proxy.png" alt="CDN Proxy" />
</p>

<Alert type="info">

[We prepared a guide and video tutorial that explains how to set up your custom domain.][guides.getting-started.setting-custom-domain]

</Alert>
If you are using Cloudflare to manage your CDN, we can also manage automatically your custom domain configuration via a wildcard domain setup for the whole cluster. Check our [documentation here][docs.using-qovery.configuration.clusters#use-custom-domain-and-wildcard-tls-for-the-whole-cluster-beta]

#### Change the auto assigned sub-domain

Expand All @@ -57,32 +85,4 @@ The <%= service %> will now be accessible from both the default and the new cust

Qovery does not check collision in the domain declaration. Make sure you assign a unique subdomain within your cluster.

</Alert>

## Connecting from the internet

Your <%= service %> can be reached from the internet by publicly exposing at least one of its ports (See the [Ports](#ports) section to know more). Once this is done, Qovery will generate for you a domain to reach your application from the internet. You can also customize the domain assigned to your application and manage by yourself this assignment via the `Domain` section.

### Qovery provided domains

For each port publicly exposed, a domain is automatically assigned by Qovery to your <%= service %>. Qovery will manage for you the networking and the TLS configuration for these domains.

Example: `p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` or `<service_name>-p80-zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh` for helm services.

Note:
- each service deployed on the same cluster will have the same root domain assigned (example: `za8ad0657.bool.sh`)
- the first characters of the domain (before the `-`) is based on the portName given to the port associated with this domain (See the [port section](#ports))
- a default domain (without the portName) is assigned to the `default port`(See the [port section](#ports)). Example `zdf72de72-z709e1a88-gtw.za8ad0657.bool.sh`

**Special Case - Preview Environment**
For each port exposed publicly, an additional domain will be created with the following pattern `portName-prId-srvName-envSourceName.cluster_domain`:
- portName: is the port name, as explained above
- prID: is the id of the PR that has generated the preview environment
- srvName: is the name of the service
- envSourceName: is the name of the blueprint environment that has created the current preview environment

domain example: `p80-123-frontend-blueprint.za8ad0657.bool.sh`

### Custom domains

If you prefer to assign your own domain to the <%= service %>, have a look at the [Domain section](#domains) to know more.
</Alert>
6 changes: 3 additions & 3 deletions website/docs/getting-started/install-qovery/local.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified_on: "2024-07-12"
last_modified_on: "2024-07-16"
title: "Local"
description: "Install Qovery on your local machine"
---
Expand All @@ -26,9 +26,9 @@ It's important to note that this local setup of Qovery using the `qovery demo up

## Requirements

- **Supported Operating Systems**: Linux, MacOS, and Windows.
- **Supported Operating Systems**: Linux, MacOS, and Windows (only on WSL).
- **Resources**: 4 CPU and 8GB of RAM for your Docker runtime.
- **Binaries**: [docker][urls.docker], jq, curl, sed, grep, git.
- **Binaries**: [docker][urls.docker] (up and running), git.
- A stable Internet connection.
- A Qovery account. If you don't have one, please sign up at https://start.qovery.com

Expand Down
4 changes: 2 additions & 2 deletions website/docs/getting-started/install-qovery/local.md.erb
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ It's important to note that this local setup of Qovery using the `qovery demo up

## Requirements

- **Supported Operating Systems**: Linux, MacOS, and Windows.
- **Supported Operating Systems**: Linux, MacOS, and Windows (only on WSL).
- **Resources**: 4 CPU and 8GB of RAM for your Docker runtime.
- **Binaries**: [docker][urls.docker], jq, curl, sed, grep, git.
- **Binaries**: [docker][urls.docker] (up and running), git.
- A stable Internet connection.
- A Qovery account. If you don't have one, please sign up at https://start.qovery.com

Expand Down
8 changes: 1 addition & 7 deletions website/docs/using-qovery/configuration/advanced-settings.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
last_modified_on: "2024-07-03"
last_modified_on: "2024-07-30"
title: "Service Advanced Settings"
description: "Learn how to set advanced settings on your infrastructure with Qovery"
---
Expand Down Expand Up @@ -75,12 +75,6 @@ All services have access to advanced settings, you can find where they are avail
|---------|----------------------------------------|---------------|
| integer | GB RAM allocated to your build process | `8` |

#### deployment.custom_domain_check_enabled ![](/img/advanced_settings/application.svg) ![](/img/advanced_settings/container.svg) ![](/img/advanced_settings/cronjob.svg) ![](/img/advanced_settings/job.svg) ![](/img/advanced_settings/helm.svg)

| Type | Description | Use Case | Default Value |
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| boolean | Qovery allows you to set custom domains for your applications through the addition of a CNAME record to your domain's DNS settings. By default, when an application is deployed, Qovery checks that the CNAME record is set up correctly. This advanced setting allows you to disable this check. | If you are using a Content Delivery Network (CDN), checking the CNAME setup for any custom domains you may have set up is likely to stall the deployment of your application. <br /> <br /> Therefore, if you are using a CDN behind your application, we recommend disabling this feature to save time during your application deployments. | `true` |

#### deployment.termination_grace_period_seconds ![](/img/advanced_settings/application.svg) ![](/img/advanced_settings/container.svg) ![](/img/advanced_settings/cronjob.svg) ![](/img/advanced_settings/job.svg)

| Type | Description | Use Case | Default Value |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,6 @@ All services have access to advanced settings, you can find where they are avail
|---------|----------------------------------------|---------------|
| integer | GB RAM allocated to your build process | `8` |

#### deployment.custom_domain_check_enabled ![](/img/advanced_settings/application.svg) ![](/img/advanced_settings/container.svg) ![](/img/advanced_settings/cronjob.svg) ![](/img/advanced_settings/job.svg) ![](/img/advanced_settings/helm.svg)

| Type | Description | Use Case | Default Value |
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| boolean | Qovery allows you to set custom domains for your applications through the addition of a CNAME record to your domain's DNS settings. By default, when an application is deployed, Qovery checks that the CNAME record is set up correctly. This advanced setting allows you to disable this check. | If you are using a Content Delivery Network (CDN), checking the CNAME setup for any custom domains you may have set up is likely to stall the deployment of your application. <br /> <br /> Therefore, if you are using a CDN behind your application, we recommend disabling this feature to save time during your application deployments. | `true` |

#### deployment.termination_grace_period_seconds ![](/img/advanced_settings/application.svg) ![](/img/advanced_settings/container.svg) ![](/img/advanced_settings/cronjob.svg) ![](/img/advanced_settings/job.svg)

| Type | Description | Use Case | Default Value |
Expand Down
Loading

0 comments on commit 0bbc232

Please sign in to comment.