Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Azure Java Management SDK 0.7.0 #63

Closed
wants to merge 3 commits into from

Conversation

dadoonet
Copy link
Member

In addition to PR #61 and #62, this 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.

Closes #38

@dadoonet dadoonet added this to the 2.5.2 milestone Feb 16, 2015
@dadoonet dadoonet self-assigned this Feb 16, 2015
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.
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.
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 elastic#38
@dadoonet
Copy link
Member Author

This PR is included in #64. Closing this one.

@dadoonet dadoonet closed this Feb 23, 2015
@dadoonet dadoonet added the 2.6.0 label Apr 16, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant