Initial commit for chronos-umbrella

Change-Id: Ice4173f994e049c5ef333046438b27a1a396e234
diff --git a/chronos-umbrella/Chart.yaml b/chronos-umbrella/Chart.yaml
new file mode 100644
index 0000000..7cf0cfc
--- /dev/null
+++ b/chronos-umbrella/Chart.yaml
@@ -0,0 +1,32 @@
+# SPDX-FileCopyrightText: 2021-present Open Networking Foundation <info@opennetworking.org>

+#

+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

+

+apiVersion: v2

+name: chronos-umbrella

+description: Chronos Umbrella chart to deploy all Aether ROC

+kubeVersion: ">=1.18.0"

+type: application

+version: 0.0.1

+appVersion: v0.0.0

+keywords:

+  - aether

+  - exporter

+home: https://www.opennetworking.org/aether/

+maintainers:

+  - name: Aether Ops team

+    email: support@opennetworking.org

+dependencies:

+  - name: grafana

+    condition: import.grafana.enabled

+    repository: https://grafana.github.io/helm-charts

+    version: 6.16.6

+  - name: prometheus

+    condition: import.prometheus.chronos.enabled

+    repository: https://prometheus-community.github.io/helm-charts

+    version: 14.6.1

+    alias: prometheus-chronos

+  - name: chronos-exporter

+    condition: import.chronos-exporter.enabled

+    repository: "file://../chronos-exporter"

+    version: 0.0.1

diff --git a/chronos-umbrella/README.md b/chronos-umbrella/README.md
new file mode 100644
index 0000000..78366db
--- /dev/null
+++ b/chronos-umbrella/README.md
@@ -0,0 +1,20 @@
+<!--

+SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>

+

+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

+-->

+

+## Chronos Umbrella chart

+

+Provides a [Helm] chart for deploying

+

+* chronos-exporter

+* grafana

+* prometheus

+

+to [Kubernetes].

+> See the [documentation] for more info.

+

+[Kubernetes]: https://kubernetes.io/

+[Helm]: https://helm.sh/

+[documentation]: https://docs.onosproject.org/developers/deploy_with_helm/

diff --git a/chronos-umbrella/files/dashboards/site/site-availability.json b/chronos-umbrella/files/dashboards/site/site-availability.json
new file mode 100644
index 0000000..4a1f028
--- /dev/null
+++ b/chronos-umbrella/files/dashboards/site/site-availability.json
@@ -0,0 +1,135 @@
+{

+    

+        "annotations": {

+            "list": [

+                {

+                    "builtIn": 1,

+                    "datasource": "-- Grafana --",

+                    "enable": true,

+                    "hide": true,

+                    "iconColor": "rgba(0, 211, 255, 1)",

+                    "name": "Annotations & Alerts",

+                    "type": "dashboard"

+                }

+            ]

+        },

+        "description": "",

+        "editable": false,

+        "gnetId": null,

+        "graphTooltip": 0,

+        "links": [],

+        "panels": [

+            {

+                "datasource": "$ds",

+                "description": "Cluster Availability",

+                "fieldConfig": {

+                    "defaults": {

+                        "color": {

+                            "mode": "palette-classic"

+                        },

+                        "custom": {

+                            "axisLabel": "",

+                            "axisPlacement": "auto",

+                            "barAlignment": 0,

+                            "drawStyle": "line",

+                            "fillOpacity": 0,

+                            "gradientMode": "none",

+                            "hideFrom": {

+                                "legend": false,

+                                "tooltip": false,

+                                "viz": false

+                            },

+                            "lineInterpolation": "linear",

+                            "lineWidth": 1,

+                            "pointSize": 5,

+                            "scaleDistribution": {

+                                "type": "linear"

+                            },

+                            "showPoints": "auto",

+                            "spanNulls": false,

+                            "stacking": {

+                                "group": "A",

+                                "mode": "none"

+                            },

+                            "thresholdsStyle": {

+                                "mode": "off"

+                            }

+                        },

+                        "mappings": [],

+                        "thresholds": {

+                            "mode": "absolute",

+                            "steps": [

+                                {

+                                    "color": "green",

+                                    "value": null

+                                },

+                                {

+                                    "color": "red",

+                                    "value": 80

+                                }

+                            ]

+                        }

+                    },

+                    "overrides": []

+                },

+                "gridPos": {

+                    "h": 8,

+                    "w": 12,

+                    "x": 0,

+                    "y": 0

+                },

+                "id": 1,

+                "options": {

+                    "legend": {

+                        "calcs": [],

+                        "displayMode": "list",

+                        "placement": "bottom"

+                    },

+                    "tooltip": {

+                        "mode": "single"

+                    }

+                },

+                "targets": [

+                    {

+                        "exemplar": true,

+                        "expr": "sum by (node) (kube_node_status_condition{condition=~\"Ready\",status=~\"true\"})",

+                        "interval": "",

+                        "legendFormat": "{{node}}",

+                        "queryType": "randomWalk",

+                        "refId": "A"

+                    }

+                ],

+                "title": "Cluster Nodes Status",

+                "type": "timeseries"

+            }

+        ],

+        "refresh": "",

+        "schemaVersion": 30,

+        "style": "light",

+        "tags": [],

+        "templating": {

+            "list": [

+                {

+                    "label" : "Datasource",

+                    "multi" : false,

+                    "name" : "ds",

+                    "type" : "datasource",

+                    "query": "prometheus",

+                    "queryValue": "",

+                    "refresh": 1,

+                    "regex": ""

+                }

+            ]

+        },

+        "time": {

+            "from": "now-15m",

+            "to": "now"

+        },

+        "timepicker": {},

+        "timezone": "",

+        "title": "Cluster Health",

+        "uid": "site-availability",

+        "version": 1

+    }

