Release Notes


Upgrading

To upgrade REX-Ray to the latest version, use curl install:

curl -sSL https://rexray.io/install | sh

Use rexray version to determine the currently installed version of REX-Ray:

$ rexray version
REX-Ray
-------
Binary: /usr/bin/rexray
Flavor: client+agent+controller
SemVer: 0.10.0-rc2
OsArch: Linux-x86_64
Commit: 5b1c7431012f28f72d36d6788e204d7e78811168
Formed: Thu, 07 Sep 2017 17:49:48 CDT

Version 0.11.2 (2018/02/24)

This is a minor release that updates the build process to reflect the new location of binary artifacts.

Version 0.11.1 (2017/12/19)

This is a minor release that addresses a few bugs.

Enhancements

Bug Fixes

Version 0.11.0 (2017/10/16)

This is a major release that introduces the Docker Volume API to CSI southbound adapter -- a bridge that enables the consumption of CSI plug-ins by Docker. This new Docker to CSI bridge is enabled by default when running REX-Ray as a service, while the Docker Managed Plugins default to the existing Docker Volume API endpoint.

New Features

Enhancements

Bug Fixes

Thank you

Name Blame
Harshavardhana A lot of people are unaware, but Harshavardhana is a world famous cruciverbalist. Each week he designs a new, daily-dose of word related pain for the truly cross-fit. And still Harshavardhana was able to come up with a four-letter acronym that describes a different kind of way to use a bucket -- "S3FS". Thank you Harshavardhana!

Version 0.10.2 (2017/09/12)

REX types warily, a deadline to meet With his dev box that sure ain't slow Ain't no sound but the sound of his keys The PR is ready to go.

Are you ready? Hey, are you ready for this? Are you hanging on the edge of your seat? From Travis-CI the binaries rip REX's builds can't be beat, yeah

Another bug bites the dust!

Enhancements

Bug Fixes

Version 0.10.1 (2017/09/11)

This is a small update to the previous release in order to correct a minor bug and include a documentation change.

Bug Fixes

Version 0.10.0 (2017/09/11)

Hi, REX here. Look, I know it's been a while since the last release. Three whole months. I'm not going to apologize either. I'm an anthropomorphic dog who chases bugs instead of bones for a living. That's pretty impressive in and of itself!

However, it's been worth the wait. This is a major release, with changes that include:

New Features

Enhancements

Bug Fixes

Thank You

Name Blame
Matt Glaser

I must underscore,

How Matt converted a bug,

Into a closed fix.

Ville Törhönen

A man too large cried,

Bemoaned a device too small,

He made it larger.

Dustin Hendel

Stand swiftly, stand now,

Forget set destinations,

Go where you now wish.

Mathieu Velten

A burning ember,

A spark shouts into the flame,

Fire dancing skyward.

Chris Duchesne

Silent, still, careful,

Works into the night's embrace,

Yes, reliable.

Travis Rhoden

The other to blame,

Committed, will hash it out,

All credit to you.

Clint Kitson

Return home, cannot,

He who travels for us all,

He speaks, we listen.

Version 0.9.2 (2017/06/28)

This is a minor release that introduces a Docker managed plug-in for Ceph RBD, and fixes a regression with the S3FS Docker plug-in.

New Features

Bug Fixes

Enhancements

Version 0.9.1 (2017/06/09)

This release is primarily a bug-fix release, and also introduces two new Docker managed plug-ins: Digital Ocean (dobs) and OpenStack Cinder (cinder). This release includes libStorage 0.6.1

New Features

Bug Fixes

Enhancements

Thank You

Name Blame
Sébastien GLON Lord GLON is heir to the Dukes of Brittany and currently resides Château des Ducs de Bretagne along the Loire River. One can only imagine the vistas to which Lord GLON is privilege as he gazes out the arrow-loops carved into the stone exterior of his office wall. When not creating pull requests for REX-Ray Lord GLON is rumored to be carrying on a torrid affair with Mayor Rolland, the first female, and certainly most stunning, to hold the office in Nantes. We submit the most humble of gratitudes to Johanna for the pittance of time she allowed Lord GLON to separate from her and attend to the Cinder plug-in. Many thanks to you both.

