{"id":94302,"date":"2025-01-23T23:59:52","date_gmt":"2025-01-23T20:29:52","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/"},"modified":"2025-01-23T23:59:52","modified_gmt":"2025-01-23T20:29:52","slug":"%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/","title":{"rendered":"\u0627\u0644\u06af\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc: \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06a9\u0627\u0631\u0622\u0645\u062f Kubernetes \u0628\u0627 Terraform \u0648 ArgoCD"},"content":{"rendered":"<div data-article-id=\"2236690\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\" >\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1%D9%87%D8%A7%DB%8C_%D9%85%D8%AE%D8%B2%D9%86\" >\u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u0632\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C\" >\u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%D8%A7%D8%B5%D9%84%DB%8C\" >\u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%DB%8C\" >\u0645\u0632\u0627\u06cc\u0627\u06cc \u0633\u0627\u0632\u0645\u0627\u0646\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D9%82%D8%AF%D9%85%D9%87\" >\u0645\u0642\u062f\u0645\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%DA%86%D8%A7%D9%84%D8%B4_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_%D9%87%D8%A7%DB%8C_%D8%B3%D9%86%D8%AA%DB%8C\" >\u0686\u0627\u0644\u0634 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u0633\u0646\u062a\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_%D8%B1%D9%88%DB%8C%DA%A9%D8%B1%D8%AF_%D9%85%D8%AF%D8%B1%D9%86_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B9%D9%86%D9%88%D8%A7%D9%86_%DA%A9%D8%AF_%D9%88_GitOps_%D9%88%D8%A7%D8%B1%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u062f\u0631\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u062f \u0648 GitOps \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_Terraform_%D8%AF%D9%88%D8%A8%D8%A7%D8%B1%D9%87_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%B4%D8%AF\" >\u062a\u062f\u0627\u0631\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a Terraform \u062f\u0648\u0628\u0627\u0631\u0647 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D8%AB%D8%A7%D9%84_%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9_%D8%AE%D9%88%D8%B4%D9%87_Terraform_Kubernetes\" >\u0645\u062b\u0627\u0644 \u062a\u062f\u0627\u0631\u06a9 \u062e\u0648\u0634\u0647 Terraform Kubernetes<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%88_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%87_ArgoCD\" >\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 ArgoCD<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#1_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C_%D8%B1%D9%85%D8%B2_%D8%B9%D8%A8%D9%88%D8%B1_%D9%88_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C\" >1. \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#_%D8%AE%D8%B1%D8%A7%D8%A8%DB%8C_%D9%81%D8%B1%D9%85%D8%A7%D9%86\" ># \u062e\u0631\u0627\u0628\u06cc \u0641\u0631\u0645\u0627\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#_%D8%A7%DB%8C%D9%86_%DA%86%D9%87_%DA%A9%D8%A7%D8%B1%DB%8C_%D8%A7%D9%86%D8%AC%D8%A7%D9%85_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\" ># \u0627\u06cc\u0646 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#2_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_RBAC_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C_%D9%85%D8%A8%D8%AA%D9%86%DB%8C_%D8%A8%D8%B1_%D9%86%D9%82%D8%B4\" >2. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc RBAC (\u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0646\u0642\u0634).<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#_RBAC_ConfigMap_%D8%B1%D8%A7_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%DA%A9%D9%86%DB%8C%D8%AF\" ># RBAC ConfigMap \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C_RBAC\" ># \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0637 \u0645\u0634\u06cc RBAC<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#_%D8%AA%D9%88%D8%B6%DB%8C%D8%AD_%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C\" ># \u062a\u0648\u0636\u06cc\u062d \u062e\u0637 \u0645\u0634\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#3_%D8%B3%D8%B1%D9%88%D8%B1_ArgoCD_%D8%B1%D8%A7_%D9%85%D8%AC%D8%AF%D8%AF%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\" >3. \u0633\u0631\u0648\u0631 ArgoCD \u0631\u0627 \u0645\u062c\u062f\u062f\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#4_%D9%88%D8%A7%D8%B1%D8%AF_ArgoCD_%D8%B4%D9%88%DB%8C%D8%AF\" >4. \u0648\u0627\u0631\u062f ArgoCD \u0634\u0648\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%86%DA%A9%D8%A7%D8%AA_%D9%85%D9%87%D9%85\" >\u0646\u06a9\u0627\u062a \u0645\u0647\u0645<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%DA%AF%D8%B1%D8%AF%D8%B4_%DA%A9%D8%A7%D8%B1_GitOps\" >\u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 GitOps<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_ArgoCD\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 ArgoCD<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#Application_Repo\" >Application Repo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D8%AE%D8%B2%D9%86_GitOps\" >\u0645\u062e\u0632\u0646 GitOps<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_%D9%85%D9%87%D9%85_ArgoCLI_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\" >\u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0647\u0645 ArgoCLI \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#GitOps_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D9%81%D9%84%D8%B3%D9%81%DB%8C\" >GitOps \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0644\u0633\u0641\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A7%D8%B5%D9%88%D9%84_%D8%A7%D8%B5%D9%84%DB%8C\" >\u0627\u0635\u0648\u0644 \u0627\u0635\u0644\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%A7%DB%8C%D9%86_%D8%B1%D9%88%DB%8C%DA%A9%D8%B1%D8%AF\" >\u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AA%DB%8C%D9%85_%D9%87%D8%A7%DB%8C_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA\" >\u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0647\u0627\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AA%DB%8C%D9%85_%D9%87%D8%A7%DB%8C_%D8%AA%D9%88%D8%B3%D8%B9%D9%87\" >\u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86_%D9%87%D8%A7\" >\u0628\u0631\u0627\u06cc \u0633\u0627\u0632\u0645\u0627\u0646 \u0647\u0627<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%B9%D9%85%D9%84%DB%8C\" >\u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a7%d9%84%da%af%d9%88%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1%d8%a8%d8%b1%d8%af%db%8c-%d8%a7%d8%b3%d8%aa%d8%b1%d8%a7%d8%aa%da%98%db%8c\/#%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7_%D9%88_%D9%85%D9%86%D8%A7%D8%A8%D8%B9_%D8%AA%D9%88%D8%B5%DB%8C%D9%87_%D8%B4%D8%AF%D9%87\" >\u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0645\u0646\u0627\u0628\u0639 \u062a\u0648\u0635\u06cc\u0647 \u0634\u062f\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%81%D9%87%D8%B1%D8%B3%D8%AA_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\"><\/span>\n<p>  \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\u0645\u0631\u0648\u0631\u06cc \u0628\u0631 \u0641\u0646\u0627\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc<\/li>\n<li>Terraform\u060c Kubernetes\u060c ArgoCD \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc<\/li>\n<\/ul>\n<ul>\n<li>\u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc<\/li>\n<li>\u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631<\/li>\n<\/ul>\n<ul>\n<li>\u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u062f<\/li>\n<li>\u0627\u0635\u0648\u0644 GitOps<\/li>\n<\/ul>\n<ul>\n<li>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u0634\u0647<\/li>\n<li>\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0628\u06a9\u0647<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639<\/li>\n<\/ul>\n<ul>\n<li>\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647<\/li>\n<li>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc RBAC<\/li>\n<li>\u0645\u0631\u0627\u062d\u0644 \u0648\u0631\u0648\u062f<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1%D9%87%D8%A7%DB%8C_%D9%85%D8%AE%D8%B2%D9%86\"><\/span>\n<p>  \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u0632\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u0645\u062e\u0632\u0646 \u0628\u0631\u0646\u0627\u0645\u0647<\/li>\n<li>\u0645\u062e\u0632\u0646 GitOps<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u0641\u0633\u062a<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C\"><\/span>\n<p>  \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062e\u0632\u0646<\/li>\n<li>\u062f\u0633\u062a\u0648\u0631\u0627\u062a ArgoCD CLI<\/li>\n<li>\u0627\u0644\u06af\u0648\u06cc &#8220;\u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627&#8221;.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%D8%A7%D8%B5%D9%84%DB%8C\"><\/span>\n<p>  \u0645\u0641\u0627\u0647\u06cc\u0645 \u0627\u0635\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0639\u0644\u0627\u0645\u06cc<\/li>\n<li>\u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647<\/li>\n<li>\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%DB%8C\"><\/span>\n<p>  \u0645\u0632\u0627\u06cc\u0627\u06cc \u0633\u0627\u0632\u0645\u0627\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u0645\u0632\u0627\u06cc\u0627\u06cc \u062a\u06cc\u0645 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<\/li>\n<li>\u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u062a\u06cc\u0645 \u062a\u0648\u0633\u0639\u0647<\/li>\n<li>\u0628\u0647\u0631\u0647 \u0648\u0631\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc<\/li>\n<\/ul>\n<ul>\n<li>\u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<\/li>\n<li>\u0627\u0633\u062a\u0642\u0631\u0627\u0631 ArgoCD<\/li>\n<li>\u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u0627\u0648\u0645<\/li>\n<\/ul>\n<ul>\n<li>\u0647\u0645 \u0627\u0641\u0632\u0627\u06cc\u06cc \u0641\u0646\u0627\u0648\u0631\u06cc<\/li>\n<li>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0648 \u0686\u0627\u0628\u06a9\u06cc<\/li>\n<\/ul>\n<ul>\n<li>\u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<\/li>\n<li>\u0631\u0627\u0647 \u062d\u0644 \u0647\u0627\u06cc \u0646\u0638\u0627\u0631\u062a\u06cc<\/li>\n<li>\u067e\u0644\u062a\u0641\u0631\u0645 \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647<\/li>\n<\/ul>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%AF%D9%85%D9%87\"><\/span>\n<p>  \u0645\u0642\u062f\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0686\u0634\u0645\u200c\u0627\u0646\u062f\u0627\u0632 \u0633\u0631\u06cc\u0639 \u062f\u0631 \u062d\u0627\u0644 \u062a\u062d\u0648\u0644 \u0641\u0646\u0627\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc\u060c \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u0647\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u0645\u062f\u0627\u0648\u0645 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627\u060c \u0627\u0641\u0632\u0627\u06cc\u0634 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0628\u0647\u0628\u0648\u062f \u0647\u0645\u06a9\u0627\u0631\u06cc \u062a\u06cc\u0645\u06cc \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0632 \u0627\u0635\u0648\u0644 Terraform\u060c Kubernetes\u060c ArgoCD \u0648 GitOps \u0631\u0627\u0647 \u062d\u0644\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0686\u0627\u0644\u0634 \u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%A7%D9%84%D8%B4_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_%D9%87%D8%A7%DB%8C_%D8%B3%D9%86%D8%AA%DB%8C\"><\/span>\n<p>  \u0686\u0627\u0644\u0634 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u0633\u0646\u062a\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u0633\u0646\u062a\u06cc\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u062f\u0633\u062a\u06cc \u0648 \u0645\u0633\u062a\u0639\u062f \u062e\u0637\u0627 \u0628\u0648\u062f\u0646\u062f:<\/p>\n<ul>\n<li>\u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631<\/li>\n<li>\u0631\u0627\u0646\u0634 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc<\/li>\n<li>\u062f\u06cc\u062f \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a<\/li>\n<li>\u0631\u0648\u06cc\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0627\u0632\u06af\u0634\u062a<\/li>\n<li>\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0622\u0647\u0633\u062a\u0647 \u0648 \u067e\u0631\u062e\u0637\u0631<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1f5hjvw4gc901ym606cc.jpeg\" alt=\"\u0627\u0633\u062a\u0642\u0631\u0627\u0631 Infra \u0633\u0646\u062a\u06cc \u0628\u0631\u0627\u06cc K8s\" loading=\"lazy\" width=\"800\" height=\"883\" title=\"\"><\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_%D8%B1%D9%88%DB%8C%DA%A9%D8%B1%D8%AF_%D9%85%D8%AF%D8%B1%D9%86_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B9%D9%86%D9%88%D8%A7%D9%86_%DA%A9%D8%AF_%D9%88_GitOps_%D9%88%D8%A7%D8%B1%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u062f\u0631\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u062f \u0648 GitOps \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsmopnx4kpm5ic5jn2u1d.jpeg\" alt=\"\u0631\u0648\u0634 \u0647\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 ArgoCD\" loading=\"lazy\" width=\"800\" height=\"848\" title=\"\"><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA_Terraform_%D8%AF%D9%88%D8%A8%D8%A7%D8%B1%D9%87_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%B4%D8%AF\"><\/span>\n<p>  \u062a\u062f\u0627\u0631\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a Terraform \u062f\u0648\u0628\u0627\u0631\u0647 \u0637\u0631\u0627\u062d\u06cc \u0634\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Terraform \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 \u062a\u0648\u0633\u0637:<\/p>\n<ul>\n<li>\u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0639\u0644\u0627\u0645\u06cc<\/li>\n<li>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0628\u0631\u0647\u0627\u06cc \u0686\u0646\u062f \u0627\u0628\u0631\u06cc \u0648 \u062a\u0631\u06a9\u06cc\u0628\u06cc<\/li>\n<li>\u0627\u06cc\u062c\u0627\u062f \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0648 \u0642\u0627\u0628\u0644 \u062a\u06a9\u0631\u0627\u0631<\/li>\n<li>\u0627\u0631\u0627\u0626\u0647 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u0648\u0627\u0636\u062d \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0646\u0633\u062e\u0647 \u0627\u0632 \u0648\u0636\u0639\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9_%D8%AE%D9%88%D8%B4%D9%87_Terraform_Kubernetes\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 \u062a\u062f\u0627\u0631\u06a9 \u062e\u0648\u0634\u0647 Terraform Kubernetes<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u0631 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647\u060c \u06a9\u0647 \u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0631\u0648\u0698\u0647 \u0645\u0646 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>\u251c\u2500\u2500 Makefile\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 plans\n\u2502   \u2514\u2500\u2500 plan.tfplan\n\u251c\u2500\u2500 resources.helm.tf\n\u251c\u2500\u2500 resources.main.tf\n\u251c\u2500\u2500 resources.outputs.tf\n\u251c\u2500\u2500 resources.variables.tf\n\u251c\u2500\u2500 terraform.backend.tf\n\u251c\u2500\u2500 terraform.data.tf\n\u251c\u2500\u2500 terraform.locals.tf\n\u2514\u2500\u2500 terraform.provider.tf\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 <code>resources.main.tf<\/code>\u060c \u0645\u0646 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0686\u0631\u062e\u0634 \u062e\u0648\u0634\u0647 kubernetes \u0631\u0627 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight hcl\"><code><span class=\"nx\">module<\/span> <span class=\"s2\">\"network_security_group\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>              <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/network_security_group\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">name<\/span>                <span class=\"p\">=<\/span> <span class=\"s2\">\"rnd-nsg\"<\/span>\n  <span class=\"nx\">location<\/span>            <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">location<\/span>\n  <span class=\"nx\">resource_group_name<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n\n  <span class=\"nx\">rules<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"p\">{<\/span>\n      <span class=\"nx\">name<\/span>                       <span class=\"p\">=<\/span> <span class=\"s2\">\"nsg-rule-1\"<\/span>\n      <span class=\"nx\">priority<\/span>                   <span class=\"p\">=<\/span> <span class=\"mi\">100<\/span>\n      <span class=\"nx\">direction<\/span>                  <span class=\"p\">=<\/span> <span class=\"s2\">\"Inbound\"<\/span>\n      <span class=\"nx\">access<\/span>                     <span class=\"p\">=<\/span> <span class=\"s2\">\"Allow\"<\/span>\n      <span class=\"nx\">protocol<\/span>                   <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">source_port_range<\/span>          <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">destination_port_range<\/span>     <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">source_address_prefix<\/span>      <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">destination_address_prefix<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"p\">{<\/span>\n      <span class=\"nx\">name<\/span>                       <span class=\"p\">=<\/span> <span class=\"s2\">\"nsg-rule-2\"<\/span>\n      <span class=\"nx\">priority<\/span>                   <span class=\"p\">=<\/span> <span class=\"mi\">101<\/span>\n      <span class=\"nx\">direction<\/span>                  <span class=\"p\">=<\/span> <span class=\"s2\">\"Outbound\"<\/span>\n      <span class=\"nx\">access<\/span>                     <span class=\"p\">=<\/span> <span class=\"s2\">\"Allow\"<\/span>\n      <span class=\"nx\">protocol<\/span>                   <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">source_port_range<\/span>          <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">destination_port_range<\/span>     <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">source_address_prefix<\/span>      <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n      <span class=\"nx\">destination_address_prefix<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"*\"<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">]<\/span>\n  <span class=\"nx\">depends_on<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">tags<\/span>       <span class=\"p\">=<\/span> <span class=\"nx\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">tags<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"virtual_network\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>              <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/virtual_network\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">name<\/span>                <span class=\"p\">=<\/span> <span class=\"s2\">\"rndvnet\"<\/span>\n  <span class=\"nx\">location<\/span>            <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">location<\/span>\n  <span class=\"nx\">resource_group_name<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n  <span class=\"nx\">address_space<\/span>       <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"10.0.0.0\/16\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">depends_on<\/span>          <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">network_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">tags<\/span>                <span class=\"p\">=<\/span> <span class=\"nx\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">tags<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"k8ssubnet\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                     <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/subnet\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">name<\/span>                       <span class=\"p\">=<\/span> <span class=\"s2\">\"rndsubnetk8s\"<\/span>\n  <span class=\"nx\">resource_group_name<\/span>        <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n  <span class=\"nx\">virtual_network_name<\/span>       <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network_name<\/span>\n  <span class=\"nx\">subnet_address_prefix<\/span>      <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"10.0.1.0\/24\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">service_endpoints<\/span>          <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"Microsoft.Storage\"<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Microsoft.Web\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">delegation_name<\/span>            <span class=\"p\">=<\/span> <span class=\"kc\">null<\/span>\n  <span class=\"nx\">service_delegation_name<\/span>    <span class=\"p\">=<\/span> <span class=\"kc\">null<\/span>\n  <span class=\"nx\">service_delegation_actions<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">null<\/span>\n  <span class=\"nx\">depends_on<\/span>                 <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">network_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"podsubnet\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                     <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/subnet\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">name<\/span>                       <span class=\"p\">=<\/span> <span class=\"s2\">\"rndsubnetpods\"<\/span>\n  <span class=\"nx\">resource_group_name<\/span>        <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n  <span class=\"nx\">virtual_network_name<\/span>       <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network_name<\/span>\n  <span class=\"nx\">subnet_address_prefix<\/span>      <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"10.0.2.0\/24\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">service_endpoints<\/span>          <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"Microsoft.Storage\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">delegation_name<\/span>            <span class=\"p\">=<\/span> <span class=\"s2\">\"aks-delegation\"<\/span>\n  <span class=\"nx\">service_delegation_name<\/span>    <span class=\"p\">=<\/span> <span class=\"s2\">\"Microsoft.ContainerService\/managedClusters\"<\/span>\n  <span class=\"nx\">service_delegation_actions<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"s2\">\"Microsoft.Network\/virtualNetworks\/subnets\/join\/action\"<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">depends_on<\/span>                 <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">virtual_network<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">network_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"subnet_nsg_association\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                    <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/subnet_network_security_group_association\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">subnet_id<\/span>                 <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">k8ssubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">subnet_id<\/span>\n  <span class=\"nx\">network_security_group_id<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">network_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n  <span class=\"nx\">depends_on<\/span>                <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">k8ssubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">network_security_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"container_registry\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                           <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/container_registry\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">resource_group_name<\/span>              <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n  <span class=\"nx\">location<\/span>                         <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">location<\/span>\n  <span class=\"nx\">name<\/span>                             <span class=\"p\">=<\/span> <span class=\"s2\">\"rndacrteo\"<\/span>\n  <span class=\"nx\">sku<\/span>                              <span class=\"p\">=<\/span> <span class=\"s2\">\"Standard\"<\/span>\n  <span class=\"nx\">is_admin_enabled<\/span>                 <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n  <span class=\"nx\">is_public_network_access_enabled<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n  <span class=\"nx\">depends_on<\/span>                       <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">]<\/span>\n  <span class=\"nx\">tags<\/span>                             <span class=\"p\">=<\/span> <span class=\"nx\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">var<\/span><span class=\"p\">.<\/span><span class=\"nx\">tags<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"kubernetes\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                               <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/kubernetes\/kubernetes_cluster\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">name<\/span>                                 <span class=\"p\">=<\/span> <span class=\"s2\">\"k8s-cluster\"<\/span>\n  <span class=\"nx\">resource_group_name<\/span>                  <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span>\n  <span class=\"nx\">location<\/span>                             <span class=\"p\">=<\/span> <span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_resource_group<\/span><span class=\"p\">.<\/span><span class=\"nx\">existing<\/span><span class=\"p\">.<\/span><span class=\"nx\">location<\/span>\n  <span class=\"nx\">node_count<\/span>                           <span class=\"p\">=<\/span> <span class=\"mi\">1<\/span>\n  <span class=\"nx\">dns_prefix<\/span>                           <span class=\"p\">=<\/span> <span class=\"s2\">\"rndaks\"<\/span>\n  <span class=\"nx\">vnet_subnet_id<\/span>                       <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">k8ssubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">subnet_id<\/span>\n  <span class=\"nx\">vm_size<\/span>                              <span class=\"p\">=<\/span> <span class=\"s2\">\"Standard_A2_v2\"<\/span>\n  <span class=\"nx\">pod_subnet_id<\/span>                        <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">podsubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">subnet_id<\/span>\n  <span class=\"nx\">kubernetes_version<\/span>                   <span class=\"p\">=<\/span> <span class=\"s2\">\"1.30.0\"<\/span>\n  <span class=\"nx\">is_role_based_access_control_enabled<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n  <span class=\"nx\">sku_tier<\/span>                             <span class=\"p\">=<\/span> <span class=\"s2\">\"Free\"<\/span>\n  <span class=\"nx\">default_node_pool_name<\/span>               <span class=\"p\">=<\/span> <span class=\"s2\">\"k8spool\"<\/span>\n  <span class=\"nx\">service_cidr<\/span>                         <span class=\"p\">=<\/span> <span class=\"s2\">\"10.1.0.0\/16\"<\/span>\n  <span class=\"nx\">dns_service_ip<\/span>                       <span class=\"p\">=<\/span> <span class=\"s2\">\"10.1.0.10\"<\/span>\n  <span class=\"nx\">depends_on<\/span>                           <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">k8ssubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">podsubnet<\/span><span class=\"p\">.<\/span><span class=\"nx\">this<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"k8s_role_assignment\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span>                           <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/role_assignment\"<\/reponame><\/projectname><\/organizationname><\/span>\n  <span class=\"nx\">principal_id<\/span>                     <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">kubernetes<\/span><span class=\"p\">.<\/span><span class=\"nx\">kubelet_identity_object_id<\/span>\n  <span class=\"nx\">role_definition_name<\/span>             <span class=\"p\">=<\/span> <span class=\"s2\">\"AcrPull\"<\/span>\n  <span class=\"nx\">scope<\/span>                            <span class=\"p\">=<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">container_registry<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span>\n  <span class=\"nx\">skip_service_principal_aad_check<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u062f\u0631 <code>resources.helm.tf<\/code>\u060c \u0645\u0646 \u0645\u0646\u0627\u0628\u0639 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0646\u0645\u0648\u062f\u0627\u0631\u0647\u0627\u06cc \u0641\u0631\u0645\u0627\u0646 \u0631\u0627 \u062f\u0631 \u062e\u0648\u0634\u0647 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0628\u0627\u0644\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u0645<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight hcl\"><code><span class=\"nx\">module<\/span> <span class=\"s2\">\"ingress_nginx\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/helm\/helm_release\"<\/reponame><\/projectname><\/organizationname><\/span>\n\n  <span class=\"nx\">chart<\/span>            <span class=\"p\">=<\/span> <span class=\"s2\">\"ingress-nginx\"<\/span>\n  <span class=\"nx\">name<\/span>             <span class=\"p\">=<\/span> <span class=\"s2\">\"ingress-nginx\"<\/span>\n  <span class=\"nx\">create_namespace<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n  <span class=\"nx\">namespace<\/span>        <span class=\"p\">=<\/span> <span class=\"s2\">\"ingress-nginx\"<\/span>\n  <span class=\"nx\">values<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"o\">&lt;&lt;-<\/span><span class=\"no\">EOF<\/span><span class=\"sh\">\n    controller:\n      service:\n        type: LoadBalancer\n<\/span><span class=\"no\">    EOF\n<\/span>  <span class=\"p\">]<\/span>\n  <span class=\"nx\">repository<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"https:\/\/kubernetes.github.io\/ingress-nginx\"<\/span>\n  <span class=\"nx\">providers<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">helm<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">helm<\/span><span class=\"p\">.<\/span><span class=\"nx\">helmk8s<\/span>\n  <span class=\"p\">}<\/span>\n  <span class=\"nx\">depends_on<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_kubernetes_cluster<\/span><span class=\"p\">.<\/span><span class=\"nx\">cluster<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">kubernetes<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">module<\/span> <span class=\"s2\">\"argocd\"<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">source<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"git::ssh:\/\/git@ssh.dev.azure.com\/v3\/<organizationname>\/<projectname>\/<reponame>\/\/modules\/helm\/helm_release\"<\/reponame><\/projectname><\/organizationname><\/span>\n\n  <span class=\"nx\">chart<\/span>            <span class=\"p\">=<\/span> <span class=\"s2\">\"argo-cd\"<\/span>\n  <span class=\"nx\">name<\/span>             <span class=\"p\">=<\/span> <span class=\"s2\">\"argocd\"<\/span>\n  <span class=\"nx\">create_namespace<\/span> <span class=\"p\">=<\/span> <span class=\"kc\">true<\/span>\n  <span class=\"nx\">namespace<\/span>        <span class=\"p\">=<\/span> <span class=\"s2\">\"argocd\"<\/span>\n  <span class=\"nx\">values<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"o\">&lt;&lt;-<\/span><span class=\"no\">EOF<\/span><span class=\"sh\">\n    server:\n      service:\n        type: ClusterIP\n      configs:\n        params:\n          \"server.insecure\": \"true\"\n    admin:\n        username: admin\n<\/span><span class=\"no\">    EOF\n<\/span>  <span class=\"p\">]<\/span>\n  <span class=\"nx\">repository<\/span> <span class=\"p\">=<\/span> <span class=\"s2\">\"https:\/\/argoproj.github.io\/argo-helm\"<\/span>\n  <span class=\"nx\">providers<\/span> <span class=\"p\">=<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">helm<\/span> <span class=\"p\">=<\/span> <span class=\"nx\">helm<\/span><span class=\"p\">.<\/span><span class=\"nx\">helmk8s<\/span>\n  <span class=\"p\">}<\/span>\n  <span class=\"nx\">depends_on<\/span> <span class=\"p\">=<\/span> <span class=\"p\">[<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">azurerm_kubernetes_cluster<\/span><span class=\"p\">.<\/span><span class=\"nx\">cluster<\/span><span class=\"p\">,<\/span> <span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">kubernetes<\/span><span class=\"p\">]<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0645\u0627 \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0633\u0631\u0648\u0631 \/ CLI argoCD \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645<\/p>\n<h5><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%D9%88_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%87_ArgoCD\"><\/span>\n<p>  \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 ArgoCD<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<h6><span class=\"ez-toc-section\" id=\"1_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C_%D8%B1%D9%85%D8%B2_%D8%B9%D8%A8%D9%88%D8%B1_%D9%88_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C\"><\/span>\n<p>  1. \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<h6><span class=\"ez-toc-section\" id=\"_%D8%AE%D8%B1%D8%A7%D8%A8%DB%8C_%D9%81%D8%B1%D9%85%D8%A7%D9%86\"><\/span>\n<p>  # \u062e\u0631\u0627\u0628\u06cc \u0641\u0631\u0645\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Reset the admin secret by clearing existing password data<\/span>\nkubectl patch secret argocd-secret <span class=\"nt\">-n<\/span> argocd <span class=\"nt\">-p<\/span> <span class=\"s1\">'{\"data\": {\"admin.password\": null, \"admin.passwordMtime\": null}}'<\/span>\n\n<span class=\"c\">##### Restart ArgoCD server to generate new password<\/span>\nkubectl delete pods <span class=\"nt\">-n<\/span> argocd <span class=\"nt\">-l<\/span> app.kubernetes.io\/name<span class=\"o\">=<\/span>argocd-server\n\n<span class=\"c\">##### Retrieve the initial admin password<\/span>\nkubectl <span class=\"nt\">-n<\/span> argocd get secret argocd-initial-admin-secret <span class=\"nt\">-o<\/span> <span class=\"nv\">jsonpath<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"{.data.password}\"<\/span> | <span class=\"nb\">base64<\/span> <span class=\"nt\">-d<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0639\u062f\u0627\u064b \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f<\/p>\n<h6><span class=\"ez-toc-section\" id=\"_%D8%A7%DB%8C%D9%86_%DA%86%D9%87_%DA%A9%D8%A7%D8%B1%DB%8C_%D8%A7%D9%86%D8%AC%D8%A7%D9%85_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\"><\/span>\n<p>  # \u0627\u06cc\u0646 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<ul>\n<li>\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u067e\u0627\u06a9 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>ArgoCD \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>\u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<\/ul>\n<h6><span class=\"ez-toc-section\" id=\"2_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_RBAC_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C_%D9%85%D8%A8%D8%AA%D9%86%DB%8C_%D8%A8%D8%B1_%D9%86%D9%82%D8%B4\"><\/span>\n<p>  2. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc RBAC (\u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0646\u0642\u0634).<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<h6><span class=\"ez-toc-section\" id=\"_RBAC_ConfigMap_%D8%B1%D8%A7_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  # RBAC ConfigMap \u0631\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>kubectl <span class=\"nt\">-n<\/span> argocd edit configmap argocd-rbac-cm\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h6><span class=\"ez-toc-section\" id=\"_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C_RBAC\"><\/span>\n<p>  # \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0637 \u0645\u0634\u06cc RBAC<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">policy.csv<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|<\/span>\n<span class=\"err\">#<\/span><span class=\"s\"> Grant full admin access to all applications<\/span>\n<span class=\"err\">p<\/span><span class=\"s\">, role:admin, applications, *, *, *<\/span>\n\n<span class=\"err\">#<\/span><span class=\"s\"> Set default role to admin<\/span>\n<span class=\"err\">p<\/span><span class=\"s\">olicy.default: role:admin<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h6><span class=\"ez-toc-section\" id=\"_%D8%AA%D9%88%D8%B6%DB%8C%D8%AD_%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C\"><\/span>\n<p>  # \u062a\u0648\u0636\u06cc\u062d \u062e\u0637 \u0645\u0634\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<ul>\n<li>\n<code>p, role:admin, applications, *, *, *<\/code>: \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0647 \u0647\u0645\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>\n<code>policy.default: role:admin<\/code>: \u0645\u062f\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0634 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<\/ul>\n<p><strong>\u062a\u0648\u062c\u0647:<\/strong> \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627\u060c \u0645\u0627 role:admin \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u062a\u0646\u0647\u0627 \u06cc\u06a9 \u0645\u062f\u06cc\u0631 \u06a9\u0644\u0627\u0633\u062a\u0631 \u0648\u062c\u0648\u062f \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631 kubernetes \u0648\/\u06cc\u0627 argoCD \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a.<\/p>\n<h6><span class=\"ez-toc-section\" id=\"3_%D8%B3%D8%B1%D9%88%D8%B1_ArgoCD_%D8%B1%D8%A7_%D9%85%D8%AC%D8%AF%D8%AF%D8%A7_%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  3. \u0633\u0631\u0648\u0631 ArgoCD \u0631\u0627 \u0645\u062c\u062f\u062f\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Restart ArgoCD to apply RBAC changes<\/span>\nkubectl <span class=\"nt\">-n<\/span> argocd rollout restart deployment argocd-server\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h6><span class=\"ez-toc-section\" id=\"4_%D9%88%D8%A7%D8%B1%D8%AF_ArgoCD_%D8%B4%D9%88%DB%8C%D8%AF\"><\/span>\n<p>  4. \u0648\u0627\u0631\u062f ArgoCD \u0634\u0648\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0633\u0631\u0648\u0631 argocd \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 LoadBalancer \u06cc\u0627 Ingress \u0646\u0645\u0627\u06cc\u0634 \u0646\u0645\u06cc \u062f\u0647\u06cc\u0645\u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0648\u0631\u062a \u0641\u0648\u0631\u0648\u0627\u0631\u062f\u06cc\u0646\u06af \u0628\u0647 \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645\u060c \u0627\u06cc\u0646 \u0627\u0645\u0646\u06cc\u062a \u0628\u06cc\u0634\u062a\u0631 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Forward port to access ArgoCD server locally<\/span>\nkubectl port-forward service\/argocd-server <span class=\"nt\">-n<\/span> argocd 8888:443\n\n<span class=\"c\">##### Login using admin credentials<\/span>\nargocd login 127.0.0.1:8888 <span class=\"nt\">--username<\/span> admin <span class=\"nt\">--password<\/span> <retrieved-password>\n<\/retrieved-password><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 argocd CLI \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 open \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>localhost:8888<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648 &#8230; Voila!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqj3vn8yskal7u6k0i5rr.png\" alt=\"\u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 ArgoCD\" loading=\"lazy\" width=\"800\" height=\"365\" title=\"\"><\/p>\n<h6><span class=\"ez-toc-section\" id=\"%D9%86%DA%A9%D8%A7%D8%AA_%D9%85%D9%87%D9%85\"><\/span>\n<p>  \u0646\u06a9\u0627\u062a \u0645\u0647\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<ul>\n<li>\n<strong>\u0647\u0634\u062f\u0627\u0631 \u0627\u0645\u0646\u06cc\u062a\u06cc<\/strong>: \u0646\u0642\u0634 \u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u0634 \u0641\u0631\u0636 \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0645\u0644 \u062e\u0648\u0634\u0647 \u0627\u06cc \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>\u0628\u0647 \u0637\u0648\u0631 \u0645\u0646\u0638\u0645 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0686\u0631\u062e\u0627\u0646\u06cc\u062f<\/li>\n<li>\u0627\u0632 \u0631\u0645\u0632\u0647\u0627\u06cc \u0639\u0628\u0648\u0631 \u0642\u0648\u06cc \u0648 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"%DA%AF%D8%B1%D8%AF%D8%B4_%DA%A9%D8%A7%D8%B1_GitOps\"><\/span>\n<p>  \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 GitOps<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>ArgoCD \u0634\u06a9\u0627\u0641 \u0628\u06cc\u0646 \u0645\u062e\u0627\u0632\u0646 Git \u0648 \u062e\u0648\u0634\u0647 \u0647\u0627\u06cc Kubernetes \u0631\u0627 \u067e\u0631 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<ul>\n<li>\u062a\u062d\u0648\u06cc\u0644 \u0645\u0633\u062a\u0645\u0631 \u0627\u0639\u0644\u0627\u0645\u06cc<\/li>\n<li>\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647<\/li>\n<li>\u0628\u0627\u0632\u06af\u0634\u062a \u0622\u0633\u0627\u0646 \u0648 \u0646\u0633\u062e\u0647 \u0633\u0627\u0632\u06cc<\/li>\n<li>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_ArgoCD\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 ArgoCD<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<h5><span class=\"ez-toc-section\" id=\"Application_Repo\"><\/span>\n<p>  Application Repo<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>\u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 \u062d\u0627\u0648\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u062f\u0631 \u0647\u0631 \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0628\u0627\u0634\u062f \u06cc\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06cc\u06a9 \u0645\u0648\u0646\u0648\u0631\u067e\u0648 \u0628\u0627\u0634\u062f \u06a9\u0647 \u0647\u0645\u0647 \u06a9\u062f\u0647\u0627\u06cc \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u062c\u0627\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646 \u062d\u0627\u0648\u06cc \u062e\u0637\u0648\u0637 \u0644\u0648\u0644\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u0645\u06cc \u0633\u0627\u0632\u062f \u0648 \u0628\u0647 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u06cc \u0641\u0631\u0633\u062a\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>.\/project\n\u251c\u2500\u2500 Azure-Pipelines\n\u2502   \u251c\u2500\u2500 azure-pipelines.yml\n\u2502   \u251c\u2500\u2500 azure-pipelines2.yml\n\u2502   \u2514\u2500\u2500 azure-pipelines3.yml\n\u251c\u2500\u2500 Docker\n\u2502   \u251c\u2500\u2500 Dockerfile.1\n\u2502   \u251c\u2500\u2500 Dockerfile.2\n\u2502   \u251c\u2500\u2500 Dockerfile.3\n\u2502   \u2514\u2500\u2500 nginx.conf\n\u251c\u2500\u2500 demo-app\n\u2502   \u251c\u2500\u2500 README.md\n\u2502   \u251c\u2500\u2500 angular.json\n\u2502   \u251c\u2500\u2500 package.json\n\u2502   \u251c\u2500\u2500 public\n\u2502   \u2502   \u2514\u2500\u2500 favicon.ico\n\u2502   \u251c\u2500\u2500 src\n\u2502   \u2502   \u251c\u2500\u2500 app\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.css\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.html\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.spec.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.config.server.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.config.ts\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 app.routes.ts\n\u2502   \u2502   \u251c\u2500\u2500 index.html\n\u2502   \u2502   \u251c\u2500\u2500 main.server.ts\n\u2502   \u2502   \u251c\u2500\u2500 main.ts\n\u2502   \u2502   \u251c\u2500\u2500 server.ts\n\u2502   \u2502   \u2514\u2500\u2500 styles.css\n\u2502   \u251c\u2500\u2500 tsconfig.app.json\n\u2502   \u251c\u2500\u2500 tsconfig.json\n\u2502   \u2514\u2500\u2500 tsconfig.spec.json\n\u251c\u2500\u2500 demo-app2\n\u2502   \u251c\u2500\u2500 README.md\n\u2502   \u251c\u2500\u2500 angular.json\n\u2502   \u251c\u2500\u2500 package.json\n\u2502   \u251c\u2500\u2500 public\n\u2502   \u2502   \u2514\u2500\u2500 favicon.ico\n\u2502   \u251c\u2500\u2500 src\n\u2502   \u2502   \u251c\u2500\u2500 app\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.css\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.html\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.spec.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.component.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.config.server.ts\n\u2502   \u2502   \u2502   \u251c\u2500\u2500 app.config.ts\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 app.routes.ts\n\u2502   \u2502   \u251c\u2500\u2500 index.html\n\u2502   \u2502   \u251c\u2500\u2500 main.server.ts\n\u2502   \u2502   \u251c\u2500\u2500 main.ts\n\u2502   \u2502   \u251c\u2500\u2500 server.ts\n\u2502   \u2502   \u2514\u2500\u2500 styles.css\n\u2502   \u251c\u2500\u2500 tsconfig.app.json\n\u2502   \u251c\u2500\u2500 tsconfig.json\n\u2502   \u2514\u2500\u2500 tsconfig.spec.json\n\u2514\u2500\u2500 demo-app3\n    \u251c\u2500\u2500 README.md\n    \u251c\u2500\u2500 angular.json\n    \u251c\u2500\u2500 package.json\n    \u251c\u2500\u2500 public\n    \u2502   \u2514\u2500\u2500 favicon.ico\n    \u251c\u2500\u2500 src\n    \u2502   \u251c\u2500\u2500 app\n    \u2502   \u2502   \u251c\u2500\u2500 app.component.css\n    \u2502   \u2502   \u251c\u2500\u2500 app.component.html\n    \u2502   \u2502   \u251c\u2500\u2500 app.component.spec.ts\n    \u2502   \u2502   \u251c\u2500\u2500 app.component.ts\n    \u2502   \u2502   \u251c\u2500\u2500 app.config.server.ts\n    \u2502   \u2502   \u251c\u2500\u2500 app.config.ts\n    \u2502   \u2502   \u2514\u2500\u2500 app.routes.ts\n    \u2502   \u251c\u2500\u2500 index.html\n    \u2502   \u251c\u2500\u2500 main.server.ts\n    \u2502   \u251c\u2500\u2500 main.ts\n    \u2502   \u251c\u2500\u2500 server.ts\n    \u2502   \u2514\u2500\u2500 styles.css\n    \u251c\u2500\u2500 tsconfig.app.json\n    \u251c\u2500\u2500 tsconfig.json\n    \u2514\u2500\u2500 tsconfig.spec.json\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f Azure Pipelines \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 3 \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0639\u062f\u06cc \u062f\u0631 ACR \u0642\u0631\u0627\u0631 \u062f\u0627\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fevm4s8o8py9i42qf5773.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u062a Azure DevOps\" loading=\"lazy\" width=\"800\" height=\"341\" title=\"\"><\/p>\n<hr\/>\n<h5><span class=\"ez-toc-section\" id=\"%D9%85%D8%AE%D8%B2%D9%86_GitOps\"><\/span>\n<p>  \u0645\u062e\u0632\u0646 GitOps<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c GitOps Repo \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0628\u0627 ArgoCD \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0646\u0638\u0627\u0631\u062a \u0634\u0648\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>.\/demo-app-manifests\n\u251c\u2500\u2500 manifests\n\u2502   \u251c\u2500\u2500 argocd\n\u2502   \u2502   \u251c\u2500\u2500 argocd-application-master\n\u2502   \u2502   \u2502   \u2514\u2500\u2500 masterapp.yaml\n\u2502   \u2502   \u2514\u2500\u2500 argocd-applications\n\u2502   \u2502       \u251c\u2500\u2500 demo-app-argoapp.yaml\n\u2502   \u2502       \u251c\u2500\u2500 demo-app2-argoapp.yaml\n\u2502   \u2502       \u2514\u2500\u2500 demo-app3-argoapp.yaml\n\u2502   \u2514\u2500\u2500 main\n\u2502       \u251c\u2500\u2500 demo-app\n\u2502       \u2502   \u251c\u2500\u2500 deployment.yaml\n\u2502       \u2502   \u2514\u2500\u2500 service-ingress.yaml\n\u2502       \u251c\u2500\u2500 demo-app2\n\u2502       \u2502   \u251c\u2500\u2500 deployment.yaml\n\u2502       \u2502   \u2514\u2500\u2500 service-ingress.yaml\n\u2502       \u2514\u2500\u2500 demo-app3\n\u2502           \u251c\u2500\u2500 deployment.yaml\n\u2502           \u2514\u2500\u2500 service-ingress.yaml\n\u2514\u2500\u2500 readmes\n    \u251c\u2500\u2500 README.md\n    \u2514\u2500\u2500 argoCD.md\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0648\u0634\u0647 manifests \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Kubernetes \u0634\u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 ArgoCD \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u06af\u0627\u0647\u06cc \u062f\u0642\u06cc\u0642 \u0628\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0646 \u062f\u0627\u0631\u06cc\u0645:<\/p>\n<p>argocd:<\/p>\n<p>argocd-application-master\/masterapp.yaml: <\/p>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 ArgoCD.<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc argocd:<\/p>\n<p>\u062d\u0627\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 ArgoCD (demo-app-argoapp.yaml\u060c demo-app2-argoapp.yaml\u060c demo-app3-argoapp.yaml)\u060c \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u0644\u06af\u0648\u06cc &#8220;App of Apps&#8221;.<\/p>\n<p>\u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0686\u0646\u062f\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u062d\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 ArgoCD \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0635\u0644\u06cc:<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc 2\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc 3:<\/p>\n<p>\u0647\u0631 \u067e\u0648\u0634\u0647 \u062d\u0627\u0648\u06cc \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u0647\u0627\u06cc Kubernetes \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0648 \u0627\u0641\u0634\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc frontend \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u0633\u062a.<\/p>\n<p>deployment.yaml:<\/p>\n<p>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>service-ingress.yaml:<\/p>\n<p>\u0633\u0631\u0648\u06cc\u0633 \u0648 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h6><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_%D9%85%D9%87%D9%85_ArgoCLI_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0647\u0645 ArgoCLI \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 URL SSH\u060c \u0645\u062e\u0632\u0646 Azure DevOps \u0631\u0627 \u0628\u0647 ArgoCD \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>    argocd repo add git@ssh.dev.azure.com:v3\/myteo\/Cloud\/demo-app-manifests <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--ssh-private-key-path<\/span> ~\/.ssh\/id_azure <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--upsert<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 ArgoCD \u062c\u062f\u06cc\u062f \u0628\u0627 \u0646\u0627\u0645 demo-app-project \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>    argocd proj create demo-app-project <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--dest<\/span> https:\/\/kubernetes.default.svc,<span class=\"k\">*<\/span> <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--description<\/span> <span class=\"s2\">\"demo app project\"<\/span> <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--src<\/span> git@ssh.dev.azure.com:v3\/myteo\/Cloud\/demo-app-manifests <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--upsert<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>    kubectl apply <span class=\"nt\">-f<\/span> .\/manifests\/argocd\/argocd-application-master\/masterapp.yaml\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u062f\u0631 \u0646\u0645\u0648\u0646\u0647 argocd \u0645\u0633\u062a\u0642\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0647\u0645\u0647 argoapp \u0647\u0627\u06cc \u0627\u0631\u062c\u0627\u0639 \u0634\u062f\u0647 \u062f\u0631 .\/manifests\/argocd\/argocd-applications \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0637\u0631\u062d\u060c \u0627\u0644\u06af\u0648\u06cc \u00ab\u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u00bb \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0645\u0641\u0647\u0648\u0645 \u06af\u0631\u0647 master-slave<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0635\u0644\u06cc \u0627\u06a9\u0646\u0648\u0646 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0647\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 yamls \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u0631\u0627\u0647\u0646\u0645\u0627\u06cc argocd-applications \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9v0d83sfox4eqtrolfbp.png\" alt=\"\u062f\u0627\u0634\u0628\u0648\u0631\u062f ArgoCD \u0646\u0645\u0627\u06cc \u06a9\u0644\u06cc \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f\" loading=\"lazy\" width=\"800\" height=\"365\" title=\"\"><\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"GitOps_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D9%81%D9%84%D8%B3%D9%81%DB%8C\"><\/span>\n<p>  GitOps \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0644\u0633\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>GitOps \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u067e\u0627\u0631\u0627\u062f\u0627\u06cc\u0645 \u062f\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B5%D9%88%D9%84_%D8%A7%D8%B5%D9%84%DB%8C\"><\/span>\n<p>  \u0627\u0635\u0648\u0644 \u0627\u0635\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>\n<strong>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0639\u0644\u0627\u0645\u06cc<\/strong>: \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u062f \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a<\/li>\n<li>\n<strong>\u06a9\u0646\u062a\u0631\u0644 \u0646\u0633\u062e\u0647<\/strong>: \u06af\u06cc\u062a \u062a\u0646\u0647\u0627 \u0645\u0646\u0628\u0639 \u062d\u0642\u06cc\u0642\u062a \u0645\u06cc \u0634\u0648\u062f<\/li>\n<li>\n<strong>\u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631<\/strong>: \u0622\u0634\u062a\u06cc \u0645\u0633\u062a\u0645\u0631 \u062d\u0627\u0644\u0627\u062a \u0645\u0637\u0644\u0648\u0628 \u0648 \u0628\u0627\u0644\u0641\u0639\u0644<\/li>\n<li>\n<strong>\u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062a\u063a\u06cc\u06cc\u0631\u0646\u0627\u067e\u0630\u06cc\u0631<\/strong>: \u0645\u062d\u06cc\u0637 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0648 \u062a\u06a9\u0631\u0627\u0631\u067e\u0630\u06cc\u0631<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B2%D8%A7%DB%8C%D8%A7%DB%8C_%D8%A7%DB%8C%D9%86_%D8%B1%D9%88%DB%8C%DA%A9%D8%B1%D8%AF\"><\/span>\n<p>  \u0645\u0632\u0627\u06cc\u0627\u06cc \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AA%DB%8C%D9%85_%D9%87%D8%A7%DB%8C_%D8%B2%DB%8C%D8%B1%D8%B3%D8%A7%D8%AE%D8%AA\"><\/span>\n<p>  \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0647\u0627\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u06a9\u0627\u0647\u0634 \u0645\u062f\u0627\u062e\u0644\u0647 \u062f\u0633\u062a\u06cc<\/li>\n<li>\u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0647\u0628\u0648\u062f \u06cc\u0627\u0641\u062a\u0647<\/li>\n<li>\u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0645\u0646\u06cc\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u06a9\u0646\u062a\u0631\u0644 \u0634\u062f\u0647<\/li>\n<li>\u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0633\u0631\u06cc\u0639\u062a\u0631 \u0627\u0632 \u0634\u06a9\u0633\u062a<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AA%DB%8C%D9%85_%D9%87%D8%A7%DB%8C_%D8%AA%D9%88%D8%B3%D8%B9%D9%87\"><\/span>\n<p>  \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u0645\u062f\u0644 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0633\u0644\u0641 \u0633\u0631\u0648\u06cc\u0633<\/li>\n<li>\u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u06cc\u062f<\/li>\n<li>\u0647\u0645\u06a9\u0627\u0631\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647<\/li>\n<li>\u0632\u0645\u0627\u0646 \u0648\u0631\u0648\u062f \u0633\u0631\u06cc\u0639\u062a\u0631 \u0628\u0647 \u0628\u0627\u0632\u0627\u0631<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86_%D9%87%D8%A7\"><\/span>\n<p>  \u0628\u0631\u0627\u06cc \u0633\u0627\u0632\u0645\u0627\u0646 \u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u06a9\u0645\u062a\u0631<\/li>\n<li>\u06a9\u0627\u0647\u0634 \u062e\u0637\u0627\u06cc \u0627\u0646\u0633\u0627\u0646\u06cc<\/li>\n<li>\u0627\u0646\u0637\u0628\u0627\u0642 \u0648 \u0645\u0645\u06cc\u0632\u06cc \u0628\u0647\u062a\u0631<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%B9%D9%85%D9%84%DB%8C\"><\/span>\n<p>  \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>\n<p><strong>\u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 \u0628\u0627 Terraform \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<ul>\n<li>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062e\u0648\u0634\u0647 Kubernetes \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0648 \u0627\u0645\u0646\u06cc\u062a \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0627\u0633\u062a\u062e\u0631\u0647\u0627\u06cc \u06af\u0631\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062e\u0648\u0634\u0647 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>ArgoCD \u0631\u0627 \u0631\u0648\u06cc Kubernetes \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<ul>\n<li>ArgoCD \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Terraform \u06cc\u0627 kubectl \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0645\u062e\u0632\u0646 \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>GitOps Workflow \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<ul>\n<li>\u062a\u0645\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u062f\u0631 \u0645\u062e\u0627\u0632\u0646 Git \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u06a9\u0634\u0634\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0627\u0632 ArgoCD \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062f\u0627\u0648\u0645 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0645 \u0627\u0641\u0632\u0627\u06cc\u06cc \u0627\u0635\u0648\u0644 Terraform\u060c Kubernetes\u060c ArgoCD \u0648 GitOps \u06cc\u06a9 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0642\u0648\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a\u200c\u0647\u0627 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u062f\u0631\u0646 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0628\u0627 \u067e\u0630\u06cc\u0631\u0634 \u0627\u06cc\u0646 \u0641\u0646\u0627\u0648\u0631\u06cc \u0647\u0627\u060c \u0633\u0627\u0632\u0645\u0627\u0646 \u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0633\u0637\u0648\u062d \u0628\u06cc \u0633\u0627\u0628\u0642\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0627\u06cc\u06cc\u060c \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0648 \u0686\u0627\u0628\u06a9\u06cc \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%D9%87%D8%A7_%D9%88_%D9%85%D9%86%D8%A7%D8%A8%D8%B9_%D8%AA%D9%88%D8%B5%DB%8C%D9%87_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0648 \u0645\u0646\u0627\u0628\u0639 \u062a\u0648\u0635\u06cc\u0647 \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Terraform<\/li>\n<li>\u06a9\u0648\u0628\u0631\u0646\u062a\u06cc\u0633<\/li>\n<li>ArgoCD<\/li>\n<li>\u0647\u0644\u0645<\/li>\n<li>GitHub\/GitLab\/Azure DevOps<\/li>\n<li>\u067e\u0631\u0648\u0645\u062a\u0626\u0648\u0633<\/li>\n<li>\u06af\u0631\u0627\u0641\u0627\u0646\u0627<\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628 \u0645\u0631\u0648\u0631\u06cc \u0628\u0631 \u0641\u0646\u0627\u0648\u0631\u06cc\u200c\u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u0627\u0628\u0631\u06cc Terraform\u060c Kubernetes\u060c ArgoCD \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0645\u0634\u06a9\u0644\u0627\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0647\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06a9\u062f \u0627\u0635\u0648\u0644 GitOps \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u0634\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0628\u06a9\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0646\u0627\u0628\u0639 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc RBAC \u0645\u0631\u0627\u062d\u0644 \u0648\u0631\u0648\u062f \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u062e\u0632\u0646 \u0645\u062e\u0632\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u062e\u0632\u0646 GitOps \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062e\u0632\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a ArgoCD CLI &hellip;<\/p>\n","protected":false},"author":2,"featured_media":94303,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffy16pdy2azeb4n907nbt.jpg","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-94302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=94302"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/94302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/94303"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=94302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=94302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=94302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}