apex-tripleo-heat-templates.git
9 years agoMerge "puppet+devtest: make compute nodes reachable"
Jenkins [Tue, 31 Mar 2015 11:53:28 +0000 (11:53 +0000)]
Merge "puppet+devtest: make compute nodes reachable"

9 years agopuppet: correct cinder enabled_backends format
Dan Prince [Sun, 29 Mar 2015 01:46:54 +0000 (21:46 -0400)]
puppet: correct cinder enabled_backends format

This resolves a formatting issue with the Cinder enabled_backends
config file setting. Previously we would potentially construct
an array with an undef value at the end if iscsi was enabled
but ceph was not (this is the case for our current CI job).
When an array formatted like ['tripleo_iscsi', undef] is then
passed to join() in puppet-cinder to construct a string it leaves
us with an extra ',' on the end of the string. This causes
problems in that cinder-volume loads an extra (system default)
cinder volume process which is not expected.

Because Fedora uses LIO as a default it was causing about half
of our CI runs to fail if the tgtadm cinder-volume process
wasn't being chosen by the scheduler.

Closes-bug: #1437708

Change-Id: I3383012cb43792f334fdf789dc13147a3cb5ad63

9 years agopuppet+devtest: make compute nodes reachable
Jiri Stransky [Thu, 26 Mar 2015 13:59:19 +0000 (14:59 +0100)]
puppet+devtest: make compute nodes reachable

Compute nodes run libvirt, which automatically creates a default network
which has the same address space (192.168.122.*) as the libvirt default
network on the host machine where devtest is running. This overlap
causes that when a compute node wants to send a packet to the host
machine (192.168.122.1) it gets incorrectly routed through the compute
node's own virbr0 instead of br-ex. The current solution does not seem
to be enough because libvirt gets started and creates the default
network before Puppet is triggered on compute nodes. Making sure the
libvirt default network is destroyed on the compute node fixes the
issue.

We don't have any puppet modules in OPM that would deal with libvirt
networks and it's probably not worth exploring and adding one because of
this small issue (i don't expect another use case of managing libvirt
networks directly), so i'm using an exec with proper idempotency
check.

Change-Id: Icde12aa204ed1f7fa35b0525875ce07db34dc42c
Closes-Bug: #1436822

9 years agoAdd support for Neutron l3_ha option in puppet templates
Giulio Fidente [Fri, 13 Mar 2015 11:33:21 +0000 (07:33 -0400)]
Add support for Neutron l3_ha option in puppet templates

With this change we wire the NeutronL3HA parameter to the puppet
class, where needed.

Change-Id: I37b3850f71885a93859b5e51925df379616fc6ab

9 years agoMerge "controller-puppet: Honor MysqlRootPassword"
Jenkins [Thu, 19 Mar 2015 12:31:42 +0000 (12:31 +0000)]
Merge "controller-puppet: Honor MysqlRootPassword"

9 years agoMerge "Correct the parameter_defaults section name."
Jenkins [Thu, 19 Mar 2015 11:29:59 +0000 (11:29 +0000)]
Merge "Correct the parameter_defaults section name."

9 years agoMerge "puppet: tidy up the Nova ceilo auth configs"
Jenkins [Thu, 19 Mar 2015 11:18:48 +0000 (11:18 +0000)]
Merge "puppet: tidy up the Nova ceilo auth configs"

9 years agoMerge "puppet: tidy up the Nova glance API server config"
Jenkins [Thu, 19 Mar 2015 11:13:10 +0000 (11:13 +0000)]
Merge "puppet: tidy up the Nova glance API server config"

9 years agoMerge "puppet: tidy up the compute nova neutron config"
Jenkins [Thu, 19 Mar 2015 11:07:35 +0000 (11:07 +0000)]
Merge "puppet: tidy up the compute nova neutron config"

9 years agoMerge "puppet: use identity_uri and auth_uri"
Jenkins [Thu, 19 Mar 2015 11:03:38 +0000 (11:03 +0000)]
Merge "puppet: use identity_uri and auth_uri"

9 years agoMerge "Add support for Ceph as a Cinder and Nova backend"
Jenkins [Thu, 19 Mar 2015 09:14:49 +0000 (09:14 +0000)]
Merge "Add support for Ceph as a Cinder and Nova backend"

9 years agopuppet: use identity_uri and auth_uri
Dan Prince [Tue, 10 Mar 2015 14:27:56 +0000 (10:27 -0400)]
puppet: use identity_uri and auth_uri

This patch updates the puppet modules to use new identity_uri
and auth_uri settings instead of the old 'auth_host' parameters
for keystone auth_token middleware. This avoids some deprecation
warnings in our puppet logs.

Change-Id: I805b28d4135b13eef7082fda78956816c985c323

9 years agoUpdate puppet post config to enable stepped deployments
Giulio Fidente [Wed, 18 Mar 2015 16:54:33 +0000 (12:54 -0400)]
Update puppet post config to enable stepped deployments

The upcoming heat hook/breakpoint features will enable stepped deployments
via setting stop points via the resource_registry.

For this to work, we need hard dependencies between each step of the
puppet deployments, because the current "soft" dependencies caused by the
name property only influences the hook script application ordering, not
the graph traversed by heat during deployment.

Since removing the name: puppet_n completely removes some useful self-
documenting context, move this to a resource naming convention, which
should also be useful for heat hooks/breakpoints, as they are expected
to support globbed specification of each step.

Related heat patch (not yet landed, but this is not dependent on it):

https://review.openstack.org/#/c/146123/

Change-Id: I05b02a46d4e80c08a308d033c33d4901c8f6c94e

9 years agoAdd support for Ceph as a Cinder and Nova backend
Yanis Guenane [Wed, 11 Mar 2015 09:14:35 +0000 (05:14 -0400)]
Add support for Ceph as a Cinder and Nova backend

This commit aims to add support for Ceph as a cinder and a nova backend.

  * Allows creation of Ceph pools from heat (Default: volumes, vms)
  * Creates the proper ceph user and inject the keys
  * Applies the proper configuration in cinder.conf and nova.conf
  * Enable the backend out of the box

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: Ic17d7a665de81a8bab5e34035abe90eda4bc889f

