Merge lp:~springfield-team/charms/precise/nova-cloud-controller/trunk into lp:~openstack-charmers-archive/charms/precise/nova-cloud-controller/trunk

Proposed by Shiv Prasad Rao
Status: Rejected
Rejected by: James Page
Proposed branch: lp:~springfield-team/charms/precise/nova-cloud-controller/trunk
Merge into: lp:~openstack-charmers-archive/charms/precise/nova-cloud-controller/trunk
Diff against target: 673 lines (+490/-3) (has conflicts)
13 files modified
config.yaml (+41/-0)
hooks/charmhelpers/contrib/openstack/context.py (+25/-0)
hooks/charmhelpers/contrib/openstack/neutron.py (+31/-0)
hooks/charmhelpers/contrib/openstack/utils.py (+2/-2)
hooks/nova_cc_context.py (+6/-0)
hooks/nova_cc_hooks.py (+8/-1)
hooks/nova_cc_utils.py (+5/-0)
templates/havana/cisco_plugins.ini (+157/-0)
templates/havana/neutron.conf (+6/-0)
templates/havana/openrc (+15/-0)
templates/icehouse/cisco_plugins.ini (+179/-0)
templates/icehouse/neutron.conf (+6/-0)
templates/icehouse/nova.conf (+9/-0)
Text conflict in config.yaml
Text conflict in hooks/charmhelpers/contrib/openstack/neutron.py
To merge this branch: bzr merge lp:~springfield-team/charms/precise/nova-cloud-controller/trunk
Reviewer Review Type Date Requested Status
James Page Needs Fixing
Marco Ceppi Pending
Csaba TOTH Pending
Review via email: mp+218172@code.launchpad.net

This proposal supersedes a proposal from 2014-05-02.

Description of the change

This merge proposal is prepared to enable N1KV plugin to install with charm logic for nova-cloud-controller.
Similar to ovs and nvp, n1kv (Nexus 1000V) is another layer 2 virtual switch provided by Cisco Nexus 1000V engineering team, which is a host side VM switching fabric building block we call it VEM (Virtual Ethernet Switch). 1+ VEM work in tandem with a VSM (Virtual Switch Module) to form a virtual chassis in a data center.
Please also refer to the VEM/VSM charm and Cisco Nexus1000V related document for its detail.

config.yaml
- added n1kv as a possible value for quantum-plugin
- added n1kv-vsm-username, n1kv-vsm-password, n1kv-vsm-ip to communicate with its supervisor module with (VSM)

hooks/charmhelpers/contrib/openstack/context.py
- Added n1kv related dictionary for context look-up

hooks/charmhelpers/contrib/openstack/neutron.py
- Added n1kv related plugin logic data formation

hooks/nova_cc_hooks.py
- Added copy logic to copy Cisco n1kv template to /root

templates/havana/cisco_plugins.ini
- New file for Cisco Plugin related parameters

templates/havana/neutron.conf
- Added customized system parameters for N1KV plugin to run with

templates/havana/cisco_plugin.ini
- Adding support for PostgreSQL for cisco_plugin.ini

To post a comment you must log in.
Revision history for this message
Marco Ceppi (marcoceppi) wrote : Posted in a previous version of this proposal

Leaving for openstack-charmers, thanks!

review: Abstain
Revision history for this message
ChingWei Chang (cwchang) wrote : Posted in a previous version of this proposal

We have merged with latest Icehouse content which went to charm store first

Revision history for this message
Csaba TOTH (tsabi) wrote : Posted in a previous version of this proposal

On line 320 the mysql is hardcoded. As this charm should support PostgreSQL too i think this is wrongly coded.

review: Needs Fixing
Revision history for this message
Shiv Prasad Rao (shivrao) wrote :

Made change to add support for postgresql

Thanks for the review.

Revision history for this message
James Page (james-page) wrote :

OK _ so I'd like to review the entire springfield charm set from an overall implementation perspective as well but with regards this merge proposal specifically:

1) /root/openrc and associated config.yaml changes

I really don't like this; the nova-cloud-controller gets related to keystone, which give it a username and password so providing it with one external seems just plain wrong;

I *think* this is used by the vxlan-gateway charm to upload its image to glance - but I think we need to review this approach to getting images into glance; this may be better addressed using a helper installed by package (maybe in the vxgw package from the springfield PPA) that gets run from outside the charms, rather than trying todo this from within the charms themselves.

2) Scope of impact on nova-cloud-controller

I think that the change we really need here is the configuration files and support for the nv1k plugin, as for NVP/NSX.

3) charmhelpers first

