release: github.com/cloudfoundry/cf-mysql-release / 28

Github source: 1564a82d or master branch

Introducing MariaDB 10.1

The theme for v28 is to upgrade MariaDB 10.1.

We’re very excited to bring this to cf-mysql, as it will unlock large improvements in stability and security. As always, we’ve encoded the best practices to upgrade from a MariaDB 10.0 install to MariaDB 10.1. You should be able to upgrade from a previous version of cf-mysql to v28 smoothly. - cf-mysql now uses MariaDB 10.1.17 and Galera 25.3.17 - [#128782093], [#130140531], [#128699855]

Server Configuration

We’ve continued to incorporate feedback from users to make additional server tweaks and defaults. These changes make the system better out of the box, and provide fewer surprises for those who aren’t familiar with a Galera-based deployment. - I’d like Galera clusters to be restricted to just the InnoDB storage engine [#121465037] - Allow for override of the innodb_buffer_pool_instances [#111], [#123092551] - As an Operator, I’d like to configure innodb_lock_wait_timeout so that I can tune my DB for OLTP or data-warehouse style workloads [#129591677] - As an Operator, I’d like to configure character_set_server to something other than the ‘utf8’ default [#129592229] - Bug: innodb_large_prefix disabled [#129589643]

Security

  • Permissions for log files should not allow other users to read them [#122237641]
  • Ensure logout destroys session cookies [#128616101]
  • As an Operator, I want the super user account to be named root [#128692195]
    • Note: Based on user feedback, we’ll make the administrator account name configurable again in a coming release. Sorry!

Manifest Generation

  • Use new UAA style name/value manifest syntax for user creation [#113200331]
    • Now, you won’t have to copy and paste your CF admin credentials into a cf-mysql stub.
  • BOSH 2.0 Manifests

If you’ve started to experiment with the new BOSH CLI, we’ve started to support BOSH 2.0-style manifests. In the future, we’ll move to BOSH 2.0-style manifests entirely. - As an operator I would like to optionally leverage cloud-config when deploying cf-mysql-release to bosh-lite [#128799447] - As an operator I would like to optionally leverage links for IPs of mysql jobs when deploying cf-mysql-release to bosh-lite [#128799467]

Proxy Improvements

  • As an Operator, I’d like the Proxies to more-deterministically choose which backend to route traffic [#128188319]
  • Add a way to set `ulimit -n’ for the proxy job [#112], [#123147571]
  • Switchboard should log response from galera_healthcheck process when severing connections to a host [#128793743]

Download Logs Improvements

We’ve made some minor changes to the download logs script as well. This convenience script is an automated way to download logs from a variety of jobs without tedious bosh logs commands. - As an Operator, I optionally want download-logs to additionally download and transmit audit and binlogs so that I can avoid transmitting sensitive data to unauthorized parties and save my sanity due to large scale artifacts. [#122885431] - Bug: Unhelpful error calling download-logs without args, etc [#122176219] - Bug: Unbound variable output_dir for download-logs script [#123227841]

Interestings

  • As an Operator, I don’t want to have the option to run the Acceptance Tests [#128466217]
    • Previous releases allowed the ‘acceptance-tests’ errand to run either the smoke tests or the full acceptance test suite. The latter is destructive, and there’s no reason to run them outside of Continuous Integration (CI). Now, the errand is named smoke-tests and does the minimum necessary to validate a successful deployment.
  • Bump CLI [#129406663]
    • Smoke tests now use a more recent version of the CLI, and a longer timeout to allow for slow DNS resolution.

Manifest Changes

Note: For those using the current bosh CLI, you’ll need to set links in the new manifest to nil. Otherwise, you may see errors like:

Error 100: Unable to process links for deployment. Errors are: …

In order to disable, anywhere the consumes: clause appears in your manifest, you must change the values to nil. Here’s an example:

- name: mysql_z1
  templates:
  - name: mysql
    consumes:
      arbitrator: nil
      mysql: nil

Note: For those using the new bosh CLI, you’ll need to use the guide to migrating instance groups to first-class AZs. - Removed: - cf_mysql.mysql.admin_username, will be back in a future release - cf_mysql.acceptance_tests.smoke_tests_only, it is now always true - Added: - cf_mysql.mysql.character_set_server, optional - cf_mysql.mysql.collation_server, optional - cf_mysql.mysql.innodb_buffer_pool_instances, optional - cf_mysql.mysql.innodb_lock_wait_timeout, optional - Renamed: - cf_mysql.acceptance_tests.password renamed to cf_mysql.smoke_tests.password - cf_mysql.acceptance_tests.standalone_tests_only renamed to cf_mysql.smoke_tests.standalone_tests_only - cf_mysql.acceptance_tests.timeout_scale renamed to cf_mysql.smoke_tests.timeout_scale

Upload this release version to the Director:

$ bosh upload release https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=28

Modify deployment manifest to use this release in addition to any other used releases:

releases:
- {name: cf-mysql, version: "28"}

Finally add needed deployment jobs and specify values for required properties.

Optionally download sha1: 3b9016d216826f5dfef2945afd4e62c8c38747d1 release tarball locally:

# ...or download it directly using curl
$ curl -L -J -O https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=28

# or with wget...
$ wget --content-disposition https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=28