9 years agoMerge "puppet/loadbalancer: use puppet-tripleo"
Jenkins [Wed, 18 Mar 2015 15:50:09 +0000 (15:50 +0000)]
Merge "puppet/loadbalancer: use puppet-tripleo"

9 years agocontroller-puppet: Honor MysqlRootPassword
Yanis Guenane [Wed, 18 Mar 2015 14:54:45 +0000 (15:54 +0100)]
controller-puppet: Honor MysqlRootPassword

Currently the MysqlRootPassword parameter is retrieved from the
templates but not honored, preventing a user to specify it.
This commit fixes that.

Change-Id: Ib6842736a37aea3cc16f1a7c75fc877408682bf7

9 years agoMerge "Make heat auth_encryption_key random"
Jenkins [Mon, 16 Mar 2015 19:02:42 +0000 (19:02 +0000)]
Merge "Make heat auth_encryption_key random"

9 years agopuppet/loadbalancer: use puppet-tripleo
Emilien Macchi [Fri, 27 Feb 2015 09:20:34 +0000 (10:20 +0100)]
puppet/loadbalancer: use puppet-tripleo

The loadbalancer Puppet code moved to puppet-tripleo (lightweight)
composition layer.

This patch aims to use it and refactor the loadbalancer.pp file.

Co-Authored-By: Dan Prince <dprince@redhat.com>
Change-Id: I1765ac9b6cb01cb64d5d28dad646674ddca859e9

9 years agoMake heat auth_encryption_key random
Steven Hardy [Fri, 20 Feb 2015 17:04:47 +0000 (12:04 -0500)]
Make heat auth_encryption_key random

Currently we have a hard-coded default for auth_encryption_key,
which isn't ideal as it's used as a salt for the DB encryption.

Instead, reference an OS::Heat::RandomString resource so we create
a random key for each deployment.

Change-Id: Ic76b89db17603c114d98d28c01f75cc287fb2e90

9 years agopuppet: tidy up the Nova ceilo auth configs
Dan Prince [Thu, 12 Mar 2015 21:46:46 +0000 (17:46 -0400)]
puppet: tidy up the Nova ceilo auth configs

Updates the puppet configuration for the Ceilometer auth agent
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::ceilometer::agent::auth
class.

Change-Id: I932afafe21b2485a0581ac3910ac9d46161eee0d

9 years agopuppet: tidy up the Nova glance API server config
Dan Prince [Thu, 12 Mar 2015 21:42:31 +0000 (17:42 -0400)]
puppet: tidy up the Nova glance API server config

Updates the puppet configuration for the Nova glance configs
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::nova class.

Change-Id: Id12fb05470470558f1dccd45150bfce00a554466

9 years agopuppet: tidy up the compute nova neutron config
Dan Prince [Thu, 12 Mar 2015 21:29:07 +0000 (17:29 -0400)]
puppet: tidy up the compute nova neutron config

Updates the puppet configuration for the Nova neutron configs
so that we do the join conversions in the Heat templates and
use only hiera for configuration of the ::nova::network::neutron
class. This updates the compute configuration to match what
we now do on the controller as well.

Change-Id: I2b352551777f64e0ceb119f48cc3b3ab1779f4d5

9 years agoUse Cinder multibackend by default
Yanis Guenane [Mon, 9 Mar 2015 11:17:31 +0000 (12:17 +0100)]
Use Cinder multibackend by default

Currently Cinder iscsi backend is configured within the DEFAULT section.
Since we aim to support multibackend, this commit puts the iscsi backend
in its own section and enable it by default configuring it properly.
Also adds a parameter which can be used to disable the default backend.

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: I05fb44b59829c0afa8a6588956a48320f2f65159

9 years agoMerge "Puppet: Configure neutron_api_class on controller"
Jenkins [Thu, 12 Mar 2015 10:28:26 +0000 (10:28 +0000)]
Merge "Puppet: Configure neutron_api_class on controller"

9 years agoPuppet: Configure neutron_api_class on controller
Jiri Stransky [Wed, 11 Mar 2015 17:44:28 +0000 (18:44 +0100)]
Puppet: Configure neutron_api_class on controller

We're already configuring Neutron in Overcloud, but the controller
is still configured to use the default Nova neutron_api_class for
default configuration for networking, which means it used Nova Network
and not Neutron. This causes some of the Nova API is_neutron
checks to behave incorrectly.

This patch updates the controller to use nova::network::neutron (like
we already do on the overcloud_compute.pp role). As part of the change
several of the compute specific hiera settings for the
nova::network::neutron class have been moved to common.yaml.

Change-Id: Id2d5a5a0aa1ca087de714880ef1ea98484b06849

9 years agoMerge "puppet: add ordering for Neutron agents"
Jenkins [Wed, 11 Mar 2015 19:07:18 +0000 (19:07 +0000)]
Merge "puppet: add ordering for Neutron agents"

9 years agopuppet: add ordering for Neutron agents
Emilien Macchi [Tue, 10 Mar 2015 23:01:11 +0000 (19:01 -0400)]
puppet: add ordering for Neutron agents

Before starting the Neutron agents, we need to make sure neutron-server
is running so we don't have a race when starting the services.
This patch adds some orchestration to do it.

Change-Id: I24db069d6af1fadd302b0924f769db3f58f65685

9 years agoInclude cinder::glance into the ctrl manifest
Yanis Guenane [Mon, 9 Mar 2015 16:16:12 +0000 (17:16 +0100)]
Include cinder::glance into the ctrl manifest

Include ::cinder::glance into the controller manifest to have proper
(upstream) default value for cinder's glance related parameters.

Change-Id: I9ac83b9e997d3c2502b08b642d4e41dba36ddf67

9 years agoPuppet: define swift_store_auth_address in hiera
Emilien Macchi [Fri, 6 Mar 2015 20:10:47 +0000 (15:10 -0500)]
Puppet: define swift_store_auth_address in hiera

This patch updates the glance::backend::swift implementation to
use only hiera variables instead of a mix of hiera, and inline
class variables.