+

+

diff --git a/chronos-umbrella/files/dashboards/site/site-monitoring.json b/chronos-umbrella/files/dashboards/site/site-monitoring.json
new file mode 100644
index 0000000..65535d6
--- /dev/null
+++ b/chronos-umbrella/files/dashboards/site/site-monitoring.json
@@ -0,0 +1,149 @@
+{

+    

+        "annotations": {

+            "list": [

+                {

+                    "builtIn": 1,

+                    "datasource": "-- Grafana --",

+                    "enable": true,

+                    "hide": true,

+                    "iconColor": "rgba(0, 211, 255, 1)",

+                    "name": "Annotations & Alerts",

+                    "type": "dashboard"

+                }

+            ]

+        },

+        "description": "",

+        "editable": false,

+        "gnetId": null,

+        "graphTooltip": 0,

+        "links": [],

+        "panels": [

+            {

+                "datasource": "$ds",

+                "description": "E2E Tests",

+                "fieldConfig": {

+                    "defaults": {

+                        "color": {

+                            "mode": "palette-classic"

+                        },

+                        "custom": {

+                            "axisLabel": "",

+                            "axisPlacement": "auto",

+                            "barAlignment": 0,

+                            "drawStyle": "line",

+                            "fillOpacity": 0,

+                            "gradientMode": "none",

+                            "hideFrom": {

+                                "legend": false,

+                                "tooltip": false,

+                                "viz": false

+                            },

+                            "lineInterpolation": "linear",

+                            "lineWidth": 1,

+                            "pointSize": 5,

+                            "scaleDistribution": {

+                                "type": "linear"

+                            },

+                            "showPoints": "auto",

+                            "spanNulls": false,

+                            "stacking": {

+                                "group": "A",

+                                "mode": "none"

+                            },

+                            "thresholdsStyle": {

+                                "mode": "off"

+                            }

+                        },

+                        "mappings": [],

+                        "thresholds": {

+                            "mode": "absolute",

+                            "steps": [

+                                {

+                                    "color": "green",

+                                    "value": null

+                                },

+                                {

+                                    "color": "red",

+                                    "value": 80

+                                }

+                            ]

+                        }

+                    },

+                    "overrides": []

+                },

+                "gridPos": {

+                    "h": 9,

+                    "w": 12,

+                    "x": 0,

+                    "y": 0

+                },

+                "id": 1,

+                "options": {

+                    "legend": {

+                        "calcs": [],

+                        "displayMode": "list",

+                        "placement": "bottom"

+                    },

+                    "tooltip": {

+                        "mode": "single"

+                    }

+                },

+                "targets": [

+                    {

+                        "exemplar": true,

+                        "expr": "sum by (name) (aetheredge_e2e_tests_ok{name=~\"$agents\"})",

+                        "interval": "",

+                        "legendFormat": "{{name}}",

+                        "queryType": "randomWalk",

+                        "refId": "A"

+                    }

+                ],

+                "title": "Monitoring agents E2E Test",

+                "type": "timeseries"

+            }

+        ],

+        "refresh": "",

+        "schemaVersion": 30,

+        "style": "light",

+        "tags": [],

+        "templating": {

+            "list": [

+                {

+                    "label" : "Agents",

+                    "multi" : true,

+                    "name" : "agents",

+                    "type" : "query",

+                    "datasource": "$ds",

+                    "definition": "label_values(aetheredge_e2e_tests_ok, name)",

+                    "query": {

+                        "query": "label_values(aetheredge_e2e_tests_ok, name)",

+                        "refId": "StandardVariableQuery"

+                    },

+                    "refresh": 1,  

+                    "sort" : 1

+                },

+		{

+                    "label" : "Datasource",

+                    "multi" : false,

+                    "name" : "ds",

+                    "type" : "datasource",

+                    "query": "prometheus",

+                    "queryValue": "",

+                    "refresh": 1,

+                    "regex": ""

+                }

+	    ] 

+        },

+        "time": {

+            "from": "now-15m",

+            "to": "now"

+        },

+        "timepicker": {},

+        "timezone": "",

+        "title": "E2E Tests",

+        "uid": "site-monitoring",

+        "version": 1

+    }

