kubernetesazure-aksaad-pod-identity

pod identity on aks cluster crreation


Right now, it's impossible to have assigned user assigned identities on arm templates (and terraform) on cluster creation. I already tried a lot of things, and updates works great, after inserting manually with:

az aks pod-identity add --cluster-name my-aks-cn --resource-group myrg --namespace myns --name example-pod-identity --identity-resource-id /subscriptions/......

But, I want to have this done at once, with the deployment, so I need to insert the pod user identities to the cluster automatically. I also tried to run the command using the DeploymentScripts but the deployment scripts are not ready to use preview aks extersion.

My config looks like this:

    {
      "type": "Microsoft.ContainerService/managedClusters",
      "apiVersion": "2021-02-01",
      "name": "[variables('cluster_name')]",
      "location": "[variables('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.Network/virtualNetworks', variables('vnet_name'))]"
      ],
      "properties": {
....
        "podIdentityProfile": {
        "allowNetworkPluginKubenet": null,
        "enabled": true,
        "userAssignedIdentities": [
            {
            "identity": {
                "clientId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', 'managed-indentity'), '2018-11-30').clientId]",
                "objectId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', 'managed-indentity'), '2018-11-30').principalId]",
                "resourceId": "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', 'managed-indentity')]"
            },
            "name": "managed-indentity",
            "namespace": "myns"
            }
        ],
        "userAssignedIdentityExceptions": null
        },
....
      },
      "identity": {
        "type": "SystemAssigned"
      }
    },

I'm always getting the same issue:

"statusMessage": "{\"error\":{\"code\":\"InvalidTemplateDeployment\",\"message\":\"The template deployment 'deployment_test' is not valid according to the validation procedure. The tracking id is '.....'. See inner errors for details.\",\"details\":[{\"code\":\"PodIdentityAddonUserAssignedIdentitiesNotAllowedInCreation\",\"message\":\"Provisioning of resource(s) for container service cluster-12344 in resource group myrc failed. Message: {\\n \\\"code\\\": \\\"PodIdentityAddonUserAssignedIdentitiesNotAllowedInCreation\\\",\\n \\\"message\\\": \\\"PodIdentity addon does not support assigning pod identities on creation.\\\"\\n }. Details: \"}]}}",


Solution

  • The Product team has shared the answer here: https://github.com/Azure/aad-pod-identity/issues/1123

    which says:

    This is a known limitation in the existing configuration. We will fix this in the V2 implementation.

    For others who are facing the same issue, please refer to the GitHub issue above.