Version 0.9.0 (2017/05/03)

This release introduces support for the Cinder storage driver and multiple security-related enhancements, including default-to-TLS for libStorage client/server communications, and service-scoped authentication!

New Features

Bug Fixes

Enhancements

Thank You

Name Blame
Mathieu Velten Mr. Velten, as his people alert you to the fact that he insists on being addressed, is a dubious individual. It's apparent he's old money, but it's also not exactly clear from where his fortune originated. There are rumors in the back rooms of the shadiest gambling parlors of Monte Carlo that Mr. Velten was once an employee of an unnamed wing of a shadow government. A "cleaner" if you will. Maybe it was these experiences that make Mr. Velten so apt at slicing up Git commits. Is there really any difference between slicing up a full-grown man and hash series of changes? Mr. Velten is proof there isn't.
Joe Topjian Joe insisted that we omit this pithy attempt at showing gratitude, but we simply could not do that. Not when Mr. Velten insisted it would be in our best interest to include Joe. Is this okay Mr. Velten? Can our families come home now? We did what you asked. Joe is awesome. We like Joe. See? We're cooperating. Please Mr. Velten, just let them come home!

Version 0.8.2 (2017/03/28)

This is a minor release with some bug fixes, enhancements, and simplified support for TLS.

New Features

Bug Fixes

Enhancements

Version 0.8.1 (2017/02/24)

This is a minor release that reintroduces support for Go1.6 via libStorage 0.5.1.

Bug Fixes

Version 0.8.0 (2017/02/24)

This is one of the largest releases in a while, including support for five new storage platforms!

New Features

Bug Fixes

Thank You

Name Blame
Chris Duchesne Chris is my partner in crime when it comes to libStorage and REX-Ray. Without him I would have absolutely no one to take the fall for the heist I'm planning. So is Chris invaluable? Yeah, in that way, as the patsy who will do at least a dime while I'm on the beach sipping my drink, yeah, he's invaluable.
Travis Rhoden Travis, or as I call him, T-Dawg, is essential to "taking care of business." He comes to work to chew bubblegum and kick butt, and he leaves the gum at home!
Vladimir Vivien A little known fact about Vladimir is that he's been seeded in the top 10 of the last US Opens, but has had to withdrawal at the last minute before each of those tournaments due to other responsibilities. What those are? Who can say? Are they contracts on people's lives? Perhaps. Are they appearances for Make a Wish? Probably. The only thing we know for sure is that when he is seen again, Vladimir seems rejuvenated and ready to conquer the tennis world yet again.
Steve Wong I've known Steve for a very long time, and in that time I can say I've never once seen him in the same room as President Barack Obama. Now, does that mean that I can definitively state that Steve and President Obama are in fact the same person. No, of course not. There are obvious differences. The most glaring of course being that Steve wears glasses and President Obama does not. However, other than that the two men are nearly identical. I guess we'll never know if Steve Wong lives a double life as the 44th President of these United States, but I personally would like to think that yeah, he does.
Dan Norris Dan "The Man" Norris is well known in the underground street-swimming circuit. Last year he tied Michael Phelps in the Santa Monica Sewer 120 meter medley. He would have won if not for stopping to create the DigitalOcean driver for libStorage.
Alexey Morlang As a third-chair oboe player in the Moscow orchestra it is surprising that Alexey still finds time to contribute to the project, but coming from a long line of oboligarchs (oboe playing oligarchs), it's just in his nature. As is creating storage drivers. That, and, well, playing the oboe.
Andrey Pavlov There is no Andrey. You have not met him. He does not exist. Don't look behind you. He is not there. He is writing storage drivers. Then just like that, he's vanished.
Lax Kota Lax is a rock star in the Slack channel, helping others by answering their questions before the project's developers can take a stab. We do not want to upset him. It's rumored he beats those who upset him in order to provide inspiration for his true passion -- corporal poetry. Every punch thrown is another verse towards his masterpiece.
Jack Huang Jack is not his job. Jack is not the amount of money he has in the bank. Jack is not the car he drives. Jack is not the clothes he wears. Jack is a supernova, accelerating at the speed of light beyond the bounds of quantifiable space and time. Jack is not the stuff above. Jack is not the stuff below. Jack is not the stuff in between. Jack is not the empty void. Jack. just. is.

