[demos] Improve steps of dependency preinstall

This commit is contained in:
Shaowei Song 2023-03-23 15:28:26 +08:00 committed by volcano
parent 4c407e8f67
commit 5a03deb6b9
16 changed files with 144 additions and 81 deletions

@ -231,8 +231,8 @@ jobs:
container-name: ${{ github.job }}
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Build xgboost dependencies
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/xgboost && ./download_and_build_xgboost.sh"
- name: Preinstall dependencies and build xgboost
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/xgboost && ./preinstall_deps.sh && ./download_and_build_xgboost.sh"
- name: Run xgboost test
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/xgboost && SGX_MODE=SIM make test"
@ -525,7 +525,7 @@ jobs:
- name: Run redis benchmark
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/redis; SGX_MODE=SIM ./benchmark_glibc.sh"
flink_test:
Flink_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
@ -537,8 +537,8 @@ jobs:
container-name: ${{ github.job }}
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Download flink
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/flink && ./download_flink.sh"
- name: Preinstall dependencies and download flink
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/flink && ./preinstall_deps.sh && ./download_flink.sh"
- name: Run jobmanager on host
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/flink && SGX_MODE=SIM ./run_flink_jobmanager_on_host.sh"
@ -573,7 +573,7 @@ jobs:
- name: Run cluster serving test
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/cluster_serving; source ./environment.sh; SGX_MODE=SIM ./start-all.sh; ./push-image.sh"
enclave_ra_tls_test:
Enclave_RA_TLS_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
@ -597,7 +597,7 @@ jobs:
sleep ${{ env.nap_time }};
docker exec ${{ github.job }} bash -c "/usr/share/enclave-tls/samples/enclave-tls-client" || true
vault_test:
Vault_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
@ -620,7 +620,7 @@ jobs:
sleep ${{ env.nap_time }};
docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/golang/vault && ./run_occlum_vault_test.sh"
sofaboot_test:
Sofaboot_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
@ -659,7 +659,7 @@ jobs:
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Install OpenJDK 11 (Glibc)
run: docker exec ${{ github.job }} bash -c "apt update && apt install -y openjdk-11-jdk"
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/netty_ut && ./preinstall_deps.sh"
- name: Download and compile netty unit test demos
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/netty_ut && ./build.sh"
@ -767,7 +767,7 @@ jobs:
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/python/flask;
curl --cacert flask.crt -X GET https://localhost:4996/customer/1"
iperf2_test:
Iperf2_test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1

@ -342,8 +342,8 @@ jobs:
container-name: ${{ github.job }}
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Build xgboost dependencies
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/xgboost && ./download_and_build_xgboost.sh"
- name: Preinstall dependencies and build xgboost
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/xgboost && ./preinstall_deps.sh && ./download_and_build_xgboost.sh"
- name: Run xgboost test
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/xgboost && make test"
@ -985,8 +985,8 @@ jobs:
container-name: ${{ github.job }}
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Download and build mysql
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/mysql && ./dl_and_build_mysql.sh"
- name: Preinstall dependencies and build mysql
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/mysql && ./preinstall_deps.sh && ./dl_and_build_mysql.sh"
- name: Run mysql server
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/mysql && ./run_mysql_server.sh" &
@ -1034,7 +1034,7 @@ jobs:
build-envs: 'OCCLUM_RELEASE_BUILD=1'
- name: Install OpenJDK 11 (Glibc)
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "apt update && apt install -y openjdk-11-jdk"
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/netty_ut && ./preinstall_deps.sh"
- name: Download and compile netty unit test demos
run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/netty_ut && ./build.sh"

@ -1,11 +1,25 @@
1. Run the flink jobmanager
# Run Flink on Occlum
### Preinstall dependencies
Related dependencies: openjdk-11
```
./preinstall_deps.sh
```
### Run the flink jobmanager
```
./run_flink_jobmanager_on_host.sh
```
2. Run the taskManager
### Run the taskManager
```
./run_flink_on_occlum_glibc.sh tm
```
3. Run flink jobs example
### Run flink jobs example
```
./run_flink_on_occlum_glibc.sh task
```
**Note:**
1. If running the jobmanager in docker, please export the port 8081 and 6123

