- Change SSL to only be enabled via an environment variable. Nginx will be terminating SSL for the ER.
- Add the missing dependencies to the requirements.txt - Change the builder ports to non-standard locations - Add the /b1/socket and /b1/controller endpoints in nginx, to map to the build manager - Have the build manager start automatically.
This commit is contained in:
parent
04fc6d82a5
commit
9d675b51ed
9 changed files with 45 additions and 6 deletions
|
@ -48,6 +48,7 @@ ADD conf/init/nginx /etc/service/nginx
|
||||||
ADD conf/init/diffsworker /etc/service/diffsworker
|
ADD conf/init/diffsworker /etc/service/diffsworker
|
||||||
ADD conf/init/notificationworker /etc/service/notificationworker
|
ADD conf/init/notificationworker /etc/service/notificationworker
|
||||||
ADD conf/init/buildlogsarchiver /etc/service/buildlogsarchiver
|
ADD conf/init/buildlogsarchiver /etc/service/buildlogsarchiver
|
||||||
|
ADD conf/init/buildmanager /etc/service/buildmanager
|
||||||
|
|
||||||
# Download any external libs.
|
# Download any external libs.
|
||||||
RUN mkdir static/fonts static/ldn
|
RUN mkdir static/fonts static/ldn
|
||||||
|
|
|
@ -26,10 +26,11 @@ def run_build_manager():
|
||||||
|
|
||||||
LOGGER.debug('Starting build manager with lifecycle "%s"', build_manager_config[0])
|
LOGGER.debug('Starting build manager with lifecycle "%s"', build_manager_config[0])
|
||||||
ssl_context = None
|
ssl_context = None
|
||||||
if os.path.exists('conf/stack/ssl.cert'):
|
if os.environ.get('SSL_CONFIG'):
|
||||||
LOGGER.debug('Loading SSL cert and key')
|
LOGGER.debug('Loading SSL cert and key')
|
||||||
ssl_context = SSLContext()
|
ssl_context = SSLContext()
|
||||||
ssl_context.load_cert_chain('conf/stack/ssl.cert', 'conf/stack/ssl.key')
|
ssl_context.load_cert_chain(os.environ.get('SSL_CONFIG') + '/ssl.cert',
|
||||||
|
os.environ.get('SSL_CONFIG') + '/ssl.key')
|
||||||
|
|
||||||
server = BuilderServer(app.config['SERVER_HOSTNAME'], dockerfile_build_queue, build_logs,
|
server = BuilderServer(app.config['SERVER_HOSTNAME'], dockerfile_build_queue, build_logs,
|
||||||
user_files, manager_klass)
|
user_files, manager_klass)
|
||||||
|
|
|
@ -21,8 +21,8 @@ TIMEOUT_PERIOD_MINUTES = 20
|
||||||
JOB_TIMEOUT_SECONDS = 300
|
JOB_TIMEOUT_SECONDS = 300
|
||||||
MINIMUM_JOB_EXTENSION = timedelta(minutes=2)
|
MINIMUM_JOB_EXTENSION = timedelta(minutes=2)
|
||||||
|
|
||||||
WEBSOCKET_PORT = 8080
|
WEBSOCKET_PORT = 8787
|
||||||
CONTROLLER_PORT = 8181
|
CONTROLLER_PORT = 8686
|
||||||
|
|
||||||
class BuildJobResult(object):
|
class BuildJobResult(object):
|
||||||
""" Build job result enum """
|
""" Build job result enum """
|
||||||
|
@ -75,7 +75,8 @@ class BuilderServer(object):
|
||||||
loop = trollius.get_event_loop()
|
loop = trollius.get_event_loop()
|
||||||
trollius.Task(self._initialize(loop, host, ssl))
|
trollius.Task(self._initialize(loop, host, ssl))
|
||||||
|
|
||||||
LOGGER.debug('Starting server on port 8080, with controller on port 8181')
|
LOGGER.debug('Starting server on port %s, with controller on port %s', WEBSOCKET_PORT,
|
||||||
|
CONTROLLER_PORT)
|
||||||
try:
|
try:
|
||||||
loop.run_forever()
|
loop.run_forever()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|
|
@ -23,3 +23,11 @@ upstream verbs_app_server {
|
||||||
upstream registry_app_server {
|
upstream registry_app_server {
|
||||||
server unix:/tmp/gunicorn_registry.sock fail_timeout=0;
|
server unix:/tmp/gunicorn_registry.sock fail_timeout=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
upstream build_manager_controller_server {
|
||||||
|
server localhost:8686;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream build_manager_websocket_server {
|
||||||
|
server localhost:8787;
|
||||||
|
}
|
2
conf/init/buildmanager/log/run
Executable file
2
conf/init/buildmanager/log/run
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
exec svlogd /var/log/buildmanager/
|
8
conf/init/buildmanager/run
Executable file
8
conf/init/buildmanager/run
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
echo 'Starting internal build manager'
|
||||||
|
|
||||||
|
cd /
|
||||||
|
venv/bin/python -m buildman.builder 2>&1
|
||||||
|
|
||||||
|
echo 'Internal build manager exited'
|
|
@ -24,7 +24,7 @@ location / {
|
||||||
location /realtime {
|
location /realtime {
|
||||||
proxy_pass http://web_app_server;
|
proxy_pass http://web_app_server;
|
||||||
proxy_buffering off;
|
proxy_buffering off;
|
||||||
proxy_request_buffering off;
|
proxy_request_buffering off;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /v1/ {
|
location /v1/ {
|
||||||
|
@ -59,4 +59,16 @@ location /v1/_ping {
|
||||||
add_header X-Docker-Registry-Version 0.6.0;
|
add_header X-Docker-Registry-Version 0.6.0;
|
||||||
add_header X-Docker-Registry-Standalone 0;
|
add_header X-Docker-Registry-Standalone 0;
|
||||||
return 200 'true';
|
return 200 'true';
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/b1/controller(/?)(.*) {
|
||||||
|
proxy_pass http://build_manager_controller_server/$2;
|
||||||
|
proxy_read_timeout 2000;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/b1/socket(/?)(.*) {
|
||||||
|
proxy_pass http://build_manager_websocket_server/$2;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
}
|
}
|
|
@ -1,3 +1,6 @@
|
||||||
|
autobahn
|
||||||
|
aiowsgi
|
||||||
|
trollius
|
||||||
peewee
|
peewee
|
||||||
flask
|
flask
|
||||||
py-bcrypt
|
py-bcrypt
|
||||||
|
|
|
@ -17,7 +17,9 @@ SQLAlchemy==0.9.7
|
||||||
Werkzeug==0.9.6
|
Werkzeug==0.9.6
|
||||||
git+https://github.com/DevTable/aniso8601-fake.git
|
git+https://github.com/DevTable/aniso8601-fake.git
|
||||||
git+https://github.com/DevTable/anunidecode.git
|
git+https://github.com/DevTable/anunidecode.git
|
||||||
|
aiowsgi==0.3
|
||||||
alembic==0.6.7
|
alembic==0.6.7
|
||||||
|
autobahn==0.9.3-3
|
||||||
backports.ssl-match-hostname==3.4.0.2
|
backports.ssl-match-hostname==3.4.0.2
|
||||||
beautifulsoup4==4.3.2
|
beautifulsoup4==4.3.2
|
||||||
blinker==1.3
|
blinker==1.3
|
||||||
|
@ -51,6 +53,7 @@ reportlab==2.7
|
||||||
requests==2.4.3
|
requests==2.4.3
|
||||||
six==1.8.0
|
six==1.8.0
|
||||||
stripe==1.19.0
|
stripe==1.19.0
|
||||||
|
trollius==1.0.3
|
||||||
tzlocal==1.1.1
|
tzlocal==1.1.1
|
||||||
websocket-client==0.18.0
|
websocket-client==0.18.0
|
||||||
wsgiref==0.1.2
|
wsgiref==0.1.2
|
||||||
|
|
Reference in a new issue