Description
Hello,
I am working with the splunk_data_ui_views
and deployed a dashboard via terraform:
https://registry.terraform.io/providers/splunk/splunk/latest/docs/resources/data_ui_views
Code in main.tf
resource "splunk_data_ui_views" "my_dashboard" {
name = "Terraform_Sample_Dashboard"
eai_data = file("my_dashboard.xml")
acl {
owner = var.splunk_username
app = "MY_APP"
sharing = "app"
can_change_perms = true
can_write = true
}
}
What Worked
We were able to create the dashboard after the first terraform apply
, and that went to success and the dashboard shows up in Splunk.
Error(404
): What Isn't Working, Changing a Simple property in the source XML
I simply went to change a small part of the xml in a dropdown, changing:
<choice value="myenvironment">myenvironment</choice>
to:
<choice value="myenvironment">myenvironment-edit</choice>
appending that edit
part on just to tinker with the dashboard. The terraform plan
was successful and just shows a change to that part of the xml source file:
- <choice value="myenvironment">myenvironment</choice>
+ <choice value="myenvironment">myenvironment-edit</choice>
But upon terraform apply
we get a 404 error:
| Error: 404 Not Found: {"messges":[{"type":"ERROR","text":"Cannot find entity with name=\"Terraform_Sample_Dashboard\""}]}
|
| with splunk_data_ui_views.my_dashboard,
| on main.tf line 2, in resource "splunk_data_ui_views" "my_dashboard":
| 2: resource "splunk_data_ui_views" "my_dashboard" {
But that doesn't make immediate sense, since:
terraform state list
shows mysplunk_data_ui_views.my_dashboard
just fine- The dashboard we created originally from the original
terraform apply
is also in the UI, so the state file is tracking the real world resource in Splunk?
So, why can't I simply make an edit of my source xml file if the plan is happy, but I get a 404 upon terraform apply
.
I've worked with other Terraform providers like Terraform AWS and Terraform New Relic, and a simple property update is pretty seamless.
I've also noticed that the id
of the dashboard is taken from the name
we create the resource "splunk_data_ui_views"
with. Could in the future the id
be turned into a unique integer? Seems there is some co-dependency between the id
and the name
, but could be mistaken. But we do notice, the id
created, known only after we run terraform apply
, literally becomes the same as the name
).
All this could be me simply being unfamiliar with Splunk and the TF provider for it. Any suggestions are appreciated. Thanks!
PS: We noticed that it appears the name
property of the dashboard only accepts -
, _
, and .
for special characters. Is there a place I can make a PR to update the documentation page for the resource here to note that? The error that is thrown if we have special characters outside of those three could also be improved. Just makes it easier to have that handy in the doc. acl
properties also might be nice to have.