@ -1,16 +1,6 @@
#!/bin/bash
set -e
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y openjdk-11-jre
# The openjdk has a broken symlink, remove it as a workaround
rm -f /usr/lib/jvm/java-11-openjdk-amd64/lib/security/blacklisted.certs
else
echo "Unsupported OS: $OS"
exit 1
fi
rm -rf flink-1.10.1*
wget https://archive.apache.org/dist/flink/flink-1.10.1/flink-1.10.1-bin-scala_2.11.tgz
tar -xvzf flink-1.10.1-bin-scala_2.11.tgz

14
demos/flink/preinstall_deps.sh Executable file

@ -0,0 +1,14 @@
#!/bin/bash
set -e
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y openjdk-11-jre
# The openjdk has a broken symlink, remove it as a workaround
rm -f /usr/lib/jvm/java-11-openjdk-amd64/lib/security/blacklisted.certs
else
echo "Unsupported OS: $OS"
exit 1
fi
echo "Install dependencies success"

@ -2,7 +2,13 @@
[`MySQL`](https://www.mysql.com/) is a widely used open-source relational database management system (RDBMS).
### Build and install
### Preinstall dependencies
Related dependencies: libnuma-dev libboost-all-dev boost-1.77.0
```
./preinstall_deps.sh
```
### Download and build MySQL
```
./dl_and_build_mysql.sh
```

@ -3,25 +3,6 @@ set -e
BLUE='\033[1;34m'
NC='\033[0m'
echo -e "${BLUE}Start installing dependencies.${NC}"
# Prepare environment
DEPS="libnuma-dev libboost-all-dev"
apt-get update
apt-get install -y ${DEPS}
BOOST="boost_1_77_0"
wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/${BOOST}.tar.bz2
tar --bzip2 -xf ${BOOST}.tar.bz2
pushd ${BOOST}
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j4 threading=multi link=shared
./b2 install threading=multi link=shared
popd
echo -e "${BLUE}Finish installing dependencies.${NC}"
echo -e "${BLUE}Start building mysql from src.${NC}"
# Download released tarball

29
demos/mysql/preinstall_deps.sh Executable file

@ -0,0 +1,29 @@
#!/bin/bash
set -e
BLUE='\033[1;34m'
NC='\033[0m'
echo -e "${BLUE}Start installing dependencies.${NC}"
DEPS="libnuma-dev libboost-all-dev"
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y ${DEPS}
# Install sysbench for benchmarking purpose
apt-get install -y sysbench
else
echo "Unsupported OS: $OS"
exit 1
fi
BOOST="boost_1_77_0"
wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/${BOOST}.tar.bz2
tar --bzip2 -xf ${BOOST}.tar.bz2
pushd ${BOOST}
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j4 threading=multi link=shared
./b2 install threading=multi link=shared
popd
echo -e "${BLUE}Finish installing dependencies.${NC}"

@ -4,17 +4,12 @@ set -e
GREEN='\033[1;32m'
NC='\033[0m'
echo -e "${GREEN}Install sysbench first${NC}"
# We use sysbench to test mysql, need to install it first
apt-get install -y sysbench
function run_benchmarks()
{
WORKLOADS=("oltp_point_select" "oltp_write_only" "oltp_read_write")
for item in ${WORKLOADS[@]}
do
echo "start to prepare for $item"
echo "${GREEN}start to prepare for $item${NC}"
sleep 3
sysbench /usr/share/sysbench/$item.lua\
--mysql-host='127.0.0.1'\
@ -26,7 +21,7 @@ function run_benchmarks()
--rand-type=pareto\
prepare
echo "start to run $item"
echo "${GREEN}start to run $item${NC}"
sleep 3
sysbench /usr/share/sysbench/$item.lua\
--mysql-host='127.0.0.1'\
@ -40,7 +35,7 @@ function run_benchmarks()
--report-interval=10\
run
echo "start to cleanup $item"
echo "${GREEN}start to cleanup $item${NC}"
sleep 3
sysbench /usr/share/sysbench/$item.lua\
--mysql-host='127.0.0.1'\

@ -1,13 +1,19 @@
# A Simple netty unit test usage demo
This project demonstrates how to verify the completeness of Netty on Occlum.
This demo demonstrates how to verify the completeness of Netty on Occlum.
1. Download junit and related netty jars
### 1. Preinstall dependencies
Related dependencies: OpenJDK 11 (Glibc)
```
./preinstall_deps.sh
```
### 2. Download junit and related netty jars
```
./build.sh
```
2. Run `netty unit test ` on Occlum
### 3. Run `netty unit test ` on Occlum
```
./run_netty_ut_jdk11.sh
```

@ -1,10 +1,10 @@
#!/bin/bash
sudo apt-get update
sudo apt-get install openjdk-11-jdk
rm -rf /usr/lib/jvm/java-11-openjdk-amd64/lib/security/blacklisted.certs
set -e
# Download netty testsuite, junit platform and related dependencies
if [ ! -d "netty" ]; then
wget -i ./ut-jar.url -P ./netty
fi
echo "Build Netty unit test success"

@ -0,0 +1,13 @@
#!/bin/bash
set -e
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y openjdk-11-jdk
rm -rf /usr/lib/jvm/java-11-openjdk-amd64/lib/security/blacklisted.certs
else
echo "Unsupported OS: $OS"
exit 1
fi
echo "Install dependencies success"

@ -1,22 +1,28 @@
# Use XGBoost in SGX with Occlum
Step 1: Download XGBoost and its dependencies, and then build XGBoost
### Step 1: Preinstall dependencies
Related dependencies: python3-pip python3-setuptools kubernetes cmake
```
./preinstall_deps.sh
```
### Step 2: Download and build XGBoost
```
./download_and_build_xgboost.sh
```
When completed, the resulting XGBoost can be found in `xgboost_src` directory.
Step 2: To train data with XGBoost in a single process, run
### Step 3: To train data with XGBoost in a single process, run
```
make test
```
Step 3: To train data with a two-node XGBoost cluster, run
### Step 4: To train data with a two-node XGBoost cluster, run
```
make test-local-cluster
```
Step 4 (Optional): To train data with XGBoost in a single process in Linux, run
### Step 5 (Optional): To train data with XGBoost in a single process in Linux, run
```
make test-native
```

@ -4,18 +4,6 @@ set -e
# Tell CMake to search for packages in Occlum toolchain's directory only
export PKG_CONFIG_LIBDIR=/usr/local/occlum/x86_64-linux-musl/lib
# Install the dependencies
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y python3-pip python3-setuptools
else
yum install -y python3-pip python3-setuptools
fi
pip3 install kubernetes
#install the cmake
./install_cmake.sh
# Download and build XGBoost
rm -rf xgboost_src && mkdir xgboost_src
pushd xgboost_src

@ -12,3 +12,5 @@ cd cmake-3.15.5
./bootstrap
make -j$(nproc)
sudo make install
echo "Install CMake success"

@ -0,0 +1,19 @@
#!/bin/bash
set -e
# Tell CMake to search for packages in Occlum toolchain's directory only
export PKG_CONFIG_LIBDIR=/usr/local/occlum/x86_64-linux-musl/lib
# Install dependencies
OS=`awk -F= '/^NAME/{print $2}' /etc/os-release`
if [ "$OS" == "\"Ubuntu\"" ]; then
apt-get update -y && apt-get install -y python3-pip python3-setuptools
else
yum install -y python3-pip python3-setuptools
fi
pip3 install kubernetes
echo "Install dependencies success"
# Install CMake
./install_cmake.sh