Loading .gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,5 @@ include: - 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' deploy_in_kubernetes.sh +23 −14 Original line number Diff line number Diff line Loading @@ -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 opticalcentralizedattackdetector" COMPONENTS="context device automation policy service compute monitoring centralizedattackdetector" # Set the tag you want to use for your images. IMAGE_TAG="tf-dev" Loading @@ -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 ######################################################################################################################## Loading @@ -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..." Loading @@ -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 Loading manifests/policyservice.yaml 0 → 120000 +1 −0 Original line number Diff line number Diff line ../src/policy/target/kubernetes/kubernetes.yml No newline at end of file proto/automation.proto +11 −6 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ service AutomationService { rpc ZtpAdd(DeviceRole) returns (DeviceRoleState) {} rpc ZtpUpdate(DeviceRole) returns (DeviceRoleState) {} rpc ZtpDelete(DeviceRole) returns (DeviceRoleState) {} rpc ZtpDeleteAllByDeviceId(context.DeviceId) returns (DeviceRoleState) {} rpc ZtpDeleteAll(Empty) returns (DeviceDeletionResult) {} } enum DeviceRoleType { Loading Loading @@ -39,12 +39,17 @@ message DeviceRoleState { ZtpDeviceState devRoleState = 2; } message DeviceDeletionResult { repeated bool deleted = 1; } message Empty {} enum ZtpDeviceState { PLANNED = 0; POTENCIAL_AVAILABLE = 1; POTENCIAL_BUSY = 2; INSTALLED = 3; PENDING_REMOVAL = 4; ZTP_DEV_STATE_UNDEFINED = 0; ZTP_DEV_STATE_CREATED = 1; ZTP_DEV_STATE_UPDATED = 2; ZTP_DEV_STATE_DELETED = 3; } src/automation/Dockerfile 0 → 120000 +1 −0 Original line number Diff line number Diff line src/main/docker/Dockerfile.multistage.jvm No newline at end of file Loading
.gitlab-ci.yml +1 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,5 @@ include: - 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'
deploy_in_kubernetes.sh +23 −14 Original line number Diff line number Diff line Loading @@ -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 opticalcentralizedattackdetector" COMPONENTS="context device automation policy service compute monitoring centralizedattackdetector" # Set the tag you want to use for your images. IMAGE_TAG="tf-dev" Loading @@ -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 ######################################################################################################################## Loading @@ -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..." Loading @@ -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 Loading
manifests/policyservice.yaml 0 → 120000 +1 −0 Original line number Diff line number Diff line ../src/policy/target/kubernetes/kubernetes.yml No newline at end of file
proto/automation.proto +11 −6 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ service AutomationService { rpc ZtpAdd(DeviceRole) returns (DeviceRoleState) {} rpc ZtpUpdate(DeviceRole) returns (DeviceRoleState) {} rpc ZtpDelete(DeviceRole) returns (DeviceRoleState) {} rpc ZtpDeleteAllByDeviceId(context.DeviceId) returns (DeviceRoleState) {} rpc ZtpDeleteAll(Empty) returns (DeviceDeletionResult) {} } enum DeviceRoleType { Loading Loading @@ -39,12 +39,17 @@ message DeviceRoleState { ZtpDeviceState devRoleState = 2; } message DeviceDeletionResult { repeated bool deleted = 1; } message Empty {} enum ZtpDeviceState { PLANNED = 0; POTENCIAL_AVAILABLE = 1; POTENCIAL_BUSY = 2; INSTALLED = 3; PENDING_REMOVAL = 4; ZTP_DEV_STATE_UNDEFINED = 0; ZTP_DEV_STATE_CREATED = 1; ZTP_DEV_STATE_UPDATED = 2; ZTP_DEV_STATE_DELETED = 3; }
src/automation/Dockerfile 0 → 120000 +1 −0 Original line number Diff line number Diff line src/main/docker/Dockerfile.multistage.jvm No newline at end of file