* fix(azure): Enhance retry logic using azure SDK
* Added the changes for flag based maxretries configuration
* Fixed types.go, flags.md and delected unneccesary comments
* Added the correct image for the Azure Private DNS tutorial
* Following the go naming convention for maxRetriesCount
* Added the correct flag information to the --azure-maxretries-count
* Made the required changes to accept the --azure-maxretries-count flag value from cli/env
Azure supports NS records on public DNS zones: https://learn.microsoft.com/en-us/rest/api/dns/record-sets/create-or-update?view=rest-dns-2018-05-01&tabs=HTTP#create-ns-recordset
This PR adds this support to external dns. The implementation is similar to the other records.
Besides the unit tests this PR was also tested by creating a DNSEndpoint with the following spec:
```
endpoints:
- dnsName: cloud.k8gb.io
recordTTL: 5
recordType: NS
targets:
- gslb-ns-eu-cloud.k8gb.io
- gslb-ns-us-cloud.k8gb.io
```
The creation of the NS record in Azure was successful:
```
az network dns record-set ns list --resource-group rg-k8gb --zone-name "$EDGE_DNS_ZONE" --output json
[
{...},
{
"NSRecords": [
{
"nsdname": "gslb-ns-eu-cloud.k8gb.io"
},
{
"nsdname": "gslb-ns-us-cloud.k8gb.io"
}
],
"TTL": 5,
"etag": "97a7199f-3be9-47bd-ab00-37013b775180",
"fqdn": "cloud.k8gb.io.",
"id": "/subscriptions/<redacted>/resourceGroups/rg-k8gb/providers/Microsoft.Network/dnszones/k8gb.io/NS/cloud",
"name": "cloud",
"provisioningState": "Succeeded",
"resourceGroup": "rg-k8gb",
"targetResource": {},
"trafficManagementProfile": {},
"type": "Microsoft.Network/dnszones/NS"
}
]
```
This change was already attempted in #2835, but it was never merged due to inactivity.
Signed-off-by: Andre Aguas <andre.aguas@protonmail.com>