the changes in hooks/charmhelpers/contrib/ need to be proposed against lp:charm-helpers before landing changes into nova-cloud-controller charm.

review: Needs Fixing
79. By Shiv Prasad Rao

Adding configurable option for n1kv_restrict_policy_profiles

80. By Shiv Prasad Rao

n1kv-config-flags parameter added to add key=value configs to cisco_plugins.ini

81. By Shiv Prasad Rao

Changes for supporting secuirty groups with N1KV

82. By Shiv Prasad Rao

creating seperate n1kv_user_config_flags context variable for n1kv

83. By Shiv Prasad Rao

security group api change for n1kv

84. By Shiv Prasad Rao

Security Groups support for N1kv

85. By Dulanjalie Ganegedara

adding charmhelper support to use --keyserver option for public PPA

Revision history for this message
Shiv Prasad Rao (shivrao) wrote :

Please ignore this merge request. I have submitted a new one here:
https://code.launchpad.net/~springfield-team/charms/trusty/nova-cloud-controller/next/+merge/235182

I can delete this if this causes confusion. (I have kept it for context)

Unmerged revisions

85. By Dulanjalie Ganegedara

adding charmhelper support to use --keyserver option for public PPA

84. By Shiv Prasad Rao

Security Groups support for N1kv

83. By Shiv Prasad Rao

security group api change for n1kv

82. By Shiv Prasad Rao

creating seperate n1kv_user_config_flags context variable for n1kv

81. By Shiv Prasad Rao

Changes for supporting secuirty groups with N1KV

80. By Shiv Prasad Rao

n1kv-config-flags parameter added to add key=value configs to cisco_plugins.ini

79. By Shiv Prasad Rao

Adding configurable option for n1kv_restrict_policy_profiles

78. By Shiv Prasad Rao

Adding support for PostgreSQL for cisco_plugin.ini

77. By Shiv Prasad Rao

Cisco N1KV changes

76. By Shiv Prasad Rao

