Deploying a Cloudera AI Workbench with support for TLS
You can provision a Cloudera AI Workbench with TLS enabled both on Cloudera Embedded Container Service and on OpenShift Container Platform (OCP), so that it can be accessed via https.
kubectl
installed.The workbench subdomain is either the static
subdomain the user elects or it can also be a workbench endpoint name that the
deployment autogenerates. Also note that app_domain
is defined at
the Data Services deployment.
A workbench name has the following format:
https://[***WORKSPACE-SUBDOMAIN***].APPS.[***APP_DOMAIN***].com.
Workloads created in a Cloudera AI Workbench are containers provisioned in Kubernetes and must be addressable to the user. To do this, Cloudera AI creates a unique subdomain.
The URL for
the workload is structured as:
https://[***WORKLOAD-ENDPOINTS***].[***WORKSPACE-SUBDOMAIN***].APPS.[***APP_DOMAIN***].com.
As the workload endpoints are randomly generated, for TLS to work, a Cloudera AI Workbench needs to have a wildcard SAN entry in the TLS certificate and additionally we need a workbench subdomain SAN as well:
Wildcard SAN entry:
SAN:*.[***WORKSPACE-SUBDOMAIN***].APPS.[***APP_DOMAIN***].com.
Workspace
subdomain SAN:
[***WORKSPACE-SUBDOMAIN***].APPS.[***APP_DOMAIN***].com.
See the following example for creating a Cloudera AI Workbench with static subdomain in Cloudera Embedded Container Service environment:
- the user's domain is: mycompany.com (user-provided)
- a non-HA deployment's master's hostname is: ecsmst01 (inherits hostname)
- the user's control plane deployment is: cdp-dev (user-provided)
- the user's load-balanced endpoint for the control plane deployment is: cdp-lb (user-provided)
- the apps subdomain is hard-coded as: apps (hardcoded)
- the Cloudera AI Workbench ID is generated as: ml-1234abc-123 (auto-generated)
- the Cloudera AI static subdomain is set as: cmlstatic (user-provided)
With the above details, consider the following examples:
Network topology | Domain set | Example |
---|---|---|
Control Plane | High Availability (HA) |
HA: app_domain = cdp-lb.mycompany.com |
HA applications: *.apps.cdp-lb.mycompany.com |
||
Non-HA, with custom deployment domain set |
non-HA with the custom Cloudera Embedded Container Service domain: app_domain = cdp-dev.mycompany.com |
|
non-HA with the custom Cloudera Embedded Container Service applications: *.apps.cdp-dev.mycompany.com |
||
Non-HA, with no custom deployment domain set |
non-HA without custom Cloudera Embedded Container Service domain: app_domain = ecsmst01.mycompany.com |
|
non-HA without custom Cloudera Embedded Container Service domain applications: *.apps.ecsmst01.mycompany.com*. |
||
Cloudera AI Workbench without static subdomain | High Availability (HA) |
Cloudera AI Workbench on HA Cloudera Embedded Container Service without static subdomain: [*.]ml-1234abc-123.apps.cdp-lb.mycompany.com |
Non-HA with user's domain |
Cloudera AI Workbench on non-HA Cloudera Embedded Container Service without custom Cloudera Embedded Container Service domain without Cloudera AI Workbench static subdomain: [*.]ml-1234abc-123.apps.cdp-dev.mycompany.com |
|
Non-HA without user's domain |
Cloudera AI Workbench on non-HA Cloudera Embedded Container Service without custom Cloudera Embedded Container Service domain without Cloudera AI Workbench static subdomain: [*.]ml-1234abc-123.apps.ecsmst01.mycompany.com |
|
Cloudera AI Workbench with static subdomain | High Availability (HA) |
Cloudera AI Workbench on HA Cloudera Embedded Container Service with Cloudera AI Workbench static subdomain: [*.]cmlstatic.apps.cdp-lb.mycompany.com |
Non-HA with user's domain |
Cloudera AI Workbench on non-HA Cloudera Embedded Container Service with custom Cloudera Embedded Container Service domain with Cloudera AI Workbench static domain: [*.]cmlstatic.apps.cdp-dev.mycompany.com |
|
Non-HA without user's domain |
Cloudera AI Workbench on non-HA Cloudera Embedded Container Service without custom Cloudera Embedded Container Service domain with Cloudera AI Workbench static domain: [*.]cmlstatic.apps.ecsmst01.mycompany.com |
By using unique subdomains, the Cloudera AI Workbench is able to securely serve each interactive workload with proper isolation and protect it from code injection attacks such as Cross Site Scripting.