HTK: support a map for endpoint host lookups

This PS adds support for maps containing `host` for use within
the endpoint host lookup functions as well as a simple string

Change-Id: I21818676e3e907452912b7c7e3c5765e53aebc64
Signed-off-by: Pete Birley <pete@port.direct>
This commit is contained in:
Pete Birley 2019-01-28 11:21:29 -06:00
parent 52f6591f70
commit 26fd3f6be3

View File

@ -18,18 +18,57 @@ limitations under the License.
abstract: | abstract: |
Resolves either the fully qualified hostname, of if defined in the host feild Resolves either the fully qualified hostname, of if defined in the host feild
IPv4 for an endpoint. IPv4 for an endpoint.
values: | examples:
endpoints: - values: |
cluster_domain_suffix: cluster.local endpoints:
oslo_db: cluster_domain_suffix: cluster.local
hosts: oslo_db:
default: mariadb hosts:
host_fqdn_override: default: mariadb
default: null host_fqdn_override:
usage: | default: null
{{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }} usage: |
return: | {{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }}
mariadb.default.svc.cluster.local return: |
mariadb.default.svc.cluster.local
- values: |
endpoints:
cluster_domain_suffix: cluster.local
oslo_db:
hosts:
default:
host: mariadb
host_fqdn_override:
default: null
usage: |
{{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }}
return: |
mariadb.default.svc.cluster.local
- values: |
endpoints:
cluster_domain_suffix: cluster.local
oslo_db:
hosts:
default: 127.0.0.1
host_fqdn_override:
default: null
usage: |
{{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }}
return: |
127.0.0.1
- values: |
endpoints:
cluster_domain_suffix: cluster.local
oslo_db:
hosts:
default:
host: 127.0.0.1
host_fqdn_override:
default: null
usage: |
{{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }}
return: |
127.0.0.1
*/}} */}}
{{- define "helm-toolkit.endpoints.endpoint_host_lookup" -}} {{- define "helm-toolkit.endpoints.endpoint_host_lookup" -}}
@ -38,7 +77,11 @@ return: |
{{- $context := index . 2 -}} {{- $context := index . 2 -}}
{{- $endpointMap := index $context.Values.endpoints ( $type | replace "-" "_" ) }} {{- $endpointMap := index $context.Values.endpoints ( $type | replace "-" "_" ) }}
{{- $endpointScheme := $endpointMap.scheme }} {{- $endpointScheme := $endpointMap.scheme }}
{{- $endpointHost := index $endpointMap.hosts $endpoint | default $endpointMap.hosts.default }} {{- $_ := set $context.Values "__endpointHost" ( index $endpointMap.hosts $endpoint | default $endpointMap.hosts.default ) }}
{{- if kindIs "map" $context.Values.__endpointHost }}
{{- $_ := set $context.Values "__endpointHost" ( index $context.Values.__endpointHost "host" ) }}
{{- end }}
{{- $endpointHost := $context.Values.__endpointHost }}
{{- if regexMatch "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+" $endpointHost }} {{- if regexMatch "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+" $endpointHost }}
{{- $endpointHostname := printf "%s" $endpointHost }} {{- $endpointHostname := printf "%s" $endpointHost }}
{{- printf "%s" $endpointHostname -}} {{- printf "%s" $endpointHostname -}}