Skip to content

dellemc-trigr/libstorage-release

Repository files navigation

libstorage-release

This repository is a bosh release for libstorage.

##Prerequisites

The usage of this repository assumes that the developer have context using BOSH, BOSH CLI, and motiviation to use Libstorage for a storage solution.

This bosh release is open to use any adapter available libstorage client now or in the future. At the time of this writing, Libstorage supports VirtualBox, Isilon, and ScaleIO adapters for storage solutions. We will cover how to write a manifest for this release using Isilon and ScaleIO, and step by step deployment with that manifest. NOTE: Using two adapters in our manifest is for clear documentation. One could easily use only Isilon, or only ScaleIO with similar steps.

####STEP 1: Clone & upload bosh release

Use the command git clone https://github.com/EMC-CMD/libstorage-release.git to clone this repository.

Create the release with the command bosh create release --final. This should add some release to the repository like releases/libstorage-release/libstorage-release-1.yml

Upload the bosh release provided with bosh upload release releases/libstorage-release/libstorage-release-1.yml. This should upload the release to your BOSH director.

####STEP 2: Create manifest

An example of this manifest is here. We will walk through chunks of this file, so it's recommended to copy+paste, then fix what's necessary for your configuration.

name: libstorage-example
director_uuid: <get-director-uuid>

The name should be fine, but you are welcome to change it to something more like libstorage-job or libstorage. director_uuid needs to match the uuid of the bosh director we are trying to deploy to. To find this, use the BOSH CLI with bosh status --uuid.

releases:
- {name: libstorage, version: latest}

This line will specify what release your BOSH deployment will use. given that you should only have the deployment included in this repository, this line should be adequate.

jobs:
  - name: libstorage-example
    instances: 1
    networks:
    - name: my-favorite-network
    templates:
    - name: libstorage-example
      release: libstorage-example
    persistent_disk_pool: medium
    vm_type: medium
    stemcell: trusty
    azs:
    - my-az

The jobs block should contain information about the job BOSH will deploy. Give this job a cool name like libstorage-is-the-best or libstorage-number-one.

One instances might be enough, but this release supports scaling as needed. Note that hitting the endpoint for multiple servers would most likely require some proxy, and balancing. This task is outside the scope of the tutorial.

Assigning other values is the work of the developer with access to bosh cloud-config through the CLI. Fill in the necessary information, and be sure to specify a stemcell either in-line or as we have in our example by putting the alias trusty and a block at the bottom similar to the following:

stemcells:
- alias: trusty
  os: ubuntu-trusty
  version: '3262.9'

Don't forget the update block similar to what is shown below. For more details, see the BOSH documentation

Important piece of this manifest is in properties.libstorage. This field is the configuration for your libstorage client. The client binary will use this configuration file at runtime. Use this as an example to guide structure for services you wish to provide through libstorage.

      properties:
        libstorage:
          libstorage:
            logging:
              level: debug
            client:
              type: controller
            host: tcp://0.0.0.0:7981 #This will listen for incoming connections to libstorage on this VM.
            server:
              services:
                isilonservice:
                  driver: isilon
                  isilon:
                    endpoint: https://<isilon-endpoint>:<isilon-port>
                    insecure: <true/false>
                    username: <a great username>
                    password: <a great password>
                    volumePath: <a path to mount volumes on this VM>
                    nfsHost: <nfs host for Isilon>
                    dataSubnet: <data subnet CIDR>
                    quotas: <true/false>
                scaleioservice:
                  driver: scaleio
                  scaleio:
                    endpoint: https://<scaleio endpoint>/api
                    insecure: <true/false>
                    userName: <secure name>
                    password: <secure password>
                    protectionDomainName: <protectionDomainName here>
                    storagePoolName: <storage pool name here>
                    version: <version goes here>

####Step 3: Target Manifest + Deploy

Use the commands:

bosh deployment <path to created manifest> bosh deploy

To deploy libstorage. This may take some rinse-and-repeat with manifest options.

Congratulations! You've successfully deployed libstorage with BOSH.

About

effective-rotary-phone, but not

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •