Skip to content

Commit

Permalink
remove auto-dectection explanation
Browse files Browse the repository at this point in the history
  • Loading branch information
maltesander committed Oct 22, 2024
1 parent fa9b6f4 commit 8acb55b
Showing 1 changed file with 5 additions and 37 deletions.
42 changes: 5 additions & 37 deletions modules/guides/pages/kubernetes-cluster-domain.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,45 +3,13 @@
:dns-custom-nameservers: https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
:dns-pod-service: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

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]).
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.
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]).

The following steps explain the use of the environment variable and the auto detection mechanism in detail:

== Steps

=== Use environment variable

The environment variable `KUBERNETES_CLUSTER_DOMAIN` takes precedence over auto detection.
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:
The cluster domain can be configured using an environment variable `KUBERNETES_CLUSTER_DOMAIN` set on the operators.
This environment variable can be configured via the helm values property `kubernetesClusterDomain` during the installation of the operators.

```
helm install hive-operator stackable-stable/hive-operator --set kubernetesClusterDomain="my-cluster.local"
helm install <product>-operator stackable-stable/<product>-operator --set kubernetesClusterDomain="my-cluster.local"
```

=== Use auto detection

If the `KUBERNETES_CLUSTER_DOMAIN` environment variable is not set, the auto detection is checking the runtime environment of the operator.
In most cases this is a clusterized environment like Kubernetes or Openshift.
This is determined by checking if the `KUBERNETES_SERVICE_HOST` environment variable is set in the operator Pod.

If clusterized, the auto detection parses the `/etc/resolv.conf` file for the last entry starting with the `search` keyword.
Within that `search` entry the shortest option is selected.

An example `/etc/resolv.conf` in a Pod looks like:

```
nameserver 10.32.0.10
search <namespace>.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
```

Using this example as a base for the cluster domain auto detection, the operator would choose `cluster.local` as cluster domain.

=== Running locally

This section covers the case when both `KUBERNETES_CLUSTER_DOMAIN` and `KUBERNETES_SERVICE_HOST` are not set.
This would be the case if the operator is not running in a clusterized environment like e.g. locally a Laptop or PC.
Running the operator locally is mostly for development and therefore not relevant for most users.

If running locally, and `KUBERNETES_CLUSTER_DOMAIN` and `KUBERNETES_SERVICE_HOST` are not set, the operator will default its cluster domain to `cluster.local`.
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 comments on commit 8acb55b

Please sign in to comment.