Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Python 3 support #416

Merged
merged 48 commits into from May 11, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
0f5954d
Py 3 RPC implementation + Clipper Admin compatibility with Python 3
jwirjo Feb 9, 2018
92aeafb
tests
jwirjo Feb 21, 2018
1c63302
tests
jwirjo Feb 21, 2018
1e6a788
progress
jwirjo Mar 9, 2018
b8047cf
got wheel working and removed build files
dcrankshaw Mar 9, 2018
c9b7799
progress 2
jwirjo Mar 9, 2018
70c77cf
removed deps formatted code
dcrankshaw Mar 9, 2018
a688620
Merge branch 'develop' into py2py3updated
dcrankshaw Mar 13, 2018
5f57bd9
remove pytorch test
dcrankshaw Mar 15, 2018
80c7552
address comments
dcrankshaw Mar 17, 2018
df17b34
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw Mar 18, 2018
09279a9
Fixes to py3tests dockerfile
dcrankshaw Mar 18, 2018
61e5cda
removed double cloudpickle install
dcrankshaw Mar 18, 2018
064fdf5
update conda versions
dcrankshaw Mar 19, 2018
b32792b
consolidate cloudpickle install and update anaconda
dcrankshaw Mar 19, 2018
7ec0beb
Install redis in py 3 tests dockerfile
dcrankshaw Mar 21, 2018
c813912
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw Apr 4, 2018
75982be
added py3 dev image
dcrankshaw Apr 4, 2018
cb5f996
general cleanup
dcrankshaw Apr 4, 2018
15a1907
fixed bugs
dcrankshaw Apr 4, 2018
390de6e
separated out docker files for different python 3 minor versions
dcrankshaw Apr 5, 2018
d85862e
fixed py3 tests container name
dcrankshaw Apr 5, 2018
22a0203
More informative python version logging and comment out py2 tests
dcrankshaw Apr 5, 2018
fe80f21
fix minor version detection
dcrankshaw Apr 6, 2018
b6cd125
revert commented out py2 tests
dcrankshaw Apr 6, 2018
51e74a3
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw Apr 6, 2018
3882ce1
fix python3 imports
dcrankshaw Apr 6, 2018
1dc1c60
format code
dcrankshaw Apr 6, 2018
ce66bda
fix python3 ref in clipper admin tests
dcrankshaw Apr 6, 2018
8b5a0bd
Merge branch 'develop' into py2py3updated
dcrankshaw Apr 6, 2018
20010ac
fix pip3/pip issues
dcrankshaw Apr 6, 2018
4c67289
format code
dcrankshaw Apr 7, 2018
5b86ebb
Merge branch 'develop' into py2py3updated
dcrankshaw Apr 8, 2018
2882526
added healthchecks to py3 containers
dcrankshaw Apr 8, 2018
1452c22
increased kube test delays
dcrankshaw Apr 9, 2018
d18fe5f
change kube integration test stop
dcrankshaw Apr 9, 2018
27e7d51
changed kube connections generator in integration tests
dcrankshaw Apr 10, 2018
95912cf
format code
dcrankshaw Apr 10, 2018
8959109
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw Apr 17, 2018
8a1e61e
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw May 10, 2018
f5a7eee
Python 3 support seems to be fully working
dcrankshaw May 10, 2018
8174f48
format code
dcrankshaw May 10, 2018
e012e33
Merge remote-tracking branch 'ucbrise/develop' into py2py3updated
dcrankshaw May 10, 2018
1f4f281
format code
dcrankshaw May 10, 2018
d5e52f4
comment out some unittests
dcrankshaw May 11, 2018
2d0e226
force exit
dcrankshaw May 11, 2018
b0d22ce
fix integration test
dcrankshaw May 11, 2018
bb25ebf
uncomment tests
dcrankshaw May 11, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions bench/build_bench_docker_images.sh
Expand Up @@ -25,6 +25,7 @@ fi
# Assume local clipper/py-rpc base image (if exists) or pulled image is correct

