aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--moonv4/README.md154
-rw-r--r--moonv4/bin/build_all.sh2
-rw-r--r--moonv4/development.md129
-rw-r--r--moonv4/moon_orchestrator/moon_orchestrator/dockers.py1
-rw-r--r--moonv4/moon_orchestrator/moon_orchestrator/server.py4
-rw-r--r--moonv4/templates/moon_keystone/Dockerfile (renamed from moonv4/templates/docker/keystone/Dockerfile)0
-rw-r--r--moonv4/templates/moon_keystone/README.md (renamed from moonv4/templates/docker/keystone/README.md)11
-rw-r--r--moonv4/templates/moon_keystone/run.sh (renamed from moonv4/templates/docker/keystone/run.sh)0
8 files changed, 172 insertions, 129 deletions
diff --git a/moonv4/README.md b/moonv4/README.md
index e47f763c..ba334a7d 100644
--- a/moonv4/README.md
+++ b/moonv4/README.md
@@ -30,67 +30,59 @@ sudo gpasswd -a ${USER} docker
sudo service docker restart
```
-### Get the code
+## Launch MySql, RabbitMQ, Keystone containers
+TODO: put all the containers to `dockerhub`
+### moon_mysql:v4.1
+
+### moon_rabbitmq:v4.1
+### moon_keystone:v4.1
```bash
-git clone https://opnfv.org/moon
-cd moon/moonv4
-export MOON_HOME=$(pwd)
-sudo ln -s $(pwd)/conf /etc/moon
+docker container run -dti --net moon --hostname keystone --name keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 asteroide/keystone_mitaka:latest
```
-## Create an OpenStack environment
-see the templates/docker/keystone/README.md
-Or execute directly `bin/start.sh`
+## Install Orchestrator
+### Get the code
-## Launch all other containers of Moon
-### Build python packages for all components
-TODO: containerize moon_orchestrator
```bash
-cd ${MOON_HOME}/moon_orchestrator
-sudo pip3 install pip --upgrade
-cd ${MOON_HOME}/bin
-source build_all.sh
+git clone https://git.opnfv.org/moon
+cd moon/moonv4
+export MOON_HOME=$(pwd)
+sudo ln -s $(pwd)/conf /etc/moon
```
-## Moon_Orchestrator
### Start Orchestrator
To start the Moon platform, you have to run the Orchestrator.
+TODO: put all Python packages to PIP
+
```bash
cd ${MOON_HOME}/moon_orchestrator
-sudo apt-get install python3-venv (or apt-get install -y python3 python-virtualenv on Ubuntu 14.04)
-pyvenv tests/venv (or virtualenv tests/venv on Ubuntu 14.04)
+sudo apt install python3-venv
+pyvenv tests/venv
. tests/venv/bin/activate
-sudo pip3 install -r requirements.txt --upgrade
-sudo pip3 install dist/moon_db-0.1.0.tar.gz --upgrade
-sudo pip3 install dist/moon_utilities-0.1.0.tar.gz --upgrade
-sudo pip3 install . --upgrade
-# Check the proxy settings and edit dist_dir variable in $(MOON_HOME)/moon_orchestrator/etc/moon.conf
-# Adapt the path used in the cd command in $(MOON_HOME)/bin/start.sh
-source ../bin/start.sh
+pip3 install -r requirements.txt --upgrade
+pip3 install dist/moon_db-0.1.0.tar.gz --upgrade
+pip3 install dist/moon_utilities-0.1.0.tar.gz --upgrade
+pip3 install . --upgrade
+moon_db_manager upgrade
```
-### Tests
-```bash
-sudo pip3 install pytest
-cd ${MOON_HOME}/moon_interface/tests/apitests
-pytest
-```
+### `/etc/moon/moon.conf`
+- edit `dist_dir` variable
+- check each `container` variable
-## Configure DB
-### Relaunch Keystone docker
-If error of `get_keystone_projects()`, then relaunch the Keystone docker, and wait 40 seconds!!!
+Launch `Moon Orchestrator`
```bash
-docker rm -f keystone
-docker run -dti --net moon --name keystone --hostname=keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 keystone:mitaka
+moon_orchestrator
```
-### Add default data in DB
-Pre-fill the DB with a RBAC policy
+### Tests
+In the Python venv
```bash
+pip3 install pytest
cd ${MOON_HOME}/moon_interface/tests/apitests
-python3 populate_default_values.py scenario/ rbac.py
+pytest
```
## Log
@@ -102,87 +94,3 @@ docker logs keystone
docker logs moon_router
docker logs moon_interface
```
-
-### Get some statistics
-```bash
-docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.PIDs}}"
-```
-
-### Get the API in PDF
-```bash
-cd ${MOON_HOME}/moon_interface/tools
-sudo pip3 install requests
-sudo apt-get install pandoc
-/usr/bin/python3 api2rst.py
-sudo apt-get install texlive-latex-extra
-pandoc api.rst -o api.pdf
-evince api.pdf
-```
-
-
-## How to hack the Moon platform
-### Force the build of components
-
-If you want to rebuild one or more component, you have to modify the configuration file `moon.conf`.
-
-For example, if you want to rebuild the moon_interface, got to the `[interface]` section and delete the
-value of the container key like this:
-
-```
-[interface]
-host=172.18.0.11
-port=38001
-# Name of the container to download (if empty build from scratch)
-# example: container=moon/moon_interface:latest
-container=
-```
-
-You can configure the interface, the router and both the security_function and security_policy.
-You can also force the version of the component like this: `container=moon/moon_interface:4.0.0`
-
-### Update the moon_interface
-
-Go to the directory `${MOON_HOME}/moon_interface` and update the code accordingly to your needs,
-then update the python package.
-
-```bash
-cd ${MOON_HOME}/moon_interface
-python setup.py sdist
-cp dist/moon_interface_* ../moon_orchestrator/dist
-# kill moon_orchestrator if needed and restart it
-```
-
-### Update the moon_secrouter
-
-Go to the directory `${MOON_HOME}/moon_secrouter` and update the code accordingly to your needs,
-then update the python package.
-
-```bash
-cd ${MOON_HOME}/moon_secrouter
-python setup.py sdist
-cp dist/moon_secrouter* ../moon_orchestrator/dist
-# kill moon_orchestrator if needed and restart it
-```
-
-## Problems that may arise
-
-If the moon_orchestrator doesn't want to start
-(with, for example, the following error: `docker.errors.APIError: 409 Client Error: Conflict`),
-check if the router and interface containers still exist and kill and delete them:
-
-```bash
-docker kill moon_interface
-docker kill moon_router
-docker rm moon_interface
-docker rm moon_router
-```
-
-If the moon_orchestrator complains that it cannot request the RabbitMQ server,
-check if the messenger server is up and running:
-
-```bash
-docker ps
-# you must see the messenger running here
-# if not, restart it
-docker run -dti --net=moon --hostname messenger --name messenger --link messenger:messenger -e RABBITMQ_DEFAULT_USER=moon -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_NODENAME=rabbit@messenger -e RABBITMQ_DEFAULT_VHOST=moon -p 5671:5671 -p 5672:5672 rabbitmq:3-management
-```
diff --git a/moonv4/bin/build_all.sh b/moonv4/bin/build_all.sh
index 62f3276b..b6879a57 100644
--- a/moonv4/bin/build_all.sh
+++ b/moonv4/bin/build_all.sh
@@ -32,3 +32,5 @@ echo Building Moon_Authz
cd $MOON_HOME/moon_authz
python3 setup.py sdist > /tmp/moon_authz.log
mv dist/*.tar.gz $MOON_HOME/moon_orchestrator/dist
+
+# TODO: build container images
diff --git a/moonv4/development.md b/moonv4/development.md
new file mode 100644
index 00000000..bc5f7e97
--- /dev/null
+++ b/moonv4/development.md
@@ -0,0 +1,129 @@
+# Build Python Packages and Containers
+
+## Python Package
+### Get the code
+
+```bash
+git clone https://git.opnfv.org/moon
+cd moon/moonv4
+export MOON_HOME=$(pwd)
+sudo ln -s $(pwd)/conf /etc/moon
+```
+
+### Build python packages for all components
+```bash
+sudo pip3 install pip --upgrade
+cd ${MOON_HOME}/bin
+source build_all.sh
+```
+
+### moon_db
+
+
+### utilities
+
+
+### moon_orchestrator
+
+
+## Container
+## keystone_mitaka
+see `templates/docker/keystone/README.md` to build the `keystone_mitaka` container
+
+
+### moon_router
+
+
+### moon_interface
+
+
+### moon_manager
+
+
+### moon_authz
+
+
+### moon_gui
+
+
+## How to hack the Moon platform
+### Force the build of components
+
+If you want to rebuild one or more component, you have to modify the configuration file `moon.conf`.
+
+For example, if you want to rebuild the moon_interface, got to the `[interface]` section and delete the
+value of the container key like this:
+
+```
+[interface]
+host=172.18.0.11
+port=38001
+# Name of the container to download (if empty build from scratch)
+# example: container=moon/moon_interface:latest
+container=
+```
+
+You can configure the interface, the router and both the security_function and security_policy.
+You can also force the version of the component like this: `container=moon/moon_interface:4.0.0`
+
+### Update the moon_interface
+
+Go to the directory `${MOON_HOME}/moon_interface` and update the code accordingly to your needs,
+then update the python package.
+
+```bash
+cd ${MOON_HOME}/moon_interface
+python setup.py sdist
+cp dist/moon_interface_* ../moon_orchestrator/dist
+# kill moon_orchestrator if needed and restart it
+```
+
+### Update the moon_secrouter
+
+Go to the directory `${MOON_HOME}/moon_secrouter` and update the code accordingly to your needs,
+then update the python package.
+
+```bash
+cd ${MOON_HOME}/moon_secrouter
+python setup.py sdist
+cp dist/moon_secrouter* ../moon_orchestrator/dist
+# kill moon_orchestrator if needed and restart it
+```
+
+## Problems that may arise
+
+If the moon_orchestrator doesn't want to start
+(with, for example, the following error: `docker.errors.APIError: 409 Client Error: Conflict`),
+check if the router and interface containers still exist and kill and delete them:
+
+```bash
+docker kill moon_interface
+docker kill moon_router
+docker rm moon_interface
+docker rm moon_router
+```
+
+If the moon_orchestrator complains that it cannot request the RabbitMQ server,
+check if the messenger server is up and running:
+
+```bash
+docker ps
+# you must see the messenger running here
+# if not, restart it
+docker run -dti --net=moon --hostname messenger --name messenger --link messenger:messenger -e RABBITMQ_DEFAULT_USER=moon -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_NODENAME=rabbit@messenger -e RABBITMQ_DEFAULT_VHOST=moon -p 5671:5671 -p 5672:5672 rabbitmq:3-management
+```
+
+## Configure DB
+### Relaunch Keystone docker
+If error of `get_keystone_projects()`, then relaunch the Keystone docker, and wait 40 seconds!!!
+```bash
+docker rm -f keystone
+docker run -dti --net moon --name keystone --hostname=keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 keystone:mitaka
+```
+
+### Add default data in DB
+Pre-fill the DB with a RBAC policy
+```bash
+cd ${MOON_HOME}/moon_interface/tests/apitests
+python3 populate_default_values.py scenario/ rbac.py
+```
diff --git a/moonv4/moon_orchestrator/moon_orchestrator/dockers.py b/moonv4/moon_orchestrator/moon_orchestrator/dockers.py
index 0b53de96..3a754ea3 100644
--- a/moonv4/moon_orchestrator/moon_orchestrator/dockers.py
+++ b/moonv4/moon_orchestrator/moon_orchestrator/dockers.py
@@ -98,6 +98,7 @@ RUN pip3 install --upgrade .
shutil.copy(_file, os.path.join(self.tmp_dir, "dist"))
try:
+ # TODO: check the symbol link
shutil.copytree(os.path.dirname(self.conf_file), os.path.join(self.tmp_dir, "conf"))
except OSError as exc:
if exc.errno == errno.ENOTDIR:
diff --git a/moonv4/moon_orchestrator/moon_orchestrator/server.py b/moonv4/moon_orchestrator/moon_orchestrator/server.py
index c9629c61..c5a7d79b 100644
--- a/moonv4/moon_orchestrator/moon_orchestrator/server.py
+++ b/moonv4/moon_orchestrator/moon_orchestrator/server.py
@@ -123,7 +123,7 @@ def server():
network_config = create_docker_network()
- LOG.info("Creating Security Router")
+ LOG.info("Creating Router")
router = SecurityRouter(options.filename, docker=docker, network_config=network_config)
CONTAINERS[router.id] = router
@@ -131,7 +131,7 @@ def server():
manager = SecurityManager(options.filename, docker=docker, network_config=network_config)
CONTAINERS[manager.id] = manager
- LOG.info("Creating Security Interface")
+ LOG.info("Creating Interface")
interface = SecurityInterface(options.filename, docker=docker, network_config=network_config)
CONTAINERS[interface.id] = interface
diff --git a/moonv4/templates/docker/keystone/Dockerfile b/moonv4/templates/moon_keystone/Dockerfile
index 1ab24de9..1ab24de9 100644
--- a/moonv4/templates/docker/keystone/Dockerfile
+++ b/moonv4/templates/moon_keystone/Dockerfile
diff --git a/moonv4/templates/docker/keystone/README.md b/moonv4/templates/moon_keystone/README.md
index 34926b91..77c90e98 100644
--- a/moonv4/templates/docker/keystone/README.md
+++ b/moonv4/templates/moon_keystone/README.md
@@ -2,12 +2,12 @@
## build keystone image
-### without proxy:
+without proxy:
```bash
docker build -t keystone:mitaka .
```
-### with a proxy:
+with a proxy:
```bash
docker build --build-arg https_proxy=http://proxy:3128 --build-arg http_proxy=http://proxy:3128 -t keystone:mitaka .
```
@@ -27,17 +27,20 @@ docker network create -d bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 moon
```
### Start RabbitMQ
+TODO: use our own container
```bash
docker container run -dti --net=moon --hostname messenger --name messenger -e RABBITMQ_DEFAULT_USER=moon -e RABBITMQ_DEFAULT_PASS=p4sswOrd1 -e RABBITMQ_NODENAME=rabbit@messenger -e RABBITMQ_DEFAULT_VHOST=moon -e RABBITMQ_HIPE_COMPILE=1 -p 5671:5671 -p 5672:5672 -p 8080:15672 rabbitmq:3-management
```
### Start MySQL server
+TODO: user our own containter
```bash
docker container run -dti --net=moon --hostname db --name db -e MYSQL_ROOT_PASSWORD=p4sswOrd1 -e MYSQL_DATABASE=moon -e MYSQL_USER=moon -e MYSQL_PASSWORD=p4sswOrd1 -p 3306:3306 mysql:latest
```
## launch a Keystone container
+TODO: user our own containter
```bash
docker container run -dti --net moon --hostname keystone --name keystone -e DB_HOST=db -e DB_PASSWORD_ROOT=p4sswOrd1 -p 35357:35357 -p 5000:5000 keystone:mitaka
```
@@ -45,7 +48,7 @@ docker container run -dti --net moon --hostname keystone --name keystone -e DB
## check
### log
```bash
-docker logs keystone
+docker logs keystone -f
```
@@ -59,4 +62,4 @@ export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://localhost:5000/v3
export OS_DOMAIN_NAME=Default
openstack project list
-```
+``` \ No newline at end of file
diff --git a/moonv4/templates/docker/keystone/run.sh b/moonv4/templates/moon_keystone/run.sh
index b80dd3f1..b80dd3f1 100644
--- a/moonv4/templates/docker/keystone/run.sh
+++ b/moonv4/templates/moon_keystone/run.sh