recipes/pools_create.rb (13 lines of code) (raw):

# # Author: Hans Chris Jones <chris.jones@lambdastack.io> # Copyright 2017, Bloomberg Finance L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Allows for you to define pools for whatever group you wish such as 'radosgw' or 'rbd' or both. # There is a pools.rb attribute that sets default pool names based on pool types ('radosgw', 'rbd') # along with settings for each. The settings are applied to ALL pool names in the given list for the given type. # All of those values can be overridden using the override_attributes in your environment.yaml file. if node['ceph']['pools']['active'] node['ceph']['pools']['active'].each do |pool| # Create pool and set type (replicated or erasure - default is replicated) if pool == 'radosgw' && !node['ceph']['pools']['radosgw']['federated_regions'].empty? && node['ceph']['pools']['radosgw']['federated_enable'] # NOTE: *Must* have federated_regions and federated_zones if doing any federated processing! ceph_chef_build_federated_pool(pool) end # If federation is used then inside this function it will loop through the federated pool names and created them. # If federation is not used then the standard pool names and settings will be used. ceph_chef_pool_create(pool) end end # Safety precaution so as to not overload the mon nodes. bash 'wait-for-pgs-creating' do action :nothing user 'root' # code "sleep 1; while ceph -s | grep -v mdsmap | grep creating >/dev/null 2>&1; do echo Waiting for new pgs to create...; sleep 1; done" code 'while [ $(ceph -s | grep creating -c) -gt 0 ]; do echo -n .;sleep 1; done' end