Nothing was functionally wrong with the previous approach but now
that we can compose more freely using the SoftwareDeployment defining
all the variables in Hiera makes sense and is cleaner.

Change-Id: I6d319841488d2ed94e088a5ac21e41dcd964ed1a
Co-Authored-By: Dan Prince <dprince@redhat.com>
9 years agopuppet: set heat-user using class parameter
Dan Prince [Sat, 7 Mar 2015 03:09:05 +0000 (22:09 -0500)]
puppet: set heat-user using class parameter

The puppet-heat module just added a new class
parameter to help manage instance_user today in
I44fef59d3ed1f7851d8504855a7ae0d5460fdc84. This
actually broke us because we were setting it manually
via heat_config (puppet doesn't allow two settings).

Change-Id: Ib25e8de8ca3849701d506a5d0c956a6f3317ac8a
Closes-bug: #1429328

9 years agoCorrect the parameter_defaults section name.
Dan Prince [Wed, 4 Mar 2015 17:12:04 +0000 (12:12 -0500)]
Correct the parameter_defaults section name.

Also, we can actually uncomment this now that heatclient 0.3
has been released.

Change-Id: I0b4ce13f1426c364ea7921596022e5165e025fdb

9 years agoPuppet: First support Ceph
Emilien Macchi [Sun, 1 Feb 2015 23:52:18 +0000 (18:52 -0500)]
Puppet: First support Ceph

This is a first implementation of Ceph support in TripleO with Puppet:

* Install ceph-mon on controller node
* Install ceph-osd on cephstorage node

Co-Authored-By: Giulio Fidente <gfidente@redhat.com>
Change-Id: I48488cbe950047fae5e746e458106d6edb9a6183

9 years agoMerge "Add allNodesConfig to Swift storage nodes"
Jenkins [Tue, 24 Feb 2015 21:17:36 +0000 (21:17 +0000)]
Merge "Add allNodesConfig to Swift storage nodes"

9 years agoMerge "BlockStore: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:30 +0000 (21:17 +0000)]
Merge "BlockStore: Exec puppet after all configuration"

9 years agoMerge "ObjectStore: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:23 +0000 (21:17 +0000)]
Merge "ObjectStore: Exec puppet after all configuration"

9 years agoMerge "Compute: Exec puppet after all configuration"
Jenkins [Tue, 24 Feb 2015 21:17:01 +0000 (21:17 +0000)]
Merge "Compute: Exec puppet after all configuration"

9 years agoMerge "Deprecate the old mergepy overcloud templates"
Jenkins [Tue, 24 Feb 2015 21:12:50 +0000 (21:12 +0000)]
Merge "Deprecate the old mergepy overcloud templates"

9 years agoDeprecate the old mergepy overcloud templates
Dan Prince [Mon, 23 Feb 2015 19:22:12 +0000 (14:22 -0500)]
Deprecate the old mergepy overcloud templates

This patch moves all the related mergepy templates for the
overcloud into a deprecated directory. The Makefile has
been updated so that overcloud.yaml is still generated
at the top level so this shouldn't break end users.

This is to reduce confusion for new users who are learning the
TripleO heat templates and find the fact that we have two full
implementations very confusing.

Change-Id: I0848aca4dee3e37cb4c6089c5f655ad22ac6c5fd

9 years agoAdd allNodesConfig to Swift storage nodes
Dan Prince [Mon, 23 Feb 2015 19:06:54 +0000 (14:06 -0500)]
Add allNodesConfig to Swift storage nodes

This patch applies the allNodesConfig data to swift storage
nodes. This contains hosts information which could be useful.

Change-Id: Iaccfdc698e371d6618d561c33f256ccc3c166fb7

9 years agoBlockStore: Exec puppet after all configuration
Dan Prince [Mon, 23 Feb 2015 19:00:24 +0000 (14:00 -0500)]
BlockStore: Exec puppet after all configuration

This patch adds a new BlockStoreNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the BlockStore config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I29b3574e341eecd53b2867788f415bff153cfa9f

9 years agoObjectStore: Exec puppet after all configuration
Dan Prince [Fri, 20 Feb 2015 00:31:38 +0000 (16:31 -0800)]
ObjectStore: Exec puppet after all configuration

This patch adds a new ObjectStoreNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the ObjectStore config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I778b87a17d5e6824233fdf9957c76549c36b3f78

9 years agoCompute: Exec puppet after all configuration
Dan Prince [Thu, 19 Feb 2015 23:54:24 +0000 (15:54 -0800)]
Compute: Exec puppet after all configuration

This patch adds a new ComputeNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the Compute config deployments have executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but allNodes data would not be
guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Change-Id: I80bccd692e45393f8250607073d1fe7beb0d7396

9 years agoSplit out BootstrapNode SoftwareConfig
Dan Prince [Thu, 19 Feb 2015 16:41:47 +0000 (08:41 -0800)]
Split out BootstrapNode SoftwareConfig

This patch splits out the BootstrapNode config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure bootstrap_nodeid.

Change-Id: I691a9d7c474866038a5d47beab295899b5479d03

9 years agoPuppet/RabbitMQ: support clustering
Giulio Fidente [Fri, 13 Feb 2015 11:36:05 +0000 (06:36 -0500)]
Puppet/RabbitMQ: support clustering

Allow to install & configure RabbitMQ in cluster with Puppet on
the controller node.

Change-Id: Iebbf55c75b8c80453c7313bb41faf42c7fdf7159

9 years agoSplit out allNodesConfig SoftwareConfig
Dan Prince [Fri, 13 Feb 2015 02:54:57 +0000 (21:54 -0500)]
Split out allNodesConfig SoftwareConfig

This patch splits out the allNodesConfig config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure rabbit_nodes. The puppet deployment doesn't support
hosts, or freeform sysctl metadata yet so those are the same
for now as well.

Change-Id: I34ae30b1f37aca8b39586f7e350511462d66f694

9 years agoRevert "puppet: disable swift proxy and glance backend"
Dan Prince [Fri, 13 Feb 2015 02:16:31 +0000 (21:16 -0500)]
Revert "puppet: disable swift proxy and glance backend"

This reverts commit 4d470abc589c660cd55e4ced92de234fdf83d882
where we disabled swift (and the glance swift backend) due
to the fact that some of the Heat metadata wasn't showing up.

Change-Id: Ib0c01be5844aa79d74b7de02ba3d0657db5047ba
Closes-bug: 1418805

9 years agoSplit out SwiftDevicesAndProxy SoftwareConfig
Dan Prince [Fri, 13 Feb 2015 02:09:02 +0000 (21:09 -0500)]
Split out SwiftDevicesAndProxy SoftwareConfig

This patch splits out the SwiftDevicesAndProxy config
such that alternate implementation (puppet for example)
can implement their own SoftwareConfig's via a nested stack.

This is controlled by the standard overcloud heat environment.

For os-apply-config deployments the implementation should work the
same as before.

For puppet deployments the implementation uses hiera metadata
to configure swift devices.

Partial-bug: 1418805

Change-Id: Ibf6038460f36279ad51a04947589d4a03a553f66

9 years agoController: Exec puppet after all configuration
Dan Prince [Thu, 12 Feb 2015 20:49:00 +0000 (15:49 -0500)]
Controller: Exec puppet after all configuration

This patch adds a new ControllerNodesPostDeployment resource
which can be used along with the environment file to
specify a nested stack which is guaranteed to execute
after all the Controller config (HA, or other) have
executed.

This is really useful for Puppet in that Heat actually
controls where puppet executes in the deployment
process and we want to ensure puppet runs after
all hiera configuration data has be deployed to
the nodes. With the previous approach some of the
data would be there, but most of the HA data which
actually gets composed outside of the controller-puppet.yaml
nested stack would not be guaranteed to be there in time.

As os-apply-config (tripleo-image-elements) have their
ordering controlled within the elements themselves an empty stubbed
in nested stack has been added so that we don't break that
implementation.

Partial-bug: 1418805

Change-Id: Icd6b2c9c1f9b057c28649ee3bdce0039f3fd8422

9 years agoMove all puppet templates into puppet directory.
Dan Prince [Thu, 12 Feb 2015 19:34:16 +0000 (14:34 -0500)]
Move all puppet templates into puppet directory.

This cleans up the top level tree by moving all the puppet
related bits into the puppet directory. The only exception
is overcloud-resource-registry-puppet.yaml which is
the puppet environment file and is used externally.

Change-Id: Idb65a7143b0f29e5579d4e9d1642e4cda6f65d50

9 years agoAdd Ceph related templates needed to configure Cinder with Ceph
Giulio Fidente [Mon, 24 Nov 2014 21:55:22 +0000 (16:55 -0500)]
Add Ceph related templates needed to configure Cinder with Ceph

The new ceph-source.yaml file provides the config settings needed
by the elements which configure Ceph on controllers (monitors) and
storage nodes (OSDs) as well as the Cinder backend which uses it.

There is also a without-mergepy copy named ceph-storage.yaml

Change-Id: I954861536c41b2a7e6cbd86a0f0b55004eed4c70

9 years agopuppet: only enable Ntp if ntp::servers is set
Dan Prince [Fri, 6 Feb 2015 13:42:59 +0000 (08:42 -0500)]
puppet: only enable Ntp if ntp::servers is set

Not all installations have an NtpServer configured and if
they don't the ntp service will fail to startup correctly.

This patch makes it so that ntp is only enabled if
the ntp::servers array is greater than 0.

Change-Id: I8417f87ad2a3c1237ebb00ee1232b5313cd45d46

9 years agopuppet: disable swift proxy and glance backend
Dan Prince [Fri, 6 Feb 2015 12:37:30 +0000 (07:37 -0500)]
puppet: disable swift proxy and glance backend

We have an issue where swift.devices metadata isn't showing
up on our controllers. This causes ringbuilding to fail
meaning swift-proxy won't startup.

This patch disables the swift-proxy and glance swift backend
until we can figure out exactly what caused this change.

Change-Id: I723a4b703d979d7475ac48f41c4c0ac91c306884
Partial-bug: 1418805

9 years agopuppet: Add EnablePackageInstall option
Dan Prince [Thu, 5 Feb 2015 02:45:44 +0000 (21:45 -0500)]
puppet: Add EnablePackageInstall option

This adds an option which enables package installation via
Yum when Puppet executes. Users might want to disable Yum
installation of packages via puppet when using pre-installed
images.

The option is off by default: meaning that Puppet will no
longer install packages by default. Users will need to
enable the EnablePackageInstall in order to get
the previous behavior.

The intent is to use the default_parameters section
of the Heat environment to allow users to cleanly enable this
features without wiring it into the top level. This is because
the new parameter is Puppet specific and doesn't really apply to
other implementations. Kilo Heat already has support for
default_parameters and so does python-heatclient.

NOTE: most TripleO users do not yet have the heatclient
features because setup-clienttools in tripleo-incubator only installs
releases via pip. It is for these reasons the default_parameters
section in overcloud-resource-registry-puppet.yaml is commented out
for now.

Change-Id: I3af71b801b87d080b367d9e4a1fb44c1bfea6e87

9 years agoPuppet: SNMP support for undercloud ceilometer
Dan Prince [Sun, 1 Feb 2015 22:18:43 +0000 (17:18 -0500)]
Puppet: SNMP support for undercloud ceilometer

This configures an snmp agent for the undercloud
ceilometer 'hardware' metering. This rely's on the
razorsedge/puppet-snmp which we are adding in
 I8ae104de7382767c3448a493cd37ff2994cf4f52.

Change-Id: If2b6b63279b9b0402c5136ff1635e10acad1de7e

9 years agoPuppet: wire in neutron_dnsmasq_options
Dan Prince [Sun, 1 Feb 2015 18:40:23 +0000 (13:40 -0500)]
Puppet: wire in neutron_dnsmasq_options

This patch updates puppet on the controller so that it
configures the Neutron dnsmasq options file data with
the value provided by the Heat NeutronDnsmasqOptions
parameter.

Properly configuring this setting can help resolve/tune
overcloud instance connectivity issues w/ SSH etc.

Change-Id: If47ab3d3002ebe19fc980ca5d37f84f4d8851f9b

9 years agoPuppet: correct neutron metadata agents nova ip
Dan Prince [Sun, 1 Feb 2015 02:39:09 +0000 (21:39 -0500)]
Puppet: correct neutron metadata agents nova ip

This updates the controller config for the Neutron metadata
agent so that it configures the correct nova_metadata_ip
in /etc/neutron/metadata_agent.ini.

Change-Id: I4d6658ba54e582673938fa14a8c7de287dcd6662
Closes-bug: #1416781

9 years agoPuppet: move LB configs onto LB resources
Dan Prince [Sun, 25 Jan 2015 14:00:27 +0000 (09:00 -0500)]
Puppet: move LB configs onto LB resources

This moves the loadbalancer composition class parameters
into the loadbalancer specific software deployment.
This keeps the resource contained and seperate from the rest
of the OS hiera data configs.

Change-Id: I8af48b479348e431a8e563917e1345ca4b895a60

9 years agoPuppet: Heat API and Engine
Dan Prince [Fri, 23 Jan 2015 20:52:52 +0000 (15:52 -0500)]
Puppet: Heat API and Engine

This patch adds the ability to configure the Heat API and
Heat engine on controller nodes via puppet.

Change-Id: Ie81090bceed3e18199a36ebb11d1cbcaea83c410

9 years agoPuppet: Ntp support
Dan Prince [Thu, 22 Jan 2015 20:03:03 +0000 (15:03 -0500)]
Puppet: Ntp support

This patch adds NTP support to all roles.

As part of this change overcloud-without-mergepy.yaml has
also been updated so that it passes the NtpServer parameters into
the Swift and Cinder storage node templates so that Ntp can
also be configured on those machines as well.

NOTE: The puppet support here uses the puppetlabs-ntp modules
which we add in Ib10ccbfdb3140b19f40049707548c6655d250e1c.

Change-Id: If2ef236fa42a714e84c6944eee5fe4daddf3fedf

9 years agoPuppet: Ceilometer controller support
Dan Prince [Thu, 22 Jan 2015 19:38:36 +0000 (14:38 -0500)]
Puppet: Ceilometer controller support

This patch adds support for the Ceilometer controller
role including the Ceilometer:

 -API
 -central agent
 -alarm notifier
 -alarm evaluator
 -collector
 -expirer

In order to enable swift metering the swift::proxy ceilometer middleware
was added in.

Also, a minor adjustment to the existing ceilometer HA proxy setting
was made to accommodate ceilometer auth settings. (not exactly sure
why but this seems to be required)

Like upstream TripleO Ceilometer is currently using a MySQL database
backend. A follow on patch can support configuring MongoDB for use
with Ceilometer.

Change-Id: I4e171274bd7679d386d93492d13dfa7c5d37f6a8

9 years agoRemove unused cinder params from -without-mergepy
Dan Prince [Tue, 20 Jan 2015 13:49:53 +0000 (08:49 -0500)]
Remove unused cinder params from -without-mergepy

Cinder block storage nodes shouldn't need to know the
AdminPassword and CinderPassword values. There are
no services which require Keystone related passwords
on the block storage nodes.

Change-Id: I4aa89347c60ec6258bd66725a895f6fd2b4844f6

9 years agoPuppet: Cinder common block storage support
Dan Prince [Mon, 19 Jan 2015 20:41:26 +0000 (15:41 -0500)]
Puppet: Cinder common block storage support

This patch implements the required changes to configure
common Cinder block storage nodes via Puppet.

Change-Id: Iac8b4679a00f58d5faac4a1d08b7a830f0360ba5

9 years agoSwift: set default replicas to 3
Dan Prince [Sun, 11 Jan 2015 03:04:42 +0000 (22:04 -0500)]
Swift: set default replicas to 3

Our existing default (replicas == 1) means that no data
(or copies) is being replicated in a multi-node Swift
environment. This seems like a bad production default
setting and could easily slip by if not set.

Setting it to 3 shouldn't hurt anything and seems to follow
suit with what several production installers (based around Puppet)
actually use. If using an installation with less than 3 swift
nodes I believe swift will do its best, and still work fine.

FWIW I noticed this when testing a multi-node Puppet swift
installation and was surprised when I didn't see any *data
files getting replicated across the storage cluster.

Change-Id: I44bdfff7aae6bdf845b79ca1f8f450c22113caed

9 years agoRemove unused swift params from -without-mergepy
Dan Prince [Sun, 11 Jan 2015 02:44:27 +0000 (21:44 -0500)]
Remove unused swift params from -without-mergepy

In doing the Puppet version of the Swift role I noticed
4 parameters which we apply to storage nodes which should
not be required. This patch drops the following parameters
from the swift-storage and swift-storage-puppet nested
stacks which should not be required.

 1) ControllerIP: There is no reason a storage node should need
 the IP address of the controller. The swift proxy would need
 this information in order to be able to contact keystone.
 This swift-proxy is not installed on storage nodes so we can
 drop the parameter here.

 2) NeutronEnableTunnelling: There is no reason for Neutron
 to be installed on Swift storage nodes. No need to create
 an OVS bridge either.

 3) NeutronNetworkType: Similar to above. No neutron requirements
 exist here so this parameter is not required.

 4) Password: This only applies to the the swift-proxy which is
 currently part of our controller role. Storage nodes shouldn't need
 the keystone service-password for any reason.

