Skip to content

Improve the CLI UX of az acr update and az acr config for registry configuration #874

@FeynmanZhou

Description

@FeynmanZhou

ACR has two separate command groups for updating registry configuration — az acr update and az acr config <subgroup> update — which is confusing to users.

  • az acr config <subgroup> update handles the registry's feature-wide policies (the policies section in ARM) — behavioral settings complex enough to warrant their own sub-commands with show and update.
  • az acr update handles resource-level properties of the registry itself — updating the registry resource directly in ARM terms.

However,az acr config <subgroup> update looks like a subset of az acr update but actually isn't. Having two separate command groups to update registry properties is confusing. It's recommended to define a unified UX for registry's feature-wide policies and resource-level properties.

$ az acr show -n feynmanacr
{
  "adminUserEnabled": true,
  "anonymousPullEnabled": true,
  "autoGeneratedDomainNameLabelScope": "Unsecure",
  "creationDate": "2022-06-19T14:28:34.052126+00:00",
  "dataEndpointEnabled": false,
  "dataEndpointHostNames": [],
  "encryption": {
    "keyVaultProperties": null,
    "status": "disabled"
  },
  "id": "/subscriptions/0518b2a2-73e3-4d90-b20b-a3d8cf7a7a3d/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/feynmanacr",
  "identity": {
    "principalId": "f4fa0e52-0b8d-42b6-941e-f7b3606df7f6",
    "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
    "type": "systemAssigned",
    "userAssignedIdentities": null
  },
  "location": "eastus",
  "loginServer": "feynmanacr.azurecr.io",
  "metadataSearch": "Disabled",
  "name": "feynmanacr",
  "networkRuleBypassOptions": "AzureServices",
  "networkRuleSet": {
    "defaultAction": "Allow",
    "ipRules": []
  },
  "policies": {
    "azureAdAuthenticationAsArmPolicy": {
      "status": "enabled"
    },
    "exportPolicy": {
      "status": "enabled"
    },
    "quarantinePolicy": {
      "status": "disabled"
    },
    "retentionPolicy": {
      "days": 7,
      "lastUpdatedTime": "2025-08-26T01:21:16.288964+00:00",
      "status": "enabled"
    },
    "softDeletePolicy": {
      "lastUpdatedTime": "2025-11-21T22:39:25.781713+00:00",
      "retentionDays": 7,
      "status": "enabled"
    },
    "trustPolicy": {
      "status": "disabled",
      "type": "Notary"
    }
  },
  "privateEndpointConnections": [],
  "provisioningState": "Succeeded",
  "publicNetworkAccess": "Enabled",
  "resourceGroup": "myResourceGroup",
  "roleAssignmentMode": "LegacyRegistryPermissions",
  "sku": {
    "name": "Premium",
    "tier": "Premium"
  },
  "status": null,
  "systemData": {
    "createdAt": "2022-06-19T14:28:34.052126+00:00",
    "createdBy": "demo@test.com",
    "createdByType": "User",
    "lastModifiedAt": "2025-11-21T22:39:25.738070+00:00",
    "lastModifiedBy": "demo@test.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries",
  "zoneRedundancy": "Disabled"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions