aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2015-10-15Cisco Nexus ML2 MD: Need unique key for server level keys in hieradatatiswanso1-3/+7
Due to a limitation in the puppet version used in RHEL7 there is no simple way to scope a 2nd level hiera hash key with the create_resources + defined types pattern. Lack of the .each method support prior to puppet 4.0 is the problem here. This template change works around the problem by explicitly adding the hostname to the hieradata for a server under a nexus switch. The duplicate server names under different switches is needed for vPC config scenarios. Closes-bug: #1506546 Change-Id: I03b866fb440e968c9f86ae93942b687e7165a065
2015-10-01Merge "Deprecate the undercloud templates."Jenkins9-5/+5
2015-10-01Merge "Add DnsServers param to network config templates"Jenkins11-0/+55
2015-10-01Merge "swift::storage::all deprecation cleanup"Jenkins1-1/+4
2015-10-01Deprecate the undercloud templates.Dan Prince9-5/+5
This patch moves the undercloud templates into the deprecated directory. The Makefile still builds the resulting templates at the top level so users should not be broken by this change. Change-Id: Ibcb87fe31a6894552a5e445b5495e69fdcc2d382
2015-10-01Make package upgrade pacemaker-awareSteve Baker1-7/+45
This change adds alternative logic for handling package updates on a pacemaker managed node. "yum list updates" is now run and this script exits early if there are no packages to update. If the pacemaker service is not running then the previous puppet logic remains, so a package update is performed which excludes packages managed by puppet, and a flag is set to indicate that puppet should perform an ensure=>latest on all packages it manages. However if the pacemaker service is running, the following occurs: - pcs cluster stop is run for this node - a full yum update is performed - pcs cluster start is run for this node - pcs status is run until the hostname for this node appears in the Online list This means that puppet is not involved in the package update process when the node is managed by pacemaker. Change-Id: I5ad118552d053dbda280978751167d9fd9da9874
2015-10-01Ensure present/latest for puppet driven package updatesSteve Baker7-6/+39
This change updates yum_update.sh so that we set set a boolean output when "managed" packages should get updated. The output is named 'update_managed_packages' and for the puppet implementation it is wired up so that it directly sets tripleo::packages::enable_upgrade to control whether packages are updated. It also modifies yum_update.sh to build a yum update excludes list for packages managed by puppet. The exclude lists are being generated via puppet-tripleo as well via the new 'write_package_names' function that is now wired into all the role manifests. This change does not actually trigger the puppet apply. The fix for Related-Bug: #1463092 will be used to trigger the puppet run when the hiera changes. As a minor tweak to this logic we append the UpdateIdentifier to the config_identifier so that we ensure puppet gets executed on an update where other (non-related) hiera changes also occur. Co-Authored-By: Dan Prince <dprince@redhat.com> Change-Id: I343c3959517eae38bbcd43648ed56f610272864d
2015-10-01Write package names out to flat filesDan Prince7-2/+14
This patch updates all of the overcloud manifests so that we write out flat files containing lists of the Puppet packages which were managed by each manifest. The flat files all get written to /var/lib/puppet-tripleo/installed-packages/ where they can be easily parsed by external tools. Example format from the flat files looks like (for the controller step 1): cat /var/lib/puppet-tripleo/installed-packages/overcloud_controller1 keepalived haproxy Depends-On: If3e03b1983fed47082fac8ce63f975557dbc503c Change-Id: Ia324a08711796aa664f9c0273a051f4f2e3e92c9
2015-09-30Add DnsServers param to network config templatesDan Prince11-0/+55
This patch adds a new optional DnsServers parameter which can be used to provide a custom list of DNS resolvers which will be configured in resolv.conf. Change-Id: I2bb7259ebc09d786dc56da18694c862f802091b1 Depends-On: I9edecfdd4e1d0f39883b72be554cd92c5685881d
2015-09-28Merge "Adding core_plugin, type_drivers and service_plugins parameters"Jenkins7-8/+171
2015-09-25Adding core_plugin, type_drivers and service_plugins parametersShiva Prasad Rao7-8/+171
Make core_plugin, type_drivers and service_plugins parameter in neutron configurable through heat. Also changing the type_drivers order to "vxlan,vlan,flat,gre" Change-Id: Iba895ed5897bdaf7bb772ffc063c424abb6e1638
2015-09-25Add CephStorageExtraConfigPre resourceGiulio Fidente2-1/+13
This change adds a CephStorageExtraConfigPre which can be used to distribute hooks for the CephStorage nodes. Change-Id: Id0023d8ffddb3ee5e855d5dcc32c76bc41ce4c63
2015-09-25Allow a user to set specific setting per hostYanis Guenane5-0/+5
It is currently not possible to specify settings per host and not per type of host. One of the example of the problematic that could cause is : What if node0 have devices /dev/sdb and /dev/sdc while node1 have devices /dev/sda and /dev/sdd, they is currently no way to specify that simply. The idea here is to add a top priority file in the hiera lookup that will match the UUID of the System Information section in the output of the dmidecode command. The file could be provided with the firstboot/rsync stack for example. Change-Id: I3ab082c8ebd2567bd1d914fc0b924e19b1eff7d0
2015-09-25Example of passing per-node config data in pre_deploy configSteven Hardy1-0/+56
Shows one method of passing a map of data in to the pre_deploy extraconfig interface, such that it could be used in combination with https://review.openstack.org/#/c/215013/ to create a node uuid specific hieradata file, or to perform some other non-puppet per-node configuration. This would be used by specifying an environment file like: resource_registry: OS::TripleO::ControllerExtraConfigPre: puppet/extraconfig/pre_deploy/per_node.yaml parameter_defaults: NodeDataLookup: | {"AB4114B1-9C9D-409A-BEFB-D88C151BF2C3": {"foo": "bar"}, "8CF1A7EA-7B4B-4433-AC83-17675514B1B8": {"foo2": "bar2"}} Change-Id: I62e344669e0ca781dd93d3f7d2190b70299877c2
2015-09-25Merge "Rename -puppet.yaml templates."Jenkins10-9/+9
2015-09-23Merge "Remove nameserver lookup dependency from Cisco ML2 CollectMacConfig."Jenkins1-2/+11
2015-09-23Merge "Add redis ordering with ceilometer-central"Jenkins1-0/+16
2015-09-23Merge "Re-add constranits between nova-api and nova-novncproxy"Jenkins1-18/+16
2015-09-22Remove nameserver lookup dependency from Cisco ML2 CollectMacConfig.tiswanso1-2/+11
The collection of hostname to MAC mappings done in AllNodesPostDeploy uses 'hostname -f' to get the FQDN for each node. This form of the command causes a nameserver lookup for the domain name. A timing issue has been seen where the hostname lookup fails due to the nameserver not having the mapping yet. The solution is to hardcode the domain to 'localdomain' as is done in a few other patches--ie. see controller-puppet.yaml. Change-Id: Ibea50fcc6b9f22ca163ff063e0dc9ca69dff5f34
2015-09-23Merge "Remove default_floating_pool in compute.yaml"Jenkins1-1/+0
2015-09-22Put staticweb middleware after keystoneauth in proxy pipelineEmilien Macchi1-1/+1
The staticweb middleware needs to be put after authentication middlewares to ensure correct functionality as documented in http://docs.openstack.org/developer/swift/middleware.html#staticweb Without this Swift sends a HTML response even if the request was done using a X-Auth-Token. This might result in a faulty handling of the response on the client side; for example, "swift stat containername" would report an empty, private container, while the container might actually be public readable with data stored in it. Closes-bug: 1494896 Change-Id: Id48840e0041f8d272e08def292fbedfaf76bbfbb Co-Authored-By: Christian Schwede <cschwede@redhat.com>
2015-09-22swift::storage::all deprecation cleanupDan Prince1-1/+4
This patch adds settings for swift::storage::all so that we set the recommended the incoming and outgoing chmod permissions. Depends-On: I627ab2255087b0ebc2d3ddc9cd4a7a7d254abb65 Change-Id: I2f14c9afe7b7135ad1bfecb9db0a39bfc3b4d03a
2015-09-22Rename -puppet.yaml templates.Dan Prince10-9/+9
Updates the /puppet directory templates so that we drop the '-puppet' from the filenames. This is redundant because we already have puppet in the directory name and fixes inconsistencies where we aren't using -puppet in all the files within the puppet directory. Depends-On: I71cb07b2f5305aaf9c43ab175cca976e844b8175 Change-Id: I70d6e048a566666f5d6e5c2407f8a6b4fd9f6f87
2015-09-22Remove default_floating_pool in compute.yamlJames Slagle1-1/+0
This is unused on compute nodes and does not need to be specified. Further, nova::api is not even included in the compute puppet manifest, so it had no effect anyway. Change-Id: I7589bf544fb1ddad3cd371869756cb880c0bac37
2015-09-22Pass default_floating_pool into nova::api classDerek Higgins2-7/+3
We were calling nova_config resource to define it but as of Ic060fc18c8f5d7dc8fcf1d7bd921623dc505a515 its now included as part of the nova::api class. Closes-bug: #1498237 Change-Id: I948f26304536e2d692acf38d994d29167672168b Depends-On: I2789e782a4fd673e09c6334b6d56819c68414c80
2015-09-21Merge "Configure ctlplane network with a static IP"Jenkins24-66/+454
2015-09-17Configure ctlplane network with a static IPDan Prince24-66/+454
This patch updates all network configuration templates so that we configure the ctlplane network interface with a static IP instead of using DHCP. The IP address used for the static IP is passed into each nested stack network configuration template via the ControlPlaneIp parameter. Three new nested stack parameters called ControlPlaneSubnetCidr, ControlPlaneDefaultRoute, and EC2MetadataIp have been added to help configure the CIDR, default route, and EC2 metadata route on the ctlplane statically. These parameters can be customized via the parameter_defaults section in the heat environment. A single new template called net-config-static-bridge.yaml has been added to help migrate towards using the static configuration templates when not using network isolation. Depends-On: I257e1cba6dee16f73f75512d1284e1e3b9d4c831 Change-Id: Ib267e6dcf2d5ff77f7a82ee20a123965c2d07565
2015-09-17Support new form of servers config for ML2 cisco nexus allnodes config.tiswanso1-2/+1
The puppet-neutron changes to remove the usage of ERB templates require changing the format of the 'servers' hash/dictionary to include a key for use with puppet's create_resources directly from hiera data. Depends-On: I401371c9e5176de7ce19d4d4e878e9f2e69aab80 Change-Id: I950b7fb019dd8dd072592618b968a19df5c9c884
2015-09-17Port Cisco Nexus/UCSM ExtraConfig to AllNodesSteven Hardy3-144/+328
Switch the implemention from a pre_deploy ExtraConfig to an AllNodesExtraConfig, so we can collect the mac->hostname mapping for all nodes, then calculate a NexusConfig based on that and a provided mapping of switch ports to mac address. The same conversion is also done to the NetworkUCSMHostList: The port mappings are provided via parameter_defaults like: parameter_defaults: NetworkNexusConfig: { "bxb-tor-1": { "username": "admin", "ssh_port": 22, "password": "lab", "ip_address": "10.86.7.204", "nve_src_intf": 0, "physnet": "datacentre", "servers": { "fa:16:3e:fa:be:ef": "1/11", "fa:16:3e:fa:5e:cf": "1/23", "fa:16:3e:fa:12:34": "2/34" } } } NetworkUCSMHostList: 'fa:16:3e:fa:be:ef:profile1' This results in an entry like this appended to /etc/puppet/hieradata/neutron_cisco_data.yaml: neutron::plugins::ml2::cisco::nexus::nexus_config:\ {"bxb-tor-1": {"username": "admin", "nve_src_intf": 0, "ssh_port": 22, "servers": {"overcloud-compute02": "2/34", "overcloud-compute01": "1/23", "overcloud-control01": "1/11"}, "password": "lab", "ip_address": "10.86.7.204", "physnet": "datacentre"}} neutron::plugins::ml2::cisco::ucsm::ucsm_host_list: overcloud-control01:profile1 Co-Authored-By: Rob Pothier <rpothier@cisco.com> Co-Authored-By: Tim Swanson <tiswanso@cisco.com> Change-Id: I372c3ffb6bd85b7239fcb9f3fc4fa51cd4a39332
2015-09-17Add "AllNodes" ExtraConfig interfaceSteven Hardy6-6/+244
Adds hook to enable additional "AllNodes" config to be performed prior to applying puppet - this is useful when you need to build configuration data which requires knowledge of all nodes in a cluster, or of the entire deployment. As an example, there is a sample config template which collects the hostname and mac addresses for all nodes in the deployment then writes the data to all Controller nodes. Something similar to this may be required to enable creation of the nexus_config in https://review.openstack.org/#/c/198754/ There's also another, simpler, example which shows how you could share the output of an OS::Heat::RandomString between nodes. Change-Id: I8342a238f50142d8c7426f2b96f4ef1635775509
2015-09-17Merge "Big Switch Neutron ML2 plugin integration"Jenkins5-0/+111
2015-09-17Merge "network validation to ping test each interface"Jenkins5-0/+110
2015-09-17Merge "Add YAML sanity check"Jenkins2-0/+49
2015-09-16Merge "Set pacemaker default resource-stickiness"Jenkins2-0/+4
2015-09-16Big Switch Neutron ML2 plugin integrationJiri Stransky5-0/+111
Add support for Big Switch Neutron ML2 plugin. Makes sure that the package is present and sets up the [restproxy] section in ml2_conf.ini. This also adds support for setting the ovs_use_veth option in l3_agent.ini. There is no support for this in puppet-neutron l3 class and it probably doesn't make sense adding it there, because this setting isn't relevant for all l3 agent drivers, it's specific to OVSInterfaceDriver. The ovs_use_veth option is also added to dhcp_agent.ini. Change-Id: I99635e25b2099dacce68154fe14693d6f06ac19f
2015-09-16Merge "Enable Cisco Nexus and UCSM plugins"Jenkins5-0/+184
2015-09-16Merge "Add 4 pacemaker constraints for keystone"Jenkins1-0/+37
2015-09-15Merge "Ensure mysql root can only connect from localhost"Jenkins1-0/+1
2015-09-15Enable Cisco Nexus and UCSM pluginsRobert Pothier5-0/+184
This enables support for the Cisco UCS Manager and Cisco Nexus plugins Change-Id: I1bc28a4768d5d6857a0504ca1f77dd71259570b8
2015-09-15Add YAML sanity checkBen Nemec2-0/+49
Adds a "validate" tox env for basic sanity checking of templates. Currently it just validates that all of the .yaml files are in fact valid YAML. In the future we might want to add more, but this seemed like a reasonable start. Change-Id: I8091bbad0003b150e23dae5de4f465053c982229
2015-09-15Merge "switch to vxlan by default"Jenkins7-14/+14
2015-09-15Merge "Consume the NeutronMechanismDrivers from the hiera data"Jenkins2-0/+2
2015-09-11Merge "Set NetValueSpecs parameter types to Json"Jenkins5-5/+5
2015-09-10Merge "Set the nova scheduler ram_allocation_ration to 1.0"Jenkins3-0/+3
2015-09-09Merge "Don't add 'host' parameter to cinder.conf"Jenkins2-8/+0
2015-09-08Set NetValueSpecs parameter types to JsonDan Prince5-5/+5
The latest Heat API is a bit more strict in validating the datatypes for the OS::Neutron::Net value_specs. This patch converts the default parameter types for these from string to json. Change-Id: Iaad6ee6417d3ae55c52ffe2f4e6ed79124161923 Closes-bug: #1493502
2015-09-08Merge "Add NodeAdminUserData interface for "heat-admin" user"Jenkins7-5/+123
2015-09-07Don't add 'host' parameter to cinder.confDerek Higgins2-8/+0
As of I54a75652efd5e91464b84adf84004400b343c3a5 for rdb this is being done by the cinder puppet module. Change-Id: I109e139fcbb859a0d9ed99054656be94975d33b5
2015-09-05Set default KeystoneAdminApiNetwork to ctlplaneDan Prince1-1/+1
Moves the default KeystoneAdminApiNetwork setting to the ctlplane so that the undercloud will always have easy access to be able to configure endpoints. Change-Id: I1f6aba62b98820b678cce1ca16e72a0c3d045720
2015-09-05Keystone network isolation fixesDan Prince5-8/+25
This patch adds explicit nested stack parameters to help manage use of the Keystone Admin API vs. the Keystone Public API. We also add a new output parameter specifically for the Keystone admin API VIP. This can be useful when configuring keystone endpoints with network isolation. Change-Id: I2bd3e61570151e2faeee14ee09b03ad0b3208cc1