Change-Id: Icbf05363475c388fc722277da3d3d00a7355b19a

9 years agoPuppet: Switch glance to use a swift backend
Dan Prince [Fri, 9 Jan 2015 19:01:31 +0000 (14:01 -0500)]
Puppet: Switch glance to use a swift backend

Now that we have swift we can switch glance over
to make use of it.

Change-Id: I9513cb63079235337b684aa734af73a0f0cc0afd

9 years agoPuppet: Swift Storage node support
Dan Prince [Fri, 9 Jan 2015 14:19:21 +0000 (09:19 -0500)]
Puppet: Swift Storage node support

This patch implements the required changes to configure
swift storage nodes via Puppet. Similar to the overcloud
we generate the rings on each node (with the same seed).

Change-Id: I677c85b09b6e656b3ac1f938a4bd6bc7daae1755

9 years agoPuppet: Swift Overcloud Proxy/Storage support
Dan Prince [Thu, 8 Jan 2015 15:10:41 +0000 (10:10 -0500)]
Puppet: Swift Overcloud Proxy/Storage support

This patch adds support for a Swift proxy and storage
node on the controller.

The implementation is fairly straightforward with the
exception of building the ring. I've followed an
upstream TripleO model here where we build the
actual ring on each node (rather than build once
and rsync). This works because Heat will always
know all the devices ahead of time. In the future
when we have Heat breakpoints it might be possible
to consider optimizing this by generating the ring
once and then rsyncing to all the nodes.