+

+

diff --git a/chronos-umbrella/files/dashboards/site/site-small-cells.json b/chronos-umbrella/files/dashboards/site/site-small-cells.json
new file mode 100644
index 0000000..910e8d3
--- /dev/null
+++ b/chronos-umbrella/files/dashboards/site/site-small-cells.json
@@ -0,0 +1,149 @@
+{

+    

+        "annotations": {

+            "list": [

+                {

+                    "builtIn": 1,

+                    "datasource": "-- Grafana --",

+                    "enable": true,

+                    "hide": true,

+                    "iconColor": "rgba(0, 211, 255, 1)",

+                    "name": "Annotations & Alerts",

+                    "type": "dashboard"

+                }

+            ]

+        },

+        "description": "",

+        "editable": false,

+        "gnetId": null,

+        "graphTooltip": 0,

+        "links": [],

+        "panels": [

+            {

+                "datasource": "$ds",

+                "description": "Small Cells connectivity on MME",

+                "fieldConfig": {

+                    "defaults": {

+                        "color": {

+                            "mode": "palette-classic"

+                        },

+                        "custom": {

+                            "axisLabel": "",

+                            "axisPlacement": "auto",

+                            "barAlignment": 0,

+                            "drawStyle": "line",

+                            "fillOpacity": 0,

+                            "gradientMode": "none",

+                            "hideFrom": {

+                                "legend": false,

+                                "tooltip": false,

+                                "viz": false

+                            },

+                            "lineInterpolation": "linear",

+                            "lineWidth": 1,

+                            "pointSize": 5,

+                            "scaleDistribution": {

+                                "type": "linear"

+                            },

+                            "showPoints": "auto",

+                            "spanNulls": false,

+                            "stacking": {

+                                "group": "A",

+                                "mode": "none"

+                            },

+                            "thresholdsStyle": {

+                                "mode": "off"

+                            }

+                        },

+                        "mappings": [],

+                        "thresholds": {

+                            "mode": "absolute",

+                            "steps": [

+                                {

+                                    "color": "green",

+                                    "value": null

+                                },

+                                {

+                                    "color": "red",

+                                    "value": 80

+                                }

+                            ]

+                        }

+                    },

+                    "overrides": []

+                },

+                "gridPos": {

+                    "h": 9,

+                    "w": 12,

+                    "x": 0,

+                    "y": 0

+                },

+                "id": 1,

+                "options": {

+                    "legend": {

+                        "calcs": [],

+                        "displayMode": "list",

+                        "placement": "bottom"

+                    },

+                    "tooltip": {

+                        "mode": "single"

+                    }

+                },

+                "targets": [

+                    {

+                        "exemplar": true,

+                        "expr": "sum by (enbname) (mme_number_of_enb_attached{enb_state=\"Active\", enbname=~\"$enb\"})",

+                        "interval": "",

+                        "legendFormat": "{{enbname}}",

+                        "queryType": "randomWalk",

+                        "refId": "A"

+                    }

+                ],

+                "title": "Site Small Cells connectivity status",

+                "type": "timeseries"

+            }

+        ],

+        "refresh": "",

+        "schemaVersion": 30,

+        "style": "light",

+        "tags": [],

+        "templating": {

+            "list": [

+                {

+                    "label" : "ENB",

+                    "multi" : true,

+                    "name" : "enb",

+                    "type" : "query",

+                    "datasource": "$ds",

+                    "definition": "label_values(mme_number_of_enb_attached, enbname)",

+                    "query": {

+                        "query": "label_values(mme_number_of_enb_attached, enbname)",

+                        "refId": "StandardVariableQuery"

+                    },

+                    "refresh": 1,  

+                    "sort" : 1

+                },

+		{

+                    "label" : "Datasource",

+                    "multi" : false,

+                    "name" : "ds",

+                    "type" : "datasource",

+                    "query": "prometheus",

+                    "queryValue": "",

+                    "refresh": 1,

+                    "regex": ""

+                }

+	    ] 

+        },

+        "time": {

+            "from": "now-15m",

+            "to": "now"

+        },

+        "timepicker": {},

+        "timezone": "",

+        "title": "ENB Status",

+        "uid": "site-small-cell",

+        "version": 1

+    }

