MSO K8S-Helm Parameterization 99/8299/3
authorkerenj <keren.joseph@amdocs.com>
Tue, 22 Aug 2017 15:27:04 +0000 (15:27 +0000)
committerBorislav Glozman <Borislav.Glozman@amdocs.com>
Tue, 22 Aug 2017 16:28:10 +0000 (16:28 +0000)
changed MSO k8s deployment to support helm parameterization
Issue-ID: OOM-52
Change-Id: Ifb192ee2d417aae6b0bdd05d662229e3542e7944
Signed-off-by: kerenj <keren.joseph@amdocs.com>
kubernetes/README_HELM [new file with mode: 0644]
kubernetes/mso/Chart.yaml [new file with mode: 0644]
kubernetes/mso/templates/all-services.yaml [moved from kubernetes/mso/all-services.yaml with 90% similarity]
kubernetes/mso/templates/db-deployment.yaml [moved from kubernetes/mso/db-deployment.yaml with 81% similarity]
kubernetes/mso/templates/mso-deployment.yaml [moved from kubernetes/mso/mso-deployment.yaml with 83% similarity]
kubernetes/mso/values.yaml [new file with mode: 0644]
kubernetes/oneclick/createAll.bash
kubernetes/oneclick/deleteAll.bash
kubernetes/oneclick/setenv.bash

diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM
new file mode 100644 (file)
index 0000000..c1d5fdf
--- /dev/null
@@ -0,0 +1,20 @@
+Prerequisites:
+- K8s
+- Helm
+
+In order to use Helm with Rancher, check the tiller version installed
+by runing "helm version" on the ranchr CLI
+and install the appropriate Helm.
+Notice both tiller and helm are installed,
+but you will need to install on your VM.
+
+charts were tested with the following setup:
+  Rancher Release v1.6.7
+  k8s version 1.7.2
+  Helm/Tiller version v2.3.0
+also tested on:
+  k8s version v1.5.2
+  Helm/Tiller v2.6.0
+
+Download Helm:
+https://github.com/kubernetes/helm
diff --git a/kubernetes/mso/Chart.yaml b/kubernetes/mso/Chart.yaml
new file mode 100644 (file)
index 0000000..ad01a78
--- /dev/null
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: A Helm chart for Kubernetes
+name: mso
+version: 0.1.0
similarity index 90%
rename from kubernetes/mso/all-services.yaml
rename to kubernetes/mso/templates/all-services.yaml
index 881ebba..6e2db71 100644 (file)
@@ -2,6 +2,7 @@ apiVersion: v1
 kind: Service
 metadata:
   name: mariadb
+  namespace: {{ .Values.NS }}
   labels:
     app: mariadb
 spec:
@@ -16,6 +17,7 @@ apiVersion: v1
 kind: Service
 metadata:
   name: mso
+  namespace: {{ .Values.NS }}
   labels:
     app: mso
 spec:
similarity index 81%
rename from kubernetes/mso/db-deployment.yaml
rename to kubernetes/mso/templates/db-deployment.yaml
index f57f4ba..ff1cf75 100644 (file)
@@ -2,6 +2,7 @@ apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
   name: mariadb
+  namespace: {{ .Values.NS }}
 spec:
   replicas: 1
   selector:
@@ -16,7 +17,8 @@ spec:
       hostname: mariadb
       containers:
       - args:
-        image: nexus3.onap.org:10001/mariadb:10.1.11
+        image: {{ .Values.image.mariadb }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
         name: "mariadb"
         env:
           - name: MYSQL_ROOT_PASSWORD
@@ -41,9 +43,9 @@ spec:
       volumes:
         - name: mso-mariadb-conf
           hostPath:
-            path: /dockerdata-nfs/onapdemo/mso/mariadb/conf.d
+            path: /dockerdata-nfs/onap/mso/mariadb/conf.d
         - name: mso-mariadb-docker-entrypoint-initdb
           hostPath:
-            path: /dockerdata-nfs/onapdemo/mso/mariadb/docker-entrypoint-initdb.d
+            path: /dockerdata-nfs/onap/mso/mariadb/docker-entrypoint-initdb.d
       imagePullSecrets:
       - name: onap-docker-registry-key
similarity index 83%
rename from kubernetes/mso/mso-deployment.yaml
rename to kubernetes/mso/templates/mso-deployment.yaml
index fb052df..6f12769 100644 (file)
@@ -2,6 +2,7 @@ apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
   name: mso
+  namespace: {{ .Values.NS }}
 spec:
   replicas: 1
   selector:
@@ -33,8 +34,8 @@ spec:
                       }
                   }
               ],
-              "image": "oomk8s/readiness-check:1.0.0",
-              "imagePullPolicy": "Always",
+              "image": "{{ .Values.image.readiness }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
               "name": "mso-readiness"
           }
           ]'
@@ -42,7 +43,8 @@ spec:
       containers:
       - command:
         - /docker-files/scripts/start-jboss-server.sh