The ringbuilder logic is executed as a seperate
Heat software deployment. On the controller the ring
is executed in between the base service (mysql/rabbit)
and OpenStack service steps. This is to ensure the
ring exists before the Swift proxy is started.
Having the ringbuilder.pp logic as a separate software
config should allow us to reuse it for the Storage
node role.

It should also be noted that swift.zones support is
added here but we are missing an upstream Heat
template change in order for it to be wired
in properly. See: I0e0f5189da1575f2e1ed7fba4bbbe13a8fbf6221

Likewise we need to properly wire in SwiftRingBuild as well.
See: I01311ec3ca265b151f8740bf7dc57cdf0cf0df6f
The underlying puppet ringbuilder code is already wired
to support this change when it lands.

As is this works today and will provide a working Overcloud
Swift-proxy/storage node config. Will follow this up with
a related Swift storage node patch which should allow
puppet to be used for configuration on the storage nodes
as well...

Change-Id: Id1272f796e2507a7357309e8cd6a51ad9e0160af

9 years agoCompute: consolidated nested stack
Dan Prince [Wed, 14 Jan 2015 20:54:45 +0000 (15:54 -0500)]
Compute: consolidated nested stack

In I250dc1a8c02626cf7d1a5d2ce92706504ec0c7de we split
out just the Controller software config in an effort
to provide hooks for alternate implementations (puppet).