[niedbalski] fixup unit tests for key management
[niedbalski] Force use of http for key imports

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'config.yaml'
--- config.yaml 2014-07-29 15:05:01 +0000
+++ config.yaml 2014-08-01 21:20:18 +0000
@@ -69,9 +69,14 @@
69 Quantum plugin to use for network management; supports69 Quantum plugin to use for network management; supports
70 .70 .
71 ovs - OpenvSwitch Plugin71 ovs - OpenvSwitch Plugin
72<<<<<<< TREE
72 nvp|nsx - Nicira Network Virtualization Platform/73 nvp|nsx - Nicira Network Virtualization Platform/
73 VMware NSX Network Virtualization Platform74 VMware NSX Network Virtualization Platform
74 (renamed for Icehouse)75 (renamed for Icehouse)
76=======
77 nvp - Nicira Network Virtualization Platform
78 n1kv - Cisco Nexus1000v Network Virtualization Platform
79>>>>>>> MERGE-SOURCE
75 .80 .
76 This configuration only has context when used with81 This configuration only has context when used with
77 network-manager Quantum|Neutron.82 network-manager Quantum|Neutron.
@@ -163,6 +168,7 @@
163 nvp-l3-uuid:168 nvp-l3-uuid:
164 type: string169 type: string
165 description: |170 description: |
171<<<<<<< TREE
166 This is uuid of the default NVP/NSX L3 Gateway Service.172 This is uuid of the default NVP/NSX L3 Gateway Service.
167 # end of NVP/NSX configuration173 # end of NVP/NSX configuration
168 service-guard:174 service-guard:
@@ -184,3 +190,38 @@
184 * shared-db or (pgsql-nova-db, pgsql-neutron-db)190 * shared-db or (pgsql-nova-db, pgsql-neutron-db)
185 * amqp191 * amqp
186 * identity-service192 * identity-service
193=======
194 This is uuid of the default NVP L3 Gateway Service.
195 # end of NVP configuration
196 n1kv-vsm-username:
197 type: string
198 default: admin
199 description: Username to connect to Cisco Nexus1000v VSM
200 n1kv-vsm-password:
201 type: string
202 default: abc123
203 description: Password to connect to Cisco Nexus1000v VSM
204 n1kv-vsm-ip:
205 default: 10.10.10.10
206 description: IP address to connect to Cisco Nexus1000v VSM
207 n1kv-restrict-policy-profiles:
208 type: boolean
209 default: false
210 description: |
211 All tenants will be able to access all policy profiles if disblaed.
212 If enabled, tenants can access only those policy profiles which are
213 explicitly assigned to them by admin.
214 n1kv-config-flags:
215 default: None
216 type: string
217 description: Comma separated list of key=value config flags to be set in cisco_plugins.ini
218 keystone-usrname:
219 type: string
220 default: admin
221 description: Username to connect to keystone
222 keystone-password:
223 type: string
224 default: openstack
225 description: Password to connect to keystone
226
227>>>>>>> MERGE-SOURCE
187228
=== modified file 'hooks/charmhelpers/contrib/openstack/context.py'
--- hooks/charmhelpers/contrib/openstack/context.py 2014-05-19 11:38:09 +0000
+++ hooks/charmhelpers/contrib/openstack/context.py 2014-08-01 21:20:18 +0000
@@ -541,6 +541,29 @@
541541
542 return nvp_ctxt542 return nvp_ctxt
543543
544 def n1kv_ctxt(self):
545 driver = neutron_plugin_attribute(self.plugin, 'driver',
546 self.network_manager)
547 n1kv_config = neutron_plugin_attribute(self.plugin, 'config',
548 self.network_manager)
549 n1kv_user_config_flags = config('n1kv-config-flags')
550 n1kv_ctxt = {
551 'core_plugin': driver,
552 'neutron_plugin': 'n1kv',
553 'neutron_security_groups': self.neutron_security_groups,
554 'local_ip': unit_private_ip(),
555 'config': n1kv_config,
556 'vsm_ip': config('n1kv-vsm-ip'),
557 'vsm_username': config('n1kv-vsm-username'),
558 'vsm_password': config('n1kv-vsm-password'),
559 'restrict_policy_profiles': config('n1kv-restrict-policy-profiles'),
560 }
561 if n1kv_user_config_flags:
562 flags = config_flags_parser(n1kv_user_config_flags)
563 n1kv_ctxt['n1kv_user_config_flags'] = flags
564
565 return n1kv_ctxt
566
544 def neutron_ctxt(self):567 def neutron_ctxt(self):
545 if https():568 if https():
546 proto = 'https'569 proto = 'https'
@@ -572,6 +595,8 @@
572 ctxt.update(self.ovs_ctxt())595 ctxt.update(self.ovs_ctxt())
573 elif self.plugin in ['nvp', 'nsx']:596 elif self.plugin in ['nvp', 'nsx']:
574 ctxt.update(self.nvp_ctxt())597 ctxt.update(self.nvp_ctxt())
598 elif self.plugin == 'n1kv':
599 ctxt.update(self.n1kv_ctxt())
575600
576 alchemy_flags = config('neutron-alchemy-flags')601 alchemy_flags = config('neutron-alchemy-flags')
577 if alchemy_flags:602 if alchemy_flags:
578603
=== modified file 'hooks/charmhelpers/contrib/openstack/neutron.py'
--- hooks/charmhelpers/contrib/openstack/neutron.py 2014-05-19 11:38:09 +0000
+++ hooks/charmhelpers/contrib/openstack/neutron.py 2014-08-01 21:20:18 +0000
@@ -73,6 +73,20 @@
73 'server_packages': ['quantum-server',73 'server_packages': ['quantum-server',
74 'quantum-plugin-nicira'],74 'quantum-plugin-nicira'],
75 'server_services': ['quantum-server']75 'server_services': ['quantum-server']
76 },
77 'n1kv': {
78 'config': '/etc/quantum/plugins/cisco/cisco_plugins.ini',
79 'driver': 'quantum.plugins.cisco.network_plugin.PluginV2',
80 'contexts': [
81 context.SharedDBContext(user=config('neutron-database-user'),
82 database=config('neutron-database'),
83 relation_prefix='neutron',
84 ssl_dir=QUANTUM_CONF_DIR)],
85 'services': ['quantum-plugin-cisco'],
86 'packages': [['quantum-plugin-cisco']],
87 'server_packages': ['quantum-server',
88 'quantum-plugin-cisco'],
89 'server_services': ['quantum-server']
76 }90 }
77 }91 }
7892
@@ -114,6 +128,7 @@
114 'server_packages': ['neutron-server',128 'server_packages': ['neutron-server',
115 'neutron-plugin-nicira'],129 'neutron-plugin-nicira'],
116 'server_services': ['neutron-server']130 'server_services': ['neutron-server']
131<<<<<<< TREE
117 },132 },
118 'nsx': {133 'nsx': {
119 'config': '/etc/neutron/plugins/vmware/nsx.ini',134 'config': '/etc/neutron/plugins/vmware/nsx.ini',
@@ -128,6 +143,22 @@
128 'server_packages': ['neutron-server',143 'server_packages': ['neutron-server',
129 'neutron-plugin-vmware'],144 'neutron-plugin-vmware'],
130 'server_services': ['neutron-server']145 'server_services': ['neutron-server']
146=======
147 },
148 'n1kv': {
149 'config': '/etc/neutron/plugins/cisco/cisco_plugins.ini',
150 'driver': 'neutron.plugins.cisco.network_plugin.PluginV2',
151 'contexts': [
152 context.SharedDBContext(user=config('neutron-database-user'),
153 database=config('neutron-database'),
154 relation_prefix='neutron',
155 ssl_dir=QUANTUM_CONF_DIR)],
156 'services': ['neutron-plugin-cisco'],
157 'packages': [['neutron-plugin-cisco']],
158 'server_packages': ['neutron-server',
159 'neutron-plugin-cisco'],
160 'server_services': ['neutron-server']
161>>>>>>> MERGE-SOURCE
131 }162 }
132 }163 }
133 if release >= 'icehouse':164 if release >= 'icehouse':
134165
=== modified file 'hooks/charmhelpers/contrib/openstack/utils.py'
--- hooks/charmhelpers/contrib/openstack/utils.py 2014-05-19 11:38:09 +0000
+++ hooks/charmhelpers/contrib/openstack/utils.py 2014-08-01 21:20:18 +0000
@@ -228,8 +228,8 @@
228 with open('/etc/apt/sources.list.d/juju_deb.list', 'w') as f:228 with open('/etc/apt/sources.list.d/juju_deb.list', 'w') as f:
229 f.write(DISTRO_PROPOSED % ubuntu_rel)229 f.write(DISTRO_PROPOSED % ubuntu_rel)
230 elif rel[:4] == "ppa:":230 elif rel[:4] == "ppa:":
231 src = rel231 src = rel.split(' ')
232 subprocess.check_call(["add-apt-repository", "-y", src])232 subprocess.check_call(["add-apt-repository", "-y" ] + src)
233 elif rel[:3] == "deb":233 elif rel[:3] == "deb":
234 l = len(rel.split('|'))234 l = len(rel.split('|'))
235 if l == 2:235 if l == 2:
236236
=== modified file 'hooks/nova_cc_context.py'
--- hooks/nova_cc_context.py 2014-06-17 10:01:21 +0000
+++ hooks/nova_cc_context.py 2014-08-01 21:20:18 +0000
@@ -193,6 +193,12 @@
193 ctxt['region'] = config('region')193 ctxt['region'] = config('region')
194 return ctxt194 return ctxt
195195
196class OpenrcContext(context.IdentityServiceContext):
197 def __call__(self):
198 ctxt = {}
199 ctxt['os_username'] = config('keystone-usrname')
200 ctxt['os_password'] = config('keystone-password')
201 return ctxt
196202
197class NovaPostgresqlDBContext(context.PostgresqlDBContext):203class NovaPostgresqlDBContext(context.PostgresqlDBContext):
198 interfaces = ['pgsql-nova-db']204 interfaces = ['pgsql-nova-db']
199205
=== modified file 'hooks/nova_cc_hooks.py'
--- hooks/nova_cc_hooks.py 2014-07-29 15:05:01 +0000
+++ hooks/nova_cc_hooks.py 2014-08-01 21:20:18 +0000
@@ -4,6 +4,7 @@
4import shutil4import shutil
5import sys5import sys
6import uuid6import uuid
7import subprocess
78
8from subprocess import check_call9from subprocess import check_call
9from urlparse import urlparse10from urlparse import urlparse
@@ -84,6 +85,11 @@
84@hooks.hook()85@hooks.hook()
85def install():86def install():
86 execd_preinstall()87 execd_preinstall()
88 plugin = config('quantum-plugin')
89 if (plugin == 'n1kv'):
90 command = "cp templates/havana/openrc /root/"
91 process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
92 process.communicate()[0]
87 configure_installation_source(config('openstack-origin'))93 configure_installation_source(config('openstack-origin'))
88 apt_update()94 apt_update()
89 apt_install(determine_packages(), fatal=True)95 apt_install(determine_packages(), fatal=True)
@@ -108,7 +114,8 @@
108 save_script_rc()114 save_script_rc()
109 configure_https()115 configure_https()
110 CONFIGS.write_all()116 CONFIGS.write_all()
111117 [compute_joined(rid=rid, remote_restart=True)
118 for rid in relation_ids('cloud-compute')]
112119
113@hooks.hook('amqp-relation-joined')120@hooks.hook('amqp-relation-joined')
114def amqp_joined(relation_id=None):121def amqp_joined(relation_id=None):
115122
=== modified file 'hooks/nova_cc_utils.py'
--- hooks/nova_cc_utils.py 2014-07-29 15:05:01 +0000
+++ hooks/nova_cc_utils.py 2014-08-01 21:20:18 +0000
@@ -90,6 +90,7 @@
90HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'90HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'
91APACHE_CONF = '/etc/apache2/sites-available/openstack_https_frontend'91APACHE_CONF = '/etc/apache2/sites-available/openstack_https_frontend'
92APACHE_24_CONF = '/etc/apache2/sites-available/openstack_https_frontend.conf'92APACHE_24_CONF = '/etc/apache2/sites-available/openstack_https_frontend.conf'
93OPENRC = '/root/openrc'
93NEUTRON_DEFAULT = '/etc/default/neutron-server'94NEUTRON_DEFAULT = '/etc/default/neutron-server'
94QUANTUM_DEFAULT = '/etc/default/quantum-server'95QUANTUM_DEFAULT = '/etc/default/quantum-server'
9596
@@ -169,6 +170,10 @@
169 'contexts': [nova_cc_context.ApacheSSLContext()],170 'contexts': [nova_cc_context.ApacheSSLContext()],
170 'services': ['apache2'],171 'services': ['apache2'],
171 }),172 }),
173 (OPENRC, {
174 'contexts': [nova_cc_context.OpenrcContext(), context.IdentityServiceContext()],
175 'services': [],
176 }),
172])177])
173178
174CA_CERT_PATH = '/usr/local/share/ca-certificates/keystone_juju_ca_cert.crt'179CA_CERT_PATH = '/usr/local/share/ca-certificates/keystone_juju_ca_cert.crt'
175180
=== added file 'templates/havana/cisco_plugins.ini'
--- templates/havana/cisco_plugins.ini 1970-01-01 00:00:00 +0000
+++ templates/havana/cisco_plugins.ini 2014-08-01 21:20:18 +0000
@@ -0,0 +1,157 @@
1[cisco_plugins]
2
3# (StrOpt) Period-separated module path to the plugin class to use for
4# the Cisco Nexus switches.
5#
6# nexus_plugin = neutron.plugins.cisco.nexus.cisco_nexus_plugin_v2.NexusPlugin
7
8# (StrOpt) Period-separated module path to the plugin class to use for
9# the virtual switches on compute nodes.
10#
11# vswitch_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
12
13
14[cisco]
15
16# (StrOpt) A short prefix to prepend to the VLAN number when creating a
17# VLAN interface. For example, if an interface is being created for
18# VLAN 2001 it will be named 'q-2001' using the default prefix.
19#
20# vlan_name_prefix = q-
21# Example: vlan_name_prefix = vnet-
22
23# (StrOpt) A short prefix to prepend to the VLAN number when creating a
24# provider VLAN interface. For example, if an interface is being created
25# for provider VLAN 3003 it will be named 'p-3003' using the default prefix.
26#
27# provider_vlan_name_prefix = p-
28# Example: provider_vlan_name_prefix = PV-
29
30# (BoolOpt) A flag indicating whether Openstack networking should manage the
31# creation and removal of VLAN interfaces for provider networks on the Nexus
32# switches. If the flag is set to False then Openstack will not create or
33# remove VLAN interfaces for provider networks, and the administrator needs
34# to manage these interfaces manually or by external orchestration.
35#
36# provider_vlan_auto_create = True
37
38# (BoolOpt) A flag indicating whether Openstack networking should manage
39# the adding and removing of provider VLANs from trunk ports on the Nexus
40# switches. If the flag is set to False then Openstack will not add or
41# remove provider VLANs from trunk ports, and the administrator needs to
42# manage these operations manually or by external orchestration.
43#
44# provider_vlan_auto_trunk = True
45
46# (StrOpt) Period-separated module path to the model class to use for
47# the Cisco neutron plugin.
48#
49# model_class = neutron.plugins.cisco.models.virt_phy_sw_v2.VirtualPhysicalSwitchModelV2
50
51# (StrOpt) Period-separated module path to the driver class to use for
52# the Cisco Nexus switches.
53#
54# If no value is configured, a fake driver will be used.
55# nexus_driver = neutron.plugins.cisco.test.nexus.fake_nexus_driver.CiscoNEXUSFakeDriver
56# With real hardware, use the CiscoNEXUSDriver class:
57# nexus_driver = neutron.plugins.cisco.nexus.cisco_nexus_network_driver_v2.CiscoNEXUSDriver
58
59# (BoolOpt) A flag to enable round robin scheduling of routers for SVI.
60# svi_round_robin = False
61
62
63# Cisco Nexus Switch configurations.
64# Each switch to be managed by Openstack Neutron must be configured here.
65#
66# Cisco Nexus Switch Format.
67# [NEXUS_SWITCH:<IP address of switch>]
68# <hostname>=<port> (1)
69# ssh_port=<ssh port> (2)
70# username=<credential username> (3)
71# password=<credential password> (4)
72#
73# (1) For each host connected to a port on the switch, specify the hostname
74# and the Nexus physical port (interface) it is connected to.
75# (2) The TCP port for connecting via SSH to manage the switch. This is
76# port number 22 unless the switch has been configured otherwise.
77# (3) The username for logging into the switch to manage it.
78# (4) The password for logging into the switch to manage it.
79#
80# Example:
81# [NEXUS_SWITCH:1.1.1.1]
82# compute1=1/1
83# compute2=1/2
84# ssh_port=22
85# username=admin
86# password=mySecretPassword
87
88#
89# N1KV Format.
90# [N1KV:<IP address of VSM>]
91# username=<credential username>
92# password=<credential password>
93#
94# Example:
95# [N1KV:2.2.2.2]
96# username=admin
97# password=mySecretPassword
98
99[cisco_n1k]
100
101# (StrOpt) Specify the name of the integration bridge to which the VIFs are
102# attached.
103#
104integration_bridge = br-int
105
106# (StrOpt) Name of the policy profile to be associated with a port when no
107# policy profile is specified during port creates.
108#
109default_policy_profile = default-pp
110# Example: default_policy_profile = service_profile
111
112# (StrOpt) Name of the policy profile to be associated with a port owned by
113# network node (dhcp, router).
114#
115network_node_policy_profile = default-pp
116# Example: network_node_policy_profile = dhcp_pp
117
118# (StrOpt) Name of the network profile to be associated with a network when no
119# network profile is specified during network creates. Admin should pre-create
120# a network profile with this name.
121#
122# default_network_profile =
123# Example: default_network_profile = network_pool
124
125# (StrOpt) Time in seconds for which the plugin polls the VSM for updates in
126# policy profiles.
127#
128#poll_duration = 10
129# Example: poll_duration = 180
130
131restrict_policy_profiles = {{ restrict_policy_profiles }}
132# Example: restrict_policy_profiles = False
133
134{% if n1kv_user_config_flags -%}
135{% for key, value in n1kv_user_config_flags.iteritems() -%}
136{{ key }} = {{ value }}
137{% endfor -%}
138{% endif -%}
139
140{% include "parts/section-database" %}
141
142[CISCO_PLUGINS]
143vswitch_plugin = neutron.plugins.cisco.n1kv.n1kv_neutron_plugin.N1kvNeutronPluginV2
144
145[N1KV:{{ vsm_ip }}]
146password = {{ vsm_password }}
147username = {{ vsm_username }}
148
149[securitygroup]
150{% if neutron_security_groups -%}
151#Firewall driver for realizing neutron security group function.
152#firewall_driver = neutron.agent.firewall.NoopFirewallDriver
153firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
154enable_security_group = True
155{% else -%}
156firewall_driver = neutron.agent.firewall.NoopFirewallDriver
157{% endif -%}
0158
=== modified file 'templates/havana/neutron.conf'
--- templates/havana/neutron.conf 2014-04-16 08:25:14 +0000
+++ templates/havana/neutron.conf 2014-08-01 21:20:18 +0000
@@ -27,6 +27,12 @@
2727
28{% include "parts/rabbitmq" %}28{% include "parts/rabbitmq" %}
2929
30{% if neutron_plugin and neutron_plugin == 'n1kv' -%}
31rpc_backend = neutron.openstack.common.rpc.impl_kombu
32api_extensions_path = /usr/share/pyshared/neutron/plugins/cisco/extensions
33network_auto_schedule = False
34{% endif %}
35
30[quotas]36[quotas]
31quota_driver = neutron.db.quota_db.DbQuotaDriver37quota_driver = neutron.db.quota_db.DbQuotaDriver
32{% if neutron_security_groups -%}38{% if neutron_security_groups -%}
3339
=== added file 'templates/havana/openrc'
--- templates/havana/openrc 1970-01-01 00:00:00 +0000
+++ templates/havana/openrc 2014-08-01 21:20:18 +0000
@@ -0,0 +1,15 @@
1#!/bin/sh
2#This is an example of openrc
3# READ:http://docs.openstack.org/user-guide/content/cli_openrc.html
4export OS_NO_CACHE=true
5export OS_TENANT_NAME=admin
6export OS_USERNAME={{ os_username }}
7export OS_PASSWORD={{ os_password }}
8export OS_AUTH_URL=http://{{ service_host }}:{{ service_port }}/v2.0/
9export OS_AUTH_STRATEGY=keystone
10export OS_REGION_NAME=RegionOne
11export CINDER_ENDPOINT_TYPE=publicURL
12export GLANCE_ENDPOINT_TYPE=publicURL
13export KEYSTONE_ENDPOINT_TYPE=publicURL
14export NOVA_ENDPOINT_TYPE=publicURL
15export QUANTUM_ENDPOINT_TYPE=publicURL
016
=== added file 'templates/icehouse/cisco_plugins.ini'
--- templates/icehouse/cisco_plugins.ini 1970-01-01 00:00:00 +0000
+++ templates/icehouse/cisco_plugins.ini 2014-08-01 21:20:18 +0000
@@ -0,0 +1,179 @@
1[cisco_plugins]
2
3# (StrOpt) Period-separated module path to the plugin class to use for
4# the Cisco Nexus switches.
5#
6# nexus_plugin = neutron.plugins.cisco.nexus.cisco_nexus_plugin_v2.NexusPlugin
7
8# (StrOpt) Period-separated module path to the plugin class to use for
9# the virtual switches on compute nodes.
10#
11# vswitch_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2
12
13
14[cisco]
15
16# (StrOpt) A short prefix to prepend to the VLAN number when creating a
17# VLAN interface. For example, if an interface is being created for
18# VLAN 2001 it will be named 'q-2001' using the default prefix.
19#
20# vlan_name_prefix = q-
21# Example: vlan_name_prefix = vnet-
22
23# (StrOpt) A short prefix to prepend to the VLAN number when creating a
24# provider VLAN interface. For example, if an interface is being created
25# for provider VLAN 3003 it will be named 'p-3003' using the default prefix.
26#
27# provider_vlan_name_prefix = p-
28# Example: provider_vlan_name_prefix = PV-
29
30# (BoolOpt) A flag indicating whether Openstack networking should manage the
31# creation and removal of VLAN interfaces for provider networks on the Nexus
32# switches. If the flag is set to False then Openstack will not create or
33# remove VLAN interfaces for provider networks, and the administrator needs
34# to manage these interfaces manually or by external orchestration.
35#
36# provider_vlan_auto_create = True
37
38# (BoolOpt) A flag indicating whether Openstack networking should manage
39# the adding and removing of provider VLANs from trunk ports on the Nexus
40# switches. If the flag is set to False then Openstack will not add or
41# remove provider VLANs from trunk ports, and the administrator needs to
42# manage these operations manually or by external orchestration.
43#
44# provider_vlan_auto_trunk = True
45
46# (StrOpt) Period-separated module path to the model class to use for
47# the Cisco neutron plugin.
48#
49# model_class = neutron.plugins.cisco.models.virt_phy_sw_v2.VirtualPhysicalSwitchModelV2
50
51# (StrOpt) Period-separated module path to the driver class to use for
52# the Cisco Nexus switches.
53#
54# If no value is configured, a fake driver will be used.
55# nexus_driver = neutron.plugins.cisco.test.nexus.fake_nexus_driver.CiscoNEXUSFakeDriver
56# With real hardware, use the CiscoNEXUSDriver class:
57# nexus_driver = neutron.plugins.cisco.nexus.cisco_nexus_network_driver_v2.CiscoNEXUSDriver
58
59# (BoolOpt) A flag to enable round robin scheduling of routers for SVI.
60# svi_round_robin = False
61
62
63# Cisco Nexus Switch configurations.
64# Each switch to be managed by Openstack Neutron must be configured here.
65#
66# Cisco Nexus Switch Format.
67# [NEXUS_SWITCH:<IP address of switch>]
68# <hostname>=<port> (1)
69# ssh_port=<ssh port> (2)
70# username=<credential username> (3)
71# password=<credential password> (4)
72#
73# (1) For each host connected to a port on the switch, specify the hostname
74# and the Nexus physical port (interface) it is connected to.
75# (2) The TCP port for connecting via SSH to manage the switch. This is
76# port number 22 unless the switch has been configured otherwise.
77# (3) The username for logging into the switch to manage it.
78# (4) The password for logging into the switch to manage it.
79#
80# Example:
81# [NEXUS_SWITCH:1.1.1.1]
82# compute1=1/1
83# compute2=1/2
84# ssh_port=22
85# username=admin
86# password=mySecretPassword
87
88#
89# N1KV Format.
90# [N1KV:<IP address of VSM>]
91# username=<credential username>
92# password=<credential password>
93#
94# Example:
95# [N1KV:2.2.2.2]
96# username=admin
97# password=mySecretPassword
98
99[cisco_n1k]
100
101# (StrOpt) Specify the name of the integration bridge to which the VIFs are
102# attached.
103#
104integration_bridge = br-int
105
106# (StrOpt) Name of the policy profile to be associated with a port when no
107# policy profile is specified during port creates.
108#
109default_policy_profile = default-pp
110# Example: default_policy_profile = service_profile
111
112# (StrOpt) Name of the policy profile to be associated with a port owned by
113# network node (dhcp, router).
114#
115network_node_policy_profile = default-pp
116# Example: network_node_policy_profile = dhcp_pp
117
118# (StrOpt) Name of the network profile to be associated with a network when no
119# network profile is specified during network creates. Admin should pre-create
120# a network profile with this name.
121#
122# default_network_profile =
123# Example: default_network_profile = network_pool
124
125# (StrOpt) Time in seconds for which the plugin polls the VSM for updates in
126# policy profiles.
127#
128#poll_duration = 10
129# Example: poll_duration = 180
130
131# (BoolOpt) Specify whether tenants are restricted from accessing all the
132# policy profiles.
133# Default value: False, indicating all tenants can access all policy profiles.
134#
135# restrict_policy_profiles =
136# Example: restrict_policy_profiles = False
137
138# (IntOpt) Number of threads to use to make HTTP requests to the VSM.
139#
140# http_pool_size = 4
141
142# (IntOpt) Time in seconds for which the plugin waits for the VSM to respond.
143#
144# http_timeout = 30
145http_timeout = 120
146
147
148# (BoolOpt) Specify whether plugin should attempt to synchronize with the VSM
149# when neutron is started.
150# Default value: False, indicating no full sync will be performed.
151#
152# enable_sync_on_start = False
153
154restrict_policy_profiles = {{ restrict_policy_profiles }}
155
156{% if n1kv_user_config_flags -%}
157{% for key, value in n1kv_user_config_flags.iteritems() -%}
158{{ key }} = {{ value }}
159{% endfor -%}
160{% endif -%}
161
162{% include "parts/section-database" %}
163
164[CISCO_PLUGINS]
165vswitch_plugin = neutron.plugins.cisco.n1kv.n1kv_neutron_plugin.N1kvNeutronPluginV2
166
167[N1KV:{{ vsm_ip }}]
168password = {{ vsm_password }}
169username = {{ vsm_username }}
170
171[securitygroup]
172{% if neutron_security_groups -%}
173#Firewall driver for realizing neutron security group function.
174#firewall_driver = neutron.agent.firewall.NoopFirewallDriver
175firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
176enable_security_group = True
177{% else -%}
178firewall_driver = neutron.agent.firewall.NoopFirewallDriver
179{% endif -%}
0180
=== modified file 'templates/icehouse/neutron.conf'
--- templates/icehouse/neutron.conf 2014-06-17 10:01:21 +0000
+++ templates/icehouse/neutron.conf 2014-08-01 21:20:18 +0000
@@ -29,6 +29,12 @@
2929
30{% include "parts/rabbitmq" %}30{% include "parts/rabbitmq" %}
3131
32{% if neutron_plugin and neutron_plugin == 'n1kv' -%}
33rpc_backend = neutron.openstack.common.rpc.impl_kombu
34api_extensions_path = /usr/share/pyshared/neutron/plugins/cisco/extensions
35network_auto_schedule = False
36{% endif %}
37
32notify_nova_on_port_status_changes = True38notify_nova_on_port_status_changes = True
33notify_nova_on_port_data_changes = True39notify_nova_on_port_data_changes = True
34nova_url = {{ nova_url }}40nova_url = {{ nova_url }}
3541
=== modified file 'templates/icehouse/nova.conf'
--- templates/icehouse/nova.conf 2014-04-12 21:25:19 +0000
+++ templates/icehouse/nova.conf 2014-08-01 21:20:18 +0000
@@ -58,6 +58,15 @@
58{% endif -%}58{% endif -%}
59{% endif -%}59{% endif -%}
6060
61{% if neutron_plugin and neutron_plugin == 'n1kv' -%}
62libvirt_user_virtio_for_bridges = True
63security_group_api = {{ network_manager }}
64nova_firewall_driver = nova.virt.firewall.NoopFirewallDriver
65{% if external_network -%}
66default_floating_pool = {{ external_network }}
67{% endif -%}
68{% endif -%}
69
61{% if network_manager_config -%}70{% if network_manager_config -%}
62{% for key, value in network_manager_config.iteritems() -%}71{% for key, value in network_manager_config.iteritems() -%}
63{{ key }} = {{ value }}72{{ key }} = {{ value }}

Subscribers

People subscribed via source and target branches