Skip to content

Commit ab7970b

Browse files
authored
HOLD FOR RELEASE Custom domains for EC (#3116)
* Custom domains for EC * edits * edits * edits * edit * edits * edits * edits * edits
1 parent 11041c0 commit ab7970b

File tree

4 files changed

+85
-38
lines changed

4 files changed

+85
-38
lines changed

docs/reference/embedded-config.mdx

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22

33
This topic is a reference for the Replicated Embedded Cluster Config custom resource. For more information about Embedded Cluster, see [Using Embedded Cluster](/vendor/embedded-overview).
44

5-
:::note
6-
Embedded Cluster is in beta. If you are instead looking for information about creating Kubernetes Installers with Replicated kURL, see the [Replicated kURL](/vendor/packaging-embedded-kubernetes) section.
7-
:::
8-
95
## Overview
106

11-
To install your application with Embedded Cluster, an Embedded Cluster Config must be created in a release. Embedded Cluster installation artifacts are available only for releases that include an Embedded Cluster Config.
7+
To install your application with Embedded Cluster, an Embedded Cluster Config must be included in the release. Embedded Cluster installation artifacts are available only for releases that include an Embedded Cluster Config.
128

139
The Embedded Cluster Config lets you define several aspects of the Kubernetes cluster that will be created.
1410

15-
### Limitations
11+
### Limitation
1612

17-
* The Embedded Cluster Config does not support the use of Go template functions, including [KOTS template functions](/reference/template-functions-about).
13+
The Embedded Cluster Config does not support the use of Go template functions, including [KOTS template functions](/reference/template-functions-about).
1814

1915
For additional property-specific limitations, see the sections below.
2016

@@ -34,6 +30,9 @@ spec:
3430
- name: app
3531
labels:
3632
app: "true"
33+
domains:
34+
proxyRegistryDomain: proxy.yourcompany.com
35+
replicatedAppDomain: updates.yourcompany.com
3736
extensions:
3837
helm:
3938
repositories:
@@ -148,6 +147,29 @@ spec:
148147
gpu: "true" # Label applied to "gpu" nodes
149148
```
150149

150+
## domains
151+
152+
Configure the `domains` key so that Embedded Cluster uses your custom domains for the Replicated proxy registry and Replicated app service.
153+
154+
When `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` are set, Embedded Cluster uses the custom domains specified when making requests to the given service. Embedded Cluster also passes the values to KOTS to ensure that KOTS uses the same domains for these services.
155+
156+
The custom domains that you specify in the `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` fields must be added to the Vendor Portal before they can be used by Embedded Cluster. For more information, see [Add a Custom Domain in the Vendor Portal](/vendor/custom-domains-using#add-domain) in _Using Custom Domains_.
157+
158+
If `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` are not set, Embedded Cluster uses the default Replicated domains. For more information about aliasing Replicated endpoints with custom domains, see [About Custom Domains](/vendor/custom-domains).
159+
160+
#### Example
161+
162+
```yaml
163+
apiVersion: embeddedcluster.replicated.com/v1beta1
164+
kind: Config
165+
spec:
166+
domains:
167+
# Your proxy registry custom domain
168+
proxyRegistryDomain: proxy.yourcompany.com
169+
# Your app service custom domain
170+
replicatedAppDomain: updates.yourcompany.com
171+
```
172+
151173
## extensions
152174

153175
If you need to install Helm charts before your application and as part of the Embedded Cluster itself, you can do this with Helm extensions. One situation where this is useful is if you want to ship an ingress controller, because Embedded Cluster does not yet include one.

docs/vendor/custom-domains-using.md

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# Using Custom Domains
22

3-
This topic describes how to use the Replicated Vendor Portal to add and manage custom domains to alias the Replicated registry, the Replicated proxy registry, the Replicated app service, and the download portal.
3+
This topic describes how to use the Replicated Vendor Portal to add and manage custom domains to alias the Replicated registry, the Replicated proxy registry, the Replicated app service, and the Download Portal.
44

55
For information about adding and managing custom domains with the Vendor API v3, see the [customHostnames](https://replicated-vendor-api.readme.io/reference/createcustomhostname) section in the Vendor API v3 documentation.
66

7-
For an overview about custom domains and limitations, see [About Custom Domains](custom-domains).
7+
For more information about custom domains, see [About Custom Domains](custom-domains).
88

9-
## Configure a Custom Domain
9+
## Add a Custom Domain in the Vendor Portal {#add-domain}
1010

11-
Before you assign a custom domain for a registry or the download portal, you must first configure and verify the ownership and TLS certificate.
12-
13-
To add and configure a custom domain:
11+
To add and verify a custom domain:
1412

1513
1. In the [Vendor Portal](https://vendor.replicated.com), go to **Custom Domains**.
1614

@@ -26,13 +24,13 @@ To add and configure a custom domain:
2624

2725
1. For **Create CNAME**, copy the text string and use it to create a CNAME record in your DNS account. Click **Continue**.
2826

29-
1. For **Verify ownership**, copy the text string and use it to create a TXT record in your DNS account if displayed. If a TXT record is not displayed, ownership will be validated automatically using an HTTP token. Click **Validate & continue**.
27+
1. For **Verify ownership**, ownership will be validated automatically using an HTTP token when possible.
3028

31-
Your changes can take up to 24 hours to propagate.
29+
If ownership cannot be validated automatically, copy the text string provided and use it to create a TXT record in your DNS account. Click **Validate & continue**. Your changes can take up to 24 hours to propagate.
3230

33-
1. For **TLS cert creation verification**, copy the text string and use it to create a TXT record in your DNS account if displayed. If a TXT record is not displayed, ownership will be validated automatically using an HTTP token. Click **Validate & continue**.
31+
1. For **TLS cert creation verification**, TLS verification will be performed automatically using an HTTP token when possible.
3432

35-
Your changes can take up to 24 hours to propagate.
33+
If TLS verification cannot be performed automatically, copy the text string provided and use it to create a TXT record in your DNS account. Click **Validate & continue**. Your changes can take up to 24 hours to propagate.
3634

3735
:::note
3836
If you set up a [CAA record](https://letsencrypt.org/docs/caa/) for this hostname, you must include all Certificate Authorities (CAs) that Cloudflare partners with. The following CAA records are required to ensure proper certificate issuance and renewal:
@@ -59,11 +57,37 @@ To add and configure a custom domain:
5957
Replicated recommends that you do _not_ set a domain as the default until you are ready for it to be used by customers.
6058
:::
6159

62-
The Vendor Portal marks the domain as **Configured** after the verification checks for ownership and TLS certificate creation are complete.
60+
After the verification checks for ownership and TLS certificate creation are complete, the Vendor Portal marks the domain as **Configured**.
61+
62+
1. (Optional) After a domain is marked as **Configured**, you can remove any TXT records that you created in your DNS account.
6363

6464
## Use Custom Domains
6565

66-
After you configure one or more custom domains in the Vendor Portal, you assign a custom domain by setting it as the default for all channels and customers or by assigning it to an individual release channel.
66+
After you add one or more custom domains in the Vendor Portal, you can configure your application to use the domains.
67+
68+
### Configure Embedded Cluster to Use Custom Domains {#ec}
69+
70+
You can configure Replicated Embedded Cluster to use your custom domains for the Replicated proxy registry and Replicated app service. For more information about Embedded Cluster, see [Embedded Cluster Overview](/vendor/embedded-overview).
71+
72+
To configure Embedded Cluster to use your custom domains for the proxy registry and app service:
73+
74+
1. In the [Embedded Cluster Config](/reference/embedded-config) spec for your application, add `domains.proxyRegistryDomain` and `domains.replicatedAppDomain`. Set each field to your custom domain for the given service.
75+
76+
**Example:**
77+
78+
```yaml
79+
apiVersion: embeddedcluster.replicated.com/v1beta1
80+
kind: Config
81+
spec:
82+
domains:
83+
# Your proxy registry custom domain
84+
proxyRegistryDomain: proxy.yourcompany.com
85+
# Your app service custom domain
86+
replicatedAppDomain: updates.yourcompany.com
87+
```
88+
For more information, see [domains](/reference/embedded-config#domains) in _Embedded Cluster Config_.
89+
90+
1. Add the Embedded Cluster Config to a new release. Promote the release to a channel that your team uses for testing, and install with Embedded Cluster in a development environment to test your changes.
6791
6892
### Set a Default Domain
6993
@@ -73,6 +97,10 @@ When you set a custom domain as the default, it is used by default for all new r
7397
7498
Only releases that are promoted to a channel _after_ you set a default domain use the new default domain. Any existing releases that were promoted before you set the default continue to use the same domain that they used previously.
7599
100+
:::note
101+
In Embedded Cluster installations, the KOTS Admin Console will use the domains specified in the `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` fields of the Embedded Cluster Config when making requests to the proxy registry and app service, regardless of the default domain or the domain assigned to the given release channel. For more information about using custom domains in Embedded Cluster installations, see [Configure Embedded Cluster to Use Custom Domains](#ec) above.
102+
:::
103+
76104
To set a custom domain as the default:
77105

78106
1. In the Vendor Portal, go to **Custom Domains**.
@@ -89,6 +117,10 @@ Assigning a domain to a release channel is useful when you need to override eith
89117
* You need to use a different domain for releases promoted to your Beta and Stable channels.
90118
* You need to test a domain in a development environment before you set the domain as the default for all channels.
91119

120+
:::note
121+
In Embedded Cluster installations, the KOTS Admin Console will use the domains specified in the `domains.proxyRegistryDomain` and `domains.replicatedAppDomain` fields of the Embedded Cluster Config when making requests to the proxy registry and app service, regardless of the default domain or the domain assigned to the given release channel. For more information about using custom domains in Embedded Cluster installations, see [Configure Embedded Cluster to Use Custom Domains](#ec) above.
122+
:::
123+
92124
To assign a custom domain to a channel:
93125

94126
1. In the Vendor Portal, go to **Channels** and click the settings icon for the target channel.
@@ -109,7 +141,7 @@ To reuse a custom domain for another application:
109141

110142
1. Click **Custom Domains**.
111143

112-
1. In the section for the target endpoint, click Add your first custom domain for your first domain, or click **Add new domain** for additional domains.
144+
1. In the section for the target endpoint, click **Add your first custom domain** for your first domain, or click **Add new domain** for additional domains.
113145

114146
The **Configure a custom domain** wizard opens.
115147

docs/vendor/custom-domains.md

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,35 @@
11
# About Custom Domains
22

3-
This topic provides an overview and the limitations of using custom domains to alias the Replicated private registry, Replicated proxy registry, Replicated app service, and the Download Portal.
3+
This topic provides an overview and the limitations of using custom domains to alias the Replicated proxy registry, the Replicated app service, the Replicated Download Portal, and the Replicated registry.
44

5-
For information about configuring and managing custom domains, see [Using Custom Domains](custom-domains-using).
5+
For information about adding and managing custom domains, see [Using Custom Domains](custom-domains-using).
66

77
## Overview
88

99
You can use custom domains to alias Replicated endpoints by creating Canonical Name (CNAME) records for your domains.
1010

1111
Replicated domains are external to your domain and can require additional security reviews by your customer. Using custom domains as aliases can bring the domains inside an existing security review and reduce your exposure.
1212

13-
TXT records must be created to verify:
13+
You can configure custom domains for the following services:
1414

15-
- Domain ownership: Domain ownership is verified when you initially add a record.
16-
- TLS certificate creation: Each new domain must have a new TLS certificate to be verified.
15+
- **Proxy registry:** Images can be proxied from external private registries using the Replicated proxy registry. By default, the proxy registry uses the domain `proxy.replicated.com`. Replicated recommends using a CNAME such as `proxy.{your app name}.com`.
1716

18-
The TXT records can be removed after the verification is complete.
17+
- **Replicated app service:** Upstream application YAML and metadata, including a license ID, are pulled from the app service. By default, this service uses the domain `replicated.app`. Replicated recommends using a CNAME such as `updates.{your app name}.com`.
1918

20-
You can configure custom domains for the following services, so that customer-facing URLs reflect your company's brand:
19+
- **Download Portal:** The Download Portal can be used to share customer license files, air gap bundles, and so on. By default, the Download Portal uses the domain `get.replicated.com`. Replicated recommends using a CNAME such as `portal.{your app name}.com` or `enterprise.{your app name}.com`.
2120

22-
- **Replicated registry:** Images and Helm charts can be pulled from the Replicated registry. By default, this registry uses the domain `registry.replicated.com`. We suggest using a CNAME such as `registry.{your app name}.com`.
23-
24-
- **Proxy registry:** Images can be proxied from external private registries using the Replicated proxy registry. By default, the proxy registry uses the domain `proxy.replicated.com`. We suggest using a CNAME such as `proxy.{your app name}.com`.
25-
26-
- **Replicated app service:** Upstream application YAML and metadata, including a license ID, are pulled from replicated.app. By default, this service uses the domain `replicated.app`. We suggest using a CNAME such as `updates.{your app name}.com`.
27-
28-
- **Download Portal:** The Download Portal can be used to share customer license files, air gap bundles, and so on. By default, the Download Portal uses the domain `get.replicated.com`. We suggest using a CNAME such as `portal.{your app name}.com` or `enterprise.{your app name}.com`.
21+
- **Replicated registry:** Images and Helm charts can be pulled from the Replicated registry. By default, this registry uses the domain `registry.replicated.com`. Replicated recommends using a CNAME such as `registry.{your app name}.com`.
2922

3023
## Limitations
3124

3225
Using custom domains has the following limitations:
3326

3427
- A single custom domain cannot be used for multiple endpoints. For example, a single domain can map to `registry.replicated.com` for any number of applications, but cannot map to both `registry.replicated.com` and `proxy.replicated.com`, even if the applications are different.
3528

36-
- Custom domains cannot be used to alias api.replicated.com (legacy customer-facing APIs) or kURL.
29+
- Custom domains cannot be used to alias `api.replicated.com` (legacy customer-facing APIs) or kURL.
3730

3831
- Multiple custom domains can be configured, but only one custom domain can be the default for each Replicated endpoint. All configured custom domains work whether or not they are the default.
3932

40-
- A particular custom domain can only be used by one team.
33+
- Each custom domain can only be used by one team.
34+
35+
- For [Replicated Embedded Cluster](/vendor/embedded-overview) installations, any Helm [`extensions`](/reference/embedded-config) that you add in the Embedded Cluster Config do not use custom domains. During deployment, Embedded Cluster pulls both the repo for the given chart and any images in the chart as written. Embedded Cluster does not rewrite image names to use custom domains.

docs/vendor/embedded-overview.mdx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,6 @@ Embedded Cluster has the following limitations:
117117

118118
* **Kubernetes version template functions not supported**: The KOTS [KubernetesVersion](/reference/template-functions-static-context#kubernetesversion), [KubernetesMajorVersion](/reference/template-functions-static-context#kubernetesmajorversion), and [KubernetesMinorVersion](/reference/template-functions-static-context#kubernetesminorversion) template functions do not provide accurate Kubernetes version information for Embedded Cluster installations. This is because these template functions are rendered before the Kubernetes cluster has been updated to the intended version. However, `KubernetesVersion` is not necessary for Embedded Cluster because vendors specify the Embedded Cluster version, which includes a known Kubernetes version.
119119

120-
* **Custom domains not supported**: Embedded Cluster does not support the use of custom domains, even if custom domains are configured. We intend to add support for custom domains. For more information about custom domains, see [About Custom Domains](/vendor/custom-domains).
121-
122120
* **KOTS Auto-GitOps workflow not supported**: Embedded Cluster does not support the KOTS Auto-GitOps workflow. If an end-user is interested in GitOps, consider the Helm install method instead. For more information, see [Installing with Helm](/vendor/install-with-helm).
123121

124122
* **Downgrading Kubernetes not supported**: Embedded Cluster does not support downgrading Kubernetes. The admin console will not prevent end-users from attempting to downgrade Kubernetes if a more recent version of your application specifies a previous Embedded Cluster version. You must ensure that you do not promote new versions with previous Embedded Cluster versions.

0 commit comments

Comments
 (0)