{"id":197,"date":"2023-10-03T17:32:30","date_gmt":"2023-10-03T20:32:30","guid":{"rendered":"https:\/\/mauriciobeltran.cl\/?p=197"},"modified":"2023-10-03T18:03:53","modified_gmt":"2023-10-03T21:03:53","slug":"gitops-y-como-mantenemos-nuestro-cluster-actualizado","status":"publish","type":"post","link":"https:\/\/mauriciobeltran.cl\/index.php\/2023\/10\/03\/gitops-y-como-mantenemos-nuestro-cluster-actualizado\/","title":{"rendered":"Gitops &#8211; Y como mantenemos nuestro cluster actualizado"},"content":{"rendered":"\n<p>Gitops es una pr\u00e1ctica de despliegue continuo que delega la responsabilidad a un tercero el mantener el cluster de kubernetes actualizado.<\/p>\n\n\n\n<p>Se observan varias ventajas de este acercamiento:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Infraestructura versionada<\/li>\n\n\n\n<li>Resiliencia<\/li>\n\n\n\n<li>Ahorro de espacio de respaldo<\/li>\n\n\n\n<li>Recuperaci\u00f3n acelerada ante desastres<\/li>\n<\/ol>\n\n\n\n<p>El escenario de estudio es el siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"342\" src=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-1024x342.png\" alt=\"\" class=\"wp-image-201\" srcset=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-1024x342.png 1024w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-300x100.png 300w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-768x257.png 768w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-1536x514.png 1536w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-23-2048x685.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Un usuario env\u00eda cambios al repositorio Gitops<\/li>\n\n\n\n<li>Nuestro orquestador verifica peri\u00f3dicamente el estado del repositorio<\/li>\n\n\n\n<li>Mantiene el cluster actualizado seg\u00fan la definici\u00f3n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Argo CD<\/strong><\/h2>\n\n\n\n<p>Argo CD es una herramienta declarativa, para despliegue continuo en kubernetes.<\/p>\n\n\n\n<p><strong>Caso pr\u00e1ctico<\/strong><\/p>\n\n\n\n<p>Prerrequisitos<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Acceso a un cl\u00faster de kubernetes como administrador (o minikube)<\/li>\n\n\n\n<li>Acceso a un repositorio (Idealmente Git, ocuparemos Github para este caso)<\/li>\n<\/ul>\n\n\n\n<p><strong>Instalaci\u00f3n<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create namespace argocd \nkubectl apply -n argocd -f https:\/\/raw.githubusercontent.com\/argoproj\/argo-cd\/stable\/manifests\/install.yaml<\/code><\/pre>\n\n\n\n<p><strong>Repositorio base<\/strong><\/p>\n\n\n\n<p>Necesitamos crear un repositorio que contendr\u00e1 nuestros manifiestos<\/p>\n\n\n\n<p><strong>Configuraci\u00f3n argo<\/strong><\/p>\n\n\n\n<p>Para acceder a argocd, necesitamos hace run port-forward y acceder con la credencial de admin:<\/p>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>kubectl port-forward svc\/argocd-server -n argocd 8080:443<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"943\" height=\"514\" src=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-24.png\" alt=\"\" class=\"wp-image-204\" srcset=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-24.png 943w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-24-300x164.png 300w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-24-768x419.png 768w\" sizes=\"auto, (max-width: 943px) 100vw, 943px\" \/><\/figure>\n\n\n\n<p>kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\u00bb{.data.password}\u00bb | base64 -d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"290\" src=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-25.png\" alt=\"\" class=\"wp-image-205\" srcset=\"https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-25.png 932w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-25-300x93.png 300w, https:\/\/mauriciobeltran.cl\/wp-content\/uploads\/2023\/09\/image-25-768x239.png 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/figure>\n<\/div>\n\n\n\n<p><strong>Prueba de concepto<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Gitops Argo CD - Prueba de concepto\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/AjXOX7vx8ZQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><strong>\u00bfQue sigue?<\/strong><\/p>\n\n\n\n<p>La idea principal es entender la esencia de como funciona el despliegue continuo siguiendo este enfoque, entendiendo esto podremos implementar un proceso de Gitops en un flujo de Integraci\u00f3n y despliegue continuo.<\/p>\n\n\n\n<p>Si tienen dudas, pregunten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gitops es una pr\u00e1ctica de despliegue continuo que delega la<\/p>\n","protected":false},"author":1,"featured_media":228,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,20,21,18],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-gitops","category-kubernetes","category-operaciones"],"_links":{"self":[{"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":8,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":229,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/posts\/197\/revisions\/229"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/media\/228"}],"wp:attachment":[{"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mauriciobeltran.cl\/index.php\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}