Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
5
Merge Requests
5
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jérome Perrin
slapos
Commits
edfb66ca
Commit
edfb66ca
authored
Aug 12, 2014
by
Nicolas Wavrant
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'slaprunner-paas'
Conflicts: component/apache/buildout.cfg stack/monitor/buildout.cfg
parents
a19c90c0
284eec5a
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
210 additions
and
36 deletions
+210
-36
software/lamp-template/software.cfg
software/lamp-template/software.cfg
+3
-1
software/monitor/instance.cfg
software/monitor/instance.cfg
+26
-0
software/monitor/software.cfg
software/monitor/software.cfg
+116
-0
software/slaprunner/README.txt
software/slaprunner/README.txt
+2
-2
software/slaprunner/common.cfg
software/slaprunner/common.cfg
+9
-9
software/slaprunner/development.cfg
software/slaprunner/development.cfg
+1
-1
software/slaprunner/httpd_conf.in
software/slaprunner/httpd_conf.in
+6
-0
software/slaprunner/instance-resilient-test.cfg.jinja2
software/slaprunner/instance-resilient-test.cfg.jinja2
+1
-0
software/slaprunner/instance-resilient.cfg.jinja2
software/slaprunner/instance-resilient.cfg.jinja2
+12
-8
software/slaprunner/instance-runner-export.cfg.in
software/slaprunner/instance-runner-export.cfg.in
+2
-0
software/slaprunner/instance-runner.cfg
software/slaprunner/instance-runner.cfg
+20
-8
software/slaprunner/node-frontend.in
software/slaprunner/node-frontend.in
+0
-5
software/slaprunner/schema.json
software/slaprunner/schema.json
+5
-0
software/slaprunner/software.cfg
software/slaprunner/software.cfg
+1
-1
software/slaprunner/template/runner-export.sh.jinja2
software/slaprunner/template/runner-export.sh.jinja2
+2
-0
software/slaprunner/template/slapos.cfg.in
software/slaprunner/template/slapos.cfg.in
+2
-0
stack/monitor/buildout.cfg
stack/monitor/buildout.cfg
+1
-1
stack/monitor/monitor.cfg.in
stack/monitor/monitor.cfg.in
+1
-0
No files found.
software/lamp-template/software.cfg
View file @
edfb66ca
...
...
@@ -2,6 +2,7 @@
extends =
../../stack/lamp/buildout.cfg
../../stack/slapos.cfg
[application]
recipe = slapos.recipe.build:download-unpacked
...
...
@@ -19,4 +20,5 @@ mode = 0644
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[application-configuration]
location = Student shall put here relative path to application top level directory where configuration shall be created
#Student shall put here relative path to application top level directory where configuration shall be created
#location =
software/monitor/instance.cfg
0 → 100644
View file @
edfb66ca
[buildout]
parts =
publish-connection-informations
cron
certificate-authority
cron-entry-monitor
cron-entry-rss
deploy-index
deploy-settings-cgi
deploy-status-cgi
deploy-status-history-cgi
setup-static-files
certificate-authority
zero-parameters
public-symlink
cgi-httpd-wrapper
cgi-httpd-graceful-wrapper
monitor-promise
monitor-instance-log-access
extends = ${monitor-template:output}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
\ No newline at end of file
software/monitor/software.cfg
0 → 100644
View file @
edfb66ca
[buildout]
extends =
../../stack/monitor/buildout.cfg
../../stack/slapos.cfg
parts =
slapos-cookbook
template
eggs
[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/instance.cfg
md5sum = 02442c6727c8fe8247dc91c4b085bcc6
mode = 0644
[eggs]
recipe = z3c.recipe.scripts
eggs =
cns.recipe.symlink
slapos.cookbook
slapos.recipe.cmmi
hexagonit.recipe.download
plone.recipe.command
[versions]
hexagonit.recipe.download = 1.7nxd002
Jinja2 = 2.7.3
MarkupSafe = 0.23
PyRSS2Gen = 1.1
Werkzeug = 0.9.6
buildout-versions = 1.7
cffi = 0.8.6
cmd2 = 0.6.7
cns.recipe.symlink = 0.2.3
cryptography = 0.5.2
itsdangerous = 0.24
meld3 = 1.0.0
mr.developer = 1.30
plone.recipe.command = 1.1
pyOpenSSL = 0.14
pyparsing = 2.0.2
six = 1.7.3
slapos.cookbook = 0.87
slapos.recipe.cmmi = 0.2
slapos.recipe.template = 2.5
stevedore = 0.15
z3c.recipe.scripts = 1.0.1
# Required by:
# slapos.core==1.1.2
Flask = 0.10.1
# Required by:
# cliff==1.6.1
argparse = 1.2.1
# Required by:
# slapos.core==1.1.2
cliff = 1.6.1
# Required by:
# slapos.cookbook==0.87
inotifyx = 0.2.0-1
# Required by:
# slapos.cookbook==0.87
lock-file = 2.0
# Required by:
# slapos.cookbook==0.87
# slapos.core==1.1.2
# xml-marshaller==0.9.7
lxml = 3.3.5
# Required by:
# slapos.cookbook==0.87
netaddr = 0.7.12
# Required by:
# slapos.core==1.1.2
netifaces = 0.10.4
# Required by:
# slapos.core==1.1.2
psutil = 2.1.1
# Required by:
# cffi==0.8.6
pycparser = 2.10
# Required by:
# slapos.cookbook==0.87
pytz = 2014.4
# Required by:
# slapos.core==1.1.2
requests = 2.3.0
# Required by:
# slapos.cookbook==0.87
slapos.core = 1.1.2
# Required by:
# slapos.core==1.1.2
supervisor = 3.0
# Required by:
# slapos.cookbook==0.87
xml-marshaller = 0.9.7
# Required by:
# slapos.core==1.1.2
zope.interface = 4.1.1
software/slaprunner/README.txt
View file @
edfb66ca
...
...
@@ -144,7 +144,7 @@ As you can see in instance-runner-*.cfg, the buildout section extends a hard-cod
List of ports used by the webrunner:
------------------------------------
8602 : slapproxy, while running tests
8
080
: shellinabox
8
949
: shellinabox
9684 : apache (monitoring of slaprunner, git access)
22222 : dropbear
50000 : slapproxy
...
...
@@ -152,4 +152,4 @@ List of ports used by the webrunner:
Tips:
-----
You can use shellinabox in fullscreen, by accessing : https://[IPV6]:8
080
You can use shellinabox in fullscreen, by accessing : https://[IPV6]:8
949
software/slaprunner/common.cfg
View file @
edfb66ca
...
...
@@ -28,7 +28,7 @@ parts =
instance-runner-import
instance-runner-export
slapos-cookbook
slapos-cfg-template
template-slapos-cfg
# XXX: we have to manually add this for resilience
rdiff-backup
collective.recipe.template-egg
...
...
@@ -44,7 +44,7 @@ mode = 0644
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner.cfg
output = ${buildout:directory}/template-runner.cfg.in
md5sum =
1c084d9aa33202ccba58be750f0698a5
md5sum =
9878115a2969489b57e8563ef3d4d6d3
mode = 0644
[template-runner-import-script]
...
...
@@ -66,7 +66,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/runner-export.sh.jinja2
download-only = true
md5sum =
ea478351883e6e716c044771f69a09ac
md5sum =
246167ed081027618ef127a6fffd13ed
filename = runner-export.sh.jinja2
mode = 0644
...
...
@@ -74,13 +74,13 @@ mode = 0644
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner-export.cfg.in
output = ${buildout:directory}/instance-runner-export.cfg
md5sum =
cf43eb1d6e9eea545858a86ea790a1cb
md5sum =
6930a0d6c88896c43a8e60509ba6bd1c
mode = 0644
[template-resilient]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/instance-resilient.cfg.jinja2
md5sum =
ab564b9a9de3e44884adf072fc740d23
md5sum =
1f7332d0b0671929a2de87ef9ce998c8
filename = instance-resilient.cfg.jinja2
mode = 0644
...
...
@@ -88,7 +88,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/instance-resilient-test.cfg.jinja2
download-only = true
md5sum =
07241952e1dce8688b2da5c1a14c3e6a
md5sum =
abba49f5f397bfe6f6ea5e5dd185b1e9
filename = instance-resilient-test.cfg.jinja2
mode = 0644
...
...
@@ -104,7 +104,7 @@ mode = 0644
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/httpd_conf.in
download-only = true
md5sum =
47ba63d87a7fdc91568581226f0063f6
md5sum =
63782f8eaa94af729ec6bba80e062d8f
filename = httpd_conf.in
mode = 0644
...
...
@@ -116,10 +116,10 @@ filename = launcher.in
mode = 0644
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[
slapos-cfg-template
]
[
template-slapos-cfg
]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/${:filename}
md5sum =
788795524769f6d946526ac282508b69
md5sum =
847df63cf5a226ed338d7ca34b0220b5
location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = slapos.cfg.in
download-only = true
...
...
software/slaprunner/development.cfg
View file @
edfb66ca
...
...
@@ -21,7 +21,7 @@ parts =
instance-runner-import
instance-runner-export
slapos-cookbook
slapos-cfg-template
template-slapos-cfg
# XXX: we have to manually add this for resilience
rdiff-backup
collective.recipe.template-egg
...
...
software/slaprunner/httpd_conf.in
View file @
edfb66ca
...
...
@@ -46,8 +46,14 @@ Alias /public {{ parameters.runner_home }}/public
<Directory {{ parameters.runner_home }}/public>
Order Allow,Deny
Allow from all
AllowOverride All
Satisfy Any
Options Indexes FollowSymLinks
DirectoryIndex index.html
<Files .htaccess>
order allow,deny
deny from all
</Files>
</Directory>
...
...
software/slaprunner/instance-resilient-test.cfg.jinja2
View file @
edfb66ca
...
...
@@ -47,6 +47,7 @@ config = resiliency-backup-periodicity {{ cluster_parameter_dict.keys() | join('
config-{{ key }} = {{ dumps(value) }}
{% endfor -%}
config-resiliency-backup-periodicity = */6 * * * *
config-resilient-clone-number = 2
# XXX hardcoded
#config-frontend-domain = google.com
# XXX Hack to deploy Root Instance on the same computer as the type-test Instance
...
...
software/slaprunner/instance-resilient.cfg.jinja2
View file @
edfb66ca
...
...
@@ -5,6 +5,11 @@
# set to false (else it could be dangerous)
{% do slapparameter_dict.__setitem__('auto-deploy', slapparameter_dict.get('auto-deploy', 'true')) %}
{% do slapparameter_dict.__setitem__('auto-deploy-instance', slapparameter_dict.get('auto-deploy-instance', 'false')) %}
# let decide the number of clones we want. We can't have more than 2 clones
{% set number_of_instances = slapparameter_dict.get('resilient-clone-number', 1)|int %}
{% if number_of_instances > 2 %}
{% set number_of_instances = 2 %}
{% endif %}
{% import 'parts' as parts %}
{% import 'replicated' as replicated %}
...
...
@@ -16,10 +21,10 @@ offline = true
# += because we need to take up parts (like instance-custom, slapmonitor etc) from the profile we extended
parts +=
{{ parts.replicate("runner",
"3"
) }}
{{ parts.replicate("runner",
number_of_instances + 1
) }}
publish-connection-informations
{{ replicated.replicate("runner",
"3"
, "runner-export", "runner-import", slapparameter_dict=slapparameter_dict) }}
{{ replicated.replicate("runner",
number_of_instances + 1
, "runner-export", "runner-import", slapparameter_dict=slapparameter_dict) }}
# Bubble up the parameters
[request-runner]
...
...
@@ -41,14 +46,13 @@ public_url = ${request-runner:connection-public_url}
# Default parameters for distributed deployment
# I.e state "backup1 of maria should go there, ..."
# XXX-Cedric: Hardcoded number of backups. Should be dynamically generated.
runner1-computer-guid =
pbs-runner1-computer-guid =
runner2-computer-guid =
pbs-runner2-computer-guid =
runner3-computer-guid =
pbs-runner3-computer-guid =
{% for nb in range(1,number_of_instances+1) %}
runner{{nb}}-computer-guid =
pbs-runner{{nb}}-computer-guid =
{% endfor %}
# XXX-Cedric: Hardcoded parameters. Should be dynamically generated.
domain =
authorized-key =
instance-amount = 10
debug = false
resilient-clone-number = 1
software/slaprunner/instance-runner-export.cfg.in
View file @
edfb66ca
...
...
@@ -26,6 +26,7 @@ parts +=
cron-entry-backup
cron-entry-prepare-software
deploy-instance-parameters
minishell-cwd
## Monitoring part
###Parts to add for monitoring
cron
...
...
@@ -46,6 +47,7 @@ parts +=
monitor-instance-log-access
## Monitor for runner
monitor-current-log-access
monitor-check-resilient-feed-file
[exporter]
...
...
software/slaprunner/instance-runner.cfg
View file @
edfb66ca
...
...
@@ -23,6 +23,7 @@ parts =
cron-entry-prepare-software
deploy-instance-parameters
instance-software-type
minishell-cwd
{% if slapparameter_dict.get('custom-frontend-backend-url') %}
custom-frontend-promise
{% endif %}
...
...
@@ -180,16 +181,20 @@ auto_deploy = $${slap-parameter:auto-deploy}
auto_deploy_instance = $${slap-parameter:auto-deploy-instance}
autorun = $${slap-parameter:autorun}
knowledge0_file = $${buildout:directory}/$${public:filename}
minishell_cwd_file = $${directory:etc}/.minishell-cwd
minishell_history_file = $${directory:etc}/.minishell_history
[test-runner]
<= slaprunner
slapos.cfg = $${directory:etc}/slapos-test.cfg
working-directory = $${runnerdirectory:test}
project-directory = $${runnerdirectory:project-test}
software
-directory
= $${runnerdirectory:software-test}
instance
-directory
= $${runnerdirectory:instance-test}
software
_root
= $${runnerdirectory:software-test}
instance
_root
= $${runnerdirectory:instance-test}
proxy_port = 8602
etc_dir = $${directory:test}
autorun = False
auto_deploy = True
[runtestsuite]
recipe = slapos.cookbook:wrapper
...
...
@@ -313,7 +318,7 @@ var_dir = $${directory:var}
project_folder = $${directory:project}
runner_home = $${runnerdirectory:home}
git_http_backend = ${git:location}/libexec/git-core/git-http-backend
cgi_httpd_conf = $${
cgi-httpd-configuration-file:output
}
cgi_httpd_conf = $${
monitor-httpd-configuration-file:rendered
}
[httpd-conf]
recipe = slapos.recipe.template:jinja2
...
...
@@ -341,7 +346,8 @@ path_pid = $${directory:run}/gunicorn.pid
[gunicorn-launcher]
recipe = slapos.cookbook:wrapper
command-line = $${gunicorn:bin_gunicorn} slapos.runner:app -p $${gunicorn:path_pid} -b unix:$${gunicorn:socket} -e RUNNER_CONFIG=$${slaprunner:slapos.cfg} --preload
command-line = $${gunicorn:bin_gunicorn} slapos.runner:app -p $${gunicorn:path_pid} -b unix:$${gunicorn:socket} -e RUNNER_CONFIG=$${slaprunner:slapos.cfg} --error-logfile $${directory:log}/$${:error-log-file} --log-level error --preload
error-log-file = gunicorn-error.log
wrapper-path = $${gunicorn:bin_launcher}
environment = PATH=$${environ:PATH}:${git:location}/bin/
RUNNER_CONFIG=$${slaprunner:slapos.cfg}
...
...
@@ -415,7 +421,7 @@ name = Monitor Frontend
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
slave = true
config = url domain
config-url = https://[$${
cgi-httpd-configuration-file
:listening-ip}]:$${monitor-parameters:port}
config-url = https://[$${
monitor-httpd-configuration
:listening-ip}]:$${monitor-parameters:port}
config-domain = $${slap-parameter:frontend-domain}
return = site_url domain
...
...
@@ -492,7 +498,7 @@ port = $${slap-parameter:monitor-port}
[slapos-cfg]
recipe = slapos.recipe.template:jinja2
template = ${
slapos-cfg-template:location}/${slapos-cfg-template
:filename}
template = ${
template-slapos-cfg:location}/${template-slapos-cfg
:filename}
rendered = $${slaprunner:slapos.cfg}
mode = 700
context =
...
...
@@ -500,7 +506,7 @@ context =
[slapos-test-cfg]
recipe = slapos.recipe.template:jinja2
template = ${
slapos-cfg-template:location}/${slapos-cfg-template
:filename}
template = ${
template-slapos-cfg:location}/${template-slapos-cfg
:filename}
rendered = $${test-runner:slapos.cfg}
mode = 700
context =
...
...
@@ -509,7 +515,7 @@ context =
[shellinabox]
recipe = slapos.cookbook:shellinabox
ipv6 = $${slap-network-information:global-ipv6}
port = 8
080
port = 8
949
shell = $${shell:wrapper}
wrapper = $${directory:bin}/shellinaboxd
shellinabox-binary = ${shellinabox:location}/bin/shellinaboxd
...
...
@@ -598,6 +604,12 @@ recovery-code = $${recovery-code:passwd}
[zero-parameters]
[minishell-cwd]
recipe = plone.recipe.command
command = if [ ! -f $${slaprunner:minishell_cwd_file} ]; then echo $${runnerdirectory:home} > $${slaprunner:minishell_cwd_file}; fi
location = $${slaprunner:minishell_cwd_file}
stop-on-error = true
[monitor-current-log-access]
< = monitor-directory-access
source = $${directory:log}
software/slaprunner/node-frontend.in
deleted
100755 → 0
View file @
a19c90c0
#!{{ shell_path }}
# BEWARE: This file is operated by slapgrid
# BEWARE: It will be overwritten automatically
export NODE_PATH={{ node_env }}
exec {{ node_path }} {{ conf_path }} {{ ip }} {{ port }} {{ key }} {{ certificate }} {{ backend_ip }} {{ backend_port }}
\ No newline at end of file
software/slaprunner/schema.json
View file @
edfb66ca
...
...
@@ -79,5 +79,10 @@
"type"
:
"integer"
,
"default"
:
9684
}
"resilient-clone-number"
:
{
"description"
:
"is the number of clones to be deployed when a resilient runner is ordered. Its value can be 1 or 2"
,
"type"
:
"integer"
,
"default"
:
1
}
}
}
software/slaprunner/software.cfg
View file @
edfb66ca
...
...
@@ -213,7 +213,7 @@ slapos.recipe.build = 0.11.5
slapos.recipe.cmmi = 0.2
slapos.recipe.download = 1.0.dev-r4053
slapos.recipe.template = 2.4.2
slapos.toolbox = 0.39.
3
slapos.toolbox = 0.39.
4
smmap = 0.8.2
xml-marshaller = 0.9.7
z3c.recipe.scripts = 1.0.1
...
...
software/slaprunner/template/runner-export.sh.jinja2
View file @
edfb66ca
#!{{ shell_binary }}
LANG=en_US
export $LANG
umask 077
sync_element () {
path=$1
...
...
software/slaprunner/template/slapos.cfg.in
View file @
edfb66ca
...
...
@@ -31,6 +31,8 @@ auto_deploy = {{ slaprunner['auto_deploy'] }}
auto_deploy_instance = {{ slaprunner['auto_deploy_instance'] }}
autorun = {{ slaprunner['autorun'] }}
knowledge0_cfg = {{ slaprunner['knowledge0_file'] }}
minishell_cwd_file = {{ slaprunner['minishell_cwd_file'] }}
minishell_history_file = {{ slaprunner['minishell_history_file'] }}
[slapproxy]
host = {{ slaprunner['ipv4'] }}
...
...
stack/monitor/buildout.cfg
View file @
edfb66ca
...
...
@@ -41,7 +41,7 @@ recipe = slapos.recipe.template
url = ${:_profile_base_location_}/monitor.cfg.in
output = ${buildout:directory}/monitor.cfg
filename = monitor.cfg
md5sum =
b330a6fbac771ef5db3e66933f6df8d0
md5sum =
4d0c3b847c18a56068f04dd926487272
mode = 0644
[monitor-bin]
...
...
stack/monitor/monitor.cfg.in
View file @
edfb66ca
...
...
@@ -193,6 +193,7 @@ recipe = plone.recipe.command
command = if [ -d $${:source} ]; then ln -s $${:source} $${monitor-directory:private-directory}/instance-logs; fi
update-command = if [ -d $${:source} ]; then ln -s $${:source} $${monitor-directory:private-directory}/instance-logs; fi
source = $${monitor-directory:home}/.slapgrid/log/
location = $${:source}
[cadirectory]
recipe = slapos.cookbook:mkdirectory
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment