-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change-Id: I964b75c1316b7711cde905c6e98ea027a8557047 Signed-off-by: peusterm <[email protected]>
- Loading branch information
Rafael Schellenberg
authored and
peusterm
committed
Dec 17, 2019
1 parent
85408ed
commit aa8823c
Showing
34 changed files
with
482 additions
and
231 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# Copyright (c) 2017 SONATA-NFV and Paderborn University | ||
# ALL RIGHTS RESERVED. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# Neither the name of the SONATA-NFV, Paderborn University | ||
# nor the names of its contributors may be used to endorse or promote | ||
# products derived from this software without specific prior written | ||
# permission. | ||
# | ||
# This work has been performed in the framework of the SONATA project, | ||
# funded by the European Commission under Grant number 671517 through | ||
# the Horizon 2020 and 5G-PPP programmes. The authors would like to | ||
# acknowledge the contributions of their colleagues of the SONATA | ||
# partner consortium (www.sonata-nfv.eu). | ||
|
||
FROM ubuntu:xenial | ||
|
||
ENV SON_EMU_IN_DOCKER 1 | ||
ENV PIP_DEFAULT_TIMEOUT=100 | ||
|
||
# install required packages | ||
RUN apt-get clean | ||
RUN apt-get update \ | ||
&& apt-get install -y git \ | ||
net-tools \ | ||
aptitude \ | ||
apt-utils \ | ||
build-essential \ | ||
libevent-dev \ | ||
software-properties-common \ | ||
ansible \ | ||
curl \ | ||
iptables \ | ||
iputils-ping \ | ||
sudo \ | ||
vim \ | ||
nano \ | ||
wget | ||
|
||
RUN add-apt-repository ppa:jonathonf/python-3.6 | ||
RUN apt-get update | ||
RUN apt install -y python3.6 | ||
RUN apt install -y python3.6-dev | ||
RUN apt install -y python3.6-venv | ||
RUN wget https://bootstrap.pypa.io/get-pip.py | ||
RUN python3.6 get-pip.py | ||
RUN ln -s /usr/bin/python3.6 /usr/local/bin/python3 | ||
|
||
# install containernet (using its Ansible playbook) | ||
#RUN git clone https://github.com/containernet/containernet.git && \ | ||
# (cd containernet && git checkout 6fcee82e192c8c0e6447650d6f512842185529ee) | ||
RUN git clone https://github.com/RafaelSche/containernet.git | ||
WORKDIR /containernet/ansible | ||
RUN ansible-playbook -i "localhost," -c local --skip-tags "notindocker" install_py3.yml | ||
|
||
# install emulator (using its Ansible playbook) | ||
COPY . /son-emu | ||
WORKDIR /son-emu/ansible | ||
RUN ansible-playbook -i "localhost," -c local --skip-tags "notindocker" install_py3.yml | ||
WORKDIR /son-emu | ||
RUN python3 setup.py develop | ||
|
||
# Hotfix: https://github.com/pytest-dev/pytest/issues/4770 | ||
RUN pip3 install "more-itertools<=5.0.0" | ||
|
||
# Hotfix: Do not use latest tinyrpc lib, since it breaks Ryu | ||
RUN pip3 install "tinyrpc==1.0.3" | ||
|
||
RUN pip3 install wheel --upgrade | ||
|
||
# Important: This entrypoint is required to start the OVS service | ||
ENTRYPOINT ["/son-emu/utils/docker/entrypoint.sh"] | ||
CMD ["python3", "examples/default_single_dc_topology.py"] | ||
|
||
# open ports for emulator APIs | ||
# SONATA GK | ||
EXPOSE 5000 | ||
# EMU REST API | ||
EXPOSE 5001 | ||
# Monitoring (Prometheus) | ||
EXPOSE 8081 | ||
# Monitoring (GW) | ||
EXPOSE 9091 | ||
# OpenStack-fake | ||
EXPOSE 4000 | ||
# OpenStack-fake | ||
EXPOSE 10243 | ||
# OpenStack-fake | ||
EXPOSE 9005 | ||
# OpenStack-fake (Keystone) | ||
EXPOSE 6001 | ||
# OpenStack-fake | ||
EXPOSE 9775 | ||
# OpenStack-fake | ||
EXPOSE 10697 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
# Copyright (c) 2015 SONATA-NFV and Paderborn University | ||
# ALL RIGHTS RESERVED. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
# Neither the name of the SONATA-NFV, Paderborn University | ||
# nor the names of its contributors may be used to endorse or promote | ||
# products derived from this software without specific prior written | ||
# permission. | ||
# | ||
# This work has been performed in the framework of the SONATA project, | ||
# funded by the European Commission under Grant number 671517 through | ||
# the Horizon 2020 and 5G-PPP programmes. The authors would like to | ||
# acknowledge the contributions of their colleagues of the SONATA | ||
# partner consortium (www.sonata-nfv.eu). | ||
|
||
- hosts: localhost | ||
tasks: | ||
- name: updates apt | ||
apt: update_cache=yes | ||
|
||
- name: install python3-dev | ||
apt: pkg=python3-dev state=installed | ||
|
||
- name: install libffi-dev | ||
apt: pkg=libffi-dev state=installed | ||
|
||
- name: install libssl-dev | ||
apt: pkg=libssl-dev state=installed | ||
|
||
- name: install pip3 | ||
apt: pkg=python3-pip state=installed | ||
|
||
- name: install libevent-dev | ||
apt: pkg=libevent-dev state=installed | ||
|
||
- name: install libevent-dev | ||
apt: pkg=python-all-dev state=installed | ||
|
||
- name: find pip executable | ||
shell: "which pip3" | ||
register: pip_path | ||
|
||
- name: install setuptools | ||
pip: name=setuptools state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install tabulate | ||
pip: name=tabulate state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install argparse | ||
pip: name=argparse state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install networkx | ||
pip: name=networkx version=1.11 executable={{pip_path.stdout}} | ||
|
||
- name: install six | ||
pip: name=six state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install tinyrpc (fixed version to not break ryu) | ||
pip: name=tinyrpc version=1.0.3 executable={{pip_path.stdout}} | ||
|
||
- name: install ryu | ||
pip: name=ryu state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install oslo.config | ||
pip: name=oslo.config state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install pytest | ||
pip: name=pytest version=4.6.4 executable={{pip_path.stdout}} | ||
|
||
- name: install Flask | ||
pip: name=Flask executable={{pip_path.stdout}} | ||
|
||
- name: install flask_restful | ||
pip: name=flask_restful state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install requests | ||
pip: name=requests state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install docker | ||
pip: name=docker version=2.0.2 executable={{pip_path.stdout}} | ||
|
||
- name: install prometheus_client | ||
pip: name=prometheus_client state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install latest urllib3 (fix error urllib3.connection.match_hostname = match_hostname) | ||
pip: name=urllib3 version=1.21.1 executable={{pip_path.stdout}} | ||
|
||
- name: install iptc | ||
pip: name=python-iptables state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install ipaddress | ||
pip: name=ipaddress state=latest executable={{pip_path.stdout}} | ||
|
||
- name: install gevent | ||
pip: name=gevent executable={{pip_path.stdout}} | ||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.