Skip to content

Commit

Permalink
Refactor code to leverage LinkedUserAssignedIdentity
Browse files Browse the repository at this point in the history
  • Loading branch information
aebaid committed Sep 28, 2022
1 parent 1ed920e commit 436d6d3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 20 deletions.
4 changes: 4 additions & 0 deletions src/Farmer/Builders/Builders.UserAssignedIdentity.fs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ module Extensions =
member this.AddIdentity(state, identity: UserAssignedIdentityConfig) =
this.AddIdentity(state, identity.UserAssignedIdentity)

member this.AddIdentity(state: 'TConfig, resourceId: ResourceId) =
let userAssignedIdentity = UserAssignedIdentity resourceId
this.Add state (fun current -> current + userAssignedIdentity)

[<CustomOperation "link_to_identity">]
member this.LinkToIdentity(state: 'TConfig, resourceId: ResourceId) =
let userAssignedIdentity = LinkedUserAssignedIdentity resourceId
Expand Down
10 changes: 5 additions & 5 deletions src/Farmer/IdentityExtensions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ module ManagedIdentityExtensions =
UserAssigned = [ UserAssignedIdentity resourceId ]
}

static member create(linkedResource: LinkedResource) =
match linkedResource with
| Managed rid ->
static member create(identity: Identity.UserAssignedIdentity) =
match identity with
| LinkedUserAssignedIdentity rid ->
{
SystemAssigned = Disabled
UserAssigned = [ LinkedUserAssignedIdentity rid ]
}
| Unmanaged rid ->
| UserAssignedIdentity rid ->
{
SystemAssigned = Disabled
UserAssigned = [ LinkedUserAssignedIdentity rid ]
UserAssigned = [ UserAssignedIdentity rid ]
}

/// Creates a resource identity from a resource name
Expand Down
18 changes: 3 additions & 15 deletions src/Tests/ContainerGroup.fs
Original file line number Diff line number Diff line change
Expand Up @@ -334,25 +334,15 @@ let tests =
let resourceId =
ResourceId.create (ManagedIdentity.userAssignedIdentities, ResourceName "user", "resourceGroup")

let userAssignedIdentity = LinkedUserAssignedIdentity resourceId

let managedIdentity =
{ ManagedIdentity.Empty with
UserAssigned = [ userAssignedIdentity ]
UserAssigned = [ (LinkedUserAssignedIdentity resourceId) ]
}


let containerGroupConfig =
containerGroup {
add_instances [ nginx ]

link_to_identity (
ResourceId.create (
ManagedIdentity.userAssignedIdentities,
ResourceName "user",
"resourceGroup"
)
)
link_to_identity resourceId

add_managed_identity_registry_credentials
[ registry "my-registry.azurecr.io" "user" managedIdentity ]
Expand Down Expand Up @@ -1279,11 +1269,9 @@ async {
let resourceId =
ResourceId.create (ManagedIdentity.userAssignedIdentities, ResourceName "user", "resourceGroup")

let userAssignedIdentity = resourceId |> LinkedUserAssignedIdentity

let managedIdentity: Identity.ManagedIdentity =
{ ManagedIdentity.Empty with
UserAssigned = [ userAssignedIdentity ]
UserAssigned = [ (LinkedUserAssignedIdentity resourceId) ]
}

let containerGroup =
Expand Down

0 comments on commit 436d6d3

Please sign in to comment.