external-dns/v0.18.0/docs/advanced/ttl/index.html

3784 lines
74 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="author" content="external-dns maintainers">
<link rel="prev" href="../rate-limits/">
<link rel="next" href="../fqdn-templating/">
<link rel="icon" href="../../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.17">
<title>TTL - external-dns</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.bcfcd587.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#configure-dns-record-ttl-time-to-live" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="external-dns" class="md-header__button md-logo" aria-label="external-dns" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
external-dns
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
TTL
</span>
</div>
</div>
</div>
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/kubernetes-sigs/external-dns/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
kubernetes-sigs/external-dns
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../../charts/external-dns/" class="md-tabs__link">
Chart
</a>
</li>
<li class="md-tabs__item">
<a href="../../faq/" class="md-tabs__link">
About
</a>
</li>
<li class="md-tabs__item">
<a href="../../tutorials/akamai-edgedns/" class="md-tabs__link">
Tutorials
</a>
</li>
<li class="md-tabs__item">
<a href="../../annotations/annotations/" class="md-tabs__link">
Annotations
</a>
</li>
<li class="md-tabs__item">
<a href="../../sources/about/" class="md-tabs__link">
Sources
</a>
</li>
<li class="md-tabs__item">
<a href="../../registry/registry/" class="md-tabs__link">
Registries
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../initial-design/" class="md-tabs__link">
Advanced Topics
</a>
</li>
<li class="md-tabs__item">
<a href="../../../CONTRIBUTING/" class="md-tabs__link">
Contributing
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="external-dns" class="md-nav__button md-logo" aria-label="external-dns" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
external-dns
</label>
<div class="md-nav__source">
<a href="https://github.com/kubernetes-sigs/external-dns/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
kubernetes-sigs/external-dns
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<div class="md-nav__link md-nav__container">
<a href="../../../charts/external-dns/" class="md-nav__link ">
<span class="md-ellipsis">
Chart
</span>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Chart
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../charts/external-dns/CHANGELOG/" class="md-nav__link">
<span class="md-ellipsis">
Changelog
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
About
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
About
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../faq/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../flags/" class="md-nav__link">
<span class="md-ellipsis">
Flags
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../20190708-external-dns-incubator/" class="md-nav__link">
<span class="md-ellipsis">
Out of Incubator
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../code-of-conduct/" class="md-nav__link">
<span class="md-ellipsis">
Code of Conduct
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../LICENSE/" class="md-nav__link">
<span class="md-ellipsis">
License
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../providers/" class="md-nav__link">
<span class="md-ellipsis">
Providers
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Tutorials
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Tutorials
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../tutorials/akamai-edgedns/" class="md-nav__link">
<span class="md-ellipsis">
Akamai Edge DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/alibabacloud/" class="md-nav__link">
<span class="md-ellipsis">
Alibaba Cloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/aws-filters/" class="md-nav__link">
<span class="md-ellipsis">
AWS Filters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/aws-load-balancer-controller/" class="md-nav__link">
<span class="md-ellipsis">
AWS Load Balancer Controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/aws-public-private-route53/" class="md-nav__link">
<span class="md-ellipsis">
AWS Route53 with same domain for public and private zones
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/aws-sd/" class="md-nav__link">
<span class="md-ellipsis">
AWS Cloud Map API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/aws/" class="md-nav__link">
<span class="md-ellipsis">
AWS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/azure-private-dns/" class="md-nav__link">
<span class="md-ellipsis">
Azure Private DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/azure/" class="md-nav__link">
<span class="md-ellipsis">
Azure DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/civo/" class="md-nav__link">
<span class="md-ellipsis">
Civo DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/cloudflare/" class="md-nav__link">
<span class="md-ellipsis">
Cloudflare DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/contour/" class="md-nav__link">
<span class="md-ellipsis">
Contour HTTPProxy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/coredns/" class="md-nav__link">
<span class="md-ellipsis">
CoreDNS with minikube
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/crd/" class="md-nav__link">
<span class="md-ellipsis">
Using CRD Source for DNS Records
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/digitalocean/" class="md-nav__link">
<span class="md-ellipsis">
DigitalOcean DNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/dnsimple/" class="md-nav__link">
<span class="md-ellipsis">
DNSimple
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/exoscale/" class="md-nav__link">
<span class="md-ellipsis">
Exoscale
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/externalname/" class="md-nav__link">
<span class="md-ellipsis">
ExternalName Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/gandi/" class="md-nav__link">
<span class="md-ellipsis">
Gandi
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/gke-nginx/" class="md-nav__link">
<span class="md-ellipsis">
GKE with nginx-ingress-controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/gke/" class="md-nav__link">
<span class="md-ellipsis">
GKE with default controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/godaddy/" class="md-nav__link">
<span class="md-ellipsis">
GoDaddy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/hostport/" class="md-nav__link">
<span class="md-ellipsis">
Headless Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/ionoscloud/" class="md-nav__link">
<span class="md-ellipsis">
IONOS Cloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/kops-dns-controller/" class="md-nav__link">
<span class="md-ellipsis">
kOps dns-controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/kube-ingress-aws/" class="md-nav__link">
<span class="md-ellipsis">
kube-ingress-aws-controller
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/linode/" class="md-nav__link">
<span class="md-ellipsis">
Linode
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/ns1/" class="md-nav__link">
<span class="md-ellipsis">
NS1
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/oracle/" class="md-nav__link">
<span class="md-ellipsis">
Oracle Cloud Infrastructure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/ovh/" class="md-nav__link">
<span class="md-ellipsis">
OVHcloud
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/pdns/" class="md-nav__link">
<span class="md-ellipsis">
PowerDNS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/pihole/" class="md-nav__link">
<span class="md-ellipsis">
Pi-hole
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/plural/" class="md-nav__link">
<span class="md-ellipsis">
Plural
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/rfc2136/" class="md-nav__link">
<span class="md-ellipsis">
RFC2136 provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/scaleway/" class="md-nav__link">
<span class="md-ellipsis">
Scaleway
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/security-context/" class="md-nav__link">
<span class="md-ellipsis">
Running ExternalDNS with limited privileges
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/transip/" class="md-nav__link">
<span class="md-ellipsis">
TransIP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tutorials/webhook-provider/" class="md-nav__link">
<span class="md-ellipsis">
Webhook provider
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Annotations
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Annotations
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../annotations/annotations/" class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Sources
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Sources
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../sources/about/" class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/crd/" class="md-nav__link">
<span class="md-ellipsis">
CRD Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/f5-transportserver/" class="md-nav__link">
<span class="md-ellipsis">
F5 Networks TransportServer Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/f5-virtualserver/" class="md-nav__link">
<span class="md-ellipsis">
F5 Networks VirtualServer Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/gateway-api/" class="md-nav__link">
<span class="md-ellipsis">
Gateway API Route Sources
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/gateway/" class="md-nav__link">
<span class="md-ellipsis">
Gateway sources
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/gloo-proxy/" class="md-nav__link">
<span class="md-ellipsis">
Gloo Proxy Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/ingress/" class="md-nav__link">
<span class="md-ellipsis">
Ingress source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/istio/" class="md-nav__link">
<span class="md-ellipsis">
Istio Gateway / Virtual Service Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/kong/" class="md-nav__link">
<span class="md-ellipsis">
Kong TCPIngress Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/mx-record/" class="md-nav__link">
<span class="md-ellipsis">
MX record with CRD source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/nodes/" class="md-nav__link">
<span class="md-ellipsis">
Cluster Nodes as Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/ns-record/" class="md-nav__link">
<span class="md-ellipsis">
NS record with CRD source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/openshift/" class="md-nav__link">
<span class="md-ellipsis">
OpenShift Route Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/pod/" class="md-nav__link">
<span class="md-ellipsis">
Pod Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/service/" class="md-nav__link">
<span class="md-ellipsis">
Service source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/traefik-proxy/" class="md-nav__link">
<span class="md-ellipsis">
Traefik Proxy Source
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../sources/txt-record/" class="md-nav__link">
<span class="md-ellipsis">
Creating TXT record with CRD source
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Registries
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Registries
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../registry/registry/" class="md-nav__link">
<span class="md-ellipsis">
About
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../registry/txt/" class="md-nav__link">
<span class="md-ellipsis">
TXT
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../registry/dynamodb/" class="md-nav__link">
<span class="md-ellipsis">
DynamoDB
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" checked>
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="">
<span class="md-ellipsis">
Advanced Topics
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Advanced Topics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../initial-design/" class="md-nav__link">
<span class="md-ellipsis">
Initial Design
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../proposal/001-leader-election/" class="md-nav__link">
<span class="md-ellipsis">
Leader Election
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_3" >
<div class="md-nav__link md-nav__container">
<a href="../../monitoring/" class="md-nav__link ">
<span class="md-ellipsis">
Monitoring
</span>
</a>
<label class="md-nav__link " for="__nav_8_3" id="__nav_8_3_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_3">
<span class="md-nav__icon md-icon"></span>
Monitoring
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../monitoring/metrics/" class="md-nav__link">
<span class="md-ellipsis">
Available Metrics
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../proposal/multi-target/" class="md-nav__link">
<span class="md-ellipsis">
MultiTarget
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../nat64/" class="md-nav__link">
<span class="md-ellipsis">
NAT64
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rate-limits/" class="md-nav__link">
<span class="md-ellipsis">
Rate Limits
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
TTL
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
TTL
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#ttl-annotation-support" class="md-nav__link">
<span class="md-ellipsis">
TTL annotation support
</span>
</a>
<nav class="md-nav" aria-label="TTL annotation support">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#providers" class="md-nav__link">
<span class="md-ellipsis">
Providers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sources" class="md-nav__link">
<span class="md-ellipsis">
Sources
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#notes" class="md-nav__link">
<span class="md-ellipsis">
Notes
</span>
</a>
<nav class="md-nav" aria-label="Notes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#aws-provider" class="md-nav__link">
<span class="md-ellipsis">
AWS Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#azure" class="md-nav__link">
<span class="md-ellipsis">
Azure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cloudflare-provider" class="md-nav__link">
<span class="md-ellipsis">
CloudFlare Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#digitalocean-provider" class="md-nav__link">
<span class="md-ellipsis">
DigitalOcean Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dnsimple-provider" class="md-nav__link">
<span class="md-ellipsis">
DNSimple Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#google-provider" class="md-nav__link">
<span class="md-ellipsis">
Google Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#linode-provider" class="md-nav__link">
<span class="md-ellipsis">
Linode Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#transip-provider" class="md-nav__link">
<span class="md-ellipsis">
TransIP Provider
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#use-cases-for-external-dnsalphakubernetesiottl-annotation" class="md-nav__link">
<span class="md-ellipsis">
Use Cases for external-dns.alpha.kubernetes.io/ttl annotation
</span>
</a>
<nav class="md-nav" aria-label="Use Cases for external-dns.alpha.kubernetes.io/ttl annotation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#fast-failover-for-critical-services" class="md-nav__link">
<span class="md-ellipsis">
Fast Failover for Critical Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#long-ttl-for-static-services" class="md-nav__link">
<span class="md-ellipsis">
Long TTL for Static Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#canary-or-experimental-services" class="md-nav__link">
<span class="md-ellipsis">
Canary or Experimental Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#provider-specific-optimization" class="md-nav__link">
<span class="md-ellipsis">
Provider-Specific Optimization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#regulatory-or-contractual-slas" class="md-nav__link">
<span class="md-ellipsis">
Regulatory or Contractual SLAs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#autoscaling-node-pools-in-gcp-or-other-cloud-providers" class="md-nav__link">
<span class="md-ellipsis">
Autoscaling Node Pools in GCP (or Other Cloud Providers)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../fqdn-templating/" class="md-nav__link">
<span class="md-ellipsis">
FQDN Templating
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8_9" >
<label class="md-nav__link" for="__nav_8_9" id="__nav_8_9_label" tabindex="0">
<span class="md-ellipsis">
Decisions
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8_9">
<span class="md-nav__icon md-icon"></span>
Decisions
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../proposal/002-internal-ipv6-handling-rollback/" class="md-nav__link">
<span class="md-ellipsis">
002 internal ipv6 handling rollback
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../proposal/003-dnsendpoint-graduation-to-beta/" class="md-nav__link">
<span class="md-ellipsis">
003 dnsendpoint graduation to beta
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
<div class="md-nav__link md-nav__container">
<a href="../../contributing/" class="md-nav__link ">
<span class="md-ellipsis">
Contributing
</span>
</a>
<label class="md-nav__link " for="__nav_9" id="__nav_9_label" tabindex="0">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
Contributing
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../CONTRIBUTING/" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes Contributions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../release/" class="md-nav__link">
<span class="md-ellipsis">
Release
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../deprecation/" class="md-nav__link">
<span class="md-ellipsis">
Deprecation Policy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/chart/" class="md-nav__link">
<span class="md-ellipsis">
Helm Chart
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/design/" class="md-nav__link">
<span class="md-ellipsis">
Design
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/dev-guide/" class="md-nav__link">
<span class="md-ellipsis">
Developer Reference
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/sources-and-providers/" class="md-nav__link">
<span class="md-ellipsis">
Sources and Providers
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#ttl-annotation-support" class="md-nav__link">
<span class="md-ellipsis">
TTL annotation support
</span>
</a>
<nav class="md-nav" aria-label="TTL annotation support">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#providers" class="md-nav__link">
<span class="md-ellipsis">
Providers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#sources" class="md-nav__link">
<span class="md-ellipsis">
Sources
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#notes" class="md-nav__link">
<span class="md-ellipsis">
Notes
</span>
</a>
<nav class="md-nav" aria-label="Notes">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#aws-provider" class="md-nav__link">
<span class="md-ellipsis">
AWS Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#azure" class="md-nav__link">
<span class="md-ellipsis">
Azure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#cloudflare-provider" class="md-nav__link">
<span class="md-ellipsis">
CloudFlare Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#digitalocean-provider" class="md-nav__link">
<span class="md-ellipsis">
DigitalOcean Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#dnsimple-provider" class="md-nav__link">
<span class="md-ellipsis">
DNSimple Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#google-provider" class="md-nav__link">
<span class="md-ellipsis">
Google Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#linode-provider" class="md-nav__link">
<span class="md-ellipsis">
Linode Provider
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#transip-provider" class="md-nav__link">
<span class="md-ellipsis">
TransIP Provider
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#use-cases-for-external-dnsalphakubernetesiottl-annotation" class="md-nav__link">
<span class="md-ellipsis">
Use Cases for external-dns.alpha.kubernetes.io/ttl annotation
</span>
</a>
<nav class="md-nav" aria-label="Use Cases for external-dns.alpha.kubernetes.io/ttl annotation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#fast-failover-for-critical-services" class="md-nav__link">
<span class="md-ellipsis">
Fast Failover for Critical Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#long-ttl-for-static-services" class="md-nav__link">
<span class="md-ellipsis">
Long TTL for Static Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#canary-or-experimental-services" class="md-nav__link">
<span class="md-ellipsis">
Canary or Experimental Services
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#provider-specific-optimization" class="md-nav__link">
<span class="md-ellipsis">
Provider-Specific Optimization
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#regulatory-or-contractual-slas" class="md-nav__link">
<span class="md-ellipsis">
Regulatory or Contractual SLAs
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#autoscaling-node-pools-in-gcp-or-other-cloud-providers" class="md-nav__link">
<span class="md-ellipsis">
Autoscaling Node Pools in GCP (or Other Cloud Providers)
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="configure-dns-record-ttl-time-to-live">Configure DNS record TTL (Time-To-Live)<a class="headerlink" href="#configure-dns-record-ttl-time-to-live" title="Permanent link">&para;</a></h1>
<p>An optional annotation <code>external-dns.alpha.kubernetes.io/ttl</code> is available to customize the TTL value of a DNS record.<br />
TTL is specified as an integer encoded as string representing seconds.</p>
<p>To configure it, simply annotate a service/ingress, e.g.:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span>
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Service</span>
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="nt">metadata</span><span class="p">:</span>
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="w"> </span><span class="nt">annotations</span><span class="p">:</span>
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="w"> </span><span class="nt">external-dns.alpha.kubernetes.io/hostname</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx.external-dns-test.my-org.com.</span>
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="w"> </span><span class="nt">external-dns.alpha.kubernetes.io/ttl</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;60&quot;</span>
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span>
</code></pre></div>
<p>TTL can also be specified as a duration value parsable by Golang <a href="https://golang.org/pkg/time/#ParseDuration">time.ParseDuration</a>:</p>
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">apiVersion</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v1</span>
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nt">kind</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Service</span>
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="nt">metadata</span><span class="p">:</span>
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="nt">annotations</span><span class="p">:</span>
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="nt">external-dns.alpha.kubernetes.io/hostname</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx.external-dns-test.my-org.com.</span>
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="nt">external-dns.alpha.kubernetes.io/ttl</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;1m&quot;</span>
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span>
</code></pre></div>
<p>Both examples result in the same value of 60 seconds TTL.</p>
<p>TTL must be a positive value.</p>
<h2 id="ttl-annotation-support">TTL annotation support<a class="headerlink" href="#ttl-annotation-support" title="Permanent link">&para;</a></h2>
<blockquote>
<p>Note: For TTL annotations to work, the <code>external-dns.alpha.kubernetes.io/hostname</code> annotation must be set on the resource and be supported by the provider as well as the source.</p>
</blockquote>
<h3 id="providers">Providers<a class="headerlink" href="#providers" title="Permanent link">&para;</a></h3>
<table>
<thead>
<tr>
<th style="text-align: left;">Provider</th>
<th style="text-align: center;">Supported</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><code>Akamai</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>AlibabaCloud</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>AWS</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>AWSSD</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Azure</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Civo</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Cloudflare</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>CoreDNS</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>DigitalOcean</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>DNSSimple</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Exoscale</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Gandi</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>GoDaddy</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Google GCP</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>InMemory</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Linode</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>NS1</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>OCI</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>OVH</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>PDNS</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>PiHole</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Plural</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>RFC2136</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Scaleway</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Transip</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>Webhook</code></td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<h3 id="sources">Sources<a class="headerlink" href="#sources" title="Permanent link">&para;</a></h3>
<table>
<thead>
<tr>
<th style="text-align: left;">Source</th>
<th style="text-align: center;">Supported</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><code>ambassador-host</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>cloudfoundry</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>connector</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>contour-httpproxy</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>crd</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>empty</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>f5-transportserver</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>f5-virtualserver</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>fake</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gateway-grpcroute</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gateway-httproute</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gateway-tcproute</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gateway-tlsroute</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gateway-udproute</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>gloo-proxy</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>ingress</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>istio-gateway</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>istio-virtualservice</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>kong-tcpingress</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>node</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>openshift-route</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>pod</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>service</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>skipper-routegroup</code></td>
<td style="text-align: center;"></td>
</tr>
<tr>
<td style="text-align: left;"><code>traefik-proxy</code></td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
<h2 id="notes">Notes<a class="headerlink" href="#notes" title="Permanent link">&para;</a></h2>
<p>When the <code>external-dns.alpha.kubernetes.io/ttl</code> annotation is not provided, the TTL will default to 0 seconds and <code>endpoint.TTL.isConfigured()</code> will be false.</p>
<h3 id="aws-provider">AWS Provider<a class="headerlink" href="#aws-provider" title="Permanent link">&para;</a></h3>
<p>The AWS Provider overrides the value to 300s when the TTL is 0.<br />
This value is a constant in the provider code.</p>
<h3 id="azure">Azure<a class="headerlink" href="#azure" title="Permanent link">&para;</a></h3>
<p>TTL value should be between 1 and 2,147,483,647 seconds.<br />
By default it will be 300s.</p>
<h3 id="cloudflare-provider">CloudFlare Provider<a class="headerlink" href="#cloudflare-provider" title="Permanent link">&para;</a></h3>
<p>CloudFlare overrides the value to &ldquo;auto&rdquo; when the TTL is 0.</p>
<h3 id="digitalocean-provider">DigitalOcean Provider<a class="headerlink" href="#digitalocean-provider" title="Permanent link">&para;</a></h3>
<p>The DigitalOcean Provider overrides the value to 300s when the TTL is 0.<br />
This value is a constant in the provider code.</p>
<h3 id="dnsimple-provider">DNSimple Provider<a class="headerlink" href="#dnsimple-provider" title="Permanent link">&para;</a></h3>
<p>The DNSimple Provider default TTL is used when the TTL is 0. The default TTL is 3600s.</p>
<h3 id="google-provider">Google Provider<a class="headerlink" href="#google-provider" title="Permanent link">&para;</a></h3>
<p>Previously with the Google Provider, TTL&rsquo;s were hard-coded to 300s.<br />
For safety, the Google Provider overrides the value to 300s when the TTL is 0.<br />
This value is a constant in the provider code.</p>
<p>For the moment, it is impossible to use a TTL value of 0 with the AWS, DigitalOcean, or Google Providers.<br />
This behavior may change in the future.</p>
<h3 id="linode-provider">Linode Provider<a class="headerlink" href="#linode-provider" title="Permanent link">&para;</a></h3>
<p>The Linode Provider default TTL is used when the TTL is 0. The default is 24 hours</p>
<h3 id="transip-provider">TransIP Provider<a class="headerlink" href="#transip-provider" title="Permanent link">&para;</a></h3>
<p>The TransIP Provider minimal TTL is used when the TTL is 0. The minimal TTL is 60s.</p>
<h2 id="use-cases-for-external-dnsalphakubernetesiottl-annotation">Use Cases for <code>external-dns.alpha.kubernetes.io/ttl</code> annotation<a class="headerlink" href="#use-cases-for-external-dnsalphakubernetesiottl-annotation" title="Permanent link">&para;</a></h2>
<p>The <code>external-dns.alpha.kubernetes.io/ttl</code> annotation allows you to set a custom <strong>TTL (Time To Live)</strong> for DNS records managed by <code>external-dns</code>.</p>
<p>Use the <code>external-dns.alpha.kubernetes.io/tt</code> annotation to fine-tune DNS caching behavior per record, balancing between update frequency and performance.</p>
<p>This is useful in several real-world scenarios depending on how frequently DNS records are expected to change.</p>
<hr />
<h3 id="fast-failover-for-critical-services">Fast Failover for Critical Services<a class="headerlink" href="#fast-failover-for-critical-services" title="Permanent link">&para;</a></h3>
<p>For services that must be highly available—like APIs, databases, or external load balancers—set a <strong>low TTL</strong> (e.g., 30 seconds) so DNS clients quickly update to new IPs during:</p>
<ul>
<li>Node failures</li>
<li>Region failovers</li>
<li>Blue/green deployments</li>
</ul>
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">annotations</span><span class="p">:</span>
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span><span class="nt">external-dns.alpha.kubernetes.io/ttl</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;30s&quot;</span>
</code></pre></div>
<hr />
<h3 id="long-ttl-for-static-services">Long TTL for Static Services<a class="headerlink" href="#long-ttl-for-static-services" title="Permanent link">&para;</a></h3>
<p>If your services IP or endpoint rarely changes (e.g., static websites, internal dashboards), you can set a long TTL (e.g., 86400 seconds = 24 hours) to:</p>
<ul>
<li>Reduce DNS query load</li>
<li>Improve cache performance</li>
<li>Lower cost with some DNS providers</li>
</ul>
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>annotations:
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a> external-dns.alpha.kubernetes.io/ttl: &quot;24h&quot;
</code></pre></div>
<hr />
<h3 id="canary-or-experimental-services">Canary or Experimental Services<a class="headerlink" href="#canary-or-experimental-services" title="Permanent link">&para;</a></h3>
<p>Use a short TTL for services under test or experimentation to allow fast DNS propagation when making changes, allowing easy rollback and testing.</p>
<hr />
<h3 id="provider-specific-optimization">Provider-Specific Optimization<a class="headerlink" href="#provider-specific-optimization" title="Permanent link">&para;</a></h3>
<p>Some DNS providers charge per query or have query rate limits. Adjusting the TTL lets you:</p>
<ul>
<li>Reduce costs</li>
<li>Avoid throttling</li>
<li>Manage DNS traffic load efficiently</li>
</ul>
<hr />
<h3 id="regulatory-or-contractual-slas">Regulatory or Contractual SLAs<a class="headerlink" href="#regulatory-or-contractual-slas" title="Permanent link">&para;</a></h3>
<p>Certain environments may require TTL values to align with:</p>
<ul>
<li>Regulatory guidelines</li>
<li>Legacy system compatibility</li>
<li>Contractual service-level agreements</li>
</ul>
<hr />
<h3 id="autoscaling-node-pools-in-gcp-or-other-cloud-providers">Autoscaling Node Pools in GCP (or Other Cloud Providers)<a class="headerlink" href="#autoscaling-node-pools-in-gcp-or-other-cloud-providers" title="Permanent link">&para;</a></h3>
<p>In environments like Google Cloud Platform (GCP) using private node IPs for DNS resolution, ExternalDNS may register node IPs with a default TTL of 300 seconds.</p>
<p>During autoscaling events (e.g., node addition/removal or upgrades), DNS records may remain stale for several minutes, causing traffic to be routed to non-existent nodes.</p>
<p>By using the TTL annotation you can:</p>
<ul>
<li>Reduce TTL to allow faster DNS propagation</li>
<li>Ensure quicker routing updates when node IPs change</li>
<li>Improve resiliency during frequent cluster topology changes</li>
<li>Fine-grained TTL control helps avoid downtime or misrouting in dynamic, autoscaling environments.</li>
</ul>
<aside class="md-source-file">
<span class="md-source-file__fact">
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">June 20, 2025</span>
</span>
</aside>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<!--
Copyright (c) 2016-2024 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!-- Copyright and theme information -->
<div class="md-copyright">
Made with
<a
href="https://squidfunk.github.io/mkdocs-material/"
target="_blank" rel="noopener"
>
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "navigation.top", "navigation.tracking", "navigation.indexes", "navigation.instant", "navigation.tabs", "navigation.tabs.sticky"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../../../assets/javascripts/bundle.1e8ae164.min.js"></script>
</body>
</html>