zuazo/mysql_tuning-cookbook

View on GitHub
metadata.rb

Summary

Maintainability
A
0 mins
Test Coverage
# encoding: UTF-8
#
# Cookbook Name:: mysql_tuning
# Author:: Xabier de Zuazo (<xabier@zuazo.org>)
# Copyright:: Copyright (c) 2015 Xabier de Zuazo
# Copyright:: Copyright (c) 2014 Onddo Labs, SL.
# License:: Apache License, Version 2.0
#
# 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.
#

name 'mysql_tuning'
maintainer 'Xabier de Zuazo'
maintainer_email 'xabier@zuazo.org'
license 'Apache 2.0'
description <<-EOS
Tries to create MySQL configuraiton better suited for your system.
EOS
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.9.0' # WiP

if respond_to?(:source_url)
  source_url "https://github.com/zuazo/#{name}-cookbook"
end
if respond_to?(:issues_url)
  issues_url "https://github.com/zuazo/#{name}-cookbook/issues"
end

chef_version '>= 12' if respond_to?(:chef_version)

supports 'amazon'
supports 'centos'
supports 'debian'
supports 'fedora'
supports 'freebsd'
supports 'oracle'
supports 'redhat'
supports 'scientific'
supports 'ubuntu'

depends 'mysql', '~> 8.0'
depends 'ohai', '~> 5.0'
depends 'mysql2_chef_gem', '~> 2.0'

recipe 'mysql_tuning::default', 'Creates MySQL configuration files.'
recipe 'mysql_tuning::ohai_plugin', 'Enables MySQL ohai plugin.'

provides 'mysql_tuning'
provides 'mysql_tuning_cnf'

attribute 'mysql_tuning/system_percentage',
          display_name: 'mysql system percentage',
          description:
            'System percentage used for MySQL. Use 100 for MySQL dedicated '\
            'servers.',
          type: 'string',
          required: 'optional',
          default: '100'

attribute 'mysql_tuning/dynamic_configuration',
          display_name: 'mysql dynamic configuration',
          description:
            'Tries to change the MySQL configuration without restarting the '\
            'server, setting variable values dynamically.',
          type: 'string',
          required: 'optional',
          default: 'false'

attribute 'mysql_tuning/interpolation',
          display_name: 'mysql configuration interpolation',
          description:
            'Interpolation algorithm use. Possible values: '\
            'proximal, linear, cubic, bicubic, catmull.',
          type: 'string',
          required: 'optional',
          default: '"proximal"'

attribute 'mysql_tuning/interpolation_by_variable',
          display_name: 'mysql configuration interpolation by variable',
          description:
            'Use different interpolation algorithm for some variables.',
          type: 'hash',
          required: 'optional',
          default: '{}'

attribute 'mysql_tuning/recipe',
          display_name: 'mysql recipe name',
          description:
            'MySQL recipe name, required if not included beforehand.',
          type: 'string',
          required: 'optional',
          default: 'nil'

attribute 'mysql_tuning/include_dir',
          display_name: 'mysql include dir',
          description: 'MySQL configuration include directory.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/mysqld_bin',
          display_name: 'mysqld binary',
          description: 'MySQL daemon binary path.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/logging.cnf',
          display_name: 'mysqld logging.cnf',
          description: 'MySQL logging.cnf configuration.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/tuning.cnf',
          display_name: 'mysqld tuning.cnf',
          description: 'MySQL tuning.cnf configuration.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/configuration_samples',
          display_name: 'mysqld configuration samles',
          description: 'MySQL configuration samples.',
          type: 'string',
          required: 'optional',
          calculated: true

# Internal Attributes

attribute 'mysql_tuning/old_names',
          display_name: 'mysqld old_names',
          description: 'MySQL configuration variable old names hash.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/non_interpolated_keys',
          display_name: 'mysqld non interpolated keys',
          description: 'MySQL keys that should not be interpolated.',
          type: 'string',
          required: 'optional',
          calculated: true

attribute 'mysql_tuning/variables_block_size',
          display_name: 'mysqld variables block size',
          description: 'MySQL variables block size.',
          type: 'string',
          required: 'optional',
          calculated: true