aboutsummaryrefslogtreecommitdiffstats
path: root/vnfs/DAaaS
diff options
context:
space:
mode:
authorPramod <pramod.raghavendra.jayathirth@intel.com>2019-10-04 17:23:19 -0700
committerMarco Platania <platania@research.att.com>2019-10-09 14:40:32 +0000
commit7da06c296697269dd25fe03528c9f12b62206482 (patch)
tree12bab59d0907a48935e5123139cd3b8518305c88 /vnfs/DAaaS
parentd614d3d6cc1d40664215f79fc2c2f38af03a9996 (diff)
Add Istio connectivity for Services below
1. Grafana 2. Prometheus 3. Minio (Istio ServiceEntry Added) Issue-ID: ONAPARC-511 Signed-off-by: Pramod <pramod.raghavendra.jayathirth@intel.com> Change-Id: I2cb21c18fde6ecb431fa7f407ce5e13ab31fc910
Diffstat (limited to 'vnfs/DAaaS')
-rw-r--r--vnfs/DAaaS/README.md23
-rw-r--r--vnfs/DAaaS/deploy/istio-config/README.md68
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/README.md12
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/.helmignore22
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/Chart.yaml18
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/_helpers.tpl25
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/virtualservice.yaml35
-rw-r--r--vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/values.yaml22
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/README.md12
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/.helmignore22
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/Chart.yaml18
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/_helpers.tpl25
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/serviceentry.yaml32
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/virtualservice.yaml41
-rw-r--r--vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/values.yaml32
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/README.md13
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/.helmignore22
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/Chart.yaml18
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/_helpers.tpl25
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/virtualservice.yaml37
-rw-r--r--vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/values.yaml21
21 files changed, 543 insertions, 0 deletions
diff --git a/vnfs/DAaaS/README.md b/vnfs/DAaaS/README.md
index 4811eb06..91b5817c 100644
--- a/vnfs/DAaaS/README.md
+++ b/vnfs/DAaaS/README.md
@@ -13,6 +13,29 @@ git clone https://github.com/onap/demo.git
DA_WORKING_DIR=$PWD/demo/vnfs/DAaaS/deploy
```
+## Install Istio Service Mesh
+
+## Istio is installed in two Steps
+```bash
+1. Istio-Operator
+2. Istio-config
+```
+
+## Download the Istio Installation repo
+
+```bash
+cd DA_WORKING_DIR/00-init
+helm install --name=istio-operator --namespace=istio-system istio-operator
+helm install istio-instance --name istio --namespace istio-system
+```
+
+## Install Metallb to act as a Loadbalancer
+```bash
+cd DA_WORKING_DIR/00-init
+NOTE: Update the IP Address Ranges before you Install Metallb
+helm install --name metallb -f values.yaml metallb
+```
+
## Install Rook-Ceph for Persistent Storage
Note: This is unusual but Flex volume path can be different than the default value. values.yaml has the most common flexvolume path configured. In case of errors related to flexvolume please refer to the https://rook.io/docs/rook/v0.9/flexvolume.html#configuring-the-flexvolume-path to find the appropriate flexvolume-path and set it in values.yaml
```bash
diff --git a/vnfs/DAaaS/deploy/istio-config/README.md b/vnfs/DAaaS/deploy/istio-config/README.md
new file mode 100644
index 00000000..5053ac3f
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/README.md
@@ -0,0 +1,68 @@
+# Install Istio configurations for Service connectivity
+
+## Prometheus
+
+```bash
+NOTE: Prometheus is Usually consumed by multiple services,
+Thus we need to expose the Prometheus to all of them.
+
+1. Update "allowedhosts" in values.yaml in prometheus-config-virtualservice
+with all the servies consuming Prometheus
+2. gateways - Name of the Istio gateway to which this
+virtualservice will be connected to
+3. destinationhost - Prometheus service's name
+4. port - port of the Prometheus service
+
+After updating all the required details as per the
+specification of deployment run the below command
+
+cd ~/demo/vnfs/DAaaS/deploy/istio-config/prometheus-config
+
+helm install prometheus-istio-connectivity -n edge1
+```
+## Grafana
+
+```bash
+NOTE: Grafana can be accessed on multiple hosts,
+Update the "allowedhosts" on which the Grafana is
+accessed
+
+1. Update "allowedhosts" in values.yaml in grafana-config-virtualservice
+with all the host/service names on which Grafana is accessed
+2. gateways - Name of the Istio gateway to which this
+virtualservice will be connected to
+3. destinationhost - Grafana service's name
+4. port - Port of the Grafana Service
+
+After updating all the required details as per the
+specification of deployment run the below command
+
+cd ~/demo/vnfs/DAaaS/deploy/istio-config/grafana-config
+
+helm install grafana-istio-connectivity -n edge1
+```
+
+## Minio
+```bash
+NOTE: Minio is a Headless Service. From Istio's perspective
+Headless service can be accessed only by accessing each pod
+of the service.
+
+To access each pod we need a virtualservice and service entry
+which has pod level entries
+
+1. Update "allowedhosts" in values.yaml in minio-istio-connectivity
+with all the host/Service names on which minio is accessed
+2. gateways - Name of the Istio gateway to which this
+virtualservice will be connected to
+3. destinationhost - pod name of minio which needs to be accessed
+Template - <POD_NAME>.<SERVICE_NAME>.<NAMESPACE>.<SVC><CLUSTER>.<LOCAL>
+4. destinationhostPort - Port of the minio pod
+
+After updating all the required details as per the
+specification of deployment run the below command
+
+cd ~/demo/vnfs/DAaaS/deploy/istio-config/minio-config
+
+helm install minio-istio-connectivity -n edge1
+```
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/README.md b/vnfs/DAaaS/deploy/istio-config/grafana-config/README.md
new file mode 100644
index 00000000..4999a27b
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/README.md
@@ -0,0 +1,12 @@
+# Istio virtualservice for Grafana to be exposed on a specific host
+
+The following values has to be updated depending on the Cluster's installation in values.yaml
+
+1. allowedhosts - URI of Service on which Grafana is accessed
+2. gateways - Name of the Istio gateway to which this virtualservice will be connected to
+3. destinationhost - Grafana service's name
+
+# Installation
+1. helm install grafana-istio-connectivity -n edge1
+
+NOTE - The namespace (edge1) is used an example. This has to be changed to be namespace where Grafana is deployed.
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/.helmignore b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/.helmignore
new file mode 100644
index 00000000..50af0317
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/.helmignore
@@ -0,0 +1,22 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/Chart.yaml b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/Chart.yaml
new file mode 100644
index 00000000..0eb7645a
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/Chart.yaml
@@ -0,0 +1,18 @@
+# Copyright © 2019 Intel Corporation
+# #
+# # 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.
+apiVersion: v1
+appVersion: "1.0"
+description: A Helm chart for Istio virtualservice to Grafana
+name: grafana-istio-connectivity
+version: 0.1.0
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/_helpers.tpl b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/_helpers.tpl
new file mode 100644
index 00000000..5516ee45
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/_helpers.tpl
@@ -0,0 +1,25 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/virtualservice.yaml b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/virtualservice.yaml
new file mode 100644
index 00000000..fbccd5ac
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/templates/virtualservice.yaml
@@ -0,0 +1,35 @@
+{{/*
+# Copyright 2019 Intel Corporation, Inc
+#
+# 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.
+*/}}
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: {{ template "fullname" . }}
+spec:
+ hosts:
+ {{- range .Values.allowedhosts }}
+ - {{ . | quote }}
+ {{- end }}
+ gateways:
+ {{- range .Values.gateways }}
+ - {{ . | quote }}
+ {{- end }}
+ http:
+ - match:
+ - uri:
+ prefix: /
+ route:
+ - destination:
+ host: {{ .Values.destinationhost }}
diff --git a/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/values.yaml b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/values.yaml
new file mode 100644
index 00000000..0070444a
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/grafana-config/grafana-istio-connectivity/values.yaml
@@ -0,0 +1,22 @@
+# Copyright © 2019 Intel Corporation
+#
+# 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.
+#
+# This file is a sample virtualservice format
+# allowedhost below is an example, It needs to be changed to host on which
+# Grafana is accessed.
+allowedhosts:
+- "grafana.k8s.onap.com"
+gateways:
+- http-gateway
+destinationhost: graf-prometheus-grafana
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/README.md b/vnfs/DAaaS/deploy/istio-config/minio-config/README.md
new file mode 100644
index 00000000..9df2374d
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/README.md
@@ -0,0 +1,12 @@
+# Istio virtualservice/Serviceentry for a specifc minio pod to be exposed to any service
+
+The following values has to be updated depending on the Cluster's installation in values.yaml
+
+1. allowedhosts - URI of Service on which minio is accessed
+2. gateways - Name of the Istio gateway to which this virtualservice will be connected to
+3. destinationhost - Specific pod name of the minio, Since it is a headless service
+
+# Installation
+1. helm install minio-istio-connectivity -n edge1
+
+NOTE - The namespace (edge1) is used an example. This has to be changed to be namespace where minio is deployed.
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/.helmignore b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/.helmignore
new file mode 100644
index 00000000..50af0317
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/.helmignore
@@ -0,0 +1,22 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/Chart.yaml b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/Chart.yaml
new file mode 100644
index 00000000..5ad565fe
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/Chart.yaml
@@ -0,0 +1,18 @@
+# Copyright © 2019 Intel Corporation
+# #
+# # 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.
+apiVersion: v1
+appVersion: "1.0"
+description: A Helm chart for Istio connectivity for Minio
+name: minio-istio-connectivity
+version: 0.1.0
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/_helpers.tpl b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/_helpers.tpl
new file mode 100644
index 00000000..5516ee45
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/_helpers.tpl
@@ -0,0 +1,25 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/serviceentry.yaml b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/serviceentry.yaml
new file mode 100644
index 00000000..50e0a1df
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/serviceentry.yaml
@@ -0,0 +1,32 @@
+{{/*
+# Copyright 2019 Intel Corporation, Inc
+#
+# 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.
+*/}}
+{{- $root := . -}}
+{{- range $index, $destination := .Values.destination }}
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: ServiceEntry
+metadata:
+ name: {{ template "fullname" $root }}-serviceentry-{{$index}}
+spec:
+ hosts:
+ - {{ $destination.host }}
+ location: MESH_INTERNAL
+ ports:
+ - name: minio-port-{{$index}}
+ number: {{ $destination.port }}
+ protocol: TCP
+ resolution: DNS
+{{- end }}
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/virtualservice.yaml b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/virtualservice.yaml
new file mode 100644
index 00000000..f3a4fca9
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/templates/virtualservice.yaml
@@ -0,0 +1,41 @@
+{{/*
+# Copyright 2019 Intel Corporation, Inc
+#
+# 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.
+*/}}
+{{- $root := . -}}
+{{- range $index, $destination := .Values.destination }}
+---
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: {{ template "fullname" $root }}-virtualservice-{{$index}}
+spec:
+ hosts:
+ {{- range $root.Values.allowedhosts }}
+ - {{ . | quote }}
+ {{- end }}
+ gateways:
+ {{- range $root.Values.gateways }}
+ - {{ . | quote }}
+ {{- end }}
+ http:
+ - match:
+ - uri:
+ prefix: /
+ route:
+ - destination:
+ host: {{ $destination.host }}
+ port:
+ number: {{ $destination.port }}
+{{- end }}
diff --git a/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/values.yaml b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/values.yaml
new file mode 100644
index 00000000..b98b78a4
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/minio-config/minio-istio-connectivity/values.yaml
@@ -0,0 +1,32 @@
+# Copyright © 2019 Intel Corporation
+#
+# 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.
+#
+# This file is a sample virtualservice format
+# allowedhost below is an example, It needs to be changed to host on which
+# minio is accessed.
+allowedhosts:
+- "minio.k8s.onap.com"
+gateways:
+- http-gateway
+destination:
+ - host: minio-0.minio-svc.edge1.svc.cluster.local
+ port: 9000
+ - host: minio-1.minio-svc.edge1.svc.cluster.local
+ port: 9000
+ - host: minio-2.minio-svc.edge1.svc.cluster.local
+ port: 9000
+ - host: minio-3.minio-svc.edge1.svc.cluster.local
+ port: 9000
+# Template for destinationhost is
+# <POD_NAME>.<SERVICE_NAME>.<NAMESPACE>.<SVC><CLUSTER>.<LOCAL>
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/README.md b/vnfs/DAaaS/deploy/istio-config/prometheus-config/README.md
new file mode 100644
index 00000000..fd64e2a0
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/README.md
@@ -0,0 +1,13 @@
+# Istio virtualservice for Prometheus to connect to any service
+
+The following values has to be updated depending on the Cluster's installation in values.yaml
+
+1. allowedhosts - URI of Service consuming Prometheus (or Any service which consumes Prometheus. Eg- Grafana)
+2. gateways - Name of the Istio gateway to which this virtualservice will be connected to
+3. destinationhost - Prometheus service name
+4. port - port of the Prometheus service
+
+# Installation
+1. helm install prometheus-istio-connectivity -n edge1
+
+NOTE - The namespace (edge1) is used an example. This has to be changed to be namespace where Prometheus is deployed.
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/.helmignore b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/.helmignore
new file mode 100644
index 00000000..50af0317
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/.helmignore
@@ -0,0 +1,22 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/Chart.yaml b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/Chart.yaml
new file mode 100644
index 00000000..c6c56a99
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/Chart.yaml
@@ -0,0 +1,18 @@
+# Copyright © 2019 Intel Corporation
+# #
+# # 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.
+apiVersion: v1
+appVersion: "1.0"
+description: A Helm chart for Istio virtualservice
+name: prometheus-istio-connectivity
+version: 0.1.0
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/_helpers.tpl b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/_helpers.tpl
new file mode 100644
index 00000000..5516ee45
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/_helpers.tpl
@@ -0,0 +1,25 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/virtualservice.yaml b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/virtualservice.yaml
new file mode 100644
index 00000000..fdeba94b
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/templates/virtualservice.yaml
@@ -0,0 +1,37 @@
+{{/*
+# Copyright 2019 Intel Corporation, Inc
+#
+# 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.
+*/}}
+apiVersion: networking.istio.io/v1alpha3
+kind: VirtualService
+metadata:
+ name: {{ template "fullname" . }}
+spec:
+ hosts:
+ {{- range .Values.allowedhosts }}
+ - {{ . | quote }}
+ {{- end }}
+ gateways:
+ {{- range .Values.gateways }}
+ - {{ . | quote }}
+ {{- end }}
+ http:
+ - match:
+ - uri:
+ prefix: /
+ route:
+ - destination:
+ host: {{ .Values.destinationhost }}
+ port:
+ number: {{.Values.port }}
diff --git a/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/values.yaml b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/values.yaml
new file mode 100644
index 00000000..864ba5d9
--- /dev/null
+++ b/vnfs/DAaaS/deploy/istio-config/prometheus-config/prometheus-istio-connectivity/values.yaml
@@ -0,0 +1,21 @@
+# Copyright © 2019 Intel Corporation
+#
+# 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.
+#
+# This file is a sample virtualservice format
+allowedhosts:
+- "prometheus.edge1.k8s.com"
+gateways:
+- http-gateway
+destinationhost: cp-prometheus-prometheus
+port: 9090