+

+

diff --git a/chronos-umbrella/files/dashboards/ue/ue-connectivity.json b/chronos-umbrella/files/dashboards/ue/ue-connectivity.json
new file mode 100644
index 0000000..c9f0423
--- /dev/null
+++ b/chronos-umbrella/files/dashboards/ue/ue-connectivity.json
@@ -0,0 +1,147 @@
+{

+ 

+    "annotations": {

+      "list": [

+        {

+          "builtIn": 1,

+          "datasource": "-- Grafana --",

+          "enable": true,

+          "hide": true,

+          "iconColor": "rgba(0, 211, 255, 1)",

+          "name": "Annotations & Alerts",

+          "type": "dashboard"

+        }

+      ]

+    },

+    "editable": false,

+    "gnetId": null,

+    "graphTooltip": 0,

+    "links": [],

+    "panels": [

+      {

+        "datasource": "$ds",

+        "description": "UE Connectivity",

+        "fieldConfig": {

+          "defaults": {

+            "color": {

+              "mode": "palette-classic"

+            },

+            "custom": {

+              "axisLabel": "",

+              "axisPlacement": "auto",

+              "barAlignment": 0,

+              "drawStyle": "line",

+              "fillOpacity": 0,

+              "gradientMode": "none",

+              "hideFrom": {

+                "legend": false,

+                "tooltip": false,

+                "viz": false

+              },

+              "lineInterpolation": "linear",

+              "lineWidth": 1,

+              "pointSize": 5,

+              "scaleDistribution": {

+                "type": "linear"

+              },

+              "showPoints": "auto",

+              "spanNulls": false,

+              "stacking": {

+                "group": "A",

+                "mode": "none"

+              },

+              "thresholdsStyle": {

+                "mode": "off"

+              }

+            },

+            "mappings": [],

+            "thresholds": {

+              "mode": "absolute",

+              "steps": [

+                {

+                  "color": "green",

+                  "value": null

+                },

+                {

+                  "color": "red",

+                  "value": 80

+                }

+              ]

+            }

+          },

+          "overrides": []

+        },

+        "gridPos": {

+          "h": 8,

+          "w": 12,

+          "x": 0,

+          "y": 0

+        },

+        "id": 1,

+        "options": {

+          "legend": {

+            "calcs": [],

+            "displayMode": "list",

+            "placement": "bottom"

+          },

+          "tooltip": {

+            "mode": "single"

+          }

+        },

+        "targets": [

+          {

+            "exemplar": true,

+            "expr": "subscribers_info{imsi=\"$imsi\"}",

+            "interval": "",

+            "legendFormat": "Connectivity",

+            "queryType": "randomWalk",

+            "refId": "A"

+          }

+        ],

+        "title": "UE $imsi Connectivity",

+        "type": "timeseries"

+      }

+    ],

+    "refresh": "",

+    "schemaVersion": 30,

+    "style": "light",

+    "tags": [],

+    "templating": {

+      "list": [

+          {

+                    "label" : "IMSI",

+                    "multi" : false,

+                    "name" : "imsi",

+                    "type" : "query",

+                    "datasource": "$ds",

+                    "definition": "label_values(subscribers_info, imsi)",

+                    "query": {

+                        "query": "label_values(subscribers_info, imsi)",

+                        "refId": "StandardVariableQuery"

+                    },

+                    "refresh": 1,  

+                    "sort" : 1

+        },

+	{

+                    "label" : "Datasource",

+                    "multi" : false,

+                    "name" : "ds",

+                    "type" : "datasource",

+                    "query": "prometheus",

+                    "queryValue": "",

+                    "refresh": 1,

+                    "regex": ""

+        }

+      ]

+    },

+    "time": {

+      "from": "now-15m",

+      "to": "now"

+    },

+    "timepicker": {},

+    "timezone": "",

+    "title": "UE Connectivity",

+    "uid": "ue-conn",

+    "version": 1

+  }