This sort of worked but caused quirky ordering issues
with signal handling. It also causes problems for Tuskar
which would prefer to think of these nested stacks and
not have us split out just the software configs like this.

This patch moves all the compute related stuff for
our two implementations:

compute.yaml: is used by os-apply-config (uses the
tripleo-image-elements)
compute-puppet.yaml: uses stackforge puppet-* modules for
configuration

By duplicating the entire compute in this manner we make
it much easier to create dependencies and implement proper
signal handling. The only (temporary) downside is the duplication
of parameters most of which will eventually go away when we move
using the global parameters via Heat environment files instead.

Change-Id: I49175d1843520abc80fefe9528442e5dda151f5d

9 years agoController: consolidated nested stack
Dan Prince [Wed, 14 Jan 2015 19:58:35 +0000 (14:58 -0500)]
Controller: consolidated nested stack

In I228216a0b55ff2d384b281d9ad2a61b93d58dab9 we split
out just the Controller software config in an effort
to provide hooks for alternate implementations (puppet).

This sort of worked but caused quirky ordering issues
with signal handling. It also causes problems for Tuskar
which would prefer to think of these nested stacks and
not have us split out just the software configs like this.

This patch moves all the controller related stuff for
our two implementations:

 controller.yaml: is used by os-apply-config (uses the
tripleo-image-elements)
 controller-puppet.yaml: uses stackforge puppet-* modules for
configuration

By duplicating the entire controller in this manner we make
it much easier to create dependencies and implement proper
signal handling. The only (temporary) downside is the duplication
of parameters most of which will eventually go away when we move towards
using the global parameters via Heat environment files instead.

Change-Id: Iaf3c889d7c8815f862308cd8e15ce1010059f5c6

9 years agoMerge "Add parameter to manage usage of Neutron l3_ha option"
Jenkins [Tue, 27 Jan 2015 10:03:34 +0000 (10:03 +0000)]
Merge "Add parameter to manage usage of Neutron l3_ha option"

9 years agoMerge "Remove invalid NTP configuration in templates"
Jenkins [Mon, 19 Jan 2015 10:20:40 +0000 (10:20 +0000)]
Merge "Remove invalid NTP configuration in templates"

9 years agoMerge "Add SwiftMountCheck to overcloud-without-mergepy"
Jenkins [Fri, 9 Jan 2015 22:35:50 +0000 (22:35 +0000)]
Merge "Add SwiftMountCheck to overcloud-without-mergepy"

9 years agoMerge "Add SwiftMinPartHours to overcloud-without-mergepy"
Jenkins [Fri, 9 Jan 2015 20:29:16 +0000 (20:29 +0000)]
Merge "Add SwiftMinPartHours to overcloud-without-mergepy"

9 years agoAdd parameter to manage usage of Neutron l3_ha option
Giulio Fidente [Thu, 8 Jan 2015 12:13:48 +0000 (07:13 -0500)]
Add parameter to manage usage of Neutron l3_ha option

This change will allow for the enablement of Neutron routers HA
via the new NeutronL3HA parameter.

Change-Id: Ia5f7c0b4e89159456482e840c50d166ec5f25d4c
Implements: blueprint tripleo-icehouse-ha-production-configuration

9 years agoAdd SwiftMountCheck to overcloud-without-mergepy
Dan Prince [Fri, 9 Jan 2015 15:11:36 +0000 (10:11 -0500)]
Add SwiftMountCheck to overcloud-without-mergepy

This was added in I36fece56bafa9fe9c4883b572687b3fc819eeae1
and is missing from overcloud-without-mergepy.

Change-Id: I5c2566cc77247574f8d687eaab8094de481a8c67

9 years agoAdd SwiftMinPartHours to overcloud-without-mergepy
Dan Prince [Fri, 9 Jan 2015 14:43:42 +0000 (09:43 -0500)]
Add SwiftMinPartHours to overcloud-without-mergepy

