Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
104
Merge Requests
104
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos
Commits
c4b66eb1
Commit
c4b66eb1
authored
Jun 28, 2021
by
Lisa Casino
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
html5as: switch to switch-softwaretype
parent
b10757c4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
71 additions
and
49 deletions
+71
-49
software/html5as-base/instance.cfg.in
software/html5as-base/instance.cfg.in
+11
-2
software/html5as-base/instance_html5as.cfg.in
software/html5as-base/instance_html5as.cfg.in
+1
-1
software/html5as-base/software.cfg
software/html5as-base/software.cfg
+2
-7
software/html5as/buildout.hash.cfg
software/html5as/buildout.hash.cfg
+3
-3
software/html5as/instance.cfg.in
software/html5as/instance.cfg.in
+24
-7
software/html5as/instance_html5as.cfg.in
software/html5as/instance_html5as.cfg.in
+9
-11
software/html5as/instance_replicate.cfg.in
software/html5as/instance_replicate.cfg.in
+21
-14
software/html5as/software.cfg
software/html5as/software.cfg
+0
-4
No files found.
software/html5as-base/instance.cfg.in
View file @
c4b66eb1
...
...
@@ -21,7 +21,16 @@ filename = instance-html5as.cfg
context =
section buildout buildout
section parameter_list profile-common
# partition_ipv6 is the random ipv6 allocated to the local partition
key partition_ipv6 slap-configuration:ipv6-random
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
default = ${instance-html5as:rendered}
recipe = slapos.cookbook:switch-softwaretype
RootSoftwareInstance = ${:default}
default = instance-html5as:rendered
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url}
software/html5as-base/instance_html5as.cfg.in
View file @
c4b66eb1
...
...
@@ -70,7 +70,7 @@ scgi_temp_path = ${:tmp}/scgi_temp_path
nb_workers = 2
# Network
ip =
${slap-network-information:global-ipv6
}
ip =
{{ partition_ipv6 }
}
port = 8081
access_url = http://[${:ip}]:${:port}
...
...
software/html5as-base/software.cfg
View file @
c4b66eb1
...
...
@@ -27,7 +27,7 @@ recipe = slapos.recipe.template:jinja2
rendered = ${buildout:directory}/template.cfg
template = ${:_profile_base_location_}/${:filename}
filename = instance.cfg.in
md5sum =
5a6ebc126bcad3cdff1b51fb51f82a35
md5sum =
9bff013ed8b610f7cc5452c1582eccf2
mode = 0644
context =
section buildout buildout
...
...
@@ -43,7 +43,7 @@ context =
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/${:_update_hash_filename_}
_update_hash_filename_ = instance_html5as.cfg.in
md5sum =
4a8c98cc5ca141f78f14fb9cec203cb8
md5sum =
9b7ed68551cac5967915979383238669
mode = 0644
[template_nginx_conf]
...
...
@@ -71,8 +71,3 @@ mode = 0644
recipe = zc.recipe.egg
eggs =
plone.recipe.command
# Pin versions of eggs used that are not already pinned by stack/slapos.cfg
[versions]
slapos.recipe.template = 4.4
plone.recipe.command = 1.1
software/html5as/buildout.hash.cfg
View file @
c4b66eb1
...
...
@@ -17,11 +17,11 @@
[template-cfg]
filename = instance.cfg.in
md5sum =
0a7aceffa5222e88125b72da42ddedd7
md5sum =
1b6d628b3a04497f525f860dd0003d84
[instance_html5as]
_update_hash_filename_ = instance_html5as.cfg.in
md5sum =
96fe1540aa458db434abc20353e034c8
md5sum =
2aee5fede6e804c1b9c1400f41f2f51e
[template_nginx_conf]
_update_hash_filename_ = templates/nginx_conf.in
...
...
@@ -45,4 +45,4 @@ md5sum = 1c0ee16966e1fcdb3fd11c09f12ee2b2
[template_instance_replicate]
_update_hash_filename_ = instance_replicate.cfg.in
md5sum =
38d1d352307f79c9c99bf2a80a5c76b8
md5sum =
aef3b91f4cbaf6f7a14986bc8d1aba65
software/html5as/instance.cfg.in
View file @
c4b66eb1
...
...
@@ -13,7 +13,7 @@ tar_location = {{ tar_location }}
curl_location = {{ curl_location }}
template_nginx_conf = {{ template_nginx_conf_target }}
template_mime_types = {{ template_mime_types_target }}
template_launcher = {{ template_launcher_target }}
template_launcher = {{ template_launcher_target }}
template_index_html = {{ template_index_html_target }}
template_graceful = {{ template_graceful_target }}
template_monitor = {{ template_monitor }}
...
...
@@ -26,24 +26,41 @@ filename = instance-html5as.cfg
context =
section buildout buildout
section parameter_list profile-common
# partition_ipv6 is the random ipv6 allocated to the local partition
key partition_ipv6 slap-configuration:ipv6-random
key slapparameter_dict slap-configuration:configuration
jsonkey default_parameter_dict :default-parameters
default-parameters =
{
"title": "",
"download_url": "",
"port": 8081
}
[instance-replicate]
recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
template = {{ template_instance_replicate }}
rendered = ${buildout:directory}/${:filename}
filename = instance-replicate-html5as.cfg
context =
section buildout buildout
section parameter_list profile-common
key slapparameter_dict slap-parameters:configuration
key slapparameter_dict slap-configuration:configuration
jsonkey default_parameter_dict :default-parameters
default-parameters =
{
"download_url": "",
"replicate-quantity": 1
}
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
default = ${instance-html5as:rendered}
replicate = ${instance-replicate:rendered}
recipe = slapos.cookbook:switch-softwaretype
RootSoftwareInstance = ${:default}
default = instance-html5as:rendered
replicate = instance-replicate:rendered
# Section needed to be added manually here to retrieve parameters
[slap-parameters]
[slap-configuration]
recipe = slapos.cookbook:slapconfiguration
computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id}
...
...
software/html5as/instance_html5as.cfg.in
View file @
c4b66eb1
...
...
@@ -3,6 +3,8 @@
# Deploy html5as instance
#
#############################
{% set parameter_dict = dict(default_parameter_dict, **slapparameter_dict) %}
[buildout]
parts =
nginx_conf
...
...
@@ -76,8 +78,8 @@ scgi_temp_path = ${:tmp}/scgi_temp_path
nb_workers = 2
# Network
ip =
${slap-network-information:global-ipv6
}
port =
${slap-parameter:port
}
ip =
{{ partition_ipv6 }
}
port =
{{ parameter_dict['port'] }
}
access_url = http://[${:ip}]:${:port}
# Paths
...
...
@@ -138,7 +140,7 @@ stop-on-error = true
# If the parameter is not provided it fallback to the default template
command =
rm -rf ${html5as:docroot}/*;
URL
="${slap-parameter:download_url}";
URL
= {{ parameter_dict['download_url'] }};
if [ -n "$URL" ];
then
${html5as:curl-binary} -Lks $URL | ${html5as:tar-binary} xzv -C ${html5as:docroot} --strip-components 1;
...
...
@@ -150,8 +152,9 @@ command =
recipe = slapos.recipe.template:jinja2
template = {{ parameter_list['template_index_html'] }}
rendered = ${directory:srv}/index.html
title = {{ parameter_dict['title'] }}
context =
key title
slap-parameter
:title
key title :title
### Nginx Graceful
[nginx-graceful]
...
...
@@ -177,7 +180,7 @@ monitor-httpd-port = 8197
# Monitor Stack also provides logrotate stack. We only need to extend
# the logrotate-entry-base defined in instance-logrotate-base.cfg.in .
# More parameters can be added following the logrotate-entry-base section
# More parameters can be added following the logrotate-entry-base section
[logrotate-entry-nginx]
<= logrotate-entry-base
name = nginx
...
...
@@ -191,7 +194,7 @@ recipe = slapos.cookbook:publish
# be deployed. The parameters needed for accessing monitoring will be published
<= monitor-publish
server_url = ${html5as:access_url}
title = Title
${slap-parameter:title
}!
title = Title
{{ parameter_dict['title'] }
}!
# Add dependency to the promise so that frontend sections are processed
# and there is no need to declare the new part in buildout:parts
server-cdn-url = ${html5as-frontend-promise:url}
...
...
@@ -220,8 +223,3 @@ name = html5as-http-frontend.py
url = ${html5as-frontend:connection-secure_access}
config-url = ${:url}
config-check-secure = 1
[slap-parameter]
title =
download_url =
port = 8081
software/html5as/instance_replicate.cfg.in
View file @
c4b66eb1
{% set replicate_quantity = slapparameter_dict.pop('replicate-quantity', '1') | int %}
{%- set parameter_dict = dict(default_parameter_dict, **slapparameter_dict) %}
{%- set replicate_quantity = int(parameter_dict['replicate-quantity']) %}
# Set default title and port for each replicate based on requested quantity
{%- for i in range(1, replicate_quantity + 1) %}
{%- do parameter_dict.setdefault("title-%d" % i, "") %}
{%- do parameter_dict.setdefault("port-%d" % i, 8081 + i) %}
{%- endfor %}
# Standard buildout section
[buildout]
parts =
publish-connection-information
...
...
@@ -7,6 +15,11 @@ eggs-directory = {{ buildout['eggs-directory'] }}
develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
offline = true
################################
# Sections to Request instances
################################
# Macro section sharing request parameters
[instance-request-base]
<= slap-connection
recipe = slapos.cookbook:request
...
...
@@ -17,29 +30,23 @@ software-type = default
# What parameter are neede to be retrieved
return = server_url server-cdn-url monitor-setup-url
# Provided parameters
config-title = ${slap-parameter:title}
config-download_url = ${slap-parameter:download_url}
config-download_url = {{ parameter_dict['download_url'] }}
# Create request section in a loop.
{% for i in range(1, replicate_quantity + 1) %}
# Request a normal html5as instance
[instance-{{ i }}]
<= instance-request-base
# Name of the instance
name = instance-html5as-{{ i }}
config-port =
${slap-parameter:port-{{ i }
}}
config-title =
${slap-parameter:title-{{ i }
}}
{% if "sla-%s-computer-guid" % i in
slap
parameter_dict -%}
sla-computer_guid = {{
slap
parameter_dict["sla-%s-computer-guid" % i] }}
config-port =
{{ parameter_dict["port-%s" % i]
}}
config-title =
{{ parameter_dict["title-%s" % i]
}}
{% if "sla-%s-computer-guid" % i in parameter_dict -%}
sla-computer_guid = {{ parameter_dict["sla-%s-computer-guid" % i] }}
{% endif -%}
{% endfor %}
[slap-parameter]
download_url =
{% for i in range(1, replicate_quantity + 1) %}
title-{{ i }} =
port-{{ i }} = 808{{ i }}
{% endfor %}
# Publish information to connect to the two instances
[publish-connection-information]
recipe = slapos.cookbook:publish
{% for i in range(1, replicate_quantity + 1) %}
...
...
software/html5as/software.cfg
View file @
c4b66eb1
...
...
@@ -79,7 +79,3 @@ mode = 0644
[template_instance_replicate]
<= download-base
# Pin versions of eggs used that are not already pinned by stack/slapos.cfg
[versions]
slapos.recipe.template = 4.4
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