Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
T
tango
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira issues
Open Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LOFAR2.0
tango
Commits
f01368be
Commit
f01368be
authored
Sep 19, 2023
by
Hannes Feldt
Browse files
Options
Downloads
Patches
Plain Diff
fixes
parent
7f6ac78a
No related branches found
No related tags found
5 merge requests
!752
Resolve L2SS-1525 "Migrate minio"
,
!751
Resolve L2SS-1340 "Deploy monitoring to nomad"
,
!750
Resolve L2SS-1341 "Migrate tango2nomad"
,
!749
Resolve L2SS-1342 "Migrate jupyter"
,
!710
L2SS-1341: Migrate tango to nomad
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
sbin/dsconfig.sh
+4
-0
4 additions, 0 deletions
sbin/dsconfig.sh
sbin/run_integration_test.sh
+1
-1
1 addition, 1 deletion
sbin/run_integration_test.sh
sbin/run_integration_test.sh.orig
+243
-0
243 additions, 0 deletions
sbin/run_integration_test.sh.orig
with
248 additions
and
1 deletion
sbin/dsconfig.sh
+
4
−
0
View file @
f01368be
...
@@ -38,6 +38,10 @@ while true; do
...
@@ -38,6 +38,10 @@ while true; do
shift
shift
done
done
if
[
-z
"
$TAG
"
]
;
then
TAG
=
"latest"
fi
docker_args
=(
run
--rm
-e
"TANGO_HOST=
$TANGO_HOST
"
--network
=
station
-i
)
docker_args
=(
run
--rm
-e
"TANGO_HOST=
$TANGO_HOST
"
--network
=
station
-i
)
docker_image
=
"git.astron.nl:5000/lofar2.0/tango/dsconfig:
$TAG
"
docker_image
=
"git.astron.nl:5000/lofar2.0/tango/dsconfig:
$TAG
"
...
...
This diff is collapsed.
Click to expand it.
sbin/run_integration_test.sh
+
1
−
1
View file @
f01368be
...
@@ -79,7 +79,7 @@ fi
...
@@ -79,7 +79,7 @@ fi
export
TANGO_SKIP_BUILD
=
1
export
TANGO_SKIP_BUILD
=
1
if
[
-z
"
$TAG
"
]
;
then
if
[
-z
"
$TAG
"
]
;
then
TAG
=
"latest"
export
TAG
=
"latest"
fi
fi
# Build dsconfig first, `-z ${y+x}` is the inverse of `-n ${y}`
# Build dsconfig first, `-z ${y+x}` is the inverse of `-n ${y}`
...
...
This diff is collapsed.
Click to expand it.
sbin/run_integration_test.sh.orig
0 → 100755
+
243
−
0
View file @
f01368be
#!/bin/bash -e
#
# Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy)
# SPDX-License-Identifier: Apache-2.0
#
# Usage function explains how parameters are parsed
function
usage
{
echo
"./
$(
basename
"
$0
"
)
no arguments, builds and configures all docker containers and starts each
stage of the integration test one after the other. Between each stage the
dsconfig is updated accordingly."
echo
""
echo
"./
$(
basename
"
$0
"
)
-h --help
displays this help message"
echo
""
echo
"./
$(
basename
"
$0
"
)
--no-build
disables building of docker images"
}
# Configure the config database, restart containers and run a specific
# integration module or even specific tests
# integration_test module restarted_containers config_files specific_test
function
integration_test
{
IFS
=
" "
read
-r
-a
restarts
<<<
"
${
2
}
"
IFS
=
" "
read
-r
-a
configs
<<<
"
${
3
}
"
for
config
in
"
${
configs
[@]
}
"
;
do
echo
"Updating config
${
config
}
..."
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
config
}
"
done
if
[
-n
"
${
2
+x
}
"
]
;
then
# shellcheck disable=SC2145
echo
"make restart
${
restarts
[@]
}
..."
make restart
"
${
restarts
[@]
}
"
# shellcheck disable=SC2145
echo
"make await
${
restarts
[@]
}
..."
make await
"
${
restarts
[@]
}
"
fi
echo
"make integration
${
1
}
..."
make integration
"
${
1
}
"
}
# list of arguments expected in the input
optstring_long
=
"help,no-build,preserve,save-logs"
optstring
=
"hnb"
options
=
$(
getopt
-l
${
optstring_long
}
-o
${
optstring
}
--
"
$@
"
)
eval set
--
"
$options
"
while
true
;
do
case
${
1
}
in
-h
|
--help
)
usage
exit
0
;;
--no-build
)
echo
"Disable docker compose build step"
export
no_build
=
1
export
NO_BASE
=
${
no_build
}
;;
--preserve
)
echo
"Preserve test environment"
export
preserve
=
1
;;
--save-logs
)
echo
"Save logs after execution"
export
save_logs
=
1
;;
--
)
shift
break
;;
esac
shift
done
if
[
-z
"
$LOFAR20_DIR
"
]
;
then
# We assume we aren't in the PATH, so we can derive our path.
# We need our parent directory.
LOFAR20_DIR_RELATIVE
=
$(
dirname
"
$0
"
)
/..
# As an absolute path
LOFAR20_DIR
=
$(
readlink
-f
"
${
LOFAR20_DIR_RELATIVE
}
"
)
fi
<<<<<<
< HEAD
if
[
-z
"
$TAG
"
]
;
then
TAG
=
"latest"
fi
[
-n
"
${
no_build
}
"
]
||
make build dsconfig
docker network
rm
station
||
true
if
!
[
-x
"
$(
command
-v
jumppad
)
"
]
;
then
echo
'Install jumppad'
mkdir
-p
./.bin
wget https://git.astron.nl/lofar2.0/tango/-/package_files/37347/download
-O
./.bin/jumppad
chmod
+x ./.bin/jumppad
bin_dir
=
$(
realpath
./.bin
)
PATH
=
"
$PATH
:
$bin_dir
"
fi
make
-C
infra/jobs/station
DIR_OUT
=
"
$(
realpath
"infra/dev/jobs/station"
)
"
render
# prepare a docker volume for nomad
tmp_volume
=
"test_
$(
hexdump
-n
16
-v
-e
'/1 "%02X"'
/dev/urandom
)
"
function
cleanup
{
cd
"
$LOFAR20_DIR
"
if
[
-n
"
${
save_logs
}
"
]
;
then
mkdir
-p
log
for
container
in
$(
docker ps
-a
--format
"{{.Names}}"
)
do
echo
"Saving log for container
$container
"
docker logs
"
${
container
}
"
>
&
"log/
${
container
}
.log"
done
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--dump
>
& log/dump_ConfigDb.log
fi
if
[
-z
"
${
preserve
}
"
]
;
then
make stop
>
/dev/null 2>&1
HOME
=
"
$JUMPPAD_HOME
"
jumppad down infra/dev
docker volume
rm
"
$tmp_volume
"
||
true
fi
}
trap
cleanup EXIT
docker volume create
"
$tmp_volume
"
docker pull
-q
bash
docker run
-i
--rm
-v
"
$tmp_volume
"
:/mnt bash bash
-c
'mkdir -p /mnt/volumes/tango-database'
rm
-rf
~/.jumppad/
if
[
-z
"
$JUMPPAD_HOME
"
]
;
then
JUMPPAD_HOME
=
"
$HOME
"
fi
HOME
=
"
$JUMPPAD_HOME
"
jumppad up
--var
=
"host_volume=
$tmp_volume
"
infra/dev
||
true
echo
-n
"Waiting for tango service to become available .."
until
[[
$(
dig @127.0.0.1
-p
8600 tango.service.consul +short
)
]]
;
do
sleep
2
echo
-n
"."
done
echo
". [ok]"
TANGO_PORT
=
$(
dig @127.0.0.1
-p
8600 tango.service.consul SRV +short |
awk
'{printf "%s",$3}'
)
TANGO_HOST
=
$(
dig @127.0.0.1
-p
8600 tango.service.consul +short
)
export
TANGO_HOST
=
"
$TANGO_HOST
:
$TANGO_PORT
"
export
HOSTNAME
=
192.168.123.1
export
DNS
=
192.168.123.100
echo
"Using tango host
$TANGO_HOST
"
cd
"
$LOFAR20_DIR
/docker-compose"
||
exit
1
=======
export
TANGO_SKIP_BUILD
=
1
cd
"
$LOFAR20_DIR
/docker-compose"
||
exit
1
# Start the database server first, `-z ${y+x}` is the inverse of `-n ${y}`
if
[
-z
"
${
no_build
+x
}
"
]
;
then
rm
-rf
"
${
LOFAR20_DIR
}
/tangostationcontrol/dist"
cd
"
${
LOFAR20_DIR
}
/tangostationcontrol"
||
exit
1
tox
-e
build
cd
"
$LOFAR20_DIR
/docker-compose"
||
exit
1
make build databaseds dsconfig
fi
make start databaseds dsconfig
# Give dsconfig and databaseds time to start
sleep
5
# dsconfig container must be up and running...
# shellcheck disable=SC2016
echo
'/usr/local/bin/wait-for-it.sh ${TANGO_HOST} --strict --timeout=300 -- true'
| make run dsconfig bash -
>>>>>>>
master
# Devices list is used to explitly word split when supplied to commands, must
# disable shellcheck SC2086 for each case.
DEVICES
=(
device-station-manager device-boot device-aps device-apsct device-ccd device-ec device-apspu device-sdpfirmware device-sdp device-recvh device-recvl device-bst device-sst device-unb2 device-xst device-beamlet device-digitalbeam device-tilebeam device-psoc device-pcon device-antennafield device-temperature-manager device-observation-control device-configuration device-calibration
)
SIMULATORS
=(
sdptr-sim recvh-sim recvl-sim unb2-sim apsct-sim apspu-sim ccd-sim ec-sim
)
# Build only the required images, please do not build everything that makes CI
# take really long to finish, especially grafana / jupyter / prometheus.
# jupyter is physically large > 2.5gb and overlayfs is really slow.
[
-n
"
${
no_build
}
"
]
||
make build
"
${
SIMULATORS
[@]
}
"
[
-n
"
${
no_build
}
"
]
||
make build logstash integration-test http-json-schemas
# Start and stop sequence
make stop http-json-schemas
make stop object-storage init-object-storage
make stop
"
${
DEVICES
[@]
}
"
"
${
SIMULATORS
[@]
}
"
make stop device-docker
# this one does not test well in docker-in-docker
make stop logstash
make start logstash http-json-schemas object-storage init-object-storage
# Update the dsconfig
# Do not remove `bash`, otherwise statement ignored by gitlab ci shell!
docker pull
-q
"git.astron.nl:5000/lofar2.0/tango/dsconfig:
$TAG
"
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--load
"
${
LOFAR20_DIR
}
"
/CDB/stations/common.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/l0.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/l1.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/lba.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/h0.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/hba_core.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/cs001.json
bash
"
${
LOFAR20_DIR
}
"
/sbin/dsconfig.sh
--update
"
${
LOFAR20_DIR
}
"
/CDB/stations/testenv_cs001.json
cd
"
$LOFAR20_DIR
/docker-compose"
||
exit
1
make start
"
${
SIMULATORS
[@]
}
"
# Give the simulators time to start
sleep
5
# shellcheck disable=SC2086
make start
"
${
DEVICES
[@]
}
"
# Wait for devices to restart
make await
"
${
DEVICES
[@]
}
"
# Start the integration test
cd
"
$LOFAR20_DIR
/docker-compose"
||
exit
1
make up integration-test
integration_test default
integration_test tilebeam_performance
"device-sdpfirmware device-sdp device-recvh device-recvl device-tilebeam device-antennafield"
"
${
LOFAR20_DIR
}
/CDB/integrations/tilebeam_cluster_ConfigDb.json"
integration_test digitalbeam_performance
"device-sdpfirmware device-sdp device-recvh device-recvl device-digitalbeam device-beamlet device-antennafield"
"
${
LOFAR20_DIR
}
/CDB/integrations/digitalbeam_cluster_ConfigDb.json"
integration_test configuration
"device-configuration"
make restart
"
${
DEVICES
[@]
}
"
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment