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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kasra Jamshidi
slapos
Commits
b4979a9a
Commit
b4979a9a
authored
Aug 13, 2013
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
KVM: Allow to fully customize port when using nat
parent
ba9edd4c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
44 additions
and
117 deletions
+44
-117
slapos/recipe/kvm/__init__.py
slapos/recipe/kvm/__init__.py
+6
-2
slapos/recipe/kvm/template/kvm_run.in
slapos/recipe/kvm/template/kvm_run.in
+6
-1
software/openstack/instance-compute.cfg
software/openstack/instance-compute.cfg
+4
-21
software/openstack/instance-main.cfg
software/openstack/instance-main.cfg
+6
-91
software/openstack/software.cfg
software/openstack/software.cfg
+22
-2
No files found.
slapos/recipe/kvm/__init__.py
View file @
b4979a9a
...
...
@@ -47,8 +47,12 @@ class Recipe(GenericBaseRecipe):
if
not
self
.
isTrueValue
(
self
.
options
.
get
(
'use-tap'
)):
# XXX This could be done using Jinja.
for
port
in
self
.
options
[
'nat-rules'
].
split
():
tunnel_port
=
int
(
port
)
+
10000
for
item
in
self
.
options
[
'nat-rules'
].
split
():
ports
=
item
.
split
(
':'
)
if
len
(
ports
)
==
1
:
tunnel_port
=
int
(
ports
[
0
])
+
10000
else
:
tunnel_port
=
int
(
ports
[
1
])
tunnel_path
=
self
.
createExecutable
(
'%s-%s'
%
(
self
.
options
[
'6tunnel-wrapper-path'
],
tunnel_port
),
self
.
substituteTemplate
(
...
...
slapos/recipe/kvm/template/kvm_run.in
View file @
b4979a9a
...
...
@@ -86,7 +86,12 @@ if not os.path.exists(disk_path):
if use_tap == 'True':
qemu_network_parameter = 'tap,ifname=%%s,script=no,downscript=no' %% tap_interface
else:
qemu_network_parameter = 'user,' + ','.join('hostfwd=tcp:%%s:%%s-:%%s' %% (listen_ip, int(port) + 10000, port) for port in nat_rules.split())
qemu_network_parameter = 'user'
for item in nat_rules.split():
ports = item.split(':')
if len(ports) == 1:
ports.append(int(ports[0]) + 10000)
qemu_network_parameter += ',hostfwd=tcp:%%s:%%s-:%%s' %% (listen_ip, ports[1], ports[0])
kvm_argument_list = [qemu_path,
'-enable-kvm', '-net', 'nic,macaddr=%%s' %% mac_address,
...
...
software/openstack/instance-compute.cfg
View file @
b4979a9a
...
...
@@ -85,8 +85,9 @@ mac-address = $${create-mac:mac-address}
runner-path = $${directory:services}/kvm
controller-path = $${directory:scripts}/kvm_controller
ssh-port = 22222
use-tap = False
nat-rules = 22
80
443
nat-rules = 22
:$${:ssh-port} 80:8080 443:4
443
6tunnel-wrapper-path = $${directory:services}/6tunnel
virtual-hard-drive-url = $${slap-parameter:virtual-hard-drive-url}
...
...
@@ -159,29 +160,11 @@ shell-path = ${dash:location}/bin/dash
6tunnel-path = ${6tunnel:location}/bin/6tunnel
[tunnel-ipv6-ssh]
ipv6-port =
10022
ipv4-port =
10022
ipv6-port =
$${kvm-instance:ssh-port}
ipv4-port =
$${kvm-instance:ssh-port}
ipv6 = $${slap-network-information:global-ipv6}
ipv4 = $${slap-network-information:local-ipv4}
#[tunnel-ipv6-ssh]
#<= tunnel-ipv6-base
#ipv6-port = 22222
#ipv4-port = 10022
#runner-path = $${directory:services}/6tunnel-ssh
#[tunnel-ipv6-http]
#<= tunnel-ipv6-base
#ipv6-port = 80
#ipv4-port = 10080
#runner-path = $${directory:services}/6tunnel-http
#[tunnel-ipv6-https]
#<= tunnel-ipv6-base
#ipv6-port = 443
#ipv4-port = 10443
#runner-path = $${directory:services}/6tunnel-https
[tunnel-ipv6-keystone]
<= tunnel-ipv4-to6
ipv6-port = 5000
...
...
software/openstack/instance-main.cfg
View file @
b4979a9a
...
...
@@ -7,19 +7,6 @@
parts =
certificate-authority
kvm-instance
tunnel-ipv6-ssh
tunnel-ipv6-http
tunnel-ipv6-https
tunnel-ipv6-keystone
tunnel-ipv6-keystone-admin
tunnel-ipv6-keystone-compute
tunnel-ipv6-novnc
tunnel-ipv6-glance
tunnel-ipv6-s3api
tunnel-ipv6-spice
tunnel-ipv6-novadb
tunnel-ipv6-rabbit
tunnel-ipv6-ec2
websockify-sighandler
kvm-promise
novnc-promise
...
...
@@ -86,8 +73,9 @@ mac-address = $${create-mac:mac-address}
runner-path = $${directory:services}/kvm
controller-path = $${directory:scripts}/kvm_controller
ssh-port = 22222
use-tap = False
nat-rules = 22
, 80, 443, 5000, 6080, 6082, 3333, 9292, 3306,
35357
nat-rules = 22
:$${:ssh-port}, 80:8080, 443:4443, 5000:5000, 6080:6080, 6082:6082, 3333:3333, 9292:9292, 3306:3306, 35357:
35357
6tunnel-wrapper-path = $${directory:services}/6tunnel
virtual-hard-drive-url = $${slap-parameter:virtual-hard-drive-url}
...
...
@@ -112,83 +100,10 @@ shell-path = ${dash:location}/bin/dash
6tunnel-path = ${6tunnel:location}/bin/6tunnel
[tunnel-ipv6-ssh]
<= tunnel-ipv6-base
ipv6-port = 22222
ipv4-port = 10022
runner-path = $${directory:services}/6tunnel-ssh
[tunnel-ipv6-http]
<= tunnel-ipv6-base
ipv6-port = 8080
ipv4-port = 10080
runner-path = $${directory:services}/6tunnel-http
[tunnel-ipv6-https]
<= tunnel-ipv6-base
ipv6-port = 4443
ipv4-port = 10443
runner-path = $${directory:services}/6tunnel-https
[tunnel-ipv6-keystone]
<= tunnel-ipv6-base
ipv6-port = 5000
ipv4-port = 15000
runner-path = $${directory:services}/6tunnel-keystone
[tunnel-ipv6-keystone-admin]
<= tunnel-ipv6-base
ipv6-port = 35357
ipv4-port = 45357
runner-path = $${directory:services}/6tunnel-keystone-admin
[tunnel-ipv6-keystone-compute]
<= tunnel-ipv6-base
ipv6-port = 8774
ipv4-port = 18774
runner-path = $${directory:services}/6tunnel-keystone-compute
[tunnel-ipv6-novnc]
<= tunnel-ipv6-base
ipv6-port = 6080
ipv4-port = 16080
runner-path = $${directory:services}/6tunnel-novnc
[tunnel-ipv6-glance]
<= tunnel-ipv6-base
ipv6-port = 9292
ipv4-port = 19292
runner-path = $${directory:services}/6tunnel-glance
[tunnel-ipv6-rabbit]
<= tunnel-ipv6-base
ipv6-port = 5672
ipv4-port = 15672
runner-path = $${directory:services}/6tunnel-rabbit
[tunnel-ipv6-spice]
<= tunnel-ipv6-base
ipv6-port = 6082
ipv4-port = 16082
runner-path = $${directory:services}/6tunnel-spice
[tunnel-ipv6-ec2]
<= tunnel-ipv6-base
ipv6-port = 8773
ipv4-port = 18773
runner-path = $${directory:services}/6tunnel-ec2
#I don't know if this is really usefull!!
[tunnel-ipv6-s3api]
<= tunnel-ipv6-base
ipv6-port = 3333
ipv4-port = 13333
runner-path = $${directory:services}/6tunnel-s3api
[tunnel-ipv6-novadb]
<= tunnel-ipv6-base
ipv6-port = 3306
ipv4-port = 13306
runner-path = $${directory:services}/6tunnel-novadb
ipv6-port = $${kvm-instance:ssh-port}
ipv4-port = $${kvm-instance:ssh-port}
ipv6 = $${slap-network-information:global-ipv6}
ipv4 = $${slap-network-information:local-ipv4}
[novnc-instance]
recipe = slapos.cookbook:novnc
...
...
software/openstack/software.cfg
View file @
b4979a9a
...
...
@@ -11,10 +11,17 @@ extends =
../../component/noVNC/buildout.cfg
../../component/openssl/buildout.cfg
../../stack/slapos.cfg
../../component/git/buildout.cfg
parts =
template
eggs
slapos.cookbook-repository
check-recipe
slapos-cookbook
develop =
${:parts-directory}/slapos.cookbook-repository
[eggs]
recipe = z3c.recipe.scripts
...
...
@@ -28,14 +35,14 @@ eggs =
[template-openstack-main]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-main.cfg
md5sum =
527962a0384547e37998cf055196e073
md5sum =
1bf5ebf952369b4a99e82b51b5f08f71
output = ${buildout:directory}/template-openstack-main.cfg
mode = 0644
[template-openstack-compute]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-compute.cfg
md5sum = 4
aa88cbefcb9f9bd175f31970e8f8c47
md5sum = 4
fe2871f561b96cc458fe3f42eb9b442
output = ${buildout:directory}/template-openstack-compute.cfg
mode = 0644
...
...
@@ -62,6 +69,19 @@ md5sum = 73e5a796b8d27e20167f36732a1c9fad
filename = ssh-configure.py.in
md5sum = bcbeabd3cd8f19d71ec9209d9edfbbf8
[slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git
branch = openstack
git-executable = ${git:location}/bin/git
[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command =
grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link;
[networkcache]
# signature certificates of the following uploaders.
# Romain Courteaud
...
...
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