+

diff --git a/chronos-umbrella/templates/NOTES.txt b/chronos-umbrella/templates/NOTES.txt
new file mode 100644
index 0000000..6bbb75c
--- /dev/null
+++ b/chronos-umbrella/templates/NOTES.txt
@@ -0,0 +1,25 @@
+# SPDX-FileCopyrightText: 2021 Open Networking Foundation

+#

+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

+

+Thank you for installing {{ .Chart.Name }} Helm chart.

+

+Your release is named {{ .Release.Name }} in namespace {{.Release.Namespace}}.

+See https://docs.onosproject.org/developers/deploy_with_helm/

+

+To learn more about the release, try:

+  $ helm -n {{.Release.Namespace}} status {{ .Release.Name }}

+  $ helm -n {{.Release.Namespace}} get all {{ .Release.Name }}

+  $ watch kubectl -n {{.Release.Namespace}} get pods

+

+You can attach to:

+* Aether CLI pod with

+$ kubectl -n {{.Release.Namespace}} exec -it $(kubectl -n {{.Release.Namespace}} get pods -l type=cli -o name) -- /bin/sh

+* Aether Portal at http://<server_IP>:31190

+

+If you are using KinD as a Kubernetes server, you will have to use a "port-forward" to access the Aether ROC GUI e.g.

+$ kubectl -n {{.Release.Namespace}} port-forward service/aether-roc-gui 8183:80

+and then access the GUI at

+* http://localhost:8183

+

+The aether-roc-api is then available at http://localhost:8183/aether-roc-api

diff --git a/chronos-umbrella/templates/_helpers.tpl b/chronos-umbrella/templates/_helpers.tpl
new file mode 100644
index 0000000..6e413de
--- /dev/null
+++ b/chronos-umbrella/templates/_helpers.tpl
@@ -0,0 +1,81 @@
+{{/* vim: set filetype=mustache: */}}

+{{/*

+SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>

+SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

+

+Expand the name of the chart.

+*/}}

+{{- define "global.name" -}}

+{{- default .Chart.Name .Values.global.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 "global.fullname" -}}

+{{- if .Values.global.fullnameOverride -}}

