Skip to content

Commit 471c2e2

Browse files
JohannesRudolphmeshkodiak[bot]
authored andcommitted
fix: reference msgraph application using data object
The terraform plan during upgrade to the latest meshplatform module version can be confusing because it appears to try and deploy a new service principal, when in fact the expected outcome is that it reads data about an existing one. It's listed using the "resource" way on the official example for > Manage a service principal for a first-party Microsoft application https://registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/service_principal Unless the provider behaves totally unexpected, "data" block seems to be much safer
1 parent 339d226 commit 471c2e2

File tree

3 files changed

+16
-19
lines changed

3 files changed

+16
-19
lines changed

modules/meshcloud-idp-lookup-service-principal/module.tf

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ terraform {
1414

1515
data "azuread_application_published_app_ids" "well_known" {}
1616

17-
resource "azuread_service_principal" "msgraph" {
17+
data "azuread_service_principal" "msgraph" {
1818
application_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
19-
use_existing = true
2019
}
2120

2221
resource "azuread_application" "meshcloud_idp_lookup" {
@@ -33,7 +32,7 @@ resource "azuread_application" "meshcloud_idp_lookup" {
3332
# We only require this User.Read.All permission to see all of the Users in the AAD https://docs.microsoft.com/en-us/graph/permissions-reference#microsoft-graph-permission-names
3433
# Since this is a role (and not a scope) permission, you also have to enable admin consent in azure portal
3534
resource_access {
36-
id = azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
35+
id = data.azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
3736
type = "Role"
3837
}
3938

@@ -55,9 +54,9 @@ resource "azuread_service_principal" "meshcloud_idp_lookup" {
5554
}
5655

5756
resource "azuread_app_role_assignment" "meshcloud_idp_lookup" {
58-
app_role_id = azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
57+
app_role_id = data.azuread_service_principal.msgraph.app_role_ids["User.Read.All"]
5958
principal_object_id = azuread_service_principal.meshcloud_idp_lookup.object_id
60-
resource_object_id = azuread_service_principal.msgraph.object_id
59+
resource_object_id = data.azuread_service_principal.msgraph.object_id
6160
}
6261

6362
resource "azuread_service_principal_password" "service_principal_pw" {

modules/meshcloud-replicator-service-principal/module.tf

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ resource "azurerm_role_definition" "meshcloud_replicator" {
5555

5656
data "azuread_application_published_app_ids" "well_known" {}
5757

58-
resource "azuread_service_principal" "msgraph" {
58+
data "azuread_service_principal" "msgraph" {
5959
application_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
60-
use_existing = true
6160
}
6261

6362
resource "azuread_application" "meshcloud_replicator" {
@@ -72,17 +71,17 @@ resource "azuread_application" "meshcloud_replicator" {
7271
resource_app_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
7372

7473
resource_access {
75-
id = azuread_service_principal.msgraph.app_role_ids["Directory.Read.All"]
74+
id = data.azuread_service_principal.msgraph.app_role_ids["Directory.Read.All"]
7675
type = "Role"
7776
}
7877

7978
resource_access {
80-
id = azuread_service_principal.msgraph.app_role_ids["Group.ReadWrite.All"]
79+
id = data.azuread_service_principal.msgraph.app_role_ids["Group.ReadWrite.All"]
8180
type = "Role"
8281
}
8382

8483
resource_access {
85-
id = azuread_service_principal.msgraph.app_role_ids["User.Invite.All"]
84+
id = data.azuread_service_principal.msgraph.app_role_ids["User.Invite.All"]
8685
type = "Role"
8786
}
8887
}
@@ -130,21 +129,21 @@ resource "azurerm_role_assignment" "meshcloud_replicator" {
130129
}
131130

132131
resource "azuread_app_role_assignment" "meshcloud_replicator-directory" {
133-
app_role_id = azuread_service_principal.msgraph.app_role_ids["Directory.Read.All"]
132+
app_role_id = data.azuread_service_principal.msgraph.app_role_ids["Directory.Read.All"]
134133
principal_object_id = azuread_service_principal.meshcloud_replicator.object_id
135-
resource_object_id = azuread_service_principal.msgraph.object_id
134+
resource_object_id = data.azuread_service_principal.msgraph.object_id
136135
}
137136

138137
resource "azuread_app_role_assignment" "meshcloud_replicator-group" {
139-
app_role_id = azuread_service_principal.msgraph.app_role_ids["Group.ReadWrite.All"]
138+
app_role_id = data.azuread_service_principal.msgraph.app_role_ids["Group.ReadWrite.All"]
140139
principal_object_id = azuread_service_principal.meshcloud_replicator.object_id
141-
resource_object_id = azuread_service_principal.msgraph.object_id
140+
resource_object_id = data.azuread_service_principal.msgraph.object_id
142141
}
143142

144143
resource "azuread_app_role_assignment" "meshcloud_replicator-user" {
145-
app_role_id = azuread_service_principal.msgraph.app_role_ids["User.Invite.All"]
144+
app_role_id = data.azuread_service_principal.msgraph.app_role_ids["User.Invite.All"]
146145
principal_object_id = azuread_service_principal.meshcloud_replicator.object_id
147-
resource_object_id = azuread_service_principal.msgraph.object_id
146+
resource_object_id = data.azuread_service_principal.msgraph.object_id
148147
}
149148

150149
resource "azuread_service_principal_password" "service_principal_pw" {

modules/meshcloud-sso/module.tf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ terraform {
1414

1515
data "azuread_application_published_app_ids" "well_known" {}
1616

17-
resource "azuread_service_principal" "msgraph" {
17+
data "azuread_service_principal" "msgraph" {
1818
application_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
19-
use_existing = true
2019
}
2120

2221
resource "azuread_application" "meshcloud_sso" {
@@ -26,7 +25,7 @@ resource "azuread_application" "meshcloud_sso" {
2625
resource_app_id = data.azuread_application_published_app_ids.well_known.result.MicrosoftGraph
2726

2827
resource_access {
29-
id = azuread_service_principal.msgraph.app_role_ids["User.Read"]
28+
id = data.azuread_service_principal.msgraph.app_role_ids["User.Read"]
3029
type = "Scope"
3130
}
3231
}

0 commit comments

Comments
 (0)