github.com/StackExchange/dnscontrol/v4@v4.11.0/documentation/provider/azure_private_dns.md (about)

     1  ## Configuration
     2  
     3  This provider is for the [Azure Private DNS Service](https://learn.microsoft.com/en-us/azure/dns/private-dns-overview).  This provider can only manage Azure Private DNS zones and will not manage public Azure DNS zones. To use this provider, add an entry to `creds.json` with `TYPE` set to `AZURE_PRIVATE_DNS`
     4  along with the API credentials.
     5  
     6  Example:
     7  
     8  {% code title="creds.json" %}
     9  ```json
    10  {
    11    "azure_private_dns_main": {
    12      "TYPE": "AZURE_PRIVATE_DNS",
    13      "SubscriptionID": "AZURE_PRIVATE_SUBSCRIPTION_ID",
    14      "ResourceGroup": "AZURE_PRIVATE_RESOURCE_GROUP",
    15      "TenantID": "AZURE_PRIVATE_TENANT_ID",
    16      "ClientID": "AZURE_PRIVATE_CLIENT_ID",
    17      "ClientSecret": "AZURE_PRIVATE_CLIENT_SECRET"
    18    }
    19  }
    20  ```
    21  {% endcode %}
    22  
    23  You can also use environment variables:
    24  
    25  ```shell
    26  export AZURE_SUBSCRIPTION_ID=XXXXXXXXX
    27  export AZURE_RESOURCE_GROUP=YYYYYYYYY
    28  export AZURE_TENANT_ID=ZZZZZZZZ
    29  export AZURE_CLIENT_ID=AAAAAAAAA
    30  export AZURE_CLIENT_SECRET=BBBBBBBBB
    31  ```
    32  
    33  {% code title="creds.json" %}
    34  ```json
    35  {
    36    "azure_private_dns_main": {
    37      "TYPE": "AZURE_PRIVATE_DNS",
    38      "SubscriptionID": "$AZURE_PRIVATE_SUBSCRIPTION_ID",
    39      "ResourceGroup": "$AZURE_PRIVATE_RESOURCE_GROUP",
    40      "ClientID": "$AZURE_PRIVATE_CLIENT_ID",
    41      "TenantID": "$AZURE_PRIVATE_TENANT_ID",
    42      "ClientSecret": "$AZURE_PRIVATE_CLIENT_SECRET"
    43    }
    44  }
    45  ```
    46  {% endcode %}
    47  
    48  ## Metadata
    49  This provider does not recognize any special metadata fields unique to Azure Private DNS.
    50  
    51  ## Usage
    52  An example configuration:
    53  
    54  {% code title="dnsconfig.js" %}
    55  ```javascript
    56  var REG_NONE = NewRegistrar("none");
    57  var DSP_AZURE_PRIVATE_MAIN = NewDnsProvider("azure_private_dns_main");
    58  
    59  D("example.com", REG_NONE, DnsProvider(DSP_AZURE_PRIVATE_MAIN),
    60      A("test", "1.2.3.4"),
    61  END);
    62  ```
    63  {% endcode %}
    64  
    65  ## Activation
    66  DNSControl depends on a standard [Client credentials Authentication](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest) with permission to list, create and update private zones.  
    67  
    68  ## New domains
    69  
    70  If a domain does not exist in your Azure account, DNSControl will *not* automatically add it with the `push` command. You can do that manually via the control panel.
    71  
    72  ## Caveats
    73  
    74  The ResourceGroup is case sensitive.