Use mongodb charm in k8s installer 58/9958/7
authorDavid Garcia <david.garcia@canonical.com>
Mon, 19 Oct 2020 13:42:42 +0000 (15:42 +0200)
committerDavid Garcia <david.garcia@canonical.com>
Mon, 9 Nov 2020 17:32:22 +0000 (18:32 +0100)
- Update JUJU_AGENT_VERSION to 2.8.6
- Use mongodb charm and update needed osm pod specs to point at it

Change-Id: I7c03ae7de6611fcacef35716646ff08bfc1ff988
Signed-off-by: David Garcia <david.garcia@canonical.com>
installers/charmed_install.sh
installers/docker/osm_pla/pla.yaml
installers/docker/osm_pods/lcm.yaml
installers/docker/osm_pods/mon.yaml
installers/docker/osm_pods/nbi.yaml
installers/docker/osm_pods/pol.yaml
installers/full_install_osm.sh

index b56ed16..9d41e3e 100755 (executable)
@@ -15,6 +15,7 @@
 
 # set -eux
 
+JUJU_AGENT_VERSION=2.8.6
 K8S_CLOUD_NAME="k8s-cloud"
 KUBECTL="microk8s.kubectl"
 IMAGES_OVERLAY_FILE=~/.osm/images-overlay.yaml
@@ -91,7 +92,7 @@ EOF
         cat $KUBECFG | juju add-k8s $K8S_CLOUD_NAME $ADD_K8S_OPTS
         [ -v BOOTSTRAP_NEEDED ] && juju bootstrap $K8S_CLOUD_NAME $CONTROLLER_NAME \
             --config controller-service-type=loadbalancer \
-            --agent-version=2.8.1
+            --agent-version=$JUJU_AGENT_VERSION
     else
         sg ${KUBEGRP} -c "echo ${DEFAULT_IP}-${DEFAULT_IP} | microk8s.enable metallb"
         sg ${KUBEGRP} -c "microk8s.enable ingress"
@@ -115,7 +116,7 @@ EOF
 
         [ ! -v BOOTSTRAP_NEEDED ] && sg ${KUBEGRP} -c "microk8s.config" | juju add-k8s $K8S_CLOUD_NAME $ADD_K8S_OPTS
         [ -v BOOTSTRAP_NEEDED ] && sg ${KUBEGRP} -c \
-            "juju bootstrap microk8s $CONTROLLER_NAME --config controller-service-type=loadbalancer --agent-version=2.8.1" \
+            "juju bootstrap microk8s $CONTROLLER_NAME --config controller-service-type=loadbalancer --agent-version=$JUJU_AGENT_VERSION" \
             && K8S_CLOUD_NAME=microk8s
     fi
 
index c5bdd50..dfd00ab 100644 (file)
@@ -41,6 +41,8 @@ spec:
           value: mongo
         - name: OSMPLA_MESSAGE_HOST
           value: kafka
+        - name: OSMPLA_DATABASE_URI
+          value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
         volumeMounts:
         - name: osm-packages
           mountPath: /app/storage
index 6858f2a..e2c27bd 100644 (file)
@@ -33,15 +33,15 @@ spec:
       initContainers:
        - name: kafka-ro-mongo-test
          image: alpine:latest
-         command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 ro 9090 && nc -zvw1 mongo 27017 ); do sleep 3; done; exit 0"]
+         command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 ro 9090 && nc -zvw1 mongodb-k8s 27017 ); do sleep 3; done; exit 0"]
       containers:
       - name: lcm
         image: opensourcemano/lcm:8
         env:
         - name: OSMLCM_RO_HOST
           value: ro
-        - name: OSMLCM_DATABASE_HOST
-          value: mongo
+        - name: OSMLCM_DATABASE_URI
+          value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
         - name: OSMLCM_MESSAGE_HOST
           value: kafka
         envFrom:
index 988054f..490889f 100644 (file)
@@ -47,7 +47,7 @@ spec:
       initContainers:
       - name: kafka-mongo-test
         image: alpine:latest
-        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongodb-k8s 27017); do sleep 3; done; exit 0"]
       containers:
       - name: mon
         image: opensourcemano/mon:8
@@ -59,6 +59,8 @@ spec:
           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 ea6014e..7fc6595 100644 (file)
@@ -47,7 +47,7 @@ spec:
       initContainers:
       - name: kafka-mongo-test
         image: alpine:latest
-        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongodb-k8s 27017); do sleep 3; done; exit 0"]
       containers:
       - name: nbi
         image: opensourcemano/nbi:8
@@ -55,8 +55,8 @@ spec:
         - containerPort: 9999
           protocol: TCP
         env:
-         - name: OSMNBI_DATABASE_HOST
-           value: mongo
+         - name: OSMNBI_DATABASE_URI
+           value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
          - name:  OSMNBI_MESSAGE_HOST
            value: kafka
         envFrom:
index 438ae1f..063a976 100644 (file)
@@ -33,7 +33,7 @@ spec:
       initContainers:
       - name: kafka-mongo-test
         image: alpine:latest
-        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongo 27017); do sleep 3; done; exit 0"]
+        command: ["sh", "-c", "until (nc -zvw1 kafka 9092 && nc -zvw1 mongodb-k8s 27017); do sleep 3; done; exit 0"]
       containers:
       - name: pol
         image: opensourcemano/pol:8
@@ -42,6 +42,8 @@ spec:
            value: kafka
          - name: OSMPOL_MESSAGE_PORT
            value: "9092"
+         - name: OSMPOL_DATABASE_URI
+           value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
         envFrom:
         - secretRef:
              name: pol-secret
index be02fa5..f8c02ca 100755 (executable)
@@ -647,6 +647,7 @@ function generate_docker_compose_files() {
 function generate_k8s_manifest_files() {
     #Kubernetes resources
     $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR
+    $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml
     if [ -n "$NGUI" ]; then
         $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/light-ui.yaml
     else
@@ -913,6 +914,18 @@ function deploy_osm_services() {
     kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR
 }
 
+#deploy charmed services
+function deploy_charmed_services() {
+    juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME
+    # deploy mongodb charm
+    namespace=$OSM_STACK_NAME
+    juju deploy cs:~charmed-osm/mongodb-k8s \
+        --config enable-sidecar=true \
+        --config replica-set=rs0 \
+        --config namespace=$namespace \
+        -m $namespace
+}
+
 function deploy_osm_pla_service() {
     # corresponding to namespace_vol
     $WORKDIR_SUDO  sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml
@@ -967,7 +980,7 @@ function parse_yaml() {
 }
 
 function namespace_vol() {
-    osm_services="nbi lcm ro pol mon kafka mongo mysql prometheus"
+    osm_services="nbi lcm ro pol mon kafka mysql prometheus"
     for osm in $osm_services; do
         $WORKDIR_SUDO  sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml
     done
@@ -1304,6 +1317,7 @@ EOF
     track env_files
 
     if [ -n "$KUBERNETES" ]; then
+        deploy_charmed_services
         kube_secrets
         [ ! $OSM_DOCKER_TAG == "8" ] && parse_yaml $OSM_DOCKER_TAG
         namespace_vol
@@ -1492,7 +1506,7 @@ function track(){
     wget -q -O /dev/null $url
 }
 
-JUJU_AGENT_VERSION=2.8.1
+JUJU_AGENT_VERSION=2.8.6
 UNINSTALL=""
 DEVELOP=""
 UPDATE=""