add docs for template processing in k8s name resolution

Signed-off-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com>
This commit is contained in:
Mukundan Sundararajan 2023-10-05 18:53:54 +05:30
parent 88a109b3d2
commit 863cabc73f
1 changed files with 23 additions and 2 deletions

View File

@ -7,7 +7,22 @@ description: Detailed information on the Kubernetes DNS name resolution componen
## Configuration format
Kubernetes DNS name resolution is configured automatically in [Kubernetes mode]({{< ref kubernetes >}}) by Dapr. There is no configuration needed to use Kubernetes DNS as your name resolution provider.
Generally, Kubernetes DNS name resolution is configured automatically in [Kubernetes mode]({{< ref kubernetes >}}) by Dapr. There is no configuration needed to use Kubernetes DNS as your name resolution provider unless there are some overrides necessary for the Kubernetes name resolution component.
In the scenario that an override is required, within a [Dapr Configuration]({{< ref configuration-overview.md >}}) CRD, add a `nameResolution` spec and set the `component` field set to `"kubernetes"`. Then other configuration fields can be set as needed in a `configuration` map as seen below.
```yaml
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: appconfig
spec:
nameResolution:
component: "kubernetes"
configuration:
"clusterDomain": "cluster.local" # Mutually exclusive with the template field
"template": "{{.ID}}-{{.Data.region}}.internal:{{.Port}}" # Mutually exclusive with the clusterDomain field
```
## Behaviour
@ -15,7 +30,13 @@ The component resolves target apps by using the Kubernetes cluster's DNS provide
## Spec configuration fields
Not applicable, as Kubernetes DNS is configured by Dapr when running in Kubernetes mode.
The configuration spec is fixed to v1.3.0 of the Consul API
| Field | Required | Type | Details | Examples |
|--------------|:--------:|-----:|:---------|----------|
| clusterDomain | N | `string` | The cluster domain to be used for resolved addresses. This field is mutually exclusive with the `template` file.| `cluster.local`
| template | N | `string` | A template string to be parsed when addresses are resolved using [text/template](https://pkg.go.dev/text/template#Template) . The template will be populated by the fields in the [ResolveRequest](https://github.com/dapr/components-contrib/blob/v1.12.0-rc.3/nameresolution/requests.go#L20) struct. This field is mutually exclusive with `clusterDomain` field. | `{{.ID}}-{{.Data.region}}.{{.Namespace}}.internal:{{.Port}}`
## Related links