diff --git a/package.json b/package.json index 0ec34f7c652..f3136e8fd8a 100644 --- a/package.json +++ b/package.json @@ -245,6 +245,7 @@ "@floating-ui/react": "0.26.14", "@glideapps/glide-data-grid": "^6.0.0", "@grafana/aws-sdk": "0.3.3", + "@grafana/azure-sdk": "0.0.3", "@grafana/data": "workspace:*", "@grafana/e2e-selectors": "workspace:*", "@grafana/experimental": "1.7.11", diff --git a/public/app/plugins/datasource/prometheus/configuration/AzureAuthSettings.tsx b/public/app/plugins/datasource/prometheus/configuration/AzureAuthSettings.tsx index 7327aa6996a..a0bc389ac23 100644 --- a/public/app/plugins/datasource/prometheus/configuration/AzureAuthSettings.tsx +++ b/public/app/plugins/datasource/prometheus/configuration/AzureAuthSettings.tsx @@ -6,8 +6,8 @@ import { config } from '@grafana/runtime'; import { InlineField, InlineFieldRow, InlineSwitch, Input } from '@grafana/ui'; import { HttpSettingsBaseProps } from '@grafana/ui/src/components/DataSourceSettings/types'; -import { KnownAzureClouds, AzureCredentials } from './AzureCredentials'; -import { getCredentials, updateCredentials } from './AzureCredentialsConfig'; +import { AzureCredentials } from './AzureCredentials'; +import { getAzureCloudOptions, getCredentials, updateCredentials } from './AzureCredentialsConfig'; import { AzureCredentialsForm } from './AzureCredentialsForm'; export const AzureAuthSettings = (props: HttpSettingsBaseProps) => { @@ -60,7 +60,7 @@ export const AzureAuthSettings = (props: HttpSettingsBaseProps) => { managedIdentityEnabled={config.azure.managedIdentityEnabled} workloadIdentityEnabled={config.azure.workloadIdentityEnabled} credentials={credentials} - azureCloudOptions={KnownAzureClouds} + azureCloudOptions={getAzureCloudOptions()} onCredentialsChange={onCredentialsChange} disabled={dataSourceConfig.readOnly} /> diff --git a/public/app/plugins/datasource/prometheus/configuration/AzureCredentials.ts b/public/app/plugins/datasource/prometheus/configuration/AzureCredentials.ts index af27e175c90..d3d5e32130a 100644 --- a/public/app/plugins/datasource/prometheus/configuration/AzureCredentials.ts +++ b/public/app/plugins/datasource/prometheus/configuration/AzureCredentials.ts @@ -1,5 +1,3 @@ -import { SelectableValue } from '@grafana/data'; - export enum AzureCloud { Public = 'AzureCloud', China = 'AzureChinaCloud', @@ -7,12 +5,6 @@ export enum AzureCloud { None = '', } -export const KnownAzureClouds: Array> = [ - { value: AzureCloud.Public, label: 'Azure' }, - { value: AzureCloud.China, label: 'Azure China' }, - { value: AzureCloud.USGovernment, label: 'Azure US Government' }, -]; - export type AzureAuthType = 'msi' | 'clientsecret' | 'workloadidentity'; export type ConcealedSecret = symbol; diff --git a/public/app/plugins/datasource/prometheus/configuration/AzureCredentialsConfig.ts b/public/app/plugins/datasource/prometheus/configuration/AzureCredentialsConfig.ts index 67aabd352a3..ca76ccd4e80 100644 --- a/public/app/plugins/datasource/prometheus/configuration/AzureCredentialsConfig.ts +++ b/public/app/plugins/datasource/prometheus/configuration/AzureCredentialsConfig.ts @@ -1,4 +1,5 @@ -import { DataSourceSettings } from '@grafana/data'; +import { getAzureClouds } from '@grafana/azure-sdk'; +import { DataSourceSettings, SelectableValue } from '@grafana/data'; import { config } from '@grafana/runtime'; import { AzureCloud, AzureCredentials, ConcealedSecret } from './AzureCredentials'; @@ -23,6 +24,15 @@ export function hasCredentials(options: DataSourceSettings): boolean { return !!options.jsonData.azureCredentials; } +export function getAzureCloudOptions(): Array> { + const cloudInfo = getAzureClouds(); + + return cloudInfo.map((cloud) => ({ + value: cloud.name, + label: cloud.displayName, + })); +} + export function getDefaultCredentials(): AzureCredentials { if (config.azure.managedIdentityEnabled) { return { authType: 'msi' }; diff --git a/yarn.lock b/yarn.lock index 2719770333d..27e7c8daede 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2975,6 +2975,15 @@ __metadata: languageName: node linkType: hard +"@grafana/azure-sdk@npm:0.0.3": + version: 0.0.3 + resolution: "@grafana/azure-sdk@npm:0.0.3" + dependencies: + ts-jest: "npm:29.1.2" + checksum: 10/fc888711e79865c3ff08f21401ed51b3d5a189e38c691a2dd60915af843612481deb45a1f804fe4a631636dae966f6591984e7e4f37ea0c62fd5e0a4c0cf1166 + languageName: node + linkType: hard + "@grafana/data@npm:11.0.0, @grafana/data@workspace:*, @grafana/data@workspace:packages/grafana-data": version: 0.0.0-use.local resolution: "@grafana/data@workspace:packages/grafana-data" @@ -16691,6 +16700,7 @@ __metadata: "@floating-ui/react": "npm:0.26.14" "@glideapps/glide-data-grid": "npm:^6.0.0" "@grafana/aws-sdk": "npm:0.3.3" + "@grafana/azure-sdk": "npm:0.0.3" "@grafana/data": "workspace:*" "@grafana/e2e-selectors": "workspace:*" "@grafana/eslint-config": "npm:7.0.0"