-        image: nexus3.onap.org:10001/openecomp/mso:1.0-STAGING-latest
+        image: {{ .Values.image.mso }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
         name: mso
         volumeMounts:
         - mountPath: /shared
@@ -66,9 +68,9 @@ spec:
       volumes:
         - name: mso
           hostPath:
-            path: /dockerdata-nfs/onapdemo/mso/mso
+            path: /dockerdata-nfs/onap/mso/mso
         - name: mso-docker-files
           hostPath:
-            path: /dockerdata-nfs/onapdemo/mso/docker-files
+            path: /dockerdata-nfs/onap/mso/docker-files
       imagePullSecrets:
       - name: onap-docker-registry-key
diff --git a/kubernetes/mso/values.yaml b/kubernetes/mso/values.yaml
new file mode 100644 (file)
index 0000000..41f9677
--- /dev/null
@@ -0,0 +1,7 @@
+NS: onap-mso
+pullPolicy: IfNotPresent
+image:
+  readiness: oomk8s/readiness-check:1.0.0
+  mso: nexus3.onap.org:10001/openecomp/mso:1.0-STAGING-latest
+  mariadb: nexus3.onap.org:10001/mariadb:10.1.11
+
index 5e5f2dc..82956b8 100755 (executable)
@@ -2,6 +2,7 @@
 
 . $(dirname "$0")/setenv.bash
 
+
 usage() {
   cat <<EOF
 Usage: $0 [PARAMs]
@@ -31,13 +32,25 @@ create_service() {
   mv ../$2/all-services.yaml-- ../$2/all-services.yaml
 }
 
+
+create_onap_helm() {
+  helm install ../$2/ --name $2
+}
+
 configure_app() {
   # if previous configuration exists put back original template file
-  for file in ../$2/*.yaml; do
+  for file in $3/*.yaml; do
     if [ -e "$file-template" ]; then
       mv "$file-template" "${file%}"
     fi
   done
+  
+  if [ -e "$2/Chart.yaml" ]; then
+    sed -i -- 's/nodePort: [0-9]\{2\}[02468]\{1\}/nodePort: '"$4"'/g' $3/all-services.yaml
+    sed -i -- 's/nodePort: [0-9]\{2\}[13579]\{1\}/nodePort: '"$5"'/g' $3/all-services.yaml
+    sed -i "s/onap-/$1-/g" ../$2/values.yaml
+  fi
+
 
   # replace the default 'onap' namespace qualification of K8s hostnames within
   # the config files
@@ -45,11 +58,11 @@ configure_app() {
   #       this is not ideal and should be addressed (along with the replacement
   #       of sed commands for configuration) by the future configuration
   #       user stories (ie. OOM-51 to OOM-53)
-  find ../$2 -type f -exec sed -i -template "s/onap-/$1-/g" {} \;
+  find $3 -type f -exec sed -i -- "s/onap-/$1-/g" {} \;
 
   # replace the default '/dockerdata-nfs/onapdemo' volume mount paths
-  find ../$2 -iname "*.yaml" -type f -exec sed -i -e 's/dockerdata-nfs\/[a-zA-Z0-9\\-]*\//dockerdata-nfs\/'"$1"'\//g' {} \;
-  rm -f ../$2/*.yaml-e
+  find $3 -iname "*.yaml" -type f -exec sed -i -e 's/dockerdata-nfs\/[a-zA-Z0-9\\-]*\//dockerdata-nfs\/'"$1"'\//g' {} \;
+  rm -f $3/*.yaml-e
 }
 
 
@@ -139,8 +152,25 @@ done
 
 printf "\n\n********** Creating deployments for ${ONAP_APPS[*]} ********** \n"
 for i in ${ONAP_APPS[@]}; do
-  configure_app $NS $i
+  _FILES_PATH=$(echo ../$i)
+  configure_app $NS $i $_FILES_PATH $start $end
   /bin/bash $i.sh $NS $i 'create'
 done
 
+for i in ${HELM_APPS[@]}; do
+  printf "\nCreating namespace **********\n"
+  create_namespace $NS $i 
+
+  printf "\nCreating registry secret **********\n"
+  create_registry_key $NS $i $ONAP_DOCKER_REGISTRY_KEY $ONAP_DOCKER_REGISTRY $DU $DP $ONAP_DOCKER_MAIL
+
+  printf "\nCreating deployments and services **********\n"
+  _FILES_PATH=$(echo ../$i/templates)
+  configure_app $NS $i $_FILES_PATH $start $end
+  create_onap_helm $NS $i
+
+  printf "\n"
+done
+
 printf "\n**** Done ****\n"
+
index 3d54aa8..ad7f060 100755 (executable)
@@ -20,6 +20,10 @@ delete_service() {
   kubectl --namespace $1-$2 delete -f ../$2/all-services.yaml
 }
 
+delete_app_helm() {
+  helm delete $1 --purge
+}
+
 usage() {
   cat <<EOF
 Usage: $0 [PARAMs]
@@ -88,5 +92,12 @@ for i in ${ONAP_APPS[@]}; do
 
 done
 
+for i in ${HELM_APPS[@]}; do
+
+  delete_app_helm $i
+  delete_namespace $NS $i
+
+done
+
 
 printf "\n********** Gone **********\n"
index 05a0d47..eb9bdb2 100644 (file)
@@ -1,6 +1,7 @@
 #!/bin/bash
 
-ONAP_APPS=('sdc' 'aai' 'mso' 'message-router' 'robot' 'vid' 'sdnc' 'portal' 'policy' 'appc')
+HELM_APPS=('mso')
+ONAP_APPS=('sdc' 'aai' 'message-router' 'robot' 'vid' 'sdnc' 'portal' 'policy' 'appc')
 ONAP_DOCKER_REGISTRY_KEY=${ONAP_DOCKER_REGISTRY_KEY:-onap-docker-registry-key}
 ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
 ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}