Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
themeMidnight
titleDNS Provider Information Key Value Pair
URL: /v2/project/{project-name}/trafficdns-update-controllerrecords/dnsproviders
POST BODY:
{
  "name": "<dnsprovidername><dnsupdaterecordname>",
  "description": "description for DNS update Providerrecord",
  "externalDnsParameters": {   // list will be supplied to external-dns as parameters.
    "aws-zone-type": "",          When using the AWS provider, filter for zones of this type (optional, options: public, private)
    "aws-zone-tags": "",          When using the AWS provider, filter for zones with these tags
    "aws-assume-role":"",         When using the AWS provider, assume this IAM role. Useful for hosted zones in another AWS account. Specify the full ARN, e.g. `arn:aws:iam::123455567:role/external-dns` (optional)
    "aws-batch-change-size":"1000",  When using the AWS provider, set the maximum number of changes that will be applied in each batch.
    "aws-batch-change-interval":"1s", When using the AWS provider, set the interval between batch changes.
    "aws-evaluate-target-health":"enabled", When using the AWS provider, set whether to evaluate the health of a DNS target (default: enabled, disable with --no-aws-evaluate-target-health)
    "aws-api-retries":"3",           When using the AWS provider, set the maximum number of retries for API calls before giving up.
    "aws-prefer-cname":"disabled"           When using the AWS provider, prefer using CNAME instead of ALIAS (default: disabled)
     etc.
  }
}

Alternative approach (?) - DNS Providers becomes an explicit resource (e.g. v2/project/{project-name}/dns-providers/{dns-provider}) which are associated to logical-clouds and clusters via labels.

The following illustrates the API for creating a DNS Provider intent.  To associate multiple DNS Providers with a DNS Provider Intent, multiple calls are made.

Code Block
themeMidnight
titlePOST
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/traffic-intent-sets/{traffic-intent-set-name}/dnsproviders
POST BODY:
{
  "name": "<dnsprovidername>"   // values used as a key to find the DNS Provider Information details from the logical-cloud or cluster KV pair list.
}
Code Block
themeMidnight
titleGET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/traffic-intent-sets/{traffic-intent-set-name}/dnsproviders
GET RESPONSE BODY:
[
  {
    "name": "dnsprovidername1"
  },
  {
    "name": "dnsprovidername2"
  },
  {
    "name": "dnsprovidername3"
  },
  {
    "name": "dnsprovidername4"
  }
]

URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/traffic-intent-sets/{traffic-intent-set-name}/dnsproviders/dnsprovidername2
GET RESPONSE BODY:
{
  "name": "dnsprovidername2"
}



DNS Provider Intent Handling

...