Releases: orange-cloudfoundry/cassandra-boshrelease
Cassandra Bosh Release v12
Change Apache Cassandra version to 3.11.4
Cassandra Bosh Release v11
Fixing cqlsh problem when using new stemcell Ubuntu Xenial by including Python 2.7 distro in this release
Cassandra Bosh release v10
Cassandra BOSH Release v9
New Features
- TLS encryption support (#52)
- Cassandra cluster acceptance tests. Contrarily to the Service Broker smoke tests, they don't require an existing Cloud Foundry or the service broker to be deployed (#9)
Deployment
releases:
- name: cassandra
version: "9"
url: https://github.com/orange-cloudfoundry/cassandra-boshrelease/releases/download/v9/cassandra-9.tgz
sha1: 852f38b691eb8236b94e26151ecf2716682c22d3
Casandra BOSH Release v8
❗️💥Major release containing breaking changes💥❗️
New features
- Add optional BPM support. To use BPM when running the Cassandra daemon, apply the
use-bpm.yml
ops file to your deployment (#34). - Support 2-nodes Cassandra clusters and 1-node “standalone” setups through the introduction of a new
system_auth_keyspace_replication_factor
configuration property that defaults to the number of seeds in the cluster. - Rework documentation to document BOSH 2.0 usage, base deployment and ops files (#30).
- Greatly improved the documentation fo configuration properties in the
spec
file of thecassandra
job, based on the current Cassandra documentation (#37). - Introduce a new effective mapping of the BOSH availability zones to Cassandra DCs and Racks (#39). Now any topology (Bosh availability zones corresponding to different DCs or different Cloud AZs) can be effectively modeled in your deployment.
- Support cluster scale-in operations, just decreasing the
instances
properties of instance groups (#40). You could already add nodes to the cluster (scale-out operations), and now you can gracefully remove nodes. Warning: when scaling then cluster in to one sinlge node, you will experience downtime because that remaining node will be restarted while its config is re-rendered. - Simplify the default deployment manifests at maximum, removing unnecessary default values (#41)
- Introduce a new
default-vars.yaml
file to be added as a--vars-file
argument inbosh deploy
, compatible with deploying in BOSH-Lite (#55) - Forked a cassandra-deployment repository for maintaining deployment manifests in a dedicated repository
- Allow updating many times the password of the admin
cassandra
user (#48) - Improved logging of
pre-start
,post-start
anddrain
scripts (#49)
Upgrade notes
- A new cassandra-deployment is now holding the deployment files for this Cassandra BOSH Release. Go check it out! The
deployment
subdirectory here will be deleted in versionv9
. - When upgrading from a
v6
or earlier version, please don't modify thecassandra_password
at the same time. You should re-use the previous value ofcass_pwd
. Failing at doing so would lead toERROR: the password for user 'cassandra' is inconsistent
by thepost-start
script executions of thecassandra
job.
Breaking changes
- Renamed
cass_pwd
intocassandra_password
- Renamed
cass_KSP
intokeystore_password
- The default values for
max_heap_size
andheap_newsize
have changed to an empty string""
value, for the Cassandra-recommended calculator to apply. If you relied on the default values (of8G
and1G
respectively) previously defined, then update your deployment manifest to explicitly set these. - Any topology mapping previously defined in
topology
has to be translated to the newbosh_to_cassandra_topology_mapping
scheme. - This version drops support for the
persistent_directory
configuration property. Now/var/vcap/store/cassandra
is hardcoded to comply with standard BOSH conventions. If you have customized this property in your deployment manifests, please go back to the default value before upgrading. For details about how to do this, you can refer to the migration path we've suggested inv3
release notes below.
Minor fine-tunning changes
- Better performance heap sizes below 2GB:
- The default value of
key_cache_size_in_mb
has changed from100
tonull
(no impact for heap sizes above 2GB) - The default value of
file_cache_size_in_mb
has changed from512
tonull
(no impact for heap sizes above 2GB)
- The default value of
- The default value of
commitlog_sync_period_in_ms
is now back to a reasonable value of10000
ms instead of2
ms. The former value could have a negative impact on performances. - The default value of
concurrent_reads
has been lowered from32
to16
to comply with the Cassandra recommendation, because Bosh-deployed Cassandra nodes only have one disk - The default value of
memtable_flush_writers
has changed from1
tonull
(which should resolve to2
in all cases) - The default value of
concurrent_compactors
has changed from4
tonull
(which should resolve to2
in all cases) - A new
max_value_size_in_mb
config was added, so that the existingnative_transport_max_frame_size_in_mb
config can actually be tweaked, because it requires the former to be modified accordingly - Add new configs for
roles_validity_in_ms
andcredentials_validity_in_ms
along the existingpermissions_validity_in_ms
, for consistency
Deployment
See the standard manifests in the cassandra-deployment repository. Here is the release definition for this specific version:
releases:
- name: cassandra
version: "8"
url: https://github.com/orange-cloudfoundry/cassandra-boshrelease/releases/download/v8/cassandra-8.tgz
sha1: e8b8221f89a09f66e015d9e2356fa2d4a23d1aa9
Casandra BOSH Release v7
❗️💥Skip directly to release v8💥❗️
There are issues with this release that we unfortunately missed before cutting it. Please don't use it.
Cassandra BOSH Release v6
New features
- Bumped Cassandra from version 3.9 to the latest stable version 3.11.1
- Add a separate
cqlshrc
file, specific to thecassandra-admin-tools
job, aimed at implementing more human-friendly settings (compared to the one used by thecassandra
job that is aimed at being used by scripts)
Config properties sunset
This version is the last supporting the persistent_directory
configuration property. Indeed, there is no better choice than the default /var/vcap/store/cassandra
, and any other value would not work when enabling BPM anyway.
In the next release, we'll remove this property and hardcode /var/vcap/store/cassandra
to comply with standard BOSH conventions. If you have customized this property in your deployment manifests, then you should plan to go back to the default value before upgrading. For details about how to do this, you can refer to the migration path we've suggested in v3
release notes below.
Cassandra BOSH Release v5
New features
- Added BOSH 2.0 base deployment manifest and related operation files.
- Added support for the new
cassandra
SHIELD plugin. - New
disable_linux_swap
property useful for Bosh-Lite support.
Breaking changes
- This BOSH release has been renamed
cassandra
instead ofcassandra39-services
(that was meant to be bound to version 3.9.x of Cassandra). Please update your deployment manifests accordingly. We did our best to preserve continuity and history. For example, previous final releases can be reconstructed with the new name when checkouting the repo at thev5
tag or later. - New separate
cassandra-admin-tools
job for installing optional admin tools wrappers to deployed instances. You now need to deploy this new job if you rely on thecql-sh.sh
wrapper script, for example. These tools are provided for convenience, but they contain thecassandra
admin password, so they are not recommended for production because they augment the attack surface of Cassandra nodes.
Cassandra BOSH Release v4
This release adds jmx_exporter
as collector to provide metrics to prometheus.
By default, the exporter is enabled. It can be disabled it with the jmx_exporter_enabled: false
setting on the cassandra
job:
instance_groups:
- name: cassandra-seeds
jobs:
- name cassandra:
properties:
...
jmx_exporter_enabled: false
Cassandra BOSH Release v3
This release ships a Cassandra daemon through a single cassandra
job, instead of tree separate jobs previously.
The distinction between seeds and non-seeds servers is now done with separate instance groups. The seeds instance group exposes the seeds
BOSH Link that all Cassandra nodes have to consume.
Here is a deployment manifest example that show how this link is exposed, self-consumed by Cassandra seeds, and consumed by other nodes:
instance_groups:
- name: cassandra-seeds
instances: 3
jobs:
- name: cassandra
provides:
seeds: { as: cluster_seeds }
consumes:
seeds: { from: cluster_seeds }
....some properties ...
- name: cassandra-servers
instances: 2
jobs:
- name: cassandra
consumes:
seeds: { from: cluster_seeds }
Breaking changes
The default value of persistent_directory
is now /var/vcap/store/cassandra
instead of /var/vcap/store/cassandra_{seed,server,injector}
previously, depending on which of the 3 jobs you were deploying.
If you're migrating an existing cluster, you'll have tobosh ssh
to each cassandra node, monit stop
Cassandra, modify /var/vcap/jobs/cassandra_*/conf/cassandra.yaml
and update hints_directory
, data_file_directories
, commitlog_directory
, and saved_caches_directory
to the new location, move your data, monit start
cassandra. Once this is done on all cassandra nodes, you can bosh deploy
your cluster with the new v3 of this release.