Giter Club home page Giter Club logo

rexray / rexray Goto Github PK

View Code? Open in Web Editor NEW
2.1K 85.0 328.0 48.62 MB

REX-Ray is a container storage orchestration engine enabling persistence for cloud native workloads

Home Page: http://rexray.io

License: Apache License 2.0

Go 82.59% Makefile 1.88% HTML 0.69% CSS 3.12% Shell 3.33% JavaScript 0.16% C 0.30% HCL 0.07% Smarty 0.02% Ruby 3.00% API Blueprint 4.54% Dockerfile 0.30%
go rex-ray storage-providers docker kubernetes mesos containers storage-orchestration

rexray's Introduction

REX-Ray GoDoc Build Status Go Report Card codecov.io Download


info Note: All hosted unstable and staged binaries older than 0.11.2-rc1 have been pruned due to quota restrictions.


The long-term goal of the REX-Ray project is to enable collaboration between organizations focused on creating enterprise-grade storage plugins for the Container Storage Interface (CSI). As a rapidly changing specification, CSI support within REX-Ray will be planned when CSI reaches version 1.0, currently projected for a late 2018 release. In the interim, there remains active engagement with the project to support the community.

REX-Ray provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker, Kubernetes, and Mesos.

It is additionally available as a Go package, CLI tool, and Linux service which enables it to be used for additional use cases.

Documentation Docs

You will find complete documentation for REX-Ray at rexray.readthedocs.org, including licensing and support information. Documentation provided at RTD is based on the latest stable build. The /.docs directory in this repo will refer to the latest or specific commit.

Architecture

REX-Ray is available as a standalone process today and as a distributed model of client-server. The client performs a level abstraction of local host processes (request for volume attachment, discovery, format, and mounting of devices) while the server provides the necessary abstraction of the control plane for multiple storage platforms/

Storage Provider Support

The following storage providers and platforms are supported by REX-Ray.

Provider Storage Platform Docker Containerized
Amazon EC2 EBS
EFS
S3FS
Ceph RBD
Dell EMC Isilon
ScaleIO
DigitalOcean Block Storage
FittedCloud EBS Optimizer
Google GCE Persistent Disk
Microsoft Azure Unmanaged Disk
OpenStack Cinder
VirtualBox Virtual Media

Operating System Support

The following operating systems are supported by REX-Ray:

OS Command Line Service
Ubuntu 12+
Debian 6+
RedHat
CentOS 6+
CoreOS
TinyLinux (boot2docker)
OS X Yosemite+
Windows

Installation

The following command will install the REX-Ray client-server tool. If using CentOS, Debian, RHEL, or Ubuntu the necessary service manager is used to bootstrap the process on startup

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

Runtime - CLI

REX-Ray can be run as an interactive CLI to perform volume management capabilities.

$ export REXRAY_SERVICE=ebs
$ export EBS_ACCESSKEY=access_key
$ export EBS_SECRETKEY=secret_key
$ rexray volume ls
ID            Name  Status    Size
vol-6ac6c7d6        attached  8

Runtime - Service (Docker)

Additionally, it can be run as a service to support Docker, Mesos, and other platforms that can communicate through HTTP/JSON.

$ export REXRAY_SERVICE=ebs
$ export EBS_ACCESSKEY=access_key
$ export EBS_SECRETKEY=secret_key
$ rexray service start
Starting REX-Ray...SUCCESS!

  The REX-Ray daemon is now running at PID XX. To
  shutdown the daemon execute the following command:

    sudo /usr/bin/rexray stop

$ docker run -ti --volume-driver=rexray -v test:/test busybox
$ df -h /test

Runtime - Docker Plugin

Starting with Docker 1.13, Docker now supports a new plugin architecture in which plugins can be installed as containers.

$ docker plugin install rexray/ebs EBS_ACCESSKEY=access_key EBS_SECRETKEY=secret_key
Plugin "rexray/ebs:latest" is requesting the following privileges:
 - network: [host]
 - mount: [/dev]
 - allow-all-devices: [true]
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from rexray/ebs
2ef3a0b3d192: Download complete
Digest: sha256:86a3bf7fdab857c955d7ef3fb94c01e350e34ba0f7fd3d0bd485e45f1592e1c2
Status: Downloaded newer image for rexray/ebs:latest
Installed plugin rexray/ebs:latest

$ docker plugin ls
ID                  NAME                   DESCRIPTION              ENABLED
450420731dc3        rexray/ebs:latest      REX-Ray for Amazon EBS   true

