Azure / azure-cli

Azure Command-Line Interface
MIT License
3.91k stars 2.88k forks source link

Add Azure Service Fabrik Cluster Endpoint to `az cloud show` command #29283

Open s4heid opened 4 days ago

s4heid commented 4 days ago

Related command The objective is to enhance the functionality of the az cloud show command by adding the suffix of the Azure Service Fabric cluster to its output.

Is your feature request related to a problem? Please describe.

This enhancement would be especially beneficial for tasks like scripting the association of reverse DNS entries to public IP addresses across different Azure clouds or other automation tasks, where you need to know the suffix of the Azure Service Fabrik Cluster.

The current output of az cloud show doesn't provide this detail, which limits its utility in certain automation scenarios. By making this change, we could streamline processes and improve efficiency in managing Azure resources.

Describe the solution you'd like

It would be helpful if the az cloud show command could display the suffix of the Azure Service Fabric cluster.

Expected Output for public Cloud:
**Command** ```console ❯ az cloud show -n AzureCloud ``` **Output** ```diff { "endpoints": { "activeDirectory": "https://login.microsoftonline.com", "activeDirectoryDataLakeResourceId": "https://datalake.azure.net/", "activeDirectoryGraphResourceId": "https://graph.windows.net/", "activeDirectoryResourceId": "https://management.core.windows.net/", "appInsightsResourceId": "https://api.applicationinsights.io", "appInsightsTelemetryChannelResourceId": "https://dc.applicationinsights.azure.com/v2/track", "attestationResourceId": "https://attest.azure.net", "azmirrorStorageAccountResourceId": null, "batchResourceId": "https://batch.core.windows.net/", "gallery": "https://gallery.azure.com/", "logAnalyticsResourceId": "https://api.loganalytics.io", "management": "https://management.core.windows.net/", "mediaResourceId": "https://rest.media.azure.net", "microsoftGraphResourceId": "https://graph.microsoft.com/", "ossrdbmsResourceId": "https://ossrdbms-aad.database.windows.net", "portal": "https://portal.azure.com", "resourceManager": "https://management.azure.com/", "sqlManagement": "https://management.core.windows.net:8443/", "synapseAnalyticsResourceId": "https://dev.azuresynapse.net", "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json" }, "isActive": true, "name": "AzureCloud", "profile": "latest", "suffixes": { "acrLoginServerEndpoint": ".azurecr.io", + "acrServiceFabrikEndpoint": ".cloudapp.azure.com", "attestationEndpoint": ".attest.azure.net", "azureDatalakeAnalyticsCatalogAndJobEndpoint": "azuredatalakeanalytics.net", "azureDatalakeStoreFileSystemEndpoint": "azuredatalakestore.net", "keyvaultDns": ".vault.azure.net", "mariadbServerEndpoint": ".mariadb.database.azure.com", "mhsmDns": ".managedhsm.azure.net", "mysqlServerEndpoint": ".mysql.database.azure.com", "postgresqlServerEndpoint": ".postgres.database.azure.com", "sqlServerHostname": ".database.windows.net", "storageEndpoint": "core.windows.net", "storageSyncEndpoint": "afs.azure.net", "synapseAnalyticsEndpoint": ".dev.azuresynapse.net" } } ```

Additional context

Azure Cloud Suffix Reference
AzureCloud *.cloudapp.azure.com
AzureUSGovernment *.cloudapp.usgovcloudapi.net Doc
AzureChinaCloud *.cloudapp.chinacloudapi.cn Doc

I could not found any information on this suffix for AzureGermanCloud.

yonzhan commented 4 days ago

Thank you for opening this issue, we will look into it.

jiasli commented 2 days ago

Previously there was an attempt https://github.com/Azure/azure-cli/pull/25834 to bump /metadata/endpoints API version from 2015-01-01 to 2022-09-01: https://management.azure.com/metadata/endpoints?api-version=2022-09-01

However, the response doesn't seem to contain the Service Fabric endpoint:

{
    "portal": "https://portal.azure.com",
    "authentication": {
        "loginEndpoint": "https://login.microsoftonline.com",
        "audiences": [
            "https://management.core.windows.net/",
            "https://management.azure.com/"
        ],
        "tenant": "common",
        "identityProvider": "AAD"
    },
    "media": "https://rest.media.azure.net",
    "graphAudience": "https://graph.windows.net/",
    "graph": "https://graph.windows.net/",
    "name": "AzureCloud",
    "suffixes": {
        "azureDataLakeStoreFileSystem": "azuredatalakestore.net",
        "acrLoginServer": "azurecr.io",
        "sqlServerHostname": "database.windows.net",
        "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
        "keyVaultDns": "vault.azure.net",
        "storage": "core.windows.net",
        "azureFrontDoorEndpointSuffix": "azurefd.net",
        "storageSyncEndpointSuffix": "afs.azure.net",
        "mhsmDns": "managedhsm.azure.net",
        "mysqlServerEndpoint": "mysql.database.azure.com",
        "postgresqlServerEndpoint": "postgres.database.azure.com",
        "mariadbServerEndpoint": "mariadb.database.azure.com",
        "synapseAnalytics": "dev.azuresynapse.net",
        "attestationEndpoint": "attest.azure.net"
    },
    "batch": "https://batch.core.windows.net/",
    "resourceManager": "https://management.azure.com/",
    "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
    "activeDirectoryDataLake": "https://datalake.azure.net/",
    "sqlManagement": "https://management.core.windows.net:8443/",
    "microsoftGraphResourceId": "https://graph.microsoft.com/",
    "appInsightsResourceId": "https://api.applicationinsights.io",
    "appInsightsTelemetryChannelResourceId": "https://dc.applicationinsights.azure.com/v2/track",
    "attestationResourceId": "https://attest.azure.net",
    "synapseAnalyticsResourceId": "https://dev.azuresynapse.net",
    "logAnalyticsResourceId": "https://api.loganalytics.io",
    "ossrDbmsResourceId": "https://ossrdbms-aad.database.windows.net"
}