Commit Graph

44 Commits

Author SHA1 Message Date
David Pilato 85ac406f63 Use Azure Java Management SDK 0.7.0
This first version adds `azure-management` 0.7.0 instead of using our own XML implementation.
We can now have more control and give more options to the users.

We now support different keystore types using `cloud.azure.management.keystore.type`:

* `pkcs12`
* `jceks`
* `jks`

Closes #38

(cherry picked from commit 72c77d3)
(cherry picked from commit d2541ab)
2015-02-27 10:56:00 +01:00
David Pilato 42509d0da8 Rename settings for discovery
Azure Java SDK follows some conventions about property names and we can use
the same convention. The benefit is that it makes the code cleaner and easier to understand
as components settings relies on package name without the `org.elasticsearch` prefix.

In previous versions, we defined:

```
cloud:
	azure:
		keystore: /path/to/keystore
		password: your_password_for_keystore
		subscription_id: your_azure_subscription_id
		service_name: your_azure_cloud_service_name
		port_name: elasticsearch
		host_type: private_ip
```

We now define:

```
cloud:
	azure:
		management:
			keystore:
				path: /path/to/keystore
				password: your_password_for_keystore
			subscription:
				id: your_azure_subscription_id
			cloud:
				service:
					name: your_azure_cloud_service_name

discovery:
	azure:
		host:
			type: private_ip
		endpoint:
			name: elasticsearch
```

The following are a list of settings (prefixed with `cloud.azure.management`) that can further control the discovery:

* `keystore.path`: /path/to/keystore
* `keystore.password`: your_password for the keystore
* `subscription.id`: your_azure_subscription_id
* `cloud.service.name`: your_azure_cloud_service_name

So basically we deprecate the following properties:

* `cloud.azure.keystore` to `cloud.azure.management.keystore.path`
* `cloud.azure.password` to `cloud.azure.management.keystore.password`
* `cloud.azure.subscription_id` to `cloud.azure.management.subscription.id`
* `cloud.azure.service_name` to `cloud.azure.management.cloud.service.name`
* `cloud.azure.port_name` to `discovery.azure.port.name`
* `cloud.azure.host_type` to `discovery.azure.host.type`

Note that we can still read deprecated settings but it will print a `WARN` with an advice to make sure users don't forget to move.

(cherry picked from commit 04920a8)
(cherry picked from commit 9745826)
2015-02-27 10:53:51 +01:00
David Pilato 4954732007 Rename settings for repositories
Storage and Management settings are not related in Azure API.
We were using the following convention for storage specific settings:

```yml
cloud:
    azure:
        storage_account: your_azure_storage_account
        storage_key: your_azure_storage_key
```

A better naming (and Java packaging) would be by moving `storage` settings in their own package
`cloud.azure.storage`:

```yml
cloud:
    azure:
        storage:
            account: your_azure_storage_account
            key: your_azure_storage_key
```

Note that we can still read deprecated settings but it will print a `WARN` with an advice to make sure users don't forget to move.

(cherry picked from commit 6b30c62)
(cherry picked from commit 1237be9)
2015-02-27 10:52:07 +01:00
David Pilato 396cf117c9 Simplify setting index.store.type with smb_simple_fs and smb_mmap_fs
This commit changes work done in #60 by using automatic store type discovery which exists in elasticsearch core.

Instead of writing configuration like:

```yaml
index.store.type: org.elasticsearch.index.store.fs.SmbMmapFsIndexStoreModule
index.store.type: org.elasticsearch.index.store.fs.SmbSimpleFsIndexStoreModule
```

We can now use:

```yaml
index.store.type: smb_mmap_fs
index.store.type: smb_simple_fs
```

Note that we move `org.elasticsearch.index.store.fs.SmbMmapFsIndexStoreModule` to  `org.elasticsearch.index.store.smbmmapfs.SmbMmapFsIndexStoreModule` and `org.elasticsearch.index.store.fs.SmbSimpleFsDirectoryService` to `org.elasticsearch.index.store.smbsimplefs.SmbSimpleFsDirectoryService` instead of deprecating the old classes and add new ones.
It means that if users were using a 2.5.2-SNAPSHOT version, they will need to update their settings.

