Commit 86444f3b authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Merge branch 'develop' into 'feat/integration-upm-services-develop'

# Conflicts resolved:
#   .gitlab-ci.yml
parents 50c71e7a f1cf9d5c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -76,7 +76,11 @@ docs/_build/

# PyBuilder
.pybuilder/
target/
**/target/*
!**/target/generated-sources/
!**/target/kubernetes/
**/target/kubernetes/kubernetes.json
!**/target/kubernetes/kubernetes.yml

# Jupyter Notebook
.ipynb_checkpoints
+2 −1
Original line number Diff line number Diff line
@@ -18,7 +18,8 @@ include:
  - local: '/src/service/.gitlab-ci.yml'
  - local: '/src/tester_integration/.gitlab-ci.yml'
  - local: '/src/tester_functional/.gitlab-ci.yml'
  - local: '/src/automation/.gitlab-ci.yml'
  - local: '/src/policy/.gitlab-ci.yml'
  - local: '/src/l3_distributedattackdetector/.gitlab-ci.yml'
  - local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml'
  - local: '/src/l3_attackmitigator/.gitlab-ci.yml'
  
+23 −14
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ REGISTRY_IMAGE=""
#REGISTRY_IMAGE="http://my-container-registry.local/"

# Set the list of components you want to build images for, and deploy.
COMPONENTS="context device service compute monitoring centralizedattackdetector"
COMPONENTS="context device automation policy service compute monitoring centralizedattackdetector"

# Set the tag you want to use for your images.
IMAGE_TAG="tf-dev"
@@ -18,7 +18,6 @@ IMAGE_TAG="tf-dev"
# Set the name of the Kubernetes namespace to deploy to.
K8S_NAMESPACE="tf-dev"


########################################################################################################################
# Automated steps start here
########################################################################################################################
@@ -34,10 +33,10 @@ mkdir -p $TMP_MANIFESTS_FOLDER
TMP_LOGS_FOLDER="$TMP_FOLDER/logs"
mkdir -p $TMP_LOGS_FOLDER


# Re-create the namespace to prevent being affected by garbage on it
kubectl delete namespace $K8S_NAMESPACE
kubectl create namespace $K8S_NAMESPACE
printf "\n"

for COMPONENT in $COMPONENTS; do
    echo "Processing '$COMPONENT' component..."
@@ -46,32 +45,42 @@ for COMPONENT in $COMPONENTS; do

    echo "  Building Docker image..."
    BUILD_LOG="$TMP_LOGS_FOLDER/build_${COMPONENT}.log"
    docker build -t "$IMAGE_NAME" -f ./src/$COMPONENT/Dockerfile ./src/ > $BUILD_LOG

    if [ "$COMPONENT" == "automation" ] || [ "$COMPONENT" == "policy" ]; then
        docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/"$COMPONENT"/ > "$BUILD_LOG"
    else 
        docker build -t "$IMAGE_NAME" -f ./src/"$COMPONENT"/Dockerfile ./src/ > "$BUILD_LOG"
    fi

    if [ -n "$REGISTRY_IMAGE" ]; then
        echo "Pushing Docker image to '$REGISTRY_IMAGE'..."

        TAG_LOG="$TMP_LOGS_FOLDER/tag_${COMPONENT}.log"
        docker tag "$IMAGE_NAME" "$IMAGE_URL" > $TAG_LOG
        docker tag "$IMAGE_NAME" "$IMAGE_URL" > "$TAG_LOG"

        PUSH_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log"
        docker push "$IMAGE_URL" > "$PUSH_LOG"
    fi

    echo "  Adapting manifest file..."
    echo "  Adapting '$COMPONENT' manifest file..."
    MANIFEST="$TMP_MANIFESTS_FOLDER/${COMPONENT}service.yaml"
    cp ./manifests/${COMPONENT}service.yaml $MANIFEST
    cp ./manifests/"${COMPONENT}"service.yaml "$MANIFEST"
    VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f3)

    if [ -n "$REGISTRY_IMAGE" ]; then
        sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:latest#image: $IMAGE_URL#g" $MANIFEST
        sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Always#g" $MANIFEST

        sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST"
        sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Always#g" "$MANIFEST"
   
    else
        sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:latest#image: $IMAGE_NAME#g" $MANIFEST
        sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Never#g" $MANIFEST
        sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_NAME#g" "$MANIFEST"
        sed -E -i "s#imagePullPolicy: .*#imagePullPolicy: Never#g" "$MANIFEST"        
    fi

    echo "  Deploying to Kubernetes..."
    echo "  Deploying '$COMPONENT' component to Kubernetes..."
    DEPLOY_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log"
    kubectl --namespace $K8S_NAMESPACE apply -f $MANIFEST > $DEPLOY_LOG
    kubectl --namespace $K8S_NAMESPACE apply -f "$MANIFEST" > "$DEPLOY_LOG"
    printf "\n"
done

kubectl --namespace $K8S_NAMESPACE get all
+1 −0
Original line number Diff line number Diff line
../src/automation/target/kubernetes/kubernetes.yml
 No newline at end of file
Loading