|
| 1 | +locals { |
| 2 | + tags = { |
| 3 | + managed_by = "terraform" |
| 4 | + github_repo = "ishuar/terraform-azure-workload-identity" |
| 5 | + } |
| 6 | + |
| 7 | + ## Workload Identities |
| 8 | + external-dns = [ |
| 9 | + { |
| 10 | + service_account_name = "${var.prefix}-sa-external-dns" |
| 11 | + namespace = "${var.prefix}-external-dns" |
| 12 | + role_assignments = [ |
| 13 | + { |
| 14 | + role_definition_name = "DNS Zone Contributor" |
| 15 | + scope = data.azurerm_dns_zone.example.id |
| 16 | + }, |
| 17 | + ] |
| 18 | + }, |
| 19 | + ] |
| 20 | + ## This example will also create a new namespace and service account kubernetes resources for cert-manager. |
| 21 | + cert-manager = [ |
| 22 | + { |
| 23 | + service_account_name = "${var.prefix}-sa-cert-manager" |
| 24 | + namespace = "${var.prefix}-cert-manager" |
| 25 | + create_kubernetes_namespace = true |
| 26 | + create_service_account = true |
| 27 | + role_assignments = [ |
| 28 | + { |
| 29 | + role_definition_name = "DNS Zone Contributor" |
| 30 | + scope = data.azurerm_dns_zone.example.id |
| 31 | + }, |
| 32 | + ] |
| 33 | + }, |
| 34 | + ] |
| 35 | + |
| 36 | + ## Example to create custom role for velero |
| 37 | + velero = [ |
| 38 | + { |
| 39 | + service_account_name = "${var.prefix}-sa-velero" |
| 40 | + namespace = "${var.prefix}-velero" |
| 41 | + role_assignments = [ |
| 42 | + { |
| 43 | + role_definition_name = "velero" |
| 44 | + create_custom_role = true |
| 45 | + scope = data.azurerm_subscription.current.id |
| 46 | + custom_role_description = "Role Required for velero to manage snapshots, backups and restores." |
| 47 | + custom_role_actions = [ |
| 48 | + "Microsoft.Compute/disks/read", |
| 49 | + "Microsoft.Compute/disks/write", |
| 50 | + "Microsoft.Compute/disks/endGetAccess/action", |
| 51 | + "Microsoft.Compute/disks/beginGetAccess/action", |
| 52 | + "Microsoft.Compute/snapshots/read", |
| 53 | + "Microsoft.Compute/snapshots/write", |
| 54 | + "Microsoft.Compute/snapshots/delete", |
| 55 | + "Microsoft.Storage/storageAccounts/listkeys/action", |
| 56 | + "Microsoft.Storage/storageAccounts/regeneratekey/action", |
| 57 | + "Microsoft.Storage/storageAccounts/blobServices/containers/delete", |
| 58 | + "Microsoft.Storage/storageAccounts/blobServices/containers/read", |
| 59 | + "Microsoft.Storage/storageAccounts/blobServices/containers/write", |
| 60 | + "Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action" |
| 61 | + ] |
| 62 | + custom_role_data_actions = [ |
| 63 | + "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete", |
| 64 | + "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read", |
| 65 | + "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write", |
| 66 | + "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action", |
| 67 | + "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action" |
| 68 | + ] |
| 69 | + } |
| 70 | + ] |
| 71 | + } |
| 72 | + ] |
| 73 | + |
| 74 | + identities = concat( |
| 75 | + local.external-dns, |
| 76 | + local.cert-manager, |
| 77 | + local.velero |
| 78 | + ) |
| 79 | +} |
0 commit comments