(cherry picked from commit 613ce5a)
(cherry picked from commit 7831521)
2015-02-17 10:47:46 +01:00
Shay Banon 24cf553c9a Update README.md
clarify why we wrote the smb dir
2015-02-14 17:53:55 +01:00
David Pilato de24b379ee Script examples should escape special chars 2015-02-13 22:21:19 +01:00
Tanguy Leroux 3ef4cc5a78 Open Lucene MMap/SimpleFSDirectory with Read option
This commit adds 2 IndexStoreModule / IndexStore / DirectoryService that open Lucene MMapFSDirectory / SimpleFSDirectory with a "read" option.
It can be activated in configuration with:
index.store.type: org.elasticsearch.index.store.fs.SmbSimpleFsIndexStoreModule
or
index.store.type: org.elasticsearch.index.store.fs.SmbMmapFsIndexStoreModule
(cherry picked from commit 2388ace)
(cherry picked from commit 16014a0)
2015-02-13 17:26:10 +01:00
David Pilato 69107b5ae6 update documentation with release 2.5.1 2014-11-24 18:17:00 +01:00
David Pilato 27a12065eb The document recommends a non-durable location for data
I noticed the documentation recommends a non-durable local resource for the Elasticsearch data path.  Although this is acceptable for some deployments it might be worth warning people that the path is not durable and there is a potential for data loss, even with replicas data loss is theoretically possible.

```
# recommended
path.data: /mnt/resource/elasticsearch/data
```

Alternatively the user could attach and use data disks which do come with a significant performance tradeoff, but premium storage options with higher IOPS have been announced and are right around the corner.

Closes #46.
2014-11-24 18:05:21 +01:00
David Pilato f82b7e9060 update documentation with release 2.5.0 2014-11-12 11:02:06 +01:00
David Pilato ab87790ed7 Docs: more information about certificate management
Closes #33.
2014-10-30 17:27:02 +01:00
David Pilato 9e44ceb904 Update to elasticsearch 1.4.0
Related to #30

(cherry picked from commit 442d06e)
(cherry picked from commit aa27eb9)
2014-10-30 16:11:58 +01:00
David Pilato 6d5ac76eee BlobContainer interface changed in elasticsearch 1.4.0
AWS plugin needs an update because of this change https://github.com/elasticsearch/elasticsearch/pull/7551

Closes #37.
2014-10-30 15:45:07 +01:00
David Pilato 6582d8b42c fix install instruction with version 2.4.0 2014-08-04 16:29:25 +02:00
David Pilato e08dc71c2f update documentation with release 2.4.0 2014-08-04 16:24:26 +02:00
David Pilato 45492c009c Docs: make the welcome page more obvious
One of the concern we have with our documentation is that it's hard for users to understand which plugin version they should use with a given elasticsearch version.

The change will consist of:

* have a clean and simple compatibility matrix on master branch
* remove list of versions in other branches

Closes #29.
2014-08-01 19:21:44 +02:00
David Pilato 3421168164 Docs: make the welcome page more obvious
One of the concern we have with our documentation is that it's hard for users to understand which plugin version they should use with a given elasticsearch version.

The change will consist of:

* have a clean and simple compatibility matrix on master branch
* remove list of versions in other branches

Closes #29.
2014-08-01 18:30:08 +02:00
David Pilato 845e5251b4 Docs: make the welcome page more obvious
One of the concern we have with our documentation is that it's hard for users to understand which plugin version they should use with a given elasticsearch version.

The change will consist of:

* have a clean and simple compatibility matrix on master branch
* remove list of versions in other branches

Closes #29.
2014-08-01 18:19:55 +02:00
David Pilato 248845638a Docs: Generating ssh keys
There's a much better documentation (including using existing OpenSSH keys like most of us already have for git) on the Azure docs, e.g.:

http://azure.microsoft.com/en-us/documentation/articles/linux-use-ssh-key/

Closes #18.
2014-07-31 00:40:47 +02:00
David Pilato ecd95dab9b Docs: use Oracle Java by default
Installing Oracle JVM is as easy as:

 ```
 echo debconf shared/accepted-oracle-license-v1-1 select true | \
   sudo debconf-set-selections && echo debconf shared/accepted-oracle-license-v1-1 seen true | \
   sudo debconf-set-selections && sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update && sudo apt-get install oracle-java7-installer
 ```

 See http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html

 Closes #19.