+{{- .Values.global.fullnameOverride | trunc 63 | trimSuffix "-" -}}

+{{- else -}}

+{{- $name := default .Chart.Name .Values.global.nameOverride -}}

+{{- if contains $name .Release.Name -}}

+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}

+{{- else -}}

+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}

+{{- end -}}

+{{- end -}}

+{{- end -}}

+

+{{/*

+Create chart name and version as used by the chart label.

+*/}}

+{{- define "global.chart" -}}

+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}

+{{- end -}}

+

+{{/*

+Common labels

+*/}}

+{{- define "global.labels" -}}

+helm.sh/chart: {{ include "global.chart" . }}

+{{ include "global.selectorLabels" . }}

+{{- if .Chart.AppVersion }}

+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}

+{{- end }}

+app.kubernetes.io/managed-by: {{ .Release.Service }}

+{{- end -}}

+

+{{/*

+Selector labels

+*/}}

+{{- define "global.selectorLabels" -}}

+app.kubernetes.io/name: {{ include "global.name" . }}

+app.kubernetes.io/instance: {{ .Release.Name }}

+{{- end -}}

+

+{{/*

+global consensus image name

+*/}}

+{{- define "global.store.consensus.imagename" -}}

+{{- if .Values.global.store.consensus.image.tag -}}

+{{- if .Values.global.store.consensus.image.registry -}}

+{{- printf "%s/" .Values.global.store.consensus.image.registry -}}

+{{- end -}}

+{{- printf "%s:" .Values.global.store.consensus.image.repository -}}

+{{- .Values.global.store.consensus.image.tag -}}

+{{- else -}}

+""

+{{- end -}}

+{{- end -}}

+

+{{/*

+global consensus store name

+*/}}

+{{- define "global.store.consensus.name" -}}

+{{- if .Values.global.store.consensus.name -}}

+{{- printf "%s" .Values.global.store.consensus.name -}}

+{{- else -}}

+{{- printf "%s-consensus-store" ( include "global.fullname" . ) -}}

+{{- end -}}

+{{- end -}}
\ No newline at end of file
diff --git a/chronos-umbrella/tests/chronos-umbrella.go b/chronos-umbrella/tests/chronos-umbrella.go
new file mode 100644
index 0000000..9e70d56
--- /dev/null
+++ b/chronos-umbrella/tests/chronos-umbrella.go
@@ -0,0 +1,63 @@
+// SPDX-FileCopyrightText: 2021-present Open Networking Foundation <info@opennetworking.org>
+//
+// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+package tests
+
+import (
+	"context"
+	"testing"
+	"time"
+
+	"github.com/onosproject/helmit/pkg/helm"
+	"github.com/onosproject/helmit/pkg/input"
+	"github.com/onosproject/helmit/pkg/kubernetes"
+	"github.com/onosproject/helmit/pkg/test"
+	"github.com/onosproject/onos-test/pkg/onostest"
+	"github.com/stretchr/testify/assert"
+)
+
+const aetherCharts = "https://charts.aetherproject.org/"
+
+// ChronosUmbrellaSuite is the chronos-umbrella chart test suite
+type ChronosUmbrellaSuite struct {
+	test.Suite
+	c *input.Context
+}
+
+// SetupTestSuite sets up the chronos umbrella test suite
+func (s *ChronosUmbrellaSuite) SetupTestSuite(c *input.Context) error {
+	s.c = c
+	return nil
+}
+
+func getCredentials() (string, string, error) {
+	kubClient, err := kubernetes.New()
+	if err != nil {
+		return "", "", err
+	}
+	secrets, err := kubClient.CoreV1().Secrets().Get(context.Background(), onostest.SecretsName)
+	if err != nil {
+		return "", "", err
+	}
+	username := string(secrets.Object.Data["sd-ran-username"])
+	password := string(secrets.Object.Data["sd-ran-password"])
+
+	return username, password, nil
+}
+
+// TestInstall tests installing the chronos-umbrella chart
+func (s *ChronosUmbrellaSuite) TestInstall(t *testing.T) {
+	username, password, err := getCredentials()
+	assert.NoError(t, err)
+	registry := s.c.GetArg("registry").String("")
+
+	onos := helm.Chart("chronos-umbrella", aetherCharts).
+		Release("chronos-umbrella").
+		SetUsername(username).
+		SetPassword(password).
+		WithTimeout(15*time.Minute).
+		Set("import.prometheus.chronos.enabled", false).
+		Set("global.image.registry", registry)
+	assert.NoError(t, onos.Install(true))
+}
diff --git a/chronos-umbrella/values.yaml b/chronos-umbrella/values.yaml
new file mode 100644
index 0000000..efb69bd
--- /dev/null
+++ b/chronos-umbrella/values.yaml
@@ -0,0 +1,108 @@
+# SPDX-FileCopyrightText: 2020-present Open Networking Foundation <info@opennetworking.org>