$ docker run -ti --volume-driver=rexray/ebs -v test:/test busybox
$ df -h /test

rexray's People

Contributors

akiraw avatar akutz avatar andrewsomething avatar andrey-mp avatar bottkars avatar clintkitson avatar codenrhoden avatar danforrest avatar dreadfuldeveloper avatar echupriyanov avatar jack-fittedcloud avatar jmaitrehenry avatar jonasrosland avatar jonboulle avatar kacole2 avatar koensayr avatar ltouati avatar matmaul avatar mhrabovcin avatar mux23 avatar oppodeldoc avatar philippfranke avatar protochron avatar proudh avatar ramanenka avatar tamalsaha avatar thevilledev avatar tn5993 avatar vladimirvivien avatar vstoican avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rexray's Issues

REXray not taking in configuration file

Issue: REXray not taking config.yaml file when it’s placed in /etc/rexray/config.yaml or ~/.rexray/config.yaml
Version: 0.2.0-rc5+23

my aws keys are not in sudo rexray service module types

i tried changing to .yml and still no go.

here is my config.yaml file:

--- 
AwsAccessKey: AblahblahblahQ
AwsSecretKey: 7blahblahblahS
StorageDrivers: 
  - ec2

Leverage as imported package

It is important to be able to import the RR package in the future. This may cause friction compared to the single instance daemon mode that has been introduced in 0.2. To allow this the following can be done today. Let's make sure that we either set a permanent abstraction between CLI accessing RR and packages importing RR and provide similar functionality re consuming configuration files.

import rexray "github.com/emccode/rexray/rexray/commands"

rexray.UpdateLogLevel()
rexray.InitDriverManagers()
sdm := rexray.GetSdm()

States of deployment and installation

I am building REX-Ray deployment into Docker Machine. In this case I will be doing it across multiple types of OSs.

This is going at a fast pace, so as of today, what's the best route to install REXray? from Bintray? from github releases? Is it going to be a tar.gz file or will it be the binary?

What is the long term approach going to be?

Would it be best to have a "latest" tag so the latest version is always pulled?

Install.sh using Ubuntu 14.04 is resulting in 'unexpected operator'