2014-07-31 00:31:59 +02:00
David Pilato 976448e339 `_` is a forbidden character for container (repository)
According to [Containers naming guide](http://msdn.microsoft.com/en-us/library/dd135715.aspx):

> A container name must be a valid DNS name, conforming to the following naming rules:
>
> * Container names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character.
> * Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names.
> * All letters in a container name must be lowercase.
> * Container names must be from 3 through 63 characters long.

We need to fix the documentation and control that before calling Azure API.
The validation will come with issue #27.

Closes #21.

(cherry picked from commit 6531165)
2014-07-31 00:14:05 +02:00
David Pilato 0bd6c72ac6 Tests: update to Lucene 4.9.0
Closes #24.

(cherry picked from commit 13c60e4)
2014-07-31 00:12:54 +02:00
David Pilato 943f2552f9 Update to elasticsearch 1.3.0
And refactor integration tests

Closes #17.

(cherry picked from commit f5b444e)
(cherry picked from commit 1e63f86)
2014-06-19 19:05:16 +02:00
David Pilato b433c9889b Create branch es-1.2 2014-04-29 21:46:33 +02:00
David Pilato 03895ea768 Create branches according to elasticsearch versions
We create branches:

* es-0.90 for elasticsearch 0.90
* es-1.0 for elasticsearch 1.0
* es-1.1 for elasticsearch 1.1
* master for elasticsearch master

We also check that before releasing we don't have a dependency to an elasticsearch SNAPSHOT version.

Add links to each version in documentation
(cherry picked from commit 65d4862)
2014-03-26 19:42:00 +01:00
David Pilato 3969991091 prepare for next development iteration 2014-03-17 19:42:05 +01:00
David Pilato 39c3cbad98 prepare release elasticsearch-cloud-azure-2.1.0 2014-03-17 19:36:52 +01:00
David Pilato a8c20b6002 Fix typo in tests 2014-03-17 19:25:39 +01:00
David Pilato 11dfdfb189 Add Azure Storage repository
elasticsearch 1.0 will provide a new feature named `Snapshot & Restore`.

We want to add support for [Azure Storage](http://www.windowsazure.com/en-us/documentation/services/storage/).

To enable Azure repositories, you have first to set your azure storage settings:

```yaml
    cloud:
        azure:
            storage_account: your_azure_storage_account
            storage_key: your_azure_storage_key
```

The Azure repository supports following settings:

* `container`: Container name. Defaults to `elasticsearch-snapshots`
* `base_path`: Specifies the path within container to repository data. Defaults to empty (root directory).
* `concurrent_streams`: Throttles the number of streams (per node) preforming snapshot operation. Defaults to `5`.
* `chunk_size`: Big files can be broken down into chunks during snapshotting if needed. The chunk size can be specified
in bytes or by using size value notation, i.e. `1g`, `10m`, `5k`. Defaults to `64m` (64m max)
* `compress`: When set to `true` metadata files are stored in compressed format. This setting doesn't affect index
files that are already compressed by default. Defaults to `false`.

Some examples, using scripts:

```sh
$ curl -XPUT 'http://localhost:9200/_snapshot/my_backup1' -d '{
    "type": "azure"
}'

$ curl -XPUT 'http://localhost:9200/_snapshot/my_backup2' -d '{
    "type": "azure",
    "settings": {
        "container": "backup_container",
        "base_path": "backups",
        "concurrent_streams": 2,
        "chunk_size": "32m",
        "compress": true
    }
}'
```

Example using Java:

```java
client.admin().cluster().preparePutRepository("my_backup3")
        .setType("azure").setSettings(ImmutableSettings.settingsBuilder()
                .put(AzureStorageService.Fields.CONTAINER, "backup_container")
                .put(AzureStorageService.Fields.CHUNK_SIZE, new ByteSizeValue(32, ByteSizeUnit.MB))
        ).get();
```

Closes #2.
2014-03-17 09:23:29 +01:00
David Pilato 696cad1f67 "azure vm list" command should be changed to "azure vm image list" in the README.md
In the `readme.md` file, `azure vm list` command should be changed to `azure vm image list`. The former lists all the VMs running in the current Azure subscription and the latter displays list of official available images.

The line is located just below the following line:

`To get a list of official available images, run:`

Closes #5.
2014-03-13 15:50:05 +01:00
David Pilato 92f629bcc4 Add plugin release semi-automatic script
Closes #10.
2014-03-13 15:35:00 +01:00
David Pilato 65448fe639 prepare for next development iteration 2014-02-14 18:39:08 +01:00
David Pilato 96c60413b8 prepare release elasticsearch-cloud-azure-2.0.0 2014-02-14 18:39:08 +01:00
Andrew Raines f06e54e59a Add prerequisite about openssl version 2014-02-10 12:31:40 -06:00
David Pilato 647312617b Update README (chmod pk / certificate) 2014-01-27 09:46:30 +01:00
David Pilato c73b5982aa setting path.data to /mnt/resource/... is highly recommended 2014-01-15 16:50:57 +01:00
David Pilato fbbaf37620 prepare 1.x branch 2014-01-15 16:30:42 +01:00
David Pilato 48b264172c update headers 2014-01-15 16:04:02 +01:00
David Pilato 3c592a0741 Update README after review by Microsoft Azure team 2014-01-15 15:58:50 +01:00
David Pilato 41de615eb2 prepare for next development iteration 2013-11-06 16:19:32 +01:00
David Pilato 92cda5e27b prepare release elasticsearch-cloud-azure-1.0.0.alpha1 2013-11-06 16:09:25 +01:00
David Pilato a1f85f6d90 Preparing release for 1.0.0-Alpha 2013-11-06 09:54:30 +01:00
David Pilato fba4f6b1a1 Create elasticsearch-cloud-azure project 2013-08-22 13:16:00 +02:00
David Pilato 598a64c990 Initial commit 2013-04-02 18:15:33 +02:00