|
3 | 3 | :dns-custom-nameservers: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
|
4 | 4 | :dns-pod-service: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
|
5 | 5 |
|
6 |
| -Stackable operators allow to configure a non-default cluster domain as described in {dns-custom-nameservers}[Customizing DNS Service] (and more in {dns-pod-service}[DNS for Services and Pods]). |
7 |
| -The configuration is primarily done via an environment variable `KUBERNETES_CLUSTER_DOMAIN`, but there is also a mechanism to auto detect the cluster domain using the `/etc/resolv.conf` file. |
| 6 | +Stackable operators allow the configuration of a non-default cluster domain as described in {dns-custom-nameservers}[Customizing DNS Service] (and more in {dns-pod-service}[DNS for Services and Pods]). |
8 | 7 |
|
9 |
| -The following steps explain the use of the environment variable and the auto detection mechanism in detail: |
10 |
| - |
11 |
| -== Steps |
12 |
| - |
13 |
| -=== Use environment variable |
14 |
| - |
15 |
| -The environment variable `KUBERNETES_CLUSTER_DOMAIN` takes precedence over auto detection. |
16 |
| -This means that the desired cluster domain can be configured in a Helm values file via the property `kubernetesClusterDomain` or via the install command like: |
| 8 | +The cluster domain can be configured using an environment variable `KUBERNETES_CLUSTER_DOMAIN` set on the operators. |
| 9 | +This environment variable can be configured via the helm values property `kubernetesClusterDomain` during the installation of the operators. |
17 | 10 |
|
18 | 11 | ```
|
19 |
| -helm install hive-operator stackable-stable/hive-operator --set kubernetesClusterDomain="my-cluster.local" |
| 12 | +helm install <product>-operator stackable-stable/<product>-operator --set kubernetesClusterDomain="my-cluster.local" |
20 | 13 | ```
|
21 | 14 |
|
22 |
| -=== Use auto detection |
23 |
| - |
24 |
| -If the `KUBERNETES_CLUSTER_DOMAIN` environment variable is not set, the auto detection is checking the runtime environment of the operator. |
25 |
| -In most cases this is a clusterized environment like Kubernetes or Openshift. |
26 |
| -This is determined by checking if the `KUBERNETES_SERVICE_HOST` environment variable is set in the operator Pod. |
27 |
| - |
28 |
| -If clusterized, the auto detection parses the `/etc/resolv.conf` file for the last entry starting with the `search` keyword. |
29 |
| -Within that `search` entry the shortest option is selected. |
30 |
| - |
31 |
| -An example `/etc/resolv.conf` in a Pod looks like: |
32 |
| - |
33 |
| -``` |
34 |
| -nameserver 10.32.0.10 |
35 |
| -search <namespace>.svc.cluster.local svc.cluster.local cluster.local |
36 |
| -options ndots:5 |
37 |
| -``` |
38 |
| - |
39 |
| -Using this example as a base for the cluster domain auto detection, the operator would choose `cluster.local` as cluster domain. |
40 |
| - |
41 |
| -=== Running locally |
42 |
| - |
43 |
| -This section covers the case when both `KUBERNETES_CLUSTER_DOMAIN` and `KUBERNETES_SERVICE_HOST` are not set. |
44 |
| -This would be the case if the operator is not running in a clusterized environment like e.g. locally a Laptop or PC. |
45 |
| -Running the operator locally is mostly for development and therefore not relevant for most users. |
46 |
| - |
47 |
| -If running locally, and `KUBERNETES_CLUSTER_DOMAIN` and `KUBERNETES_SERVICE_HOST` are not set, the operator will default its cluster domain to `cluster.local`. |
| 15 | +If the environment variable `KUBERNETES_CLUSTER_DOMAIN` (or the helm property `kubernetesClusterDomain`) are not set / overriden, the operator will default its cluster domain to `cluster.local`. |
0 commit comments