diff options
Diffstat (limited to 'kubernetes/config')
7 files changed, 243 insertions, 0 deletions
diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json new file mode 100644 index 0000000000..07828431fc --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/aai-hbase-health.json @@ -0,0 +1,21 @@ +{ + "service": { + "name": "A&AI HBase Health Check", + "checks": [ + { + "id": "hbase-aai", + "name": "HBase Health Check", + "http": "http://hbase.onap-aai:8080/status/cluster", + "method": "GET", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mso-mariabdb.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mso-mariabdb.json new file mode 100644 index 0000000000..710f4a8499 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/mso-mariabdb.json @@ -0,0 +1,15 @@ +{ + "service": { + "name": "Health Check: MSO - MariaDb", + "checks": [ + { + "id": "mso-mariadb", + "name": "MSO Mariadb Health Check", + "script": "/consul/config/scripts/mso-mariadb-script.sh", + "interval": "10s", + "timeout": "1s" + } + ] + + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh new file mode 100755 index 0000000000..84b22206e0 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/mso-mariadb-script.sh @@ -0,0 +1,14 @@ +NAME=$(/consul/config/bin/kubectl -n onap-mso get pod | grep -o "mariadb[^[:space:]]*") + + if [ -n "$NAME" ]; then + if /consul/config/bin/kubectl -n onap-mso exec -it $NAME -- bash -c 'mysqladmin status -u root -p$MYSQL_ROOT_PASSWORD' > /dev/null; then + echo Success. mariadb process is running. 2>&1 + exit 0 + else + echo Failed. mariadb process is not running. 2>&1 + exit 1 + fi + else + echo Failed. mariadb container is offline. 2>&1 + exit 1 + fi diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh new file mode 100755 index 0000000000..6bb07f80eb --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/scripts/sdnc-dbhost-script.sh @@ -0,0 +1,13 @@ +SDNC_DBHOST_POD=$(/consul/config/bin/kubectl -n onap-sdnc get pod | grep -o "sdnc-dbhost-[^[:space:]]*") +if [ -n "$SDNC_DBHOST_POD" ]; then + if /consul/config/bin/kubectl -n onap-sdnc exec -it $SDNC_DBHOST_POD -- ./healthcheck.sh |grep -i "mysqld is alive"; then + echo Success. SDNC DBHost is running. 2>&1 + exit 0 + else + echo Failed. SDNC DBHost is not running. 2>&1 + exit 1 + fi +else + echo Failed. SDNC DBHost is offline. 2>&1 + exit 1 +fi diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dbhost.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dbhost.json new file mode 100644 index 0000000000..28d711b72f --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-dbhost.json @@ -0,0 +1,14 @@ +{ + "service": { + "name": "Health Check: SDNC - DB Host", + "checks": [ + { + "id": "sdnc-dbhost-healthcheck", + "name": "SDNC DBHOST Health Check", + "script": "/consul/config/scripts/sdnc-dbhost-script.sh", + "interval": "10s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json new file mode 100644 index 0000000000..3ecc1b3f53 --- /dev/null +++ b/kubernetes/config/docker/init/src/config/consul/consul-agent-config/sdnc-portal-health.json @@ -0,0 +1,21 @@ +{ + "service": { + "name": "Health Check: SDNC Portal", + "checks": [ + { + "id": "sdnc-portal", + "name": "SDNC Portal Health Check", + "http": "http://sdnc-portal.onap-sdnc:8843/login", + "method": "HEAD", + "header": { + "Cache-Control": ["no-cache"], + "Content-Type": ["application/json"], + "Accept": ["application/json"] + }, + "tls_skip_verify": true, + "interval": "15s", + "timeout": "1s" + } + ] + } +} diff --git a/kubernetes/config/prepull_docker.sh b/kubernetes/config/prepull_docker.sh new file mode 100755 index 0000000000..e456c3e016 --- /dev/null +++ b/kubernetes/config/prepull_docker.sh @@ -0,0 +1,145 @@ +#!/bin/bash + +#function to provide help +#desc: this function provide help menu +#argument: -h for help, -p for path, -r for repository +#calling syntax: options + +options() { + cat <<EOF +Usage: $0 [PARAMs] +-h : help +-l (Location) : path for searching values.yaml + [in case no path is provided then is will scan current directories for values.yml] +-r (Repository) : name of image repository + [format [repository name/url]:(port)] + [in case no repository is provided then defualt image repository will be nexus3.onap.org:10001] +-u (User) : user name for login + [in case no user name is provided then default user will be docker] +-p (Password) : password for login + [in case no password is provided then default user will be docker] +EOF +} + +#function to parse yaml file +#desc: this function convert yaml file to dotted notion +#argument: yaml file +#calling syntax: parse_yaml <yaml_file_name> + +function parse_yaml { + local prefix=$2 + local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | + awk -F$fs '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i<indent; i++) {vn=(vn)(vname[i])(".")} + printf("%s%s%s=\"%s\"\n", "'$prefix'",vn, $2, $3); + } + }' +} + +#algorithmic steps +#start +#scan all values.yaml files +#parse yaml file into dotted format +#for each lines check there is image tag in line +#store image name and check next line for version information +#if in next line version is not present as a subtag then call docker pull with imageName +#if version is present in next line then call docker pull with imageName and imageVersion +#end + + +#start processing for finding images and version +IMAGE_TEXT="image" +IMAGE_VERSION_TEXT="Version" +LOCATION="." +VALUES_FILE_NAME="values.yaml" +IMAGE_REPOSITORY="nexus3.onap.org:10001" +USER_NAME="docker" +PASSWORD="docker" + +#scan for options menu +while getopts ":h:l:r:u:p:" PARAM; do + case $PARAM in + h) + options + exit 1 + ;; + l) + LOCATION=${OPTARG} + ;; + r) + IMAGE_REPOSITORY=${OPTARG} + ;; + u) + USER_NAME=${OPTARG} + ;; + p) + PASSWORD=${OPTARG} + ;; + ?) + options + exit + ;; + esac +done + + +#docker login to nexus repo +echo docker login -u $USER_NAME -p $PASSWORD $IMAGE_REPOSITORY +docker login -u $USER_NAME -p $PASSWORD $IMAGE_REPOSITORY + +#scan all values.yaml files recursively +for filename in `find $LOCATION -name $VALUES_FILE_NAME` +do + imageNameWithVersion=" "; + #parse yaml files + for line in `parse_yaml $filename` + do + #find all image subtag inside converted values.yaml file's lines + if echo $line | grep -q $IMAGE_TEXT ; then + #find imageName inside line + imageName=`echo $line | awk -F "=" '{print $2}'` + #remove attional prefix and postfix + imageNameFinal=`echo "$imageName" | sed -e 's/^"//' -e 's/"$//' ` + + #check if line contain Version as a subtag in lines if yes then call docker pull with version + if echo $line | grep -q $IMAGE_VERSION_TEXT ; then + echo docker pull "$imageNameWithVersion":"$imageNameFinal" + docker pull $imageNameWithVersion:$imageNameFinal & + imageNameWithVersion=" " + else + #check Version is not in subtag and old scanned value is present then call docker pull without version + if [ "$imageNameWithVersion" != " " ]; then + echo docker pull "$imageNameWithVersion" + docker pull $imageNameWithVersion & + imageNameWithVersion=$imageNameFinal + else + imageNameWithVersion=$imageNameFinal + fi + fi + + + fi + + + done +done +# complete processing +echo "finished launching pulls" +#MAX_WAIT_INTERVALS=300 +INTERVAL_COUNT=300 +while [ $(ps -ef | grep docker | grep pull | grep -v $0 | wc -l) -gt 0 ]; do + sleep 10 + INTERVAL_COUNT=$((INTERVAL_COUNT - 1)) + echo "waiting for last pull" + if [ "$INTERVAL_COUNT" -eq 0 ]; then + break + fi +done + |