This was added in Icc5e431a7e2884b3ca3a255b6fd901619bc98460
and is missing from overcloud-without-mergepy.

Change-Id: I1273b646c04783712fd3f8baccafead11817689c

9 years agoMerge "Default BlockStorageCount to 0 for without-mergepy jobs"
Jenkins [Fri, 9 Jan 2015 14:25:09 +0000 (14:25 +0000)]
Merge "Default BlockStorageCount to 0 for without-mergepy jobs"

9 years agoDefault BlockStorageCount to 0 for without-mergepy jobs
Giulio Fidente [Wed, 10 Dec 2014 10:38:24 +0000 (11:38 +0100)]
Default BlockStorageCount to 0 for without-mergepy jobs

We have never created these additional storage nodes by default with
the old templates; we agreed on adding a job for this in CI [1] so
we will override the default value in the specific CI job.

1. https://github.com/openstack-infra/tripleo-ci/blob/master/docs/wanted_ci_jobs.csv

Change-Id: Iaec38807bc209fc28d83e3d6922269e803110053

9 years agoRemove invalid NTP configuration in templates
Nicholas Randon [Wed, 7 Jan 2015 18:54:08 +0000 (18:54 +0000)]
Remove invalid NTP configuration in templates

Currently the all templates have an invalid setting for NTP
setup for the fudge setting. This should be removed from
the templates which will remove the warning seen in syslog.

ntpd[...]: inappropriate address xxx.xxx.xxx.xxx for the
    fudge command, line ignored

Partial-Bug: 1408379
Relates-To: Ib9931b84925d9ceb32f18e9adc5be64402fbf61e
Change-Id: I56a03dc0a899a8c515f2a05d678d7e80e9b7b93c

9 years agoPuppet: overcloud controller config
Dan Prince [Sat, 20 Dec 2014 02:48:45 +0000 (21:48 -0500)]
Puppet: overcloud controller config

This patch provides an alternate implementation of
the OS::TripleO::Controller::SoftwareConfig which uses Puppet
to drive the configuration. Using this it is possible
to create a fully functional overcloud controller instance
which has the controller node configured via Puppet
stackforge modules. Initially this includes only the
following services:

  MySQL
  RabbitMQ
  Keepalived/HAProxy (HA is not yet fully supported however)
  Nova
  Neutron
  Keystone
  Glance (file backend)
  Cinder

Using these services it is possible to run devtest_overcloud.sh
to completion. The idea is that we can quickly add more
services once we have CI in place.

In order to test this you'll want to build your images
with these elements:

   os-net-config
   heat-config-puppet
   puppet-modules
   hiera

None of the OpenStack specific TripleO elements
should be used with this approach (the nova/neutron
elements were NOT used to build the controller image).

Also, rather than use neutron-openvswitch-agent to configure
low level networking it is recommended that os-net-config
by configured directly via heat modeling rather than
parameter passing to init-neutron-ovs. This allows us to
configure the physical network while avoiding the coupling to
the neutron-openvswitch-element that our standard
parameter driven networking currently uses. (We still need
to move init-neutron-ovs so that it isn't coupled and/or deprecate
its use entirely because the heat drive stuff is more flexible.)

Packages may optionally be pre-installed via DIB using the
-p option (-p openstack-neutron,openstack-nova) etc.

Change-Id: If8462e4eacb08eced61a8b03fd7c3c4257e0b5b8

9 years agoMerge "Controller: Drive os-net-config via software conf"
Jenkins [Thu, 8 Jan 2015 14:39:31 +0000 (14:39 +0000)]
Merge "Controller: Drive os-net-config via software conf"

9 years agoMerge "Controller: Split out software config"
Jenkins [Thu, 8 Jan 2015 14:39:23 +0000 (14:39 +0000)]
Merge "Controller: Split out software config"

9 years agoMerge "Bring back (abandoned) support for Cinder/NFS"
Jenkins [Thu, 8 Jan 2015 08:50:15 +0000 (08:50 +0000)]
Merge "Bring back (abandoned) support for Cinder/NFS"

9 years agoMerge "Allow setting Neutron tunnel type in no mergepy"
Jenkins [Thu, 8 Jan 2015 08:23:50 +0000 (08:23 +0000)]
Merge "Allow setting Neutron tunnel type in no mergepy"

9 years agoMerge "Don't store Ceilo DB credentials on compute node"
Jenkins [Thu, 8 Jan 2015 08:22:55 +0000 (08:22 +0000)]
Merge "Don't store Ceilo DB credentials on compute node"

9 years agoMerge "Puppet: overcloud compute config"
Jenkins [Thu, 8 Jan 2015 08:17:23 +0000 (08:17 +0000)]
Merge "Puppet: overcloud compute config"

9 years agoMerge "Drop the MysqlClusterUniquePart validation"
Jenkins [Wed, 7 Jan 2015 21:27:55 +0000 (21:27 +0000)]
Merge "Drop the MysqlClusterUniquePart validation"

9 years agoMerge "Pass Horizon port through to controller nodes"
Jenkins [Wed, 7 Jan 2015 20:23:06 +0000 (20:23 +0000)]
Merge "Pass Horizon port through to controller nodes"

9 years agoAllow setting Neutron tunnel type in no mergepy
Ben Nemec [Mon, 5 Jan 2015 23:32:57 +0000 (17:32 -0600)]
Allow setting Neutron tunnel type in no mergepy

The Neutron tunnel type settings were missing from the Controller
section of the without-mergepy template, which made it impossible
to configure any tunnel other than gre.

Change-Id: Ia2579ed39a16d2b9826ce8406cb97fc116e3d595

9 years agoController: Drive os-net-config via software conf
Dan Prince [Sat, 20 Dec 2014 02:35:48 +0000 (21:35 -0500)]
Controller: Drive os-net-config via software conf

This example extends the controller software configuration
so that heat metadata is used to model the os-net-config
YAML (ultimately JSON) directly. The existing
os-net-config element already supports this format.

