Skip to content

Commit 8ee5386

Browse files
authored
Merge pull request #5932 from nojnhuh/vm-identity-prefix
[release-1.21] Fix mishandling of azure:// prefix on AzureMachine UserAssignedIdentities
2 parents 6062df0 + 846347a commit 8ee5386

File tree

49 files changed

+92
-85
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+92
-85
lines changed

azure/services/virtualmachines/virtualmachines.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func (s *Service) checkUserAssignedIdentities(specIdentities []infrav1.UserAssig
171171

172172
// Check if the expected identities are present in the vm.
173173
for _, expectedIdentity := range specIdentities {
174-
_, exists := actualMap[expectedIdentity.ProviderID]
174+
_, exists := actualMap[strings.TrimPrefix(expectedIdentity.ProviderID, azureutil.ProviderIDPrefix)]
175175
if !exists {
176176
s.Scope.SetConditionFalse(infrav1.VMIdentitiesReadyCondition, infrav1.UserAssignedIdentityMissingReason, clusterv1.ConditionSeverityWarning, vmMissingUAI+expectedIdentity.ProviderID)
177177
return

azure/services/virtualmachines/virtualmachines_test.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
"sigs.k8s.io/cluster-api-provider-azure/azure/services/publicips"
3838
"sigs.k8s.io/cluster-api-provider-azure/azure/services/virtualmachines/mock_virtualmachines"
3939
gomockinternal "sigs.k8s.io/cluster-api-provider-azure/internal/test/matchers/gomock"
40+
azureutil "sigs.k8s.io/cluster-api-provider-azure/util/azure"
4041
"sigs.k8s.io/cluster-api-provider-azure/util/reconciler"
4142
)
4243

@@ -112,10 +113,16 @@ var (
112113
},
113114
}
114115
fakeUserAssignedIdentity = infrav1.UserAssignedIdentity{
115-
ProviderID: "azure:///subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id",
116+
ProviderID: "/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id",
117+
}
118+
fakeUserAssignedIdentityWithPrefix = infrav1.UserAssignedIdentity{
119+
ProviderID: azureutil.ProviderIDPrefix + fakeUserAssignedIdentity.ProviderID,
116120
}
117121
fakeUserAssignedIdentity2 = infrav1.UserAssignedIdentity{
118-
ProviderID: "azure:///subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id-2",
122+
ProviderID: fakeUserAssignedIdentity.ProviderID + "-2",
123+
}
124+
fakeUserAssignedIdentity2WithPrefix = infrav1.UserAssignedIdentity{
125+
ProviderID: azureutil.ProviderIDPrefix + fakeUserAssignedIdentity2.ProviderID,
119126
}
120127
)
121128

@@ -323,14 +330,14 @@ func TestCheckUserAssignedIdentities(t *testing.T) {
323330
},
324331
{
325332
name: "matching user assigned identities",
326-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
333+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentityWithPrefix},
327334
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
328335
},
329336
{
330337
name: "less user assigned identities than expected",
331-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2},
338+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2WithPrefix},
332339
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
333-
expectedKey: fakeUserAssignedIdentity2.ProviderID,
340+
expectedKey: fakeUserAssignedIdentity2WithPrefix.ProviderID,
334341
},
335342
{
336343
name: "more user assigned identities than expected",

docs/book/src/topics/workload-identity.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ to give the identity Contributor access to the Azure subscription where the work
142142
```yaml
143143
identity: UserAssigned
144144
userAssignedIdentities:
145-
- providerID: /subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_ASSIGNED_IDENTITY_NAME}
145+
- providerID: azure:///subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_ASSIGNED_IDENTITY_NAME}
146146
```
147147
148148
A sample `AzureMachineTemplate` after the edit should look like the below:
@@ -162,7 +162,7 @@ to give the identity Contributor access to the Azure subscription where the work
162162
sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""}
163163
identity: UserAssigned
164164
userAssignedIdentities:
165-
- providerID: /subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_ASSIGNED_IDENTITY_NAME}
165+
- providerID: azure:///subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_ASSIGNED_IDENTITY_NAME}
166166
vmSize: ${AZURE_NODE_MACHINE_TYPE}
167167
```
168168

templates/test/ci/cluster-template-prow-apiserver-ilb-custom-images.yaml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-apiserver-ilb.yaml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-ci-version-dra.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-ci-version-dual-stack.yaml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-ci-version-ipv6.yaml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-ci-version-md-and-mp.yaml

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/cluster-template-prow-ci-version-windows.yaml

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)