Version 0.7.0 (2017/01/23)

This feature release includes support for libStorage 0.4.0 and the Ceph RBD storage platform.

Enhancements

Bug Fixes

Version 0.6.4 (2017/01/05)

This release includes the new script manager and FlexVol REX-Ray plug-in.

Enhancements

Bug Fixes

Version 0.6.3 (2016/12/07)

This release includes the ability to specify a custom encryption key when creating volumes and makes the volume attach command idempotent.

Enhancements

Bug Fixes

Version 0.6.2 (2016/12/05)

While a patch release, this new version includes some much-requested features and updates.

Enhancements

Bug Fixes

Version 0.6.1 (2016/12/01)

This release includes some minor fixes as well as a new and improved version of the volume ls command.

Enhancements

Bug Fixes

Version 0.6.0 (2016/10/20)

This release reintroduces the Elastic Block Storage (EBS) driver, formerly known as the EC2 driver. All vestigial EC2 configuration properties are still supported.

Enhancements

Bug Fixes

Version 0.5.1 (2016/09/14)

This is a minor release, but includes a few important patches.

Enhancements

Bug Fixes

Version 0.5.0 (2016/09/07)

Beginning with this release, REX-Ray's versions will increment the MINOR component with the introduction of a new storage driver via libStorage in concert with the guidelines set forth by semantic versioning.

New Features

Enhancements

Thank You

Name Blame
Chris Duchesne Chris not only took on the role of project manager for libStorage and REX-Ray, he still provides ongoing test plan execution and release validation. Thank you Chris!
Kenny Cole Kenny's tireless effort to support users and triage submitted issues is such a cornerstone to libStorage and REX-Ray that I'm not sure what this project would do without him!
Martin Hrabovcin Martin, along with Kasisnu, definitely win the "Community Members of the Month" award! Their hard work and dedication resulted in the introduction of the Amazon EFS storage driver. Thank you Martin & Kasisnu!
Kasisnu Singh Have I mentioned we have the best community around? Seriously, thank you again Kasisnu! Your work, along with Martin's, is a milestone in the growth of libStorage and REX-Ray.

Version 0.4.2 (2016/07/12)

This minor update represents a major performance boost for REX-Ray. Operations that use to take up to minutes now take seconds or less. The memory footprint has been reduced from the magnitude of phenomenal cosmic powers to the size of an itty bitty living space!

Enhancements

Version 0.4.1 (2016/07/08)

Although a minor release, 0.4.1 provides some meaningful and useful enhancements and fixes, further strengthening the foundation of the REX-Ray platform.

Enhancements

Bug Fixes

Version 0.4.0 (2016/06/20)

REX-Ray 0.4.0 introduces centralized configuration and control along with a new client/server architecture -- features made possible by libStorage. Users are no longer required to configure storage drivers or store privileged information on all systems running the REX-Ray client. The new client delegates storage-platform related operations to a remote, libStorage-compatible server such as REX-Ray or Poly.

Please note that the initial release of REX-Ray 0.4 includes support for only the following storage platforms:

Support for the full compliment of drivers present in earlier versions of REX-Ray will be reintroduced over the course of several, incremental updates, beginning with 0.4.1.

New Features

Enhancements

Bug Fixes

Thank You

Yes, the author is so lazy as to blatantly copy this section. So sue me :)

