# Copyright © 2017 Amdocs, Bell Canada
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#{{ if not .Values.disableAaiDataRouter }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-prop-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/data-router.properties").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-model-v8-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v8.xml").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-model-v9-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v9.xml").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-model-v10-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v10.xml").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-model-v11-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/model/aai_oxm_v11.xml").AsConfig . | indent 2 }}
---
apiVersion: v1
kind: Secret
metadata:
  name: aai-data-router-secret
  namespace: {{ .Values.nsPrefix }}
type: Opaque
data:
{{ tpl (.Files.Glob "resources/config/data-router/appconfig/auth/*").AsSecrets . | indent 2 }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: aai-data-router-dynamic-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ tpl (.Files.Glob "resources/config/data-router/dynamic/routes/entity-event.route").AsConfig . | indent 2 }}
{{ tpl (.Files.Glob "resources/config/data-router/dynamic/conf/entity-event-policy.xml").AsConfig . | indent 2 }}
#{{ end }}
