This is an automated email from the ASF dual-hosted git repository.

daisyguo pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-openwhisk-deploy-kube.git


The following commit(s) were added to refs/heads/master by this push:
     new 0b6a367  Improve support for configuration of action container DNS 
(#370)
0b6a367 is described below

commit 0b6a3676927ac33a42edfb722ba02e5e49501e77
Author: David Grove <dgrove-...@users.noreply.github.com>
AuthorDate: Wed Nov 28 00:22:19 2018 -0500

    Improve support for configuration of action container DNS (#370)
    
    Use go template loops to allow specification of a colon
    separated list of DNS servers for user action containers.
    Also align the name/placement of the action networking
    fields in values.yaml to better match PureConfig tree structure.
    
    Fixes #160.
---
 docs/configurationChoices.md              |  5 +++--
 helm/openwhisk/templates/invoker-pod.yaml | 17 ++++++++++-------
 helm/openwhisk/values.yaml                |  5 +++--
 3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/docs/configurationChoices.md b/docs/configurationChoices.md
index 61d1436..54b68d2 100644
--- a/docs/configurationChoices.md
+++ b/docs/configurationChoices.md
@@ -55,13 +55,14 @@ providers:
       username: "admin"
       password: "secret"
 ```
-2. Configure the DNS lookup for the user containers created by 
DockerContainerFactory to
+2. Configure the DNS nameservers for the user containers created by 
DockerContainerFactory to
 use Kubernetes's DNS service.  For example, if your cluster uses kube-dns, 
then first
 get the IP address of Kubernetes DNS server by `echo $(kubectl get svc 
kube-dns -n kube-system -o 'jsonpath={.spec.clusterIP}')`
 and then add below stanza to your `mycluster.yaml`:
 ```yaml
 invoker:
-  kubeDNS: "<IP_Address_Of_Kube_DNS>"
+  containerFactory:
+    nameservers: "<IP_Address_Of_Kube_DNS>"
 ```
 3. Use the lower performance `KubernetesContainerFactory` by adding the 
following stanza
 to your `mycluster.yaml`
diff --git a/helm/openwhisk/templates/invoker-pod.yaml 
b/helm/openwhisk/templates/invoker-pod.yaml
index 836427f..61c4768 100644
--- a/helm/openwhisk/templates/invoker-pod.yaml
+++ b/helm/openwhisk/templates/invoker-pod.yaml
@@ -79,19 +79,22 @@ spec:
               configMapKeyRef:
                 name: whisk.config
                 key: whisk_api_host_name
-          - name: "INVOKER_CONTAINER_NETWORK"
-            value: {{ .Values.invoker.containerNetwork | quote }}
+
           - name: "CONFIG_whisk_docker_containerFactory_useRunc"
             value: {{ .Values.invoker.containerFactory.useRunc | quote }}
 
           - name: "CONFIG_whisk_containerPool_userMemory"
             value: {{ .Values.whisk.containerPool.userMemory | quote }}
 
-          # DNS Server passed to action containers
-{{- if not (eq .Values.invoker.kubeDNS "nil") }}
-          - name: "CONFIG_whisk_containerFactory_containerArgs_dnsServers_0"
-            value: {{ .Values.invoker.kubeDNS }}
-{{ end }}
+{{- if ne .Values.invoker.containerFactory.nameservers "" }}
+          # DNS Server(s) to be used by action containers
+  {{- range $index, $element := splitList ":" 
.Values.invoker.containerFactory.nameservers }}
+          - name: "CONFIG_whisk_containerFactory_containerArgs_dnsServers_{{ 
$index }}"
+            value: {{ $element | quote }}
+  {{- end }}
+{{- end }}
+          - name: "CONFIG_whisk_docker_containerFactory_containerArgs_network"
+            value: {{ .Values.invoker.containerFactory.containerNetwork | 
quote }}
 
           # Invoker name is the name of the node (DaemonSet) or pod 
(StatefulSet)
           - name: "INVOKER_NAME"
diff --git a/helm/openwhisk/values.yaml b/helm/openwhisk/values.yaml
index 9bba833..d19c8f8 100644
--- a/helm/openwhisk/values.yaml
+++ b/helm/openwhisk/values.yaml
@@ -207,8 +207,9 @@ invoker:
         imagePullPolicy: "IfNotPresent"
         enabled: false
         port: 3233
-  containerNetwork: "bridge"
-  kubeDNS: nil
+    containerNetwork: "bridge"
+    # nameservers is an empty string or a colon separated list of IP addresses 
of DNS servers.
+    nameservers: ""
 
 # API Gateway configurations
 apigw:

Reply via email to