|
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