Name Blame
Clint Kitson His vision come to fruition. That's his vision, thus please assign all bugs to Clint :)
Vladimir Vivien A nascent player, Vlad had to hit the ground running and has been a key contributor
Kenny Coleman While some come close, none are comparable to Kenny's handlebar
Jonas Rosland Always good for a sanity check and keeping things on the straight and narrow
Steph Carlson Steph keeps the convention train chugging along...
Amanda Katona And Amanda is the one keeping the locomotive from going off the rails
Drew Smith Drew is always ready to lend a hand, no matter the problem
Chris Duchesne His short time with the team is in complete opposition to the value he has added to this project
David vonThenen David has been a go-to guy for debugging the most difficult of issues
Steve Wong Steve stays on top of the things and keeps use cases in sync with industry needs
Travis Rhoden Another keen mind, Travis is also a great font of technical know-how
Peter Blum Absent Peter, the EMC World demo would not have been ready
Megan Hyland And absent Megan, Peter's work would only have taken things halfway there
Eugene Chupriyanov For helping with the EC2 planning
Matt Farina Without Glide, it all comes crashing down
Josh Bernstein The shadowy figure behind the curtain...

Version 0.3.3 (2016/04/21)

New Features

Enhancements

Bug Fixes

Thank You

Version 0.3.2 (2016-03-04)

New Features

Enhancements

Bug Fixes

Updates

Thank You

Version 0.3.1 (2015-12-30)

New Features

Enhancements

Milestone Issues

This release also includes many other small enhancements and bug fixes. For a complete list click here.

Downloads

Click here for the 0.3.1 binaries.

Version 0.3.0 (2015-12-08)

New Features

Enhancements

Tweaks

Pre-Emption Support

Pre-Emption is an important feature when using persistent volumes and container schedulers. Without pre-emption, the default behavior of the storage drivers is to deny the attaching operation if the volume is already mounted elsewhere.
If it is desired that a host should be able to pre-empt from other hosts, then this feature can be used to enable any host to pre-empt from another.

Milestone Issues

This release also includes many other small enhancements and bug fixes. For a complete list click here.

Downloads

Click here for the 0.3.0 binaries.

Version 0.2.1 (2015-10-27)

REX-Ray release 0.2.1 includes OpenStack support, vastly improved documentation, and continued foundation changes for future features.

New Features

Enhancements

Tweaks

Version 0.2.0 (2015-09-30)

Installation, SysV, SystemD Support

REX-Ray now includes built-in support for installing itself as a service on Linux distributions that support either SystemV or SystemD initialization systems. This feature has been tested successfully on both CentOS 7 Minimal (SystemD) and Ubuntu 14.04 Server (SystemV) distributions.

To install REX-Ray on a supported Linux distribution, all that is required now is to download the binary and execute:

sudo ./rexray service install

What does that do? In short the above command will determine if the Linux distribution uses systemctl, update-rc.d, or chkconfig to manage system services. After that the following steps occur:

  1. The path /opt/rexray is created and chowned to root:root with permissions set to 0755.
  2. The binary is copied to /opt/rexray/rexray and chowned to root:root with permissions set to 4755. This is important, because this means that any non-privileged user can execute the rexray binary as root without requiring sudo privileges. For more information on this feature, please read about the Linux kernel's super-user ID (SUID) bit.

Because the REX-Ray binary can now be executed with root privileges by non-root users, the binary can be used by non-root users to easily attach and mount external storage.

  1. The directory /etc/rexray is created and chowned to root:root.

The next steps depends on the type of Linux distribution. However, it's important to know that the new version of the REX-Ray binary now supports managing its own PID (at /var/run/rexray.pid) when run as a service as well as supports the standard SysV control commands such as start, stop, status, and restart.

For SysV Linux distributions that use chkconfig or update-rc.d, a symlink of the REX-Ray binary is created in /etc/init.d and then either chkconfig rexray on or update-rc.d rexray defaults is executed.

Modern Linux distributions have moved to SystemD for controlling services. If the systemctl command is detected when installing REX-Ray then a unit file is written to /etc/systemd/system/rexray.service with the following contents:

