noheat: Add workaround for SDC case-sensivity in Istio

As described in 'Add an EnvoyFilter for HTTP header case' section of
https://wiki.onap.org/display/DW/ONAP+on+ServiceMesh+setup+guide

Issue-ID: INT-1601
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
Change-Id: I7d52794a9679bdb4c27afa3ebddecd41e561a0a2
diff --git a/deployment/noheat/cluster-rke/ansible/roles/deps/files/envoyfilter-case.yml b/deployment/noheat/cluster-rke/ansible/roles/deps/files/envoyfilter-case.yml
new file mode 100644
index 0000000..8edcf09
--- /dev/null
+++ b/deployment/noheat/cluster-rke/ansible/roles/deps/files/envoyfilter-case.yml
@@ -0,0 +1,41 @@
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: EnvoyFilter
+metadata:
+  name: header-casing
+  namespace: istio-config
+spec:
+  configPatches:
+  - applyTo: CLUSTER
+    match:
+      context: ANY
+    patch:
+      operation: MERGE
+      value:
+        typed_extension_protocol_options:
+          envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
+            '@type': type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
+            use_downstream_protocol_config:
+              http_protocol_options:
+                header_key_format:
+                  stateful_formatter:
+                    name: preserve_case
+                    typed_config:
+                      '@type': type.googleapis.com/envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig
+  - applyTo: NETWORK_FILTER
+    match:
+      listener:
+        filterChain:
+          filter:
+            name: envoy.filters.network.http_connection_manager
+    patch:
+      operation: MERGE
+      value:
+        typed_config:
+          '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
+          http_protocol_options:
+            header_key_format:
+              stateful_formatter:
+                name: preserve_case
+                typed_config:
+                  '@type': type.googleapis.com/envoy.extensions.http.header_formatters.preserve_case.v3.PreserveCaseFormatterConfig
diff --git a/deployment/noheat/cluster-rke/ansible/roles/deps/tasks/istio.yml b/deployment/noheat/cluster-rke/ansible/roles/deps/tasks/istio.yml
index 01e335c..89b8486 100644
--- a/deployment/noheat/cluster-rke/ansible/roles/deps/tasks/istio.yml
+++ b/deployment/noheat/cluster-rke/ansible/roles/deps/tasks/istio.yml
@@ -4,6 +4,13 @@
     name: istio
     repo_url: https://istio-release.storage.googleapis.com/charts
 
+- name: Create Istio config namespace
+  kubernetes.core.k8s:
+    name: istio-config
+    api_version: v1
+    kind: Namespace
+    state: present
+
 - name: Deploy Istio base chart
   kubernetes.core.helm:
     name: istio-base
@@ -19,6 +26,14 @@
     chart_ref: istio/istiod
     release_namespace: istio-system
     wait: true
+    release_values:
+      meshConfig:
+        rootNamespace: istio-config
+
+- name: Apply workaround for SDC case sensivity issue
+  kubernetes.core.k8s:
+    state: present
+    definition: "{{ lookup('file', 'envoyfilter-case.yml') | from_yaml }}"
 
 - name: Create Istio ingress gateway namespace
   kubernetes.core.k8s: