Code Monkey home page Code Monkey logo

astrid-framework's Introduction

ASTRID Framework

Docker Image CI

Main repository with all the components developed by the ASTRID consortium and the guideline to build the entire framework.

Platform

Agents

  • Cubebeat
  • Filebeat
  • Local Control Plane (LCP)
  • Logstash
  • Metricbeat

astrid-framework's People

Contributors

alexcarrega avatar guerol avatar mattereppe avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

astrid-framework's Issues

Docker Run

WORK_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

usage() {
    echo "Usage: $0 <dockerfile-path> <component-version>"
    exit $1
}

if [ -z "$1" ]; then
    echo "Error: missing Dockerfile path"
    usage 1
fi

if [ -z "$2" ]; then
    echo "Error: missing component version"
    usage 2
fi

DOCKERFILE_PATH=$1

source "$DOCKERFILE_PATH/scripts/vars.sh"

VERSION=$2

if [ -z "$DOCKER_TAG" ]; then
    DOCKER_TAG="${PROJECT}project/$COMPONENT:$VERSION"
fi

docker stop $COMPONENT.$VERSION
docker rm $COMPONENT.$VERSION
docker image rm $DOCKER_TAG

if [ ! -z "$CB_MAN_PORT" ]; then
    CB_MAN_PORT_ARG="-p $CB_MAN_PORT:$CB_MAN_PORT"
fi

if [ ! -z "$LCP_PORT" ]; then
    LCP_PORT_ARG="-p $LCP_PORT:$LCP_PORT"
fi

if [ ! -z "$CB_MAN_ELASTICSEARCH_ENDPOINT" ]; then
    CB_MAN_ELASTICSEARCH_ENDPOINT_ENV="-e CB_MAN_ELASTICSEARCH_ENDPOINT=$CB_MAN_ELASTICSEARCH_ENDPOINT"
fi

docker run -d $CB_MAN_ELASTICSEARCH_ENDPOINT_ENV \
            $CB_MAN_PORT_ARG \
            $LCP_PORT_ARG \
        --net="host" \
        --name $COMPONENT.$VERSION -t $DOCKER_TAG

COMPUTER=$'\xF0\x9F\x92\xBB'
PACKAGE=$'\xF0\x9F\x93\xA6'
SPEAKER=$'\xF0\x9F\x93\xA2'

echo "Send notification via Telegram"
rm -rf "$HOME/log/docker-container-list.png"
docker container list | convert -extent 1000x200 -gravity center label:@- "$HOME/log/docker-container-list.png"
bash "$WORK_PATH/../send2telegram/photo.sh" "$HOME/log/docker-container-list.png" "$COMPUTER azure $PACKAGE $COMPONENT $SPEAKER run"

Docker CI

WORK_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

DOCKERFILE_PATHS="../../core_framework/context_broker/cb-manager \
                  ../../core_framework/context_broker/logstash \
                  ../../local_sidercars/local_control_management/lcp \
                  ../../local_sidercars/monitoring/filebeat \
                  ../../local_sidercars/monitoring/metricbeat \
                  ../../local_sidercars/monitoring/packetbeat \
                  ../../local_sidercars/data_fusion/logstash"

for dockerfile_path in $DOCKERFILE_PATHS; do
    COMPONENT_NAME=$(basename "$dockerfile_path")
    TYPE=$(basename $(dirname "$dockerfile_path"))
    if [ "$COMPONENT_NAME" == "logstash" ]; then
        if [ "$TYPE" == "context_broker" ]; then
            COMPONENT_NAME="logstash-core"
        else
            COMPONENT_NAME="logstash-local"
        fi
    fi
    for version in $(ls "$WORK_PATH/$dockerfile_path/settings"); do
        echo "---------------------------------------------------------"
        echo "$COMPONENT_NAME   $version"
        echo -e "---------------------------------------------------------\n"
        bash "$WORK_PATH/build.sh" "$WORK_PATH/$dockerfile_path" $version
        bash "$WORK_PATH/push.sh" "$COMPONENT_NAME" $version
        echo -e "\n\n"
    done
done

echo "Clean Docker local instance"
docker images prune

echo "Remove untagged Docker images"
docker rmi $(docker images | grep "none" | awk '{ print $3 }')

COMPUTER=$'\xF0\x9F\x92\xBB'
PACKAGE=$'\xF0\x9F\x93\xA6'
SPEAKER=$'\xF0\x9F\x93\xA2'

echo "Send notification via Telegram"
rm -rf "$HOME/log/docker-image-list.png"
docker images | grep '^guardproject' | convert -extent 1000x200 -gravity center label:@- "$HOME/log/docker-images-list.png"
bash "$WORK_PATH/../send2telegram/photo.sh" "$HOME/log/docker-images-list.png" "$COMPUTER cnit-openstack $PACKAGE docker $SPEAKER build & push"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.