terraform-provider-ec
terraform-provider-ec copied to clipboard
Custom Extension/Bundle Doesn't Show in Deployments
Question
Provider 0.1.0 is a great improvement, thank you! One of our biggest issues with the beta was that it was missing custom extensions, so it would remove our synonym bundle every time we pushed a change through Terraform. The new version fixes that, and it seems to be working very well.
However, I noticed an oddity - the state of the deployment shown in the GUI doesn't match the actual cluster.
- Deployment already had custom extension installed - editing the deployment in the GUI, I saw "Settings and Plugins (1)" and clicking into that I saw our custom extension selected.
- I added the extension block to the terraform file and applied the change.
- The resulting Activity entry said "Remove xxxxx user bundle", but the synonyms still seem to be there and our index that requires them didn't go red, so I'm confidant that the bundle is installed.
- When looking at Deployments under the GUI now, I see "Settings and Plugins (0)", when it should say "(1)", and clicking into there, the custom extension is no longer checked.
It's mostly a cosmetic issue, but it would be nice to be able to see the cluster's complete state from the GUI, including the custom extension. Is this something that can be fixed?
This is a known issue and already reported for other fields in #214.
I have experienced the same issue when adding Custom Plugins, somehow the provider seems to add the plugin reference at the incorrect node: [Correction: this seems to be a valid configuration for all topologies as per this comment]
{
...
},
"resources": {
"elasticsearch": [
{
"region": "azure-australiaeast",
"ref_id": "main-elasticsearch",
"plan": {
"tiebreaker_topology": {
"memory_per_node": 1024
},
"cluster_topology": [
...
],
"elasticsearch": {
"version": "7.12.1",
"user_plugins": [
{
"name": "pinyin-analysis",
"url": "repo://4228934933",
"elasticsearch_version": "7.12.1"
}
]
},
"deployment_template": {
"id": "azure-io-optimized-v2"
},
"autoscaling_enabled": false,
"transient": {
"strategy": {
"autodetect": {}
}
}
}
}
],
"kibana": [],
"apm": [],
"enterprise_search": []
}
It should be added within each cluster_topology
node:
{
...
"resources": {
"elasticsearch": [
{
"region": "gcp-us-west1",
"ref_id": "main-elasticsearch",
"plan": {
"tiebreaker_topology": {
"memory_per_node": 1024
},
"cluster_topology": [
{
"id": "coordinating",
"node_roles": [
"ingest",
"remote_cluster_client"
],
"zone_count": 2,
"elasticsearch": {
"system_settings": {
"scripting": {
"stored": {
"enabled": true
},
"inline": {
"enabled": true
}
},
"http": {
"compression": true,
"cors_enabled": false,
"cors_max_age": 1728000,
"cors_allow_credentials": false
},
"reindex_whitelist": [],
"use_disk_threshold": true,
"auto_create_index": true,
"enable_close_index": true,
"destructive_requires_name": false,
"monitoring_collection_interval": -1,
"monitoring_history_duration": "3d"
},
"enabled_built_in_plugins": [
"analysis-nori"
],
"user_bundles": [
{
"name": "syn1",
"url": "repo://3115391005",
"elasticsearch_version": "7.*"
}
]
},
"instance_configuration_id": "gcp.coordinating.1",
"size": {
"value": 0,
"resource": "memory"
}
},
...
],
"elasticsearch": {
"version": "7.12.1"
},
...
}