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

Github source: c1e834fb or master branch

Updated MariaDB

  • Operator should be able to verify that cf-mysql-release includes MariaDB 10.0.21 and Galera library 25.3.9 [#99853996]

Bug Fixes

  • CVE-2015-3900: MITM rubygems vulnerability [#101620234]
  • An Operator should be able to deploy cf-mysql on vSphere using the provided sample stub [#100774212]
  • cloudfoundry/cf-mysql-release #80: bosh deploy error : no implicit conversion of Fixnum into String [#102881976]

Switchboard: - Switchboard fails to find recreated mysql node when ARP cache locked by hanging SYN_SENT [#101784830] - Every instance of Switchboard registrars the route proxy-0.p-mysql. rather than changing based on AZ index [#101778816] - Regression: switchboard returns 500 error when fetching list of backends [#103439908]

Startup:

We’ve done some work to ensure smooth startup for databases that have very large data sets. To understand these changes, please read the bosh documentation covering the canary_watch_time and update_watch_time properties. - As an Operator, I want to configure how long the startup script waits for the database to come online [#100442046] - During long SSTs, BOSH reports job as failing forever, mysqld is not properly managed by its control script. [#100600470] - As an Operator, I’d like configure an overall timeout which will break down into individual timeouts for each of the MySQL job’s startup phases, so that large SST’s can succeed [#100598304]

Compiling and Testing

  • cf-mysql acceptance tests should use https only [#101143514]
  • cf-mysql-broker compilation fails if workstation has mysql installed rather than mariadb [#101706476]
  • mysql-broker fails because of mysql2 gem packaging issue [#98972188]
  • Native extensions for mysql2 gem should be build during compilation stage [#101784138]
  • cloudfoundry/cf-mysql-release #79: allow configureable smoke test password [#102174066]
  • Users that have built older dev releases of cf-mysql prior to updating to v23 may encounter the following error when running ./update:
  error: The following untracked working tree files would be overwritten by checkout:
    packages/ruby/packaging
    packages/ruby/spec
  Please move or remove them before you can switch branches.

This can be fixed by running rm -r ./packages/ruby && ./update.

Documentation Updates

  • New document: Known Issues
  • Clarify that additional cf security groups are not required to run cf-mysql since cf v211 [#100047222]
  • As an Operator, I’d like the sample stubs to follow the convention of using REPLACE for every place a stub should be modified [#99473360]
  • Add [#100600470] as a known issue in cf-mysql-release [#100598530]
  • All templates should have the same comment/description about meta:environment property [#99474804]

Standalone

We’ve done some work to allow cf-mysql-release to start up without relying on a running cf-release. This work is still in progress, but here are the stories that have been completed: [#84945758], [#84945466]], and [#99638360]

Manifest Changes

Note: Due to changes in our manifests, cf-mysql-release v23 requires spiff v1.0.7 or higher. - MySQL job - Added property database_startup_timeout
Defines how long the startup scripts wiat for the database to come online (in seconds) - Proxy job - Added property proxy.proxy_ips - Added property standalone - Acceptance-tests job - Added property proxy.proxy_count (defaults to 2) - Added property smoke_test_password and gave it a somewhat complex default
In response to GH Issue #79, which validates a password minimum complexity feature now available in Cloud Foundry.

Special Note for bosh-lite Only

If you encounter an error when deploying:

Error 400007: `cf-mysql-broker_z1/0’ is not running after update

Check to see that your error output matches the example below. If they match, then you’ll need to update your cf-release to v219 or more recent. In order to improve stability, cf-release switched the system domain from 10.244.0.34.xip.io to bosh-lite.com. In #104772322, we’ve updated the manifest system domain to point to bosh-lite.com as well. The settings in both cf-release and cf-mysql-release must match.

Jobs
proxy_z1
  properties
    ± external_host:
      - p-mysql.10.244.0.34.xip.io
      + p-mysql.bosh-lite.com
proxy_z2
  properties
    ± external_host:
      - p-mysql.10.244.0.34.xip.io
      + p-mysql.bosh-lite.com
cf-mysql-broker_z1
  properties
    ± cc_api_uri:
      - https://api.10.244.0.34.xip.io
      + https://api.bosh-lite.com
    ± external_host:
      - p-mysql.10.244.0.34.xip.io
      + p-mysql.bosh-lite.com
cf-mysql-broker_z2
  properties
    ± cc_api_uri:
      - https://api.10.244.0.34.xip.io
      + https://api.bosh-lite.com
    ± external_host:
      - p-mysql.10.244.0.34.xip.io
      + p-mysql.bosh-lite.com
broker-registrar
  properties
    broker
      ± host:
        - p-mysql.10.244.0.34.xip.io
        + p-mysql.bosh-lite.com
    cf
      ± api_url:
        - https://api.10.244.0.34.xip.io
        + https://api.bosh-lite.com
      ± apps_domain:
        - 10.244.0.34.xip.io
        + bosh-lite.com
broker-deregistrar
  properties
    cf
      ± api_url:
        - https://api.10.244.0.34.xip.io
        + https://api.bosh-lite.com
      ± apps_domain:
        - 10.244.0.34.xip.io
        + bosh-lite.com
acceptance-tests
  properties
    broker
      ± host:
        - p-mysql.10.244.0.34.xip.io
        + p-mysql.bosh-lite.com
    cf
      ± api_url:
        - https://api.10.244.0.34.xip.io
        + https://api.bosh-lite.com
      ± apps_domain:
        - 10.244.0.34.xip.io
        + bosh-lite.com
    proxy
      ± external_host:
        - p-mysql.10.244.0.34.xip.io
        + p-mysql.bosh-lite.com

Properties
± app_domains:
  - 10.244.0.34.xip.io
  + bosh-lite.com
cf
  ± api_url:
    - https://api.10.244.0.34.xip.io
    + https://api.bosh-lite.com
  ± apps_domain:
    - 10.244.0.34.xip.io
    + bosh-lite.com
± domain:
  - 10.244.0.34.xip.io
  + bosh-lite.com

Meta
No changes


Deploying
---------

Director task 293
  Started preparing deployment
  Started preparing deployment > Binding deployment. Done (00:00:00)
  Started preparing deployment > Binding releases. Done (00:00:00)
  Started preparing deployment > Binding existing deployment. Done (00:00:00)
  Started preparing deployment > Binding resource pools. Done (00:00:00)
  Started preparing deployment > Binding stemcells. Done (00:00:00)
  Started preparing deployment > Binding templates. Done (00:00:00)
  Started preparing deployment > Binding properties. Done (00:00:00)
  Started preparing deployment > Binding unallocated VMs. Done (00:00:00)
  Started preparing deployment > Binding instance networks. Done (00:00:00)
     Done preparing deployment (00:00:00)

  Started preparing package compilation > Finding packages to compile. Done (00:00:00)

  Started preparing dns > Binding DNS. Done (00:00:00)

  Started preparing configuration > Binding configuration. Done (00:00:01)

  Started updating job proxy_z1 > proxy_z1/0 (canary). Done (00:00:41)
  Started updating job proxy_z2 > proxy_z2/0 (canary). Done (00:00:42)
  Started updating job cf-mysql-broker_z1 > cf-mysql-broker_z1/0 (canary). Failed: `cf-mysql-broker_z1/0' is not running after update (00:05:14)

Error 400007: `cf-mysql-broker_z1/0' is not running after update

Upload this release version to the Director:

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

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

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

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

Optionally download sha1: fa2e903141170f915c3658d44488e99cc234bca2 release tarball locally:

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

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