{"id":491,"date":"2023-12-10T10:00:00","date_gmt":"2023-12-10T10:00:00","guid":{"rendered":"https:\/\/jacar.es\/gitops-argocd-madurez\/"},"modified":"2023-12-10T10:00:00","modified_gmt":"2023-12-10T10:00:00","slug":"gitops-argocd-madurez","status":"publish","type":"post","link":"https:\/\/jacar.es\/en\/gitops-argocd-madurez\/","title":{"rendered":"GitOps With ArgoCD: From Hype to Stable Production"},"content":{"rendered":"<p><a href=\"https:\/\/argo-cd.readthedocs.io\/\"><strong>ArgoCD<\/strong><\/a> has gone in a few years from being an interesting project to the standard deploy practice for Kubernetes. <strong>GitOps<\/strong> \u2014 the model where the Git repository is the single source of truth for the cluster\u2019s desired state \u2014 has proven to work better than traditional push pipelines for many teams. We cover the principles, what ArgoCD does well, the mistakes seen in production, and the comparison with Flux.<\/p>\n<h2 id=\"the-real-gitops-principles\">The Real GitOps Principles<\/h2>\n<p>GitOps isn\u2019t just \u201cdeploy from Git\u201d. It has four formal principles:<\/p>\n<ol type=\"1\">\n<li><strong>Declarative<\/strong>: the entire system is described declaratively (Kubernetes YAML, Helm\/Kustomize manifests), not as a sequence of commands.<\/li>\n<li><strong>Versioned and immutable<\/strong>: the desired state lives in Git. Every change is an auditable commit.<\/li>\n<li><strong>Automatically pulled<\/strong>: agents in the cluster (ArgoCD\/Flux) pull from the repository and apply changes. No external push from CI.<\/li>\n<li><strong>Continuous reconciliation<\/strong>: the agent constantly compares actual vs desired state and corrects drift.<\/li>\n<\/ol>\n<p>The most important implication is the fourth: <strong>drift is automatically corrected<\/strong>. If someone edits a resource by hand (<code>kubectl edit<\/code>), ArgoCD reverts it to the Git state. That\u2019s the key difference from traditional pipelines.<\/p>\n<h2 id=\"why-argocd-has-won-adoption\">Why ArgoCD Has Won Adoption<\/h2>\n<p>Some reasons it\u2019s the most popular option in 2023:<\/p>\n<ul>\n<li><strong>Excellent UI<\/strong>. Visual view of applications, their resources, health state, diff between Git and cluster.<\/li>\n<li><strong>Serious multi-tenancy<\/strong>. Supports multiple teams with granular permissions via RBAC + projects.<\/li>\n<li><strong>Flexible sync policies<\/strong>: manual, auto, with prune, with self-heal \u2014 every combination useful for different scenarios.<\/li>\n<li><strong>Broad tool support<\/strong>: Helm, Kustomize, plain YAML, Jsonnet \u2014 coexist in the same cluster.<\/li>\n<li><strong>App-of-apps pattern<\/strong>. An ArgoCD app that deploys other ArgoCD apps \u2014 useful to manage the entire cluster declaratively.<\/li>\n<li><strong>Sync waves and hooks<\/strong>. Control over deployment order when it matters (e.g., CRDs before resources using them).<\/li>\n<\/ul>\n<h2 id=\"typical-repository-structure\">Typical Repository Structure<\/h2>\n<p>A reasonable organisation seen in projects:<\/p>\n<pre><code>config-repo\/\n\u251c\u2500\u2500 applications\/\n\u2502   \u251c\u2500\u2500 prod\/\n\u2502   \u2502   \u251c\u2500\u2500 app-a.yaml      # ArgoCD Application pointing to manifests\n\u2502   \u2502   \u2514\u2500\u2500 app-b.yaml\n\u2502   \u2514\u2500\u2500 staging\/\n\u2502       \u2514\u2500\u2500 ...\n\u251c\u2500\u2500 manifests\/\n\u2502   \u251c\u2500\u2500 app-a\/\n\u2502   \u2502   \u251c\u2500\u2500 base\/           # Kustomize base\n\u2502   \u2502   \u2514\u2500\u2500 overlays\/\n\u2502   \u2502       \u251c\u2500\u2500 prod\/\n\u2502   \u2502       \u2514\u2500\u2500 staging\/\n\u2502   \u2514\u2500\u2500 app-b\/\n\u2502       \u2514\u2500\u2500 helm\/           # Helm chart or values\n\u2514\u2500\u2500 argocd-bootstrap\/       # ArgoCD&#39;s own configuration<\/code><\/pre>\n<p>Patterns that work:<\/p>\n<ul>\n<li><strong>Separate app code from configuration<\/strong>. The app code repo isn\u2019t the config repo. Configuration changes don\u2019t require image rebuild.<\/li>\n<li><strong>Branch or directory per environment<\/strong>. I prefer directories (Kustomize overlays) over branches \u2014 easier to see differences between environments.<\/li>\n<li><strong>Image automation with automated commits<\/strong>. Tools like ArgoCD Image Updater detect new images and commit to the config repo.<\/li>\n<\/ul>\n<h2 id=\"sync-policies-when-each-one\">Sync Policies: When Each One<\/h2>\n<p>ArgoCD offers several auto-sync options:<\/p>\n<ul>\n<li><strong>Manual sync<\/strong>: someone must press \u201cSync\u201d after Git changes. Good for critical production environments where you want human review.<\/li>\n<li><strong>Auto-sync without prune<\/strong>: applies changes but doesn\u2019t delete resources that disappear from Git. More conservative.<\/li>\n<li><strong>Auto-sync with prune<\/strong>: applies all changes and deletes what\u2019s no longer in Git. More strict but dangerous if someone accidentally deletes something.<\/li>\n<li><strong>Self-heal<\/strong>: in addition to applying Git, reverts any manual change. Real strict GitOps.<\/li>\n<\/ul>\n<p>A recommendation: <strong>manual sync in production initially<\/strong>, auto-sync without prune in staging, self-heal in dev. As confidence grows, move production to controlled auto-sync.<\/p>\n<h2 id=\"common-production-mistakes\">Common Production Mistakes<\/h2>\n<p>After several projects, the mistakes I see most:<\/p>\n<ul>\n<li><strong>Self-heal without team discipline<\/strong>. If a dev changes something by hand for debug and ArgoCD reverts within a minute, frustration. Clear policy: manual changes \u2192 understand they get reverted, do them only in documented emergencies.<\/li>\n<li><strong>Secrets in Git<\/strong>. Obvious antipattern but happens. Use Sealed Secrets, External Secrets Operator (ESO), or similar \u2014 never commit clear secrets.<\/li>\n<li><strong>Monstrous configuration repositories<\/strong>. A single repo with 200 apps becomes slow to sync and hard to review. Consider splitting by domain or team.<\/li>\n<li><strong>Misused sync waves<\/strong>. Too many dependencies between waves complicates deploys. Keep the graph simple.<\/li>\n<li><strong>CRDs as a normal app<\/strong>. CRDs must come before resources using them. Sync waves or separate bootstrap app.<\/li>\n<li><strong>No backups of ArgoCD configuration<\/strong>. ArgoCD itself must be in Git (app-of-apps). If your cluster dies, you recover by <code>argocd app create<\/code> pointing to the config repo.<\/li>\n<li><strong>Cluster admin for everyone<\/strong>. Configure ArgoCD projects with limited permissions. Team X can only deploy in namespaces Y.<\/li>\n<\/ul>\n<h2 id=\"comparison-with-flux\">Comparison With Flux<\/h2>\n<p><a href=\"https:\/\/fluxcd.io\/\">Flux<\/a> is the other mature GitOps tool. Practical differences:<\/p>\n<ul>\n<li><strong>UI<\/strong>: ArgoCD has a rich native UI; Flux\u2019s is more limited (improving with Weave GitOps).<\/li>\n<li><strong>Multi-tenancy<\/strong>: ArgoCD covers it with projects; Flux with namespaces and multi-source.<\/li>\n<li><strong>Philosophy<\/strong>: ArgoCD feels more like an \u201capplication\u201d, Flux more \u201ccontrollers in the cluster\u201d.<\/li>\n<li><strong>Helm<\/strong>: both support it; integrations slightly different.<\/li>\n<li><strong>Image automation<\/strong>: Flux has it natively; ArgoCD requires extra component (Image Updater).<\/li>\n<li><strong>Adoption<\/strong>: ArgoCD seems more popular in projects I\u2019ve seen recently.<\/li>\n<\/ul>\n<p>Either is a reasonable choice. ArgoCD is friendlier for teams valuing UI; Flux aligns more with \u201ceverything is a controller in the cluster\u201d.<\/p>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>ArgoCD has consolidated GitOps as a mature deploy practice for Kubernetes. Well implemented \u2014 with team discipline, secrets managed separately, and sync policies appropriate to the environment \u2014 it improves deploy reliability, audit trail, and recovery speed. Poorly implemented \u2014 with secrets in Git, monstrous configuration, no backups \u2014 it just adds another layer to maintain. The difference is in the operational details.<\/p>\n<p>Follow us on jacar.es for more on Kubernetes, deployment automation, and modern operation practices.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>ArgoCD has consolidated GitOps as the standard deploy practice in Kubernetes. How to use it well and what mistakes to avoid in production.<\/p>\n","protected":false},"author":1,"featured_media":492,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,23],"tags":[282,192,283,285,58,284],"class_list":["post-491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arquitectura","category-metodologias","tag-argocd","tag-ci-cd","tag-gitops","tag-helm","tag-kubernetes","tag-kustomize"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"en","enabled_languages":["es","en"],"languages":{"es":{"title":true,"content":true,"excerpt":true},"en":{"title":true,"content":true,"excerpt":true}}},"gutentor_comment":0,"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GitOps With ArgoCD: From Hype to Stable Production - Jacar<\/title>\n<meta name=\"description\" content=\"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jacar.es\/gitops-argocd-madurez\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitOps With ArgoCD: From Hype to Stable Production - Jacar\" \/>\n<meta property=\"og:description\" content=\"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jacar.es\/gitops-argocd-madurez\/\" \/>\n<meta property=\"og:site_name\" content=\"Jacar\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-10T10:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/favicon.png\" \/>\n\t<meta property=\"og:image:width\" content=\"252\" \/>\n\t<meta property=\"og:image:height\" content=\"229\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"javi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"javi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/\"},\"author\":{\"name\":\"javi\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\"},\"headline\":\"GitOps With ArgoCD: From Hype to Stable Production\",\"datePublished\":\"2023-12-10T10:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/\"},\"wordCount\":1712,\"publisher\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/19234746\\\/jwp-1294106-29075.jpg\",\"keywords\":[\"argocd\",\"ci cd\",\"gitops\",\"helm\",\"kubernetes\",\"kustomize\"],\"articleSection\":[\"Arquitectura\",\"Metodolog\u00edas\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"ItemPage\"],\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/\",\"url\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/\",\"name\":\"GitOps With ArgoCD: From Hype to Stable Production - Jacar\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/19234746\\\/jwp-1294106-29075.jpg\",\"datePublished\":\"2023-12-10T10:00:00+00:00\",\"description\":\"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/19234746\\\/jwp-1294106-29075.jpg\",\"contentUrl\":\"https:\\\/\\\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/19234746\\\/jwp-1294106-29075.jpg\",\"width\":1200,\"height\":675,\"caption\":\"Pantalla con ramas y commits de Git en un grafo visual\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jacar.es\\\/gitops-argocd-madurez\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/jacar.es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitOps con ArgoCD: del hype a la produccion estable\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#website\",\"url\":\"https:\\\/\\\/jacar.es\\\/\",\"name\":\"Jacar\",\"description\":\"Passion for Technology\",\"publisher\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jacar.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#organization\",\"name\":\"Jacar\",\"url\":\"https:\\\/\\\/jacar.es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/jacar.es\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/favicon.png\",\"width\":252,\"height\":229,\"caption\":\"Jacar\"},\"image\":{\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/javiercanetearroyo\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jacar.es\\\/#\\\/schema\\\/person\\\/54a7f7b4224b38fafc9866eb3e614208\",\"name\":\"javi\",\"sameAs\":[\"https:\\\/\\\/jacar.es\"],\"url\":\"https:\\\/\\\/jacar.es\\\/en\\\/author\\\/javi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"GitOps With ArgoCD: From Hype to Stable Production - Jacar","description":"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.","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:\/\/jacar.es\/gitops-argocd-madurez\/","og_locale":"en_US","og_type":"article","og_title":"GitOps With ArgoCD: From Hype to Stable Production - Jacar","og_description":"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.","og_url":"https:\/\/jacar.es\/gitops-argocd-madurez\/","og_site_name":"Jacar","article_published_time":"2023-12-10T10:00:00+00:00","og_image":[{"width":252,"height":229,"url":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2020\/09\/favicon.png","type":"image\/png"}],"author":"javi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"javi","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#article","isPartOf":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/"},"author":{"name":"javi","@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208"},"headline":"GitOps With ArgoCD: From Hype to Stable Production","datePublished":"2023-12-10T10:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/"},"wordCount":1712,"publisher":{"@id":"https:\/\/jacar.es\/#organization"},"image":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#primaryimage"},"thumbnailUrl":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2023\/12\/19234746\/jwp-1294106-29075.jpg","keywords":["argocd","ci cd","gitops","helm","kubernetes","kustomize"],"articleSection":["Arquitectura","Metodolog\u00edas"],"inLanguage":"en-US"},{"@type":["WebPage","ItemPage"],"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/","url":"https:\/\/jacar.es\/gitops-argocd-madurez\/","name":"GitOps With ArgoCD: From Hype to Stable Production - Jacar","isPartOf":{"@id":"https:\/\/jacar.es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#primaryimage"},"image":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#primaryimage"},"thumbnailUrl":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2023\/12\/19234746\/jwp-1294106-29075.jpg","datePublished":"2023-12-10T10:00:00+00:00","description":"ArgoCD in production: GitOps principles, config repositories, comparison with Flux, and common implementation mistakes.","breadcrumb":{"@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jacar.es\/gitops-argocd-madurez\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#primaryimage","url":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2023\/12\/19234746\/jwp-1294106-29075.jpg","contentUrl":"https:\/\/jcs-wp-jacar-es.fsn1.your-objectstorage.com\/wp-content\/uploads\/2023\/12\/19234746\/jwp-1294106-29075.jpg","width":1200,"height":675,"caption":"Pantalla con ramas y commits de Git en un grafo visual"},{"@type":"BreadcrumbList","@id":"https:\/\/jacar.es\/gitops-argocd-madurez\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/jacar.es\/"},{"@type":"ListItem","position":2,"name":"GitOps con ArgoCD: del hype a la produccion estable"}]},{"@type":"WebSite","@id":"https:\/\/jacar.es\/#website","url":"https:\/\/jacar.es\/","name":"Jacar","description":"Passion for Technology","publisher":{"@id":"https:\/\/jacar.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jacar.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jacar.es\/#organization","name":"Jacar","url":"https:\/\/jacar.es\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jacar.es\/#\/schema\/logo\/image\/","url":"https:\/\/jacar.es\/wp-content\/uploads\/2020\/09\/favicon.png","contentUrl":"https:\/\/jacar.es\/wp-content\/uploads\/2020\/09\/favicon.png","width":252,"height":229,"caption":"Jacar"},"image":{"@id":"https:\/\/jacar.es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/in\/javiercanetearroyo\/"]},{"@type":"Person","@id":"https:\/\/jacar.es\/#\/schema\/person\/54a7f7b4224b38fafc9866eb3e614208","name":"javi","sameAs":["https:\/\/jacar.es"],"url":"https:\/\/jacar.es\/en\/author\/javi\/"}]}},"_links":{"self":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts\/491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/comments?post=491"}],"version-history":[{"count":0,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/media\/492"}],"wp:attachment":[{"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jacar.es\/en\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}