cf-mysql/20
You can find the source of this version on GitHub at cloudfoundry/cf-mysql-release. It was created based on the commit caa23b3d
.
Release Notes¶
Highlights
- Support AWS multi-availability zone deployments #87241160
See below for upgrade instructions.- Added networks and resource pools for Multiple AZs
- Updated job names for Multiple AZs
- Operator can now configure cf-mysql-release with different instance types for each job #87242348
- Improved Operator-visible logging from mariadb_ctrl #88102590
- We have updated MariaDB to version 10.0.17, Galera to 25.3.9, and Xtrabackup to 2.2.10 #90127848, #94023216
- use xtrabackup-v2 as replication mechanism (improved stability during replication) #88835488
- Compile against the MariaDB connector instead of additionally including the MySQL connector #92725528
- We have rewritten the Quota Enforcer to improve stability #88665590
New Documentation
- How to upgrade a MySQL service plan #91748318
- Specify instance sizing in BOSH manifests: Deployment Resources #89325154
Bug Fixes and Miscellaneous Changes
- Once over quota, write privs are not restored by dropping all tables #86454200
- Upgrade sample stub to allow self signed certificates #82316314
- CF-MySQL service broker must speak to the CC API via SSL #93485852
- Update Ruby version for service broker - address any CVEs #93485852
- Upgrade Rails and other gems to latest version for broker repos #86044548
- Configurable defaults for MariaDB in-memory behavior #94043690
max_heap_table_size = 16777216 # Rows tmp_table_size = 33554432 # Bytes
- Compilation instances now use new instance types on AWS #89434250
- Added small bosh-lite helper scripts
- Improved MySQL node startup speed
- Nodes come online more quickly
- Nodes fail faster if sub-processes fail
- Enabled option to run acceptance-tests errand against pre-existing org (instead of creating a random one each time) #90070764
v20 Upgrade Instructions for AWS #93040612
If you’ve deployed v19 or earlier, there are specific manifest changes you’ll need to make to take advantage of the new multi-AZ templates. You’ll need to rename the mysql job to mysql_z1; this is a one-time change as you upgrade to v20. Future versions of cf-mysql-release will continue to use the _z1, _z2, _z3 pattern.
1. Download existing manifest
$ bosh download manifest [your deployment name] cf-mysql-deployment.yml2. Set manifest to newly-downloaded manifest
bosh deployment cf-mysql-deployment.yml3. Edit the manifest to rename
mysql
job to mysql_z1
$ bosh edit deployment4. Rename job
$ bosh rename job mysql mysql_z15. Create a stub file called
cf-mysql-aws-stub.yml
by copying and modifying the sample_aws_stub.yml in templates/sample_stubs
.$ cp templates/sample_stubs/sample_aws_stub.yml cf-mysql-aws-stub.yml6. Make a new manifest with multiple availability zones
$ ./generate_deployment_manifest aws cf-mysql-aws-stub.yml > cf-mysql-new.yml7. Set manifest to newly-created manifest
$ bosh deployment cf-mysql-new.yml8. Edit manifest
$ bosh edit deploymentConfigure only one node of mysql_z1 and 0 of mysql_z2 and mysql_z3 - Set instances of
mysql_z2
and mysql_z3
to 0
- Remove static ips from mysql_z2
and mysql_z3
- Set cluster IPs on mysql_z1
to just the IP of the mysql_z1
instance
- Set cluster IPs on proxy jobs to just the IP of the mysql_z1
instance
9. Deploy (resulting in a single mysql node, 2 brokers and 2 proxies correctly distributed across AZs)$ bosh deploy10. Validate by running
bosh vms cf-mysql
. Your output should look similar to this:+———————-+———+——————–+————-+ | Job/index | State | Resource Pool | IPs | +———————-+———+——————–+————-+ | cf-mysql-broker_z1/0 | running | cf-mysql-broker_z1 | 10.10.3.101 | | cf-mysql-broker_z2/0 | running | cf-mysql-broker_z2 | 10.10.4.101 | | mysql_z1/0 | running | mysql_z1 | 10.10.3.10 | | proxy_z1/0 | running | proxy_z1 | 10.10.3.11 | | proxy_z2/0 | running | proxy_z2 | 10.10.4.11 | +———————-+———+——————–+————-+11. Make a new manifest using templates, as above (leave unchanged at 3 mysql nodes, etc). 12. Set manifest to newly-created manifest, as above. 13. Deploy (resulting in 3 mysql nodes, 2 proxies and 2 brokers distributed across multiple AZs), as above. Bosh should show you manifest changes that look similar to this:
Jobs
mysql_z1
properties
± cluster_ips:
+ 10.10.4.10
+ 10.10.5.10
mysql_z2
± instances:
- 0
+ 1
± networks:
- {"name"=>"mysql2", "static_ips"=>nil}
+ {"name"=>"mysql2", "static_ips"=>["10.10.4.10"]}
mysql_z3
± instances:
- 0
+ 1
± networks:
- {"name"=>"mysql3", "static_ips"=>nil}
+ {"name"=>"mysql3", "static_ips"=>["10.10.5.10"]}
proxy_z1
properties
± cluster_ips:
+ 10.10.4.10
+ 10.10.5.10
proxy_z2
properties
± cluster_ips:
+ 10.10.4.10
+ 10.10.5.10
- Validate by running
bosh vms cf-mysql
. Your output should look similar to this:+———————-+———+——————–+————-+ | Job/index | State | Resource Pool | IPs | +———————-+———+——————–+————-+ | cf-mysql-broker_z1/0 | running | cf-mysql-broker_z1 | 10.10.3.101 | | cf-mysql-broker_z2/0 | running | cf-mysql-broker_z2 | 10.10.4.101 | | mysql_z1/0 | running | mysql_z1 | 10.10.3.10 | | mysql_z2/0 | running | mysql_z2 | 10.10.4.10 | | mysql_z3/0 | running | mysql_z3 | 10.10.5.10 | | proxy_z1/0 | running | proxy_z1 | 10.10.3.11 | | proxy_z2/0 | running | proxy_z2 | 10.10.4.11 | +———————-+———+——————–+————-+
Usage¶
You can reference this release in your deployment manifest from the releases
section:
- name: "cf-mysql" version: "20" url: "https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=20" sha1: "143fb43504f046baf243de4774e0a8013b851fb0"
Or upload it to your director with the upload-release
command:
bosh upload-release --sha1 143fb43504f046baf243de4774e0a8013b851fb0 \ "https://bosh.io/d/github.com/cloudfoundry/cf-mysql-release?v=20"