Feature 10981: remove mon and pol for ng-sa installation 46/13246/3
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Mon, 17 Apr 2023 10:38:17 +0000 (12:38 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 20 Apr 2023 16:16:51 +0000 (18:16 +0200)
This change removes the deployment of POL for NG-SA installation.
In addition, it deploys a reduced MON, which will only run
mon-dashboarder. A new K8s manifest (ng-mon.yaml )file has been created
for the purpose.

Change-Id: I243a2710d7b883d505ff4b4d012f7d67920f0e73
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
docker/MON/scripts/dashboarder-start.sh [new file with mode: 0644]
installers/docker/osm_pods/ng-mon.yaml [new file with mode: 0644]
installers/full_install_osm.sh

diff --git a/docker/MON/scripts/dashboarder-start.sh b/docker/MON/scripts/dashboarder-start.sh
new file mode 100644 (file)
index 0000000..171f75d
--- /dev/null
@@ -0,0 +1,18 @@
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+osm-mon-dashboarder
diff --git a/installers/docker/osm_pods/ng-mon.yaml b/installers/docker/osm_pods/ng-mon.yaml
new file mode 100644 (file)
index 0000000..121c0c5
--- /dev/null
@@ -0,0 +1,68 @@
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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
+kind: Service
+metadata:
+  name: mon
+spec:
+  clusterIP: None
+  ports:
+  - port: 8662
+    protocol: TCP
+    targetPort: 8662
+  selector:
+    app: mon
+  type: ClusterIP
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: mon
+  labels:
+    app: mon
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: mon
+  template:
+    metadata:
+      labels:
+        app: mon
+    spec:
+      initContainers:
+      - name: kafka-mongo-test
+        image: alpine:latest
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongodb-k8s 27017); do sleep 3; done; exit 0"]
+      containers:
+      - name: mon
+        command: ["/bin/bash"]
+        args: ["scripts/dashboarder-start.sh"]
+        image: opensourcemano/mon:13
+        ports:
+        - containerPort: 8662
+          protocol: TCP
+        env:
+        - name: OSMMON_MESSAGE_HOST
+          value: kafka
+        - name: OSMMON_MESSAGE_PORT
+          value: "9092"
+        - name: OSMMON_DATABASE_URI
+          value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
+        envFrom:
+        - secretRef:
+            name: mon-secret
index 449ca49..03be9a6 100755 (executable)
@@ -550,6 +550,8 @@ function parse_yaml() {
             image=${module}
             if [ "$module" == "ng-prometheus" ]; then
                 image="prometheus"
+            elif [ "$module" == "ng-mon" ]; then
+                image="mon"
             fi
             echo "Updating K8s manifest file from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
             sudo sed -i "s#opensourcemano/${image}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${image}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml
@@ -559,7 +561,7 @@ function parse_yaml() {
 }
 
 function update_manifest_files() {
-    osm_services="nbi lcm ro pol mon ng-ui keystone pla prometheus ng-prometheus"
+    osm_services="nbi lcm ro pol mon ng-mon ng-ui keystone pla prometheus ng-prometheus"
     list_of_services=""
     for module in $osm_services; do
         module_upper="${module^^}"
@@ -574,9 +576,13 @@ function update_manifest_files() {
         parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild
     fi
     # The manifest for prometheus is prometheus.yaml or ng-prometheus.yaml, depending on the installation option
+    # If NG-SA is installed, it will include ng-mon (only mon-dashboarder), ng-prometheus and webhook translator. It won't include pol, mon and prometheus
     if [ -n "$INSTALL_NGSA" ]; then
         sudo rm -f ${OSM_K8S_WORK_DIR}/prometheus.yaml
+        sudo rm -f ${OSM_K8S_WORK_DIR}/mon.yaml
+        sudo rm -f ${OSM_K8S_WORK_DIR}/pol.yaml
     else
+        sudo rm -f ${OSM_K8S_WORK_DIR}/ng-mon.yaml
         sudo rm -f ${OSM_K8S_WORK_DIR}/ng-prometheus.yaml
         sudo rm -f ${OSM_K8S_WORK_DIR}/webhook-translator.yaml
     fi