{"id":1910,"date":"2024-02-06T12:47:30","date_gmt":"2024-02-06T12:47:30","guid":{"rendered":"https:\/\/devdynamic.io\/blog\/?p=1910"},"modified":"2024-02-06T12:48:36","modified_gmt":"2024-02-06T12:48:36","slug":"argo-cd-applicationset-what-is-it","status":"publish","type":"post","link":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/","title":{"rendered":"Argo-CD ApplicationSet what is it?"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"884\" src=\"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo-1024x884.png\" alt=\"\" class=\"wp-image-1911\" srcset=\"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo-1024x884.png 1024w, https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo-300x259.png 300w, https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo-768x663.png 768w, https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png 1115w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"automating-the-generation-of-argo-cd-applications-with-the-applicationset-controller\">Automating the generation of Argo CD Applications with the ApplicationSet Controller<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The&nbsp;<a href=\"https:\/\/argo-cd.readthedocs.io\/en\/stable\/operator-manual\/applicationset\/\">ApplicationSet controller<\/a>&nbsp;is a part of Argo CD adds Application automation, and seeks to improve multi-cluster support and cluster multitenant support within Argo CD. Argo CD Applications may be templated from multiple different sources, including from Git or Argo CD&#8217;s own defined cluster list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The set of tools provided by the ApplicationSet controller may also be used to allow developers (without access to the Argo CD namespace) to independently create Applications without cluster-administrator intervention.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Be aware of the&nbsp;<a href=\"https:\/\/argo-cd.readthedocs.io\/en\/stable\/operator-manual\/applicationset\/Security\/\">security implications<\/a>&nbsp;before allowing developers to create Applications via ApplicationSets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The ApplicationSet controller is installed alongside Argo CD (within the same namespace), and the controller automatically generates Argo CD Applications based on the contents of a new&nbsp;<code>ApplicationSet<\/code>&nbsp;Custom Resource (CR).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is an example of an&nbsp;<code>ApplicationSet<\/code>&nbsp;resource that can be used to target an Argo CD Application to multiple clusters<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: argoproj.io\/v1alpha1\nkind: ApplicationSet\nmetadata:\n  name: guestbook\nspec:\n  generators:\n  - list:\n      elements:\n      - cluster: engineering-dev\n        url: https:\/\/1.2.3.4\n      - cluster: engineering-prod\n        url: https:\/\/2.4.6.8\n      - cluster: finance-preprod\n        url: https:\/\/9.8.7.6\n  template:\n    metadata:\n      name: '{{cluster}}-guestbook'\n    spec:\n      project: default\n      source:\n        repoURL: https:\/\/github.com\/argoproj\/argo-cd.git\n        targetRevision: HEAD\n        path: applicationset\/examples\/list-generator\/guestbook\/{{cluster}}\n      destination:\n        server: '{{url}}'\n        namespace: guestbook<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The List generator passes the&nbsp;<code>url<\/code>&nbsp;and&nbsp;<code>cluster<\/code>&nbsp;fields into the template as&nbsp;<code>{{param}}<\/code>-style parameters, which are then rendered into three corresponding Argo CD Applications (one for each defined cluster). Targeting new clusters (or removing existing clusters) is simply a matter of altering the&nbsp;<code>ApplicationSet<\/code>&nbsp;resource and the corresponding Argo CD Applications will be automatically created.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Likewise, changes made to the ApplicationSet&nbsp;<code>template<\/code>&nbsp;fields will automatically be applied to every generated Application. Managing a set of multiple Argo CD Applications is thus as easy as managing a single&nbsp;<code>ApplicationSet<\/code>&nbsp;resource.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Within ApplicationSet there exist other more powerful generators in addition to the List generator, including the Cluster generator (which automatically uses Argo CD-defined clusters to template Applications), and the Git generator (which uses the files\/directories of a Git repository to template applications).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To learn more about the ApplicationSet controller, check out&nbsp;<a href=\"https:\/\/argo-cd.readthedocs.io\/en\/stable\/operator-manual\/applicationset\/\">ApplicationSet documentation<\/a>&nbsp;to install the ApplicationSet controller alongside Argo CD.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong>&nbsp;Starting&nbsp;<code>v2.3<\/code>&nbsp;of Argo CD, we don&#8217;t need to install the ApplicationSet Controller separately. It would be instead as part of the Argo CD installation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Automating the generation of Argo CD Applications with the ApplicationSet Controller The&nbsp;ApplicationSet controller&nbsp;is a part of Argo CD adds Application automation, and seeks to improve multi-cluster support and cluster multitenant support within Argo CD. Argo CD Applications may be templated from multiple different sources, including from Git or Argo CD&#8217;s own defined cluster list. The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1911,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[201],"tags":[],"class_list":["post-1910","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-argo-cd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services<\/title>\n<meta name=\"description\" content=\"What is Argo CD ApplicationSet? Why we need use it?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services\" \/>\n<meta property=\"og:description\" content=\"What is Argo CD ApplicationSet? Why we need use it?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/\" \/>\n<meta property=\"og:site_name\" content=\"DevDynamic - DevOps and SRE services\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/devdynamic\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-06T12:47:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-06T12:48:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1115\" \/>\n\t<meta property=\"og:image:height\" content=\"963\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/#\\\/schema\\\/person\\\/89e32fbe94bbb1aa559fcbb132675df1\"},\"headline\":\"Argo-CD ApplicationSet what is it?\",\"datePublished\":\"2024-02-06T12:47:30+00:00\",\"dateModified\":\"2024-02-06T12:48:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/\"},\"wordCount\":353,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/argocd-logo.png\",\"articleSection\":[\"Argo CD\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/\",\"url\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/\",\"name\":\"Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/argocd-logo.png\",\"datePublished\":\"2024-02-06T12:47:30+00:00\",\"dateModified\":\"2024-02-06T12:48:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/#\\\/schema\\\/person\\\/89e32fbe94bbb1aa559fcbb132675df1\"},\"description\":\"What is Argo CD ApplicationSet? Why we need use it?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#primaryimage\",\"url\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/argocd-logo.png\",\"contentUrl\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/argocd-logo.png\",\"width\":1115,\"height\":963},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/2024\\\/02\\\/argo-cd-applicationset-what-is-it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Argo-CD ApplicationSet what is it?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/\",\"name\":\"DevDynamic - DevOps and SRE services\",\"description\":\"blog, devops\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/#\\\/schema\\\/person\\\/89e32fbe94bbb1aa559fcbb132675df1\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/devdynamic.io\\\/blog\"],\"url\":\"https:\\\/\\\/devdynamic.io\\\/blog\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services","description":"What is Argo CD ApplicationSet? Why we need use it?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/","og_locale":"en_US","og_type":"article","og_title":"Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services","og_description":"What is Argo CD ApplicationSet? Why we need use it?","og_url":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/","og_site_name":"DevDynamic - DevOps and SRE services","article_publisher":"https:\/\/www.facebook.com\/devdynamic","article_published_time":"2024-02-06T12:47:30+00:00","article_modified_time":"2024-02-06T12:48:36+00:00","og_image":[{"width":1115,"height":963,"url":"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#article","isPartOf":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/"},"author":{"name":"admin","@id":"https:\/\/devdynamic.io\/blog\/#\/schema\/person\/89e32fbe94bbb1aa559fcbb132675df1"},"headline":"Argo-CD ApplicationSet what is it?","datePublished":"2024-02-06T12:47:30+00:00","dateModified":"2024-02-06T12:48:36+00:00","mainEntityOfPage":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/"},"wordCount":353,"commentCount":0,"image":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#primaryimage"},"thumbnailUrl":"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png","articleSection":["Argo CD"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/","url":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/","name":"Argo-CD ApplicationSet what is it? - DevDynamic - DevOps and SRE services","isPartOf":{"@id":"https:\/\/devdynamic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#primaryimage"},"image":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#primaryimage"},"thumbnailUrl":"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png","datePublished":"2024-02-06T12:47:30+00:00","dateModified":"2024-02-06T12:48:36+00:00","author":{"@id":"https:\/\/devdynamic.io\/blog\/#\/schema\/person\/89e32fbe94bbb1aa559fcbb132675df1"},"description":"What is Argo CD ApplicationSet? Why we need use it?","breadcrumb":{"@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#primaryimage","url":"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png","contentUrl":"https:\/\/devdynamic.io\/blog\/wp-content\/uploads\/2024\/02\/argocd-logo.png","width":1115,"height":963},{"@type":"BreadcrumbList","@id":"https:\/\/devdynamic.io\/blog\/2024\/02\/argo-cd-applicationset-what-is-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devdynamic.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Argo-CD ApplicationSet what is it?"}]},{"@type":"WebSite","@id":"https:\/\/devdynamic.io\/blog\/#website","url":"https:\/\/devdynamic.io\/blog\/","name":"DevDynamic - DevOps and SRE services","description":"blog, devops","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devdynamic.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/devdynamic.io\/blog\/#\/schema\/person\/89e32fbe94bbb1aa559fcbb132675df1","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0841c4204437d708495f0224966f0ec14c1e3ff967223906d0442710f22ef?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/devdynamic.io\/blog"],"url":"https:\/\/devdynamic.io\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/posts\/1910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/comments?post=1910"}],"version-history":[{"count":2,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/posts\/1910\/revisions"}],"predecessor-version":[{"id":1913,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/posts\/1910\/revisions\/1913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/media\/1911"}],"wp:attachment":[{"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/media?parent=1910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/categories?post=1910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devdynamic.io\/blog\/wp-json\/wp\/v2\/tags?post=1910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}