root@ec2-54-219-167-85:/home/ubuntu# curl -sSL https://raw.githubusercontent.com/emccode/rexray/master/install.sh | sh -
sh: 14: [: x86_64: unexpected operator

I can resolve the problem using #!/bin/bash instead of sh. Doing more testing to figure out what's going on..

Start looks to be failing to close stdin/stdout properly

We just ran into a situation where when starting rexray with sudo rexray start remotely through SSH, docker machine ..blah.. sudo rexray start it would hang indefinitely.

In troubleshooting I tried running something similar locally, sudo rexray start | sudo tee /tmp/temp. The tee is interpreting the stdin/stdout's and waiting for them to close apparently so acting similar to the remote SSH. If you run that command it hangs.

The systemd config broken in 0.2.0-rc2

With all the changes, the systemd configuration is broken, and uses the -daemon argument, which no longer exists.

It seems to be fixed with ExecStart=/opt/rexray/rexray start --foreground=true though.

v0.2 specifying config variables with rexray start doesn't work

@clintonskitson suggested to start rexray by doing sudo var1=val var2=val rexray service start to populate the configuration. The configuration is populated, but rexray cannot provision a new volume.

to reproduce the issue:

sudo rexray service install
sudo /etc/init.d/rexray start
sudo rexray service stop
sudo AWS_ACCESS_KEY=mykey AWS_SECRET_KEY=mysecretkey rexray service start
ubuntu@fun21:~$ rexray volume create --size=20 --volumename="wefw"
FATA[0000] AWS was not able to validate the provided access credentials (AuthFailure)
ubuntu@fun21:~$ rexray service module types
[
  {
    "id": 1,
    "name": "AdminModule",
    "defaultConfigs": [
      {
        "address": "tcp://:7979"
      }
    ]
  },
  {
    "id": 2,
    "name": "DockerRemoteVolumeDriverModule",
    "defaultConfigs": [
      {
        "address": "unix:///run/docker/plugins/rexray-remote.sock",
        "config": {
          "LogLevel": "info",
          "StorageDrivers": [],
          "VolumeDrivers": [
            "docker"
          ],
          "OsDrivers": [
            "linux"
          ],
          "MinVolSize": 0,
          "RemoteManagement": false,
          "DockerVolumeType": "",
          "DockerIops": 0,
          "DockerSize": 0,
          "DockerAvailabilityZone": "",
          "AwsAccessKey": "mykey",
          "AwsSecretKey": "mysecretkey",
          "AwsRegion": "",
          "RackspaceAuthUrl": "",
          "RackspaceUserId": "",
          "RackspaceUserName": "",
          "RackspacePassword": "",
          "RackspaceTenantId": "",
          "RackspaceTenantName": "",
          "RackspaceDomainId": "",
          "RackspaceDomainName": "",
          "ScaleIoEndpoint": "",
          "ScaleIoInsecure": false,
          "ScaleIoUseCerts": true,
          "ScaleIoUserName": "",
          "ScaleIoPassword": "",
          "ScaleIoSystemId": "",
          "ScaleIoSystemName": "",
          "ScaleIoProtectionDomainId": "",
          "ScaleIoProtectionDomainName": "",
          "ScaleIoStoragePoolId": "",
          "ScaleIoStoragePoolName": "",
          "XtremIoEndpoint": "",
          "XtremIoUserName": "",
          "XtremIoPassword": "",
          "XtremIoInsecure": false,
          "XtremIoDeviceMapper": "",
          "XtremIoMultipath": "",
          "XtremIoRemoteManagement": false
        }
      }
    ]
  },
  {
    "id": 3,
    "name": "DockerVolumeDriverModule",
    "defaultConfigs": [
      {
        "address": "unix:///run/docker/plugins/rexray-local.sock",
        "config": {
          "LogLevel": "info",
          "StorageDrivers": [],
          "VolumeDrivers": [
            "docker"
          ],
          "OsDrivers": [
            "linux"
          ],
          "MinVolSize": 0,
          "RemoteManagement": false,
          "DockerVolumeType": "",
          "DockerIops": 0,
          "DockerSize": 0,
          "DockerAvailabilityZone": "",
          "AwsAccessKey": "mykey",
          "AwsSecretKey": "mysecretkey",
          "AwsRegion": "",
          "RackspaceAuthUrl": "",
          "RackspaceUserId": "",
          "RackspaceUserName": "",
          "RackspacePassword": "",
          "RackspaceTenantId": "",
          "RackspaceTenantName": "",
          "RackspaceDomainId": "",
          "RackspaceDomainName": "",
          "ScaleIoEndpoint": "",
          "ScaleIoInsecure": false,
          "ScaleIoUseCerts": true,
          "ScaleIoUserName": "",
          "ScaleIoPassword": "",
          "ScaleIoSystemId": "",
          "ScaleIoSystemName": "",
          "ScaleIoProtectionDomainId": "",
          "ScaleIoProtectionDomainName": "",
          "ScaleIoStoragePoolId": "",
          "ScaleIoStoragePoolName": "",
          "XtremIoEndpoint": "",
          "XtremIoUserName": "",
          "XtremIoPassword": "",
          "XtremIoInsecure": false,
          "XtremIoDeviceMapper": "",
          "XtremIoMultipath": "",
          "XtremIoRemoteManagement": false
        }
      }
    ]
  }
]

Supply multiple module configurations in one file

It would be nice to allow for supplying multiple module configurations per file. This would allow for supplying the configuration for deploying combinations of vdm's and storage platforms that can be started using existing methods.

Allow for profile driven consumption from a single module

Being able to allow the usage of a storage profile as an option when consuming storage would be useful.

docker create --driver=rexray --opt=profile=fastbytes --size=16

This would leverage profile based consumption logic to decide which of the underlying platforms to consume from.

Add Volume pre-emption capabilties

Currently the failover capability in REX-Ray is passed through to the underlying storage platform. This means that depending on the platform, Volumes can be locked to that platform until there is manual intervention to allow for a Volume to be unmounted and unmapped from the host.

There are exceptions to this however. As an example, the EC2 driver is aware of hosts being powered on or off, and allows Mount commands to progress if the EC2 instance is powered off. This means that pre-emption is built into the platform and enabled natively through the driver. But this is only in the case of an instance being powered off and not among any failures at higher application layers.

In the case of ScaleIO, there is a flag AllowMultipleMappings which can be flipped in the ScaleIO driver which would negate any need for pre-emption and could be advertised as an optional parameter. This of course comes with risk when volumes are managed appropriately that multiple hosts can be exposed to the same non-clustered FS.

Otherwise, proper pre-emption is a necessary part of being safe which involves being able to identify the proper situation for unmapping and mapping a volume.

have build names follow `uname` characteristics

following along from https://github.com/docker/compose/releases/tag/1.4.0

curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

we should have rexray be similar.

curl -L https://github.com/emccode/rexray/releases/download/0.2.0-rc1/rexray-`uname -s`-`uname -m`.tar.gz > /tmp/rexray-`uname -s`-`uname -m`.tar.gz

this means we should get rid of the v from the leading address and follow standard uname returns.

Docker reports a plugin error when creating a container for name exceeding length

There is a parameter in a Dockerfile where it specifies a certain amount of external volumes be used. Currently in Docker 1.7+, you can specify extra volumes using the runtime flag of -v, but this does not override volumes that are specified in the Dockerfile. Once you pass the --volume-driver flag, all volumes that are associated are passed to the plugin. In the following case there is one volume that is specified attached to /var/lib/mysql.

docker run -ti --name mysql7 -p 3306:3306 -e MYSQL_PASS="87654321" --volume-driver=rexray -v wpmsql01c:/var/lib/mysql tutum/mysql

If you look at the Dockerfile you will see that the volume statement includes two volumes as VOLUME ["/etc/mysql", "/var/lib/mysql"]. This causes Docker to try and create a new volume for /etc/mysql since this volume based on mount point is not specified at runtime. A new GUID is created and a new volume is created and attach to this mount point.

The error as Error response from daemon: Plugin Error: {"Error":"problem getting response: The given name exceeds the allowed length of 31 characters."} is coming up since the ScaleIO driver currently only supports up to 31 characters in the name of a volume.

FIX: Ensure that you specify the same number of volumes or more than the number specified in the Dockerfile under volumes. The mount point path in the Dockerfile must correlate to the mount point path under the -v flags.

Prioritization of daemon drivers needed

Daemon drivers allow you to specify different REST endpoints for different use cases. Since this does not perform introspection to detect the appropriate driver to be used, you must specify them in REXRAY_DAEMONDRIVERS.

cannot install rexray from bintray file downloads

here are my steps to recreate

wget

Download the file using wget, tar, move, +x, install

$ wget https://bintray.com/artifact/download/akutz/generic/rexray-linux_amd64-0.2.0-rc2%2B18.tar.gz
$ tar xzfv rexray-linux_amd64-0.2.0-rc2+18.tar.gz
$ sudo mv rexray /bin/rexray
$ sudo chmod +x /bin/rexray
$ sudo rexray service install
update-rc.d: /etc/init.d/rexray: file does not exist
FATA[0000] installation error exit status 1

curl

Download the file using wget, tar, move, +x, install

$ curl -LOk https://bintray.com/artifact/download/akutz/generic/rexray-linux_amd64-0.2.0-rc2%2B18.tar.gz
$ tar xzfv rexray-linux_amd64-0.2.0-rc2+18.tar.gz
$ sudo mv rexray /bin/rexray
$ sudo chmod +x /bin/rexray
$ sudo rexray service install
ERRO[0000] error reading configuration file(s) from default path(s)  error=open : no such file or directory global=/etc/rexray/config.yaml user=/root/.rexray/config.yaml
ERRO[0000] error reading configuration file(s) from default path(s)  error=open : no such file or directory global=/etc/rexray/config.yaml user=/root/.rexray/config.yaml
ERRO[0000] error reading configuration file(s) from default path(s)  error=open : no such file or directory global=/etc/rexray/config.yaml user=/root/.rexray/config.yaml
panic: open /root/.rexray/usage.template: permission denied

goroutine 1 [running]:
github.com/emccode/rexray/rexray/commands.initUsageTemplates()
    /home/travis/gopath/src/github.com/emccode/rexray/rexray/commands/usage.go:25 +0x38e
github.com/emccode/rexray/rexray/commands.init.1()
    /home/travis/gopath/src/github.com/emccode/rexray/rexray/commands/rexraycli.go:113 +0x40
github.com/emccode/rexray/rexray/commands.init()
    /home/travis/gopath/src/github.com/emccode/rexray/rexray/commands/usage.go:139 +0x4c9
main.init()
    /home/travis/gopath/src/github.com/emccode/rexray/rexray/rexray.go:28 +0x40

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1696 +0x1

goroutine 6 [runnable]:
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:20
created by os/signal.init.1
    /usr/local/go/src/os/signal/signal_unix.go:28 +0x37

Always load env vars in /etc/environment if present

Because sudo doesn't always play nice with /etc/environment and so many people place configuration information there even when inappropriate or not fully understood, REX-Ray should manually load /etc/environment in order to relieve users of possible issues due to Linux systems being so disparate and supporting so many different configuration options.

Bintray link to download doesn't work for wget/rpm

It looks like the RPM and WGET installation is failing due to the % that is present in the links.

https://dl.bintray.com/emccode/rexray/stupid/latest/%rexray-latest-x86_64.rpm

[root@mdm2 centos]# wget https://dl.bintray.com/emccode/rexray/stupid/latest/%rexray-latest-x86_64.rpm
--2015-09-20 04:09:39--  https://dl.bintray.com/emccode/rexray/stupid/latest/%25rexray-latest-x86_64.rpm
Resolving dl.bintray.com (dl.bintray.com)... 108.168.194.92, 108.168.194.91
Connecting to dl.bintray.com (dl.bintray.com)|108.168.194.92|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-09-20 04:09:39 ERROR 404: Not Found.

[root@mdm2 centos]# rpm -ivvh https://dl.bintray.com/emccode/rexray/stupid/latest/%rexray-latest-x86_64.rpm
Retrieving https://dl.bintray.com/emccode/rexray/stupid/latest/%rexray-latest-x86_64.rpm
curl: (22) The requested URL returned error: 400 Bad Request
error: skipping https://dl.bintray.com/emccode/rexray/stupid/latest/%rexray-latest-x86_64.rpm - transfer failed

Should the curl install script point to install.sh on GitHub?

Hi @clintonskitson (et. al),

Currently both the install and install.sh scripts are hosted on Bintray. I'm thinking that the latter should actually only be hosted on GitHub with the former pointing to https://raw.githubusercontent.com/emccode/rexray/master/install.sh instead of https://dl.bintray.com/emccode/rexray/install.sh. The reason for this is so that we can more easily update the actual installer -- it will only take a commit.

If you agree, I'd like to make this change ASAP as it will require replacing the static installer, resetting its download count. I want that to happen well before the release of 0.2.0.

Wrong package ?

In storage/xtremio/storage.go the package is declared as package scaleio.
Shouldn't it be package xtremio ?

Log file not generated on Ubuntu

Based on release notes in RC4, it looks like the log should be at /var/log/rexray.log. I have ran it from rexray start and also /etc/init.d/rexray start and no luck. Am I missing something?

--Config parameter seems to be ignored

It looks like this parameter is being ignored currently.

[root@mdm2 rexray]# mv /etc/rexray/config.yml /etc/rexray/config.yml-old
[root@mdm2 rexray]# rexray --config=/etc/rexray/config.yml-old volume
FATA[0000] Error: Driver Volume discovery failed: AWS was not able to validate the provided access credentials (AuthFailure) 
[root@mdm2 rexray]# mv /etc/rexray/config.yml-old /etc/rexray/config.yml
[root@mdm2 rexray]# rexray --config=/etc/rexray/config.yml-old volume
- name: ""
  volumeid: vol-5e0144a7
  availabilityzone: us-west-1b
  status: available
  volumetype: standard
  iops: 0
  size: "8"
  networkname: ""
  attachments: []
- name: ""
  volumeid: vol-4d0045b4
  availabilityzone: us-west-1b
  status: available
  volumetype: standard
  iops: 0

get-volume can see all EBS volumes outside of its AZ

when performing a rexray get-volume in AWS, it gets all EBS volumes. That becomes a problem because a container cannot mount a volume if it's in a different AZ than the host.

It would be good if rexray only discovered volumes within the AZ the host is in

VirtualBox storage driver?

Would it make sense to have a VirtualBox storage driver for REX-Ray?

I started working on a VirtualBox volume driver plugin over at appropriate/docker-volumes-virtualbox that uses the vboxwebsrv SOAP service, but I had to put it on the backburner before getting to the point of having the VM format and mount the volume. Part of this was due to the tediousness of the vboxwebsrv SOAP interface and part of it was simply due to lack of time.

Since REX-Ray is already handling the formatting and mounting part as far as I understand it, I was wondering if it would make more sense for me to repurpose my code to be a REX-Ray storage driver and thereby avoid having to do some of that extra work.

Do REX-Ray storage drivers need to be integrated with this project, or is there a way to build them as a separate binary that lives in its own project?

Enable limitations for consuming from modules

It would be nice to allow the REX-Ray admin to set configurable limitations per module.

  • size of volume created
  • type of options or limits on options
  • limits on create/remove operations
    and more

Add commit number to 'rexray version'

Would be nice to directly correlate a commit hash to a binary even with actual releases. Having rexray version return version and commit for all releases would help here.

Hide specific configuration parameters from logging and return

Since the new foundational enhancements with an admin API and logging, we now need think about hiding configuration parameters in JSON conversion and logging.

Considering the default behavior is to expose TCP admin session, a simple call like http://ip:7979/r/module/instances is going to expose too much information. I would assume that returning this kind of information upon instantiation may be appropriate, but that returning it after that point should not be possible.

[
  {
    "id": 1,
    "typeId": 1,
    "name": "AdminModule",
    "config": {
      "address": "tcp://:7979"
    },
    "description": "The REX-Ray admin module",
    "started": true
  },
  {
    "id": 2,
    "typeId": 2,
    "name": "DockerRemoteVolumeDriverModule",
    "config": {
      "address": "unix:///run/docker/plugins/rexray-remote.sock",
      "config": {
        "LogLevel": "info",
        "StorageDrivers": [
          "ec2"
        ],
        "VolumeDrivers": [
          "docker"
        ],
        "OsDrivers": [
          "linux"
        ],
        "MinVolSize": 0,
        "RemoteManagement": false,
        "DockerVolumeType": "",
        "DockerIops": 0,
        "DockerSize": 0,
        "DockerAvailabilityZone": "",
        "AwsAccessKey": "A",
        "AwsSecretKey": "jSv",

Allow one-liners for simplified CLI management

There are cases where it is very nice to allow bulk commands by way of the CLI. For example, if someone would like to remove all mapped volumes this should be possible via nested command as such.

rexray volume unmount $(rexray volume map -q)

Currently this would be accomplished with a command like ./rexray volume map | grep "volumeid:" | awk '": " { system("./rexray volume unmount --volumeid="$2); }'.

change "volume get" to "volume list"

just a suggestion, so take it how you wish.

I would like to see rexray volume get be rexray volume list. or keep the get for specific volumes but have a list or ls shorthand.

Weird issue with Docker

Hi there,

I tried to configure Rex-ray(0.1 and 0.2) on a CoreOS(801) with Docker 1.8.1.
And here is what I get. https://gist.github.com/Arkan/55ed62a965db1b9a4ee3
As you can see, the first time, when the volume doesn't exist, it is created, and then mounted correctly.
The second time, the volume exists, and there is an error with Docker(or REX-ray?)
Do you have any idea on what's going on here?

Thanks

rename "remove" to "delete"

again, just another suggestion.

remove sounds like "i'm going to remove this from my inventory" or "remove this from this machine". Perhaps delete makes it feel like "are you sure you want to do this?"

v0.2 put ENV variables into service module types

rexray still functions in v0.2 just as it used to in v0.1x when ENV variables were used for configuration. I can still declare ENV variables and rexray still creates volumes. However, the ENV variables are not populated in the configuration output with rexray service module types.

Installing REX-Ray on CoreOS fails with command not found

Running the sh install method is erroring out. It looks like because lsb-release exists, it is trying to do an apt package install. I am not very savvy with why the lsb-release would be something tagged to determine a valid apt install.

core@ip-10-0-1-223 ~ $ curl -sSL https://dl.bintray.com/emccode/rexray/install | sh -
sudo: dpkg: command not found

REX-Ray has been installed to /usr/bin/rexray

sh: line 45: /usr/bin/rexray: No such file or directory
elif [ "$ARCH" = "x86_64" -a \
       -e "/etc/debian-release" -o \
       -e "/etc/debian-version" -o \
       -e "/etc/lsb-release" ]; then
core@ip-10-0-1-223 ~ $ cat /etc/lsb-release 
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=723.3.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 723.3.0"

Reinstall of RR on Ubuntu causes 'no such file' error

Problem after uninstalling and reinstalling RR under Ubuntu.

root@ec2-54-219-167-85:/home/ubuntu# curl -sSL https://dl.bintray.com/emccode/rexray/install | sh -
(Reading database ... 77285 files and directories currently installed.)
Preparing to unpack rexray-latest-x86_64.deb ...
/var/lib/dpkg/info/rexray.prerm: line 2: /usr/bin/rexray: No such file or directory

Removal of files by rm /var/lib/dpkg/info/rex* looks to fix the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.