Replace charmed mongodb with bitnami helm chart 32/14732/1 v14.0
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 14 Nov 2024 23:03:39 +0000 (00:03 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 14 Nov 2024 23:03:39 +0000 (00:03 +0100)
Change-Id: I45049116fbc3462bd71c4d3b17892187612cd6ba
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
installers/full_install_osm.sh
installers/helm/values/mongodb-values.yaml [new file with mode: 0644]
installers/install_mongodb.sh [new file with mode: 0755]

index b49bb57..f98ad50 100755 (executable)
@@ -313,6 +313,16 @@ function deploy_charmed_services() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
+#deploy mongodb
+function deploy_mongodb() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    MONGO_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -s ${OSM_NAMESPACE} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
+    [ -n "${DOCKER_REGISTRY_URL}" ] && MONGO_OPTS="${MONGO_OPTS} -r ${DOCKER_REGISTRY_URL}"
+    $OSM_DEVOPS/installers/install_mongodb.sh ${MONGO_OPTS} || \
+    FATAL_TRACK install_osm_mongodb_service "install_mongodb.sh failed"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
 function install_osm_ngsa_service() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     NGSA_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
@@ -503,7 +513,7 @@ function install_osm() {
     [ -z "$DOCKER_NOBUILD" ] && [ -z "$PULL_IMAGES" ] && generate_docker_images
     track docker_images docker_images_ok
 
-    deploy_charmed_services
+    deploy_mongodb
     track deploy_osm deploy_mongodb_ok
     deploy_osm_services
     track deploy_osm deploy_osm_services_k8s_ok
diff --git a/installers/helm/values/mongodb-values.yaml b/installers/helm/values/mongodb-values.yaml
new file mode 100644 (file)
index 0000000..357ebe5
--- /dev/null
@@ -0,0 +1,33 @@
+#
+#   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.
+#
+---
+replicaCount: 1
+service:
+  nameOverride: "mongodb-k8s"
+auth:
+  enabled: false
+architecture: "replicaset"
+livenessProbe:
+  initialDelaySeconds: 60
+  periodSeconds: 30
+  timeoutSeconds: 10
+  failureThreshold: 10
+  successThreshold: 1
+readinessProbe:
+  initialDelaySeconds: 60
+  periodSeconds: 30
+  timeoutSeconds: 10
+  failureThreshold: 10
+  successThreshold: 1
+
diff --git a/installers/install_mongodb.sh b/installers/install_mongodb.sh
new file mode 100755 (executable)
index 0000000..213d2f4
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/bash
+#
+#   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.
+#
+
+set +eux
+
+# Helm chart 13.9.4 correspondes to Mongo DB 6.0.5
+MONGODB_HELM_VERSION=13.9.4
+
+# Install MongoDB  helm chart
+function install_mongodb() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    # copy mongodb-values.yaml to the destination folder
+    sudo mkdir -p ${OSM_HELM_WORK_DIR}
+    sudo cp ${OSM_DEVOPS}/installers/helm/values/mongodb-values.yaml ${OSM_HELM_WORK_DIR}
+    # update mongodb-values.yaml to use the right tag
+
+    helm repo add bitnami https://charts.bitnami.com/bitnami
+    helm repo update
+    helm upgrade mongodb-k8s bitnami/mongodb -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/mongodb-values.yaml --version ${MONGODB_HELM_VERSION} --timeout 10m || FATAL_TRACK mongodb "Failed installing mongodb helm chart"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+# main
+while getopts ":D:d:s:t:r:U:-: " o; do
+    case "${o}" in
+        D)
+            OSM_DEVOPS="${OPTARG}"
+            ;;
+        d)
+            OSM_HELM_WORK_DIR="${OPTARG}"
+            ;;
+        s)
+            OSM_NAMESPACE="${OPTARG}"
+            ;;
+        t)
+            OSM_DOCKER_TAG="${OPTARG}"
+            ;;
+        r)
+            DOCKER_REGISTRY_URL="${OPTARG}"
+            ;;
+        U)
+            DOCKER_USER="${OPTARG}"
+            ;;
+        -)
+            [ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="y" && continue
+            echo -e "Invalid option: '--$OPTARG'\n" >&2
+            exit 1
+            ;;
+        :)
+            echo "Option -$OPTARG requires an argument" >&2
+            exit 1
+            ;;
+        \?)
+            echo -e "Invalid option: '-$OPTARG'\n" >&2
+            exit 1
+            ;;
+        *)
+            exit 1
+            ;;
+    esac
+done
+
+DEBUG_INSTALL=${DEBUG_INSTALL:-}
+OSM_DEVOPS=${OSM_DEVOPS:-"/usr/share/osm-devops"}
+OSM_DOCKER_TAG=${OSM_DOCKER_TAG:-"testing-daily"}
+OSM_HELM_WORK_DIR=${OSM_HELM_WORK_DIR:-"/etc/osm/helm"}
+OSM_NAMESPACE=${OSM_NAMESPACE:-"osm"}
+DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL:-}
+DOCKER_USER=${DOCKER_USER:-"opensourcemano"}
+echo "DEBUG_INSTALL=$DEBUG_INSTALL"
+echo "OSM_DEVOPS=$OSM_DEVOPS"
+echo "OSM_DOCKER_TAG=$OSM_DOCKER_TAG"
+echo "OSM_HELM_WORK_DIR=$OSM_HELM_WORK_DIR"
+echo "OSM_NAMESPACE=$OSM_NAMESPACE"
+echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL"
+echo "DOCKER_USER=$DOCKER_USER"
+
+source $OSM_DEVOPS/common/logging
+source $OSM_DEVOPS/common/track
+
+install_mongodb