docker build -t clipper/py-rpc:$tag -f ./Py2RPCDockerfile ./
docker build -t clipper/py3-rpc:$tag -f ./Py3RPCDockerfile ./
if [ $# -eq 0 ]; then
time docker build build --build-arg CODE_VERSION=$tag -t clipper/sum-bench:$tag -f dockerfiles/SumBenchDockerfile ./
time docker build build --build-arg CODE_VERSION=$tag -t clipper/noop-bench:$tag -f dockerfiles/NoopBenchDockerfile ./
Expand Down
9 changes: 8 additions & 1 deletion bin/build_docker_images.sh
Expand Up @@ -245,17 +245,24 @@ build_images () {
create_image query_frontend QueryFrontendDockerfile $public
create_image management_frontend ManagementFrontendDockerfile $public
create_image dev ClipperDevDockerfile $public
create_image py35-dev ClipperPy35DevDockerfile $public
create_image unittests ClipperTestsDockerfile $private
create_image py35tests ClipperPy35TestsDockerfile $private

# Build containers

# Build containers for other languages
create_image spark-scala-container SparkScalaContainerDockerfile $public
create_image r-container-base RContainerDockerfile $public

# First build Python base image
create_image py-rpc Py2RPCDockerfile $public
create_image py35-rpc Py35RPCDockerfile $public
create_image py36-rpc Py36RPCDockerfile $public
create_image sum-container SumDockerfile $private
create_image noop-container NoopDockerfile $public
create_image python-closure-container PyClosureContainerDockerfile $public
create_image python35-closure-container Py35ClosureContainerDockerfile $public
create_image python36-closure-container Py36ClosureContainerDockerfile $public
create_image pyspark-container PySparkContainerDockerfile $public
create_image tf-container TensorFlowDockerfile $public
create_image pytorch-container PyTorchContainerDockerfile $public
Expand Down
11 changes: 9 additions & 2 deletions bin/ci_checks.sh
Expand Up @@ -4,6 +4,9 @@ set -e
set -u
set -o pipefail


run_all=$1

function clean_up {
# Clean up credentials
rm $KUBECONFIG
Expand Down Expand Up @@ -48,5 +51,9 @@ kubectl get nodes
# Set kubectl proxy for k8s tests later
kubectl proxy --port 8080 &

$DIR/check_format.sh
$DIR/run_unittests.sh
if [[ $run_all = "true" ]]; then
$DIR/check_format.sh
$DIR/run_unittests.sh
else
$DIR/run_unittests.sh -i
fi
16 changes: 8 additions & 8 deletions bin/construct_kube_config.py
Expand Up @@ -29,33 +29,33 @@ def write_config(dest_path):
'Config',
'preferences': {},
'current-context':
'cluster.clipper-k8s-testing.com',
'jenkins.clipper-k8s-testing.com',
'contexts': [{
'name': 'cluster.clipper-k8s-testing.com',
'name': 'jenkins.clipper-k8s-testing.com',
'context': {
'cluster': 'cluster.clipper-k8s-testing.com',
'user': 'cluster.clipper-k8s-testing.com'
'cluster': 'jenkins.clipper-k8s-testing.com',
'user': 'jenkins.clipper-k8s-testing.com'
}
}],
'clusters': [{
'cluster': {
'certificate-authority-data': cert_auth_data,
'server': 'https://api.cluster.clipper-k8s-testing.com'
'server': 'https://api.jenkins.clipper-k8s-testing.com'
},
'name': 'cluster.clipper-k8s-testing.com'
'name': 'jenkins.clipper-k8s-testing.com'
}],
'apiVersion':
'v1',
'users': [{
'name': 'cluster.clipper-k8s-testing.com',
'name': 'jenkins.clipper-k8s-testing.com',
'user': {
'username': 'admin',
'password': pw_data,
'client-key-data': client_key_data,
'client-certificate-data': client_cert_data
}
}, {
'name': 'cluster.clipper-k8s-testing.com-basic-auth',
'name': 'jenkins.clipper-k8s-testing.com-basic-auth',
'user': {
'username': 'admin',
'password': pw_data
Expand Down
10 changes: 10 additions & 0 deletions bin/run_ci.sh
Expand Up @@ -34,3 +34,13 @@ docker run --rm --network=host -v /var/run/docker.sock:/var/run/docker.sock -v /
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
clipper/unittests:$tag

# Python 3 unittests
docker run --rm --network=host -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp \
-e CLIPPER_K8S_CERT_AUTH=$CLIPPER_K8S_CERT_AUTH \
-e CLIPPER_K8S_CLIENT_CERT=$CLIPPER_K8S_CLIENT_CERT \
-e CLIPPER_K8S_CLIENT_KEY=$CLIPPER_K8S_CLIENT_KEY \
-e CLIPPER_K8S_PASSWORD=$CLIPPER_K8S_PASSWORD \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
clipper/py35tests:$tag
63 changes: 33 additions & 30 deletions bin/run_unittests.sh
Expand Up @@ -35,7 +35,7 @@ function clean_up {
# echo Killing jobs
echo Exiting unit tests...
kill $(jobs -p) &> /dev/null
echo
echo "Cleanup exit code: $?"
sleep 2
# echo Remaining background jobs: $(jobs -l)
exit
Expand Down Expand Up @@ -149,6 +149,8 @@ function run_integration_tests {
../integration-tests/r_integration_test/rclipper_test.sh
python ../integration-tests/clipper_metric_docker.py
python ../integration-tests/clipper_metric_kube.py
echo "Exit code: $?"
echo "GREPTHIS Done running unit tests"
}

function run_all_tests {
Expand Down Expand Up @@ -178,33 +180,34 @@ else
fi

case $args in
-a | --all ) set_test_environment
run_all_tests
;;
-l | --libclipper ) set_test_environment
run_libclipper_tests
;;
-m | --management ) set_test_environment
run_management_tests
;;
-f | --frontend ) set_test_environment
run_frontend_tests
;;
-j | --jvm-container ) set_test_environment
run_jvm_container_tests
;;
-c | --cpp-container ) set_test_environment
run_cpp_container_tests
;;
-rc | --r-container ) set_test_environment
run_r_container_tests
;;
-r | --rpc-container ) set_test_environment
run_rpc_container_tests
;;
-i | --integration_tests ) run_integration_tests
;;
-h | --help ) usage
;;
* ) usage
-a | --all ) set_test_environment
run_all_tests
;;
-l | --libclipper ) set_test_environment
run_libclipper_tests
;;
-m | --management ) set_test_environment
run_management_tests
;;
-f | --frontend ) set_test_environment
run_frontend_tests
;;
-j | --jvm-container ) set_test_environment
run_jvm_container_tests
;;
-c | --cpp-container ) set_test_environment
run_cpp_container_tests
;;
-rc | --r-container ) set_test_environment
run_r_container_tests
;;
-r | --rpc-container ) set_test_environment
run_rpc_container_tests
;;
-i | --integration_tests ) set_test_environment
run_integration_tests
;;
-h | --help ) usage
;;
* ) usage
esac
3 changes: 2 additions & 1 deletion clipper_admin/MANIFEST.in
@@ -1 +1,2 @@
#include README.rst
include README.rst LICENSE.txt clipper_admin/VERSION.txt
recursive-include tests *.yaml