[Unit]
Description=rexray
Before=docker.service

[Service]
EnvironmentFile=/etc/rexray/rexray.env
ExecStart=/usr/local/bin/rexray start -f
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process

[Install]
WantedBy=docker.service

The REX-Ray service is not started immediately upon installation. The install command completes by informing the users that they should visit the REX-Ray website for information on how to configure REX-Ray's storage drivers. The text to the users also explains how to start the REX-Ray service once it's configured using the service command particular to the Linux distribution.

Single Service

This release also removes the need for REX-Ray to be configured as multiple service instances in order to provide multiple end-points to such consumers such as Docker. REX-Ray's backend now supports an internal, modular design which enables it to host multiple module instances of any module, such as the DockerVolumeDriverModule. In fact, one of the default, included modules is...

Admin Module & HTTP JSON API

The AdminModule enables an HTTP JSON API for managing REX-Ray's module system as well as provides a UI to view the currently running modules. Simply start the REX-Ray server and then visit the URL http://localhost:7979 in your favorite browser to see what's loaded. Or you can access either of the currently supported REST URLs:

http://localhost:7979/r/module/types

and

http://localhost:7979/r/module/instances

Actually, those aren't the only two URLs, but the others are for internal users as of this point. However, the source is open, so... :)

If you want to know what modules are available by using the CLI, after starting the REX-Ray service simply type:

[0]akutz@poppy:rexray$ rexray service module types
[
  {
    "id": 2,
    "name": "DockerVolumeDriverModule",
    "addresses": [
      "unix:///run/docker/plugins/rexray.sock",
      "tcp://:7980"
    ]
  },
  {
    "id": 1,
    "name": "AdminModule",
    "addresses": [
      "tcp://:7979"
    ]
  }
]
[0]akutz@poppy:rexray$

To get a list of the running modules you would type:

[0]akutz@poppy:rexray$ rexray service module instance get
[
  {
    "id": 1,
    "typeId": 1,
    "name": "AdminModule",
    "address": "tcp://:7979",
    "description": "The REX-Ray admin module",
    "started": true
  },
  {
    "id": 2,
    "typeId": 2,
    "name": "DockerVolumeDriverModule",
    "address": "unix:///run/docker/plugins/rexray.sock",
    "description": "The REX-Ray Docker VolumeDriver module",
    "started": true
  },
  {
    "id": 3,
    "typeId": 2,
    "name": "DockerVolumeDriverModule",
    "address": "tcp://:7980",
    "description": "The REX-Ray Docker VolumeDriver module",
    "started": true
  }
]
[0]akutz@poppy:rexray$

Hmmm, you know, the REX-Ray CLI looks a little different in the above examples, doesn't it? About that...

Command Line Interface

The CLI has also been enhanced to present a more simplified view up front to users. The commands are now categorized into logical groups:

[0]akutz@pax:~$ rexray
REX-Ray:
  A guest-based storage introspection tool that enables local
  visibility and management from cloud and storage platforms.

Usage:
  rexray [flags]
  rexray [command]

Available Commands:
  volume      The volume manager
  snapshot    The snapshot manager
  device      The device manager
  adapter     The adapter manager
  service     The service controller
  version     Print the version
  help        Help about any command

Global Flags:
  -c, --config="/Users/akutz/.rexray/config.yaml": The REX-Ray configuration file
  -?, --help[=false]: Help for rexray
  -h, --host="tcp://:7979": The REX-Ray service address
  -l, --logLevel="info": The log level (panic, fatal, error, warn, info, debug)
  -v, --verbose[=false]: Print verbose help information

Use "rexray [command] --help" for more information about a command.

Travis-CI Support

REX-Ray now supports Travis-CI builds either from the primary REX-Ray repository or via a fork. All builds should be executed through the Makefile, which is a Travis-CI default. For the Travis-CI settings please be sure to set the environment variable GO15VENDOREXPERIMENT to 1.