From 26fd3f6be3c2e7fe91116a9672c63dac326721a1 Mon Sep 17 00:00:00 2001 From: Pete Birley Date: Mon, 28 Jan 2019 11:21:29 -0600 Subject: [PATCH] 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 --- .../endpoints/_endpoint_host_lookup.tpl | 69 +++++++++++++++---- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/helm-toolkit/templates/endpoints/_endpoint_host_lookup.tpl b/helm-toolkit/templates/endpoints/_endpoint_host_lookup.tpl index e789b0e71..6f3466c19 100644 --- a/helm-toolkit/templates/endpoints/_endpoint_host_lookup.tpl +++ b/helm-toolkit/templates/endpoints/_endpoint_host_lookup.tpl @@ -18,18 +18,57 @@ limitations under the License. abstract: | Resolves either the fully qualified hostname, of if defined in the host feild IPv4 for an endpoint. -values: | - endpoints: - cluster_domain_suffix: cluster.local - oslo_db: - hosts: - default: mariadb - host_fqdn_override: - default: null -usage: | - {{ tuple "oslo_db" "internal" . | include "helm-toolkit.endpoints.endpoint_host_lookup" }} -return: | - mariadb.default.svc.cluster.local +examples: + - values: | + endpoints: + cluster_domain_suffix: cluster.local + oslo_db: + hosts: + default: 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: + 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" -}} @@ -38,7 +77,11 @@ return: | {{- $context := index . 2 -}} {{- $endpointMap := index $context.Values.endpoints ( $type | replace "-" "_" ) }} {{- $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 }} {{- $endpointHostname := printf "%s" $endpointHost }} {{- printf "%s" $endpointHostname -}}