Fix multiple longstanding issues
I have reviewed a few of the longstanding issues for this module and have put together this MR to try and move some of them forward.
#7 (closed)
IssueThis is a problem in particular when the sql_instance_connection_name
variable references a value which is only known after apply. This is always the case when we deploy our boilerplate workspaces for the first time and requires targeted apply steps to work around.
My resolution to this is to simply create a new boolean variable named grant_sql_client_role_to_webapp_sa
and use this instead of the sql_instance_connection_name
variable to determine whether to grant the SQL role. This will require a change to the boilerplate to add the new variable to the webapp
module call and set it to true
as the default is false
.
#35 (closed)
Issuedashboard.tf
uses the deprecated hashicorp/template
provider. I have simply refactored to use the built-in templatefile
function instead.
#37 (closed)
IssueThis issue is because in Terraform 1.0 provider aliases are now to be specified in the terraform.required_provider[name].configuration_aliases
list. In the comments of the issue there is a mention that by moving to the new syntax the aliased stackdriver
provider becomes required when calling the module, even if you're not deploying the resources which use the provider (i.e. with monitoring disabled). However, I believe that this is just something we will have to accept as it is more important to move away from using the deprecated syntax. Also, there is a simple workaround of just assigning the default google provider to the stackdriver
alias in the module call as follows.
module "webapp" {
source = "git::https://gitlab.developers.cam.ac.uk/uis/devops/infra/terraform/gcp-cloud-run-app.git?ref=5.0.0"
# ...
providers = {
google.stackdriver = google
}
}
#38 (closed)
IssueA map cannot have a key which depends on a resource which is unknown. To resolve this issue I've refactored the map to always have known key names.
NOTE
https://gitlab.developers.cam.ac.uk/uis/devops/gcp-deploy-boilerplate/-/merge_requests/29 will be required once this MR is merged and a new 6.0.0
tag created.
Closes #7 (closed), #35 (closed), #37 (closed), & #38 (closed)