Configuring the physical network layer in this manner
would supplant the ever growing list of Heat parameters
that we have and is something that could be automatically
generated via tuskar.

The default is to use net-config-noop.yaml which
will pass no config metadata into the os-net-config
element which will essentially disable it in favor
of using parameters w/ init-neutron-ovs.

Change-Id: Ifba60454ee11222173a9762882e767a836a4545c

9 years agoController: Split out software config
Dan Prince [Tue, 28 Oct 2014 22:00:40 +0000 (18:00 -0400)]
Controller: Split out software config

This is a step towards supporting pluggable software configurations
in the heat templates. By moving controller-config out of controller.yaml
we make it possible to define alternate implementations by
changing the OS::TripleO::ControllerConfig value in the
overcloud-resource-registry.yaml heat environment file.

Change-Id: I228216a0b55ff2d384b281d9ad2a61b93d58dab9

9 years agoPuppet: overcloud compute config
Dan Prince [Wed, 22 Oct 2014 18:22:44 +0000 (14:22 -0400)]
Puppet: overcloud compute config

This patch provides an alternate implementation of
the OS::TripleO::Compute::SoftwareConfig which uses Puppet
to drive the configuration. Using this it is possible
to create a fully functional overcloud compute instance
which has the compute node configured via Puppet
stackforge modules.  This includes all the Nova, Neutron,
and Ceilometer configuration required to make things work.

In order to test this you'll want to build your images
with these elements:

 os-net-config
 heat-config-puppet
 puppet-modules
 hiera

None of the OpenStack specific TripleO elements
should be used with this approach (the nova/neutron/ceilometer
elements were NOT used to build the compute image).

Also, rather than use neutron-openvswitch-agent to configure
low level networking it is recommended that os-net-config
by configured directly via heat modeling rather than
parameter passing to init-neutron-ovs. This allows us to
configure the physical network while avoiding the coupling to
the neutron-openvswitch-element that our standard
parameter driven networking currently uses. (We still need
to move init-neutron-ovs so that it isn't coupled and/or deprecate
its use entirely because the heat drive stuff is more flexible.)

Packages may optionally be pre-installed via DIB using the
-p option (-p openstack-neutron,openstack-nova).

Change-Id: Ic36be25d70f0a94ca07ffda6e0005669b81c1ac7

9 years agoDrop the MysqlClusterUniquePart validation
Dan Prince [Fri, 2 Jan 2015 13:54:12 +0000 (08:54 -0500)]
Drop the MysqlClusterUniquePart validation

Trying to use overcloud-without-mergepy currently fails with
a validation error around MysqlClusterUniquePart. This
works around the issue by temporarily dropping the validation.

Change-Id: If93945a2c3396b07b592d08efb1f66e11d6194dd
Partial-bug: #1405446

9 years agoPass Horizon port through to controller nodes
Jonathan Brownell [Tue, 23 Dec 2014 17:22:39 +0000 (09:22 -0800)]
Pass Horizon port through to controller nodes

The Horizon port may vary based on SSL enablement, and needs
to be known by the nodes for the purpose of iptables rules, etc.

Change-Id: Iec475a6c245a5bfe8b1d63ff72b6d0299861615c

9 years agoMerge "Don't store Neutron DB credentials on compute node"
Jenkins [Tue, 23 Dec 2014 17:30:45 +0000 (17:30 +0000)]
Merge "Don't store Neutron DB credentials on compute node"

9 years agoMerge "Don't store Nova DB credentials on compute nodes"
Jenkins [Tue, 23 Dec 2014 17:30:28 +0000 (17:30 +0000)]
Merge "Don't store Nova DB credentials on compute nodes"

9 years agoCompute: drive NW configuration via software conf
Dan Prince [Thu, 23 Oct 2014 19:17:49 +0000 (15:17 -0400)]
Compute: drive NW configuration via software conf

This example extends the compute software configuration
so that heat metadata is used to model the os-net-config
YAML (ultimately JSON) directly. The existing
os-net-config element already supports this format.

Configuring the physical network layer in this manner
would supplant the ever growing list of Heat parameters
that we have and is something that could be automatically
generated via tuskar.

The default is to use net-config-noop.yaml which
will pass no config metadata into the os-net-config
element which will essentially disable it in favor
of using parameters w/ init-neutron-ovs.

Change-Id: I30f325b1751caaef5624537e63ee27c2e418d5c8

9 years agoMerge "Set default network interfaces to nic1"
Jenkins [Fri, 19 Dec 2014 14:01:22 +0000 (14:01 +0000)]
Merge "Set default network interfaces to nic1"

9 years agoSet more aggressive keepalive timings
Giulio Fidente [Wed, 17 Dec 2014 18:06:28 +0000 (19:06 +0100)]
Set more aggressive keepalive timings

We want to customize the default kernel keepalive timings and
make them more aggressive to workaround lack of hearbeat support
in the Oslo RabbitMQ client, see:

https://bugs.launchpad.net/oslo.messaging/+bug/856764/comments/19
and
https://bugs.launchpad.net/oslo.messaging/+bug/856764/comments/70

Change-Id: Ieac08f595086acb8dd336e33efc705ee0b8a3a87
Closes-Bug: 1301431
Closes-Bug: 1385240
Closes-Bug: 1385234

9 years agoBring back (abandoned) support for Cinder/NFS
Giulio Fidente [Fri, 21 Nov 2014 11:11:26 +0000 (06:11 -0500)]
Bring back (abandoned) support for Cinder/NFS

We used to have a YAML file providing a test setup for Cinder/NFS
which could be used via a special Makefile target; this was not
used in CI anymore though and overtime things broke.

This change aims at bringing that functionality back and also
make it easier to use it via a number of changes:

* delete unmaintained nfs-server-source (not working due to
  changes in the elements)
* delete (unneeded) block-storage-nfs
* remove the hidden block-storage-with-nfs target from Makefile
* add a some nfs-source which supports newer elements and
  newer template language as well
* improve existing comments in Makefile documeting how to use it

Change-Id: I96144ee2f4ca33bd7467f09ad960ea268c1250bf