+#

+# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

+

+# Default values for all Aether Helm charts.

+# This is a YAML-formatted file.

+# Declare variables to be passed into your templates.

+

+global:

+  fullnameOverride: "onos"

+  nameOverride: ""

+

+import:

+  grafana:

+    enabled: true

+  prometheus:

+    chronos:

+      enabled: true

+  chronos-exporter:

+    enabled: true

+

+#chronos-exporter:

+    #image:

+    #repository: onosproject/chronos-exporter

+    #tag: v0.0.1

+    #pullPolicy: IfNotPresent

+    #pullSecrets: []

+

+grafana:

+  sidecar:

+    dashboards:

+       enabled: true

+       label: chronos_dashboard

+       labelValue: chronos-exporter-gui

+    datasources:

+       enabled: true

+       label: chronos_datasource

+       labelValue: chronos-exporter-gui

+  source:

+  - name: chronos

+    protocol: http

+    service: chronos-umbrella-prometheus-chronos-server

+    port: 80

+  grafana.ini:

+    log:

+      level: debug

+    server:

+      domain: aether-roc-gui:8183

+      root_url: "%(protocol)s://%(domain)s/grafana/"

+      serve_from_sub_path: true

+    security:

+      allow_embedding: true

+    auth:

+     disable_login_form: false

+     oauth_auto_login: false

+    auth.anonymous:

+      enabled: true

+      hide_version: false

+# Disabled other auth types for the moment - see aether-roc-gui/docs/grafana.md

+    auth.proxy:

+      enabled: false

+      header_name: X-WEBAUTH-USER

+      header_property: username

+      auto_sign_up: true

+      enable_login_token: true

+    auth.jwt:

+      enabled: false

+      header_name: X-JWT-Assertion

+      username_claim: name

+      email_claim: email

+      jwk_set_url: "https://keycloak.opennetworking.org/auth/realms/master/protocol/openid-connect/certs"

+      cache_ttl: 60m  

+    auth.generic_oauth:

+      enabled: false

+      client_id: aether-roc-gui

+#      client_secret: YWV0aGVyLXJvYy1ndWkK

+      scopes: "openid profile email groups"

+      empty_scopes: false

+      auth_url: "http://k3u-keycloak:5557/auth/realms/master/protocol/openid-connect/auth"

+      token_url: "http://k3u-keycloak:5557/auth/realms/master/protocol/openid-connect/token"

+      api_url: "http://k3u-keycloak:5557/auth/realms/master/protocol/openid-connect/userinfo"

+      allowed_domains: opennetworking.org

+      allow_sign_up: true

+      name: KeyCloak

+

+prometheus-chronos:

+  alertmanager:

+    persistentVolume:

+      enabled: false

+  server:

+    persistentVolume:

+      enabled: false

+  pushgateway:

+    enabled: false

+  nodeExporter:

+    enabled: false

+  kubeStateMetrics:

+    enabled: false

+  alertmanager:

+    enabled: false

+  serverFiles:

+    prometheus.yml:

+      scrape_configs:

+        - job_name: chronos-exporter

+          scrape_interval: 2s

+          static_configs:

+            - targets:

+                - chronos-exporter:2112