{"id":34735,"date":"2019-10-31T22:00:06","date_gmt":"2019-10-31T19:00:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/znakomstvo-s-helm-3\/"},"modified":"2019-10-31T22:00:06","modified_gmt":"2019-10-31T19:00:06","slug":"znakomstvo-s-helm-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/znakomstvo-s-helm-3","title":{"rendered":"Iepaz\u012b\u0161an\u0101s ar Helm 3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Iepaz\u012b\u0161an\u0101s ar Helm 3\" src=\"\/wp-content\/uploads\/2019\/05\/6de0e2887ddcc802f1dd71c902325401.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i><b>Piez\u012bme:<\/b>: 16. maijs \u0161ogad ir noz\u012bm\u012bga robe\u017e\u0161\u0137irtne Kubernetes pakot\u0146u p\u0101rvaldnieka \u2014 Helm att\u012bst\u012bb\u0101. \u0160aj\u0101 dien\u0101 tika prezent\u0113ts pirmais alfa izlaidums n\u0101kamajai lielajai projekta versijai \u2014 3.0. T\u0101 izn\u0101k\u0161ana nes\u012bs Helm b\u016btiskas un ilgi gaid\u012btas izmai\u0146as, kuras daudzi Kubernetes kopienas dal\u012bbnieki gaida ar cer\u012bb\u0101m. M\u0113s pa\u0161i ar\u012b esam to vid\u016b, jo akt\u012bvi izmantojam Helm lietojumprogrammu izvieto\u0161anai: esam integr\u0113ju\u0161i to m\u016bsu CI\/CD r\u012bku izstr\u0101d\u0113. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">werf<\/a><\/noindex> un gad\u012bjuma gad\u012bjum\u0101 sniedzam savu ieguld\u012bjumu upstream att\u012bst\u012bb\u0101. \u0160is tulkojums apvieno 7 piez\u012bmes no ofici\u0101l\u0101 Helm emu\u0101ra, kas piesaist\u012btas Helm 3 pirm\u0101 alfa izlaiduma un st\u0101sta par projekta v\u0113sturi un galvenaj\u0101m Helm 3 funkcij\u0101m. To autors ir Matis \u00abbacongobbler\u00bb Fi\u0161ers, Microsoft darbinieks un viens no galvenajiem Helm uztur\u0113t\u0101jiem.<\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>2015. gada 15. oktobr\u012b dzima projekts, tagad paz\u012bstams k\u0101 Helm. Tikai gadu p\u0113c dibin\u0101\u0161anas Helm kopiena pievienoj\u0101s Kubernetes, akt\u012bvi str\u0101d\u0101jot pie Helm 2. 2018. gada j\u016bnij\u0101 Helm <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cncf.io\/blog\/2018\/06\/01\/cncf-to-host-helm\/\">pievienoj\u0101s CNCF<\/a><\/noindex> k\u0101 att\u012bsto\u0161s (incubating) projekts. P\u0101riesim uz tagadni \u2014 un nu jau tuvojas pirm\u0101 alfa izlaiduma jaunajam Helm 3 <i>(\u0161is izlaidums <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/releases\/tag\/v3.0.0-alpha.1\">jau notika<\/a><\/noindex> maija vid\u016b \u2014 piez\u012bme tulkot\u0101jam.)<\/i>.<\/p>\n<p>\u0160aj\u0101 materi\u0101l\u0101 es past\u0101st\u012b\u0161u par to, k\u0101 viss s\u0101k\u0101s, k\u0101 m\u0113s non\u0101c\u0101m l\u012bdz \u0161ai f\u0101zei, iepaz\u012bstin\u0101\u0161u ar da\u017e\u0101m unik\u0101l\u0101m \u012bpa\u0161\u012bb\u0101m, kas pieejamas pirmaj\u0101 Helm 3 alfa izlaidum\u0101, un izskaidro\u0161u, k\u0101 pl\u0101nojam t\u0101l\u0101k att\u012bst\u012bties.<\/p>\n<p>Kopsavilkums:<\/p>\n<ul>\n<li>Helm izveides v\u0113sture;<\/li>\n<li>maigs atvadu no Tiller\u2019a;<\/li>\n<li>chartu kr\u0101tuv\u0113m;<\/li>\n<li>izlai\u017eu p\u0101rvald\u012bba;<\/li>\n<li>izmai\u0146as chartu atkar\u012bb\u0101s;<\/li>\n<li>library charts;<\/li>\n<li>kas t\u0101l\u0101k?<\/li>\n<\/ul>\n<p><\/p>\n<h2>Helm izveides v\u0113sture<\/h2>\n<p><\/p>\n<h3>Dzim\u0161ana<\/h3>\n<p>\nHelm 1 s\u0101k\u0101s k\u0101 Open Source projekts, ko izveidoja uz\u0146\u0113mums Deis. M\u0113s bij\u0101m neliels jaunuz\u0146\u0113mums, <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.microsoft.com\/blog\/2017\/04\/10\/microsoft-acquire-deis-help-companies-innovate-containers\/\">ko pavasar\u012b 2017. gad\u0101 ieg\u0101d\u0101j\u0101s<\/a><\/noindex> Microsoft. M\u016bsu citam Open Source projektam, kas ar\u012b sauc\u0101s Deis, bija r\u012bks <code>deisctl<\/code>, kas tika izmantots (starpp citu) k\u0101 platformas Deis uzst\u0101d\u012b\u0161anas un ekspluat\u0101cijas r\u012bks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/fleet\">Fleet klaster\u012b.<\/a><\/noindex>Taj\u0101 laik\u0101 Fleet bija viena no pirmaj\u0101m kont\u0113neru or\u0137estr\u0101cijas platform\u0101m.<\/p>\n<p>2015. gada vid\u016b m\u0113s nol\u0113m\u0101m main\u012bt virzienu un p\u0101rvietoj\u0101m Deis (tolaik p\u0101rd\u0113v\u0113tu par Deis Workflow) no Fleet uz Kubernetes. Viens no pirmajiem tika p\u0101rveidots instal\u0101cijas r\u012bks. <code>deisctl<\/code>M\u0113s izmantoj\u0101m to, lai instal\u0113tu un p\u0101rvald\u012btu Deis Workflow Fleet klaster\u012b.<\/p>\n<p>Helm 1 tika izstr\u0101d\u0101ts p\u0113c t\u0101diem zin\u0101miem pakot\u0146u p\u0101rvaldniekiem k\u0101 Homebrew, apt un yum. T\u0101s galvenais m\u0113r\u0137is bija atvieglot t\u0101das uzdevumus k\u0101 lietojumprogrammu iepako\u0161anu un instal\u0113\u0161anu Kubernetes vid\u0113. Ofici\u0101li Helm tika prezent\u0113ts 2015. gad\u0101 KubeCon konferenc\u0113 Sanfrancisko.<\/p>\n<p>M\u016bsu pirm\u0101 m\u0113\u0123in\u0101juma ar Helm darb\u012bba bija veiksm\u012bga, tom\u0113r tas nesag\u0101d\u0101ja nopietnus ierobe\u017eojumus. Tas \u0146\u0113ma Kubernetes manifestu kopumu, papildin\u0101to ar \u0123eneratoriem k\u0101 ievades YAML blokiem <i>(front-matter)<\/i>*, un iel\u0101d\u0113ja rezult\u0101tus Kubernetes vid\u0113.<\/p>\n<p><i>* <b>Piez\u012bme:<\/b>: Kop\u0161 pirm\u0101s Helm versijas resursu aprakst\u012b\u0161anai Kubernetes tika izv\u0113l\u0113ta YAML sintakse, un konfigur\u0101ciju rakst\u012b\u0161an\u0101 tika atbalst\u012bti Jinja veidnes un Python skripti. Vair\u0101k par to un pirm\u0101s versijas Helm strukt\u016bru m\u0113s rakst\u012bj\u0101m noda\u013c\u0101 \"Helm \u012bsa v\u0113sture\" <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/417079\/\">\u0161aj\u0101 materi\u0101l\u0101<\/a><\/noindex>.<\/i><\/p>\n<p>Piem\u0113ram, lai nomain\u012btu lauku YAML fail\u0101, bija j\u0101papildina manifests ar sekojo\u0161o strukt\u016bru:<\/p>\n<pre><code class=\"plaintext\">#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my\/pod.yaml<\/code><\/pre>\n<p>\nIr lieliski, ka \u0161odien eksist\u0113 veidnes, vai ne?<\/p>\n<p>Daudzu iemeslu d\u0113\u013c \u0161is agr\u012bnais Kubernetes instal\u0113t\u0101js pras\u012bja stingri noteiktu manifest failu sarakstu un veica tikai nelielu fiks\u0113tu notikumu sec\u012bbu. T\u0101 lieto\u0161ana bija tik gr\u016bta, ka R&amp;D komanda Deis Workflow sask\u0101r\u0101s ar nopietn\u0101m gr\u016bt\u012bb\u0101m, m\u0113\u0123inot p\u0101rcelt savu produktu uz \u0161o platformu \u2014 tom\u0113r idejas s\u0113klas jau bija s\u0113tas. M\u016bsu pirmais m\u0113\u0123in\u0101jums izr\u0101d\u012bj\u0101s lieliska m\u0101c\u012bbu iesp\u0113ja: m\u0113s apzin\u0101j\u0101mies, ka esam patie\u0161\u0101m aizrauti ar pragmatisku r\u012bku rad\u012b\u0161anu, kas risina ikdienas probl\u0113mas m\u016bsu lietot\u0101jiem.<\/p>\n<p>Pamatojoties uz pag\u0101tnes k\u013c\u016bdu pieredzi, m\u0113s uzs\u0101k\u0101m Helm 2 izstr\u0101di.<\/p>\n<h3>Helm 2 izveide<\/h3>\n<p>\n2015. gada beig\u0101s sazin\u0101j\u0101s ar mums Google komanda. Vi\u0146i str\u0101d\u0101ja pie l\u012bdz\u012bga r\u012bka Kubernetes. Deployment Manager priek\u0161 Kubernetes bija eso\u0161a r\u012bka ports, kas tika izmantots Google Cloud Platform. \"Vai m\u0113s negrib\u0113tu, \" vi\u0146i jaut\u0101ja, \"pavad\u012bt da\u017eas dienas, apsprie\u017eot l\u012bdz\u012bbas un at\u0161\u0137ir\u012bbas?\"<\/p>\n<p>2016. gada janv\u0101r\u012b Helm un Deployment Manager komandas tik\u0101s Sietl\u0101, lai apmain\u012btos ar idej\u0101m. Sarunas beidz\u0101s ar ambiciozu pl\u0101nu: apvienot abus projektus, lai rad\u012btu Helm 2. Kop\u0101 ar Deis un Google komand\u0101 pievienoj\u0101s pui\u0161i no <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/skippbox\">SkippBox<\/a><\/noindex> <i>(tagad da\u013ca no Bitnami \u2014 tulkojuma piez\u012bme)<\/i>, un m\u0113s uzs\u0101k\u0101m darbu pie Helm 2.<\/p>\n<p>M\u0113s v\u0113l\u0113j\u0101mies saglab\u0101t Helm lieto\u0161anas vienk\u0101r\u0161\u012bbu, bet pievienot sekojo\u0161o:<\/p>\n<ul>\n<li> veidnes chartiem piel\u0101go\u0161anai;<\/li>\n<li> iek\u0161klasteru p\u0101rvald\u012bba komand\u0101m;<\/li>\n<li> augst\u0101k\u0101s kvalit\u0101tes chartu repozitorijs;<\/li>\n<li> stabils pakot\u0146u form\u0101ts ar parakst\u012b\u0161anas iesp\u0113ju;<\/li>\n<li> stingru ap\u0146em\u0161anos iev\u0113rot semantisko versiju vad\u012bbu un saglab\u0101t atpaka\u013c savietojam\u012bbu starp versij\u0101m.<\/li>\n<\/ul>\n<p>\nLai sasniegtu \u0161os m\u0113r\u0137us, Helm ekosist\u0113mai tika pievienots otrais elements. \u0160is iek\u0161klastera komponents tika nosaukts par Tiller un bija atbild\u012bgs par Helm chartu instal\u0113\u0161anu un p\u0101rvald\u012bbu.<\/p>\n<p>Kop\u0161 Helm 2 izn\u0101k\u0161anas 2016. gad\u0101 Kubernetes ir ieguvis vair\u0101kus noz\u012bm\u012bgus jaunin\u0101jumus. Tika ieviesta piek\u013cuves p\u0101rvald\u012bba, balstoties uz lom\u0101m (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/422801\/\">RBAC<\/a><\/noindex>), kas beidzot aizst\u0101ja piek\u013cuves kontroli, balstoties uz atrib\u016btiem (ABAC). Par\u0101d\u012bj\u0101s jauni resursu veidi (Deployments tolaik v\u0113l atrad\u0101s beta versij\u0101). Tika izgudrotas Custom Resource Definitions (s\u0101kotn\u0113ji t\u0101s tika sauktas par Third Party Resources vai TPRs). Un, pats galvenais \u2014 par\u0101d\u012bj\u0101s lab\u0101ko prakses piem\u0113ru kopums.<\/p>\n<p>Visu \u0161o izmai\u0146u fona gaism\u0101 Helm turpin\u0101ja kalpot Kubernetes lietot\u0101jiem. P\u0113c trim gadiem un daudziem jaunajiem papildin\u0101jumiem k\u013cuva skaidrs, ka ir pien\u0101cis laiks veikt b\u016btiskas izmai\u0146as kod\u0101, lai Helm var\u0113tu turpin\u0101t apmierin\u0101t augo\u0161\u0101s pras\u012bbas attiec\u012bb\u0101 uz att\u012bst\u012bgu ekosist\u0113mu.<\/p>\n<h2>Maigs atvadu no Tiller\u2019a<\/h2>\n<p>\nHelm 2 izstr\u0101des laik\u0101 m\u0113s ievies\u0101m Tiller k\u0101 da\u013cu no m\u016bsu integr\u0101cijas ar Google Deployment Manager. Tiller sp\u0113l\u0113ja svar\u012bgu lomu komand\u0101m, kas str\u0101d\u0101ja kop\u0113j\u0101 klaster\u012b: tas \u013c\u0101va da\u017e\u0101diem speci\u0101listiem, kas apkalpoja infrastrukt\u016bru, mijiedarboties ar to pa\u0161u laidienu komplektu.<\/p>\n<p>T\u0101 k\u0101 lomas balst\u012btas piek\u013cuves kontrole (RBAC) tika iek\u013cauta p\u0113c noklus\u0113juma Kubernetes 1.6, darbs ar Tiller\u2019iem ra\u017eo\u0161anas vid\u0113 k\u013cuva sare\u017e\u0123\u012bt\u0101ks. Liel\u0101 skait\u0101 iesp\u0113jam\u0101s dro\u0161\u012bbas politikas m\u016bsu nost\u0101ja bija pied\u0101v\u0101t at\u013caujo\u0161u konfigur\u0101ciju p\u0113c noklus\u0113juma. Tas \u013c\u0101va ies\u0101c\u0113jiem eksperiment\u0113t ar Helm un Kubernetes, neradot nepiecie\u0161am\u012bbu iepriek\u0161 iek\u013c\u016bt dro\u0161\u012bbas iestat\u012bjumos. Diem\u017e\u0113l \u0161\u012b at\u013caujo\u0161\u0101 konfigur\u0101cija var\u0113ja pie\u0161\u0137irt lietot\u0101jam p\u0101r\u0101k pla\u0161as at\u013caujas, kuras vi\u0146am nebija nepiecie\u0161amas. DevOps un SRE in\u017eenieriem bija j\u0101apg\u016bst papildu ekspluat\u0101cijas so\u013ci, uzst\u0101dot Tiller multi-tenant klaster\u012b.<\/p>\n<p>Uzzinot, k\u0101 kopienas p\u0101rst\u0101vji izmanto Helm konkr\u0113t\u0101s situ\u0101cij\u0101s, m\u0113s saprat\u0101m, ka Tiller izlai\u017eu p\u0101rvald\u012bbas sist\u0113ma nav j\u0101pa\u013caujas uz iek\u0161klastra komponentu, lai uztur\u0113tu st\u0101vok\u013cus vai funkcion\u0113tu k\u0101 centr\u0101lais mezgls ar inform\u0101ciju par laidienu. T\u0101 viet\u0101 m\u0113s var\u0113tu vienk\u0101r\u0161i sa\u0146emt inform\u0101ciju no Kubernetes API servera, \u0123ener\u0113t chart klienta pus\u0113 un saglab\u0101t uzst\u0101d\u012b\u0161anas ierakstu Kubernetes.<\/p>\n<p>Tiller galveno uzdevumu var\u0113ja veikt ar\u012b bez Tiller\u2019a, t\u0101p\u0113c viens no pirmajiem m\u016bsu l\u0113mumiem attiec\u012bb\u0101 uz Helm 3 bija piln\u012bga atteik\u0161an\u0101s no Tiller\u2019a.<\/p>\n<p>Izg\u0101jot Tiller\u2019iem, Helm dro\u0161\u012bbas modelis b\u016btiski vienk\u0101r\u0161oj\u0101s. Helm 3 tagad atbalsta visus m\u016bsdienu dro\u0161\u012bbas, identifik\u0101cijas un autoriz\u0101cijas veidus, kas ir pa\u0161reiz\u0113j\u0101 Kubernetes. Helm at\u013caujas tiek noteiktas, izmantojot <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/organize-cluster-access-kubeconfig\/\">kubeconfig failu.<\/a><\/noindex>Klastera administratori var ierobe\u017eot lietot\u0101ju ties\u012bbas ar jebk\u0101du detaliz\u0101cijas pak\u0101pi. Izlaidumi joproj\u0101m tiek saglab\u0101ti klaster\u012b, bet visa Helm funkcionalit\u0101te paliek.<\/p>\n<h2>Chartu repozitoriji<\/h2>\n<p>\nAugst\u0101k\u0101 l\u012bmen\u012b chartu repozitorijs ir vieta, kur uzglab\u0101t un koplietot chartus. Helm klients iepakot un nos\u016bta chartus uz repozitoriju. Vienk\u0101r\u0161oti sakot, chartu repozitorijs ir primit\u012bvs HTTP serveris ar index.yaml failu un da\u017eiem iepakotiem chartiem.<\/p>\n<p>Lai gan ir da\u017ei ieguvumi no t\u0101, ka chartu repozitorija API atbilst visp\u0101r\u0113j\u0101m kr\u0101tuves pras\u012bb\u0101m, tam ir ar\u012b da\u017ei tr\u016bkumi:<\/p>\n<ul>\n<li> Chart repozitoriji ir v\u0101ji savietojami ar liel\u0101ko da\u013cu dro\u0161\u012bbas \u012bstenojumu, kas nepiecie\u0161ami ra\u017eo\u0161anas vid\u0113. Standarta API autentifik\u0101cijai un autoriz\u0101cijai esam\u012bba ir \u0101rk\u0101rt\u012bgi svar\u012bga ra\u017eo\u0161anas scen\u0101rijos.<\/li>\n<li> Helm r\u012bki chart izcelsmes izseko\u0161anai, kas tiek izmantoti parakst\u012b\u0161anai, integrit\u0101tes p\u0101rbaud\u0113m un chart izcelsmes noteik\u0161anai, ir oblig\u0101t\u0101 da\u013ca no Chart public\u0113\u0161anas procesa.<\/li>\n<li> Daudzlietot\u0101ju scen\u0101rijos vienu un to pa\u0161u chart var aug\u0161upiel\u0101d\u0113t cits lietot\u0101js, otrreiz palielinot nepiecie\u0161am\u0101s kr\u0101tuves apjomu vienam un tam pa\u0161am saturam. Lai risin\u0101tu \u0161o probl\u0113mu, tika izstr\u0101d\u0101ti sapr\u0101t\u012bg\u0101ki repozitoriji, ta\u010du tie nav da\u013ca no form\u0101l\u0101s specifik\u0101cijas.<\/li>\n<li> Vienot\u0101 indeksu faila izmanto\u0161ana, lai mekl\u0113tu, glab\u0101tu metadatus un ieg\u016btu chart, sare\u017e\u0123\u012bjusi dro\u0161u daudzlietot\u0101ju \u012bstenojumu izstr\u0101di.<\/li>\n<\/ul>\n<p>\nProjekts <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/docker\/distribution\">Docker Distribution<\/a><\/noindex> (paz\u012bstams ar\u012b k\u0101 Docker Registry v2) ir Docker Registry p\u0113ctecis un faktiski ir r\u012bku kopums Docker att\u0113lu iepako\u0161anai, nos\u016bt\u012b\u0161anai, glab\u0101\u0161anai un pieg\u0101d\u0101\u0161anai. Daudzi lielie m\u0101ko\u0146a pakalpojumi pied\u0101v\u0101 produktus, kas balst\u012bti uz Distribution. \u0160is pastiprin\u0101tais uzman\u012bbas l\u012bmenis ir devis iesp\u0113ju projekts Distribution g\u016bt labumu no daudzu gadu uzlabojumiem, dro\u0161\u012bbas lab\u0101kaj\u0101m praks\u0113m un test\u0113\u0161anas re\u0101l\u0101 vid\u0113, padarot to par vienu no veiksm\u012bg\u0101kajiem neizceltajiem varo\u0146iem atv\u0113rt\u0101 koda pasaul\u0113.<\/p>\n<p>Bet vai zin\u0101j\u0101t, ka projekts Distribution tika izstr\u0101d\u0101ts, lai izplat\u012btu jebk\u0101du satura formu, ne tikai konteineru att\u0113lus?<\/p>\n<p>Pateicoties <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opencontainers.org\/\">Open Container Initiative<\/a><\/noindex> (vai OCI), Helm chart var tikt izvietots jebkur\u0101 Distribution instanc\u0113. Pa\u0161laik \u0161is process ir eksperiment\u0101l\u0101 posm\u0101. Darbs pie atbalsta pieteik\u0161an\u0101s un cit\u0101m funkcij\u0101m, kas nepiecie\u0161amas pilnv\u0113rt\u012bgam Helm 3, v\u0113l nav pabeigts, ta\u010du m\u0113s \u013coti priec\u0101jamies par iesp\u0113ju m\u0101c\u012bties no atkl\u0101jumiem, ko izdar\u012bju\u0161as OCI un Distribution komandas \u0161ajos gados. Un pateicoties vi\u0146u mentor\u0113\u0161anai un vad\u012bbai, m\u0113s uzzin\u0101m, k\u0101 ir darboties augsta pieejam\u012bbas pakalpojumam liel\u0101 m\u0113rog\u0101.<\/p>\n<p>S\u012bk\u0101ka inform\u0101cija par da\u017e\u0101m gaid\u0101maj\u0101m izmai\u0146\u0101m Helm chart repozitorijos ir pieejama <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.bacongobbler.com\/post\/2019-01-25-distributing-with-distribution\/\">caur saiti<\/a><\/noindex>.<\/p>\n<h2>Izlai\u017eu p\u0101rvald\u012bba<\/h2>\n<p>\nHelm 3 lietojumprogrammas st\u0101voklis tiek izsekots iek\u0161\u0113j\u0101 klaster\u012b ar p\u0101ru objektiem:<\/p>\n<ul>\n<li> release object \u2014 p\u0101rst\u0101v lietojumprogrammas instanci;<\/li>\n<li> release version secret \u2014 att\u0113lo v\u0113lamo lietojumprogrammas st\u0101vokli konkr\u0113t\u0101 br\u012bd\u012b (piem\u0113ram, jauna versija).<\/li>\n<\/ul>\n<p>\nIzsaukt <code>helm install<\/code> izveido release object un release version secret. Izsaukums <code>helm upgrade<\/code> prasa eso\u0161\u0101 release object (kuru tas var main\u012bt) un izveido jaunu release version secret, kas satur jaun\u0101s v\u0113rt\u012bbas un sagatavoto manifestu.<\/p>\n<p>Release object saturas inform\u0101ciju par rel\u012bzi, kur rel\u012bze ir konkr\u0113ta instal\u0101cija nosaukt\u0101 chart un v\u0113rt\u012bb\u0101m. \u0160is objekts apraksta metadatus augst\u0101k\u0101 l\u012bmen\u012b par rel\u012bzi. Release object tiek saglab\u0101ts vis\u0101 lietojumprogrammas dz\u012bves cikl\u0101 un ir visu release version secret owner, k\u0101 ar\u012b visu objektu, kas tie\u0161i tiek izveidoti ar Helm-chart, \u012bpa\u0161nieks.<\/p>\n<p>Release version secret sasaista rel\u012bzi ar rev\u012bziju s\u0113riju (instal\u0101cija, atjaunin\u0101jumi, atgrie\u0161ana, dz\u0113\u0161ana).<\/p>\n<p>Helm 2 rev\u012bzijas bija tikai sekven\u0161as. Izsaukums <code>helm install<\/code> izveidoja v1, n\u0101kamais atjaunin\u0101jums (upgrade) \u2014 v2, un t\u0101 t\u0101l\u0101k. Release un release version secret tika apvienoti vien\u0101 objekt\u0101, ko sauc par revision. Revision\u2019i tika glab\u0101ti taj\u0101 pa\u0161\u0101 nosaukumu telp\u0101 k\u0101 Tiller, kas noz\u012bm\u0113ja, ka katra rel\u012bze bija 'glob\u0101la' attiec\u012bb\u0101 uz nosaukumu telpu; k\u0101 rezult\u0101t\u0101 var\u0113ja izmantot tikai vienu eksempl\u0101ru nosaukuma.<\/p>\n<p>Helm 3 katra rel\u012bze ir saist\u012bta ar vienu vai vair\u0101kiem release version secret. Release object vienm\u0113r apraksta pa\u0161reiz\u0113jo rel\u012bzi, kas ir izvietota Kubernetes. Katrs release version secret apraksta tikai vienu \u0161\u012bs rel\u012bzes versiju. Atjaunin\u0101\u0161ana (upgrade), piem\u0113ram, izveidos jaunu release version secret un tad main\u012bs release object, lai tas nor\u0101d\u012btu uz \u0161o jauno versiju. Atgrie\u017eot (rollback) var izmantot iepriek\u0161\u0113j\u0101s release version secret, lai atgrieztu rel\u012bzi iepriek\u0161\u0113j\u0101 st\u0101vokl\u012b.<\/p>\n<p>P\u0113c Tiller atteik\u0161an\u0101s Helm 3 glab\u0101 datus par rel\u012bzi vienotaj\u0101 ar rel\u012bzi nosaukumu telp\u0101. \u0160\u0101ds groz\u012bjums \u013cauj instal\u0113t chart ar t\u0101du pa\u0161u rel\u012bzes nosaukumu cit\u0101 nosaukumu telp\u0101, un dati tiek saglab\u0101ti starp atjaunin\u0101jumiem\/rekonfigur\u0101cij\u0101m klaster\u012b etdc. Piem\u0113ram, var uzst\u0101d\u012bt WordPress nosaukuma telp\u0101 'foo', un tad nosaukuma telp\u0101 'bar', un ab\u0101m rel\u012bz\u0113m var b\u016bt nosaukums 'wordpress'.<\/p>\n<h2>Izmai\u0146as chart atkar\u012bb\u0101s<\/h2>\n<p>\nChart, kas iepakoti (izmantojot <code>helm package<\/code>) lieto\u0161anai ar Helm 2 var instal\u0113t ar Helm 3, tom\u0113r grafiku izstr\u0101des process ir piln\u012bb\u0101 p\u0101rskat\u012bts, t\u0101d\u0113\u013c ir nepiecie\u0161amas da\u017eas izmai\u0146as, lai turpin\u0101tu grafiku izstr\u0101di ar Helm 3. Proti, ir main\u012bjusies grafiku atkar\u012bbu p\u0101rvald\u012bbas sist\u0113ma.<\/p>\n<p>Grafiku atkar\u012bbu p\u0101rvald\u012bba ir p\u0101rg\u0101jusi no <code>requirements.yaml<\/code> un <code>requirements.lock<\/code> uz <code>Chart.yaml<\/code> un <code>Chart.lock<\/code>. Tas noz\u012bm\u0113, ka grafiki, kas izmantoja komandu <code>helm dependency<\/code>, prasa da\u017eas konfigur\u0101cijas izmai\u0146as, lai str\u0101d\u0101tu Helm 3.<\/p>\n<p>Paskat\u012bsimies piem\u0113ru. Pievienosim atkar\u012bbu grafikam Helm 2 un redz\u0113sim, kas main\u012bsies, p\u0101rejot uz Helm 3.<\/p>\n<p>Helm 2 <code>requirements.yaml<\/code> izskat\u012bj\u0101s \u0161\u0101di:<\/p>\n<pre><code class=\"plaintext\">dependencies:\n- name: mariadb\n  version: 5.x.x\n  repository: https:\/\/kubernetes-charts.storage.googleapis.com\/\n  condition: mariadb.enabled\n  tags:\n    - database<\/code><\/pre>\n<p>\nHelm 3 taj\u0101 pa\u0161\u0101 atkar\u012bb\u0101 tiks atspogu\u013cota j\u016bsu <code>Chart.yaml<\/code>:<\/p>\n<pre><code class=\"plaintext\">dependencies:\n- name: mariadb\n  version: 5.x.x\n  repository: https:\/\/kubernetes-charts.storage.googleapis.com\/\n  condition: mariadb.enabled\n  tags:\n    - database<\/code><\/pre>\n<p>\nGrafiki joproj\u0101m tiek iel\u0101d\u0113ti un novietoti direktorij\u0101 <code>charts\/<\/code>, t\u0101d\u0113j\u0101di apak\u0161grafiki <i>(subcharts)<\/i>, kas atrodas katalog\u0101 <code>charts\/<\/code>, turpin\u0101s darboties bez izmai\u0146\u0101m.<\/p>\n<h2>Iepaz\u012bstin\u0101m ar Library Charts<\/h2>\n<p>\nHelm 3 atbalsta grafiku veidu, ko sauc par bibliot\u0113ku grafikiem <i>(library chart)<\/i>. \u0160is chart tiek izmantots citu chartu, bet pats nerada nek\u0101das rel\u012bzes artefaktus. Library chart\u2019i paraugi var izsludin\u0101t tikai elementus. <code>define<\/code>. Citi saturs tiek vienk\u0101r\u0161i ignor\u0113ts. Tas \u013cauj lietot\u0101jiem atk\u0101rtoti izmantot un apmain\u012bties ar kodola fragmentiem, kurus var iek\u013caut daudzos grafikos, t\u0101d\u0113j\u0101di izvairoties no dubl\u0113\u0161anas un iev\u0113rojot principu <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\">DRY<\/a><\/noindex>.<\/p>\n<p>Bibliot\u0113ku grafiki tiek deklar\u0113ti sada\u013c\u0101 <code>atkar\u012bbas<\/code> fail\u0101 <code>Chart.yaml<\/code>. To uzst\u0101d\u012b\u0161ana un p\u0101rvald\u012bba neat\u0161\u0137iras no citiem grafikiem.<\/p>\n<pre><code class=\"plaintext\">dependencies:\n  - name: mylib\n    version: 1.x.x\n    repository: quay.io<\/code><\/pre>\n<p>\nM\u0113s ar nepaciet\u012bbu gaid\u0101m iesp\u0113jas, kuras \u0161is komponents atkl\u0101s grafiku izstr\u0101d\u0101t\u0101jiem, k\u0101 ar\u012b lab\u0101ko praksi, kas var rasties pateicoties bibliot\u0113ku grafik\u0101m.<\/p>\n<h2>Kas t\u0101l\u0101k?<\/h2>\n<p>\nHelm 3.0.0-alpha.1 ir pamats, uz kura m\u0113s s\u0101kam veidot jauno Helm versiju. Rakst\u0101 es aprakst\u012bju da\u017eas interesantas Helm 3 iesp\u0113jas. Daudzas no t\u0101m joproj\u0101m ir agr\u012bn\u0101 izstr\u0101des stadij\u0101, un tas ir norm\u0101li; alfa izlaiduma b\u016bt\u012bba ir p\u0101rbaud\u012bt ideju, v\u0101kt atsauksmes no pirmajiem lietot\u0101jiem un apstiprin\u0101t m\u016bsu pie\u0146\u0113mumus.<\/p>\n<p>Kad alfa versija tiks izlaista <i>(atg\u0101din\u0101m, ka tas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/releases\/tag\/v3.0.0-alpha.1\">jau ir noticis<\/a><\/noindex> \u2014 piez\u012bme tulkot\u0101jam)<\/i>, m\u0113s s\u0101ksim pie\u0146emt Helm 3 iel\u0101pus no kopienas. Ir nepiecie\u0161ams izveidot uzticamu pamatu, kas \u013caus izstr\u0101d\u0101t un pie\u0146emt jaunas funkcionalit\u0101tes, un lietot\u0101ji var\u0113s justies iesaist\u012bti proces\u0101, atverot bi\u013cetes un iesniedzot labojumus.<\/p>\n<p>Rakst\u0101 es cen\u0161os izcelt da\u017eus noz\u012bm\u012bgus uzlabojumus, kas par\u0101d\u012bsies Helm 3, tom\u0113r \u0161o sarakstu nek\u0101d\u0101 gad\u012bjum\u0101 nevar uzskat\u012bt par izsme\u013co\u0161u. Piln\u012bgs pl\u0101ns Helm 3 ietver t\u0101das inov\u0101cijas k\u0101 uzlabotas atjaunin\u0101\u0161anas strat\u0113\u0123ijas, dzi\u013c\u0101ka integr\u0101cija ar OCI re\u0123istriem un JSON sh\u0113mu izmanto\u0161ana chart v\u0113rt\u012bbu valid\u0113\u0161anai. M\u0113s ar\u012b pl\u0101nojam att\u012br\u012bt koda b\u0101zi un atjaunin\u0101t t\u0101s da\u013cas, kuras p\u0113d\u0113jos tr\u012bs gadus paliku\u0161as bez uzman\u012bbas.<\/p>\n<p>Ja j\u016btat, ka m\u0113s kaut ko esam palaidu\u0161i gar\u0101m, labpr\u0101t dzird\u0113tu j\u016bsu domas!<\/p>\n<p>Pievienojieties diskusijai m\u016bsu <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.slack.com\/\">Slack kan\u0101los<\/a><\/noindex>:<\/p>\n<ul>\n<li> <code>#helm-users<\/code> jaut\u0101jumiem un vienk\u0101r\u0161ai sazi\u0146ai ar kopienu;<\/li>\n<li> <code>#helm-dev<\/code> diskusij\u0101m par pull requests, kodu un k\u013c\u016bd\u0101m.<\/li>\n<\/ul>\n<p>\nJ\u016bs ar\u012b varat sazin\u0101ties m\u016bsu ned\u0113\u013cas Public Developer Calls ceturtdien\u0101s plkst. 19:30 MSK. San\u0101ksmes ir velt\u012btas t\u0113mu apsprie\u0161anai, pie kur\u0101m str\u0101d\u0101 galvenie izstr\u0101d\u0101t\u0101ji un kopiena, k\u0101 ar\u012b ned\u0113\u013cas diskusiju t\u0113m\u0101m. Ikviens var pievienoties un piedal\u012bties san\u0101ksm\u0113. Saite ir pieejama Slack kan\u0101l\u0101 <code>#helm-dev<\/code>.<\/p>\n<h2>P.S. no tulka<\/h2>\n<p>\nLasiet ar\u012b m\u016bsu emu\u0101ra rakstos:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/417079\/\">Paket\u0113\u0161anas managers Kubernetes \u2014 Helm: pag\u0101tne, tagadne, n\u0101kotne<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438814\/\">Skat\u012bjums uz Helm 2: \u201eT\u0101ds, k\u0101ds tas ir\u2026\u201c<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/420437\/\">Praktiska iepaz\u012b\u0161an\u0101s ar paket\u0113\u0161anas manageri Kubernetes \u2014 Helm<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/441964\/\">Kubernetes padomi &amp; triki: resursu, kas darbojas klaster\u012b, p\u0101rvald\u012bba ar Helm 2<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/336170\/\">Prakse ar dapp. 2. da\u013ca. Docker att\u0113lu izvieto\u0161ana Kubernetes ar Helm<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/453734\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: 16 \u043c\u0430\u044f \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u2014 \u0437\u043d\u0430\u0447\u0438\u043c\u0430\u044f \u0432\u0435\u0445\u0430 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f Kubernetes \u2014 Helm. \u0412 \u044d\u0442\u043e\u0442 \u0434\u0435\u043d\u044c \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043b\u044c\u0444\u0430-\u0440\u0435\u043b\u0438\u0437 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 3.0. \u0415\u0451 \u0432\u044b\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0435\u0441\u0451\u0442 \u0432 Helm \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u0434\u043e\u043b\u0433\u043e\u0436\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0432 Kubernetes-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0432\u043e\u0437\u043b\u0430\u0433\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0434\u0435\u0436\u0434\u044b. \u041a \u0442\u0430\u043a\u043e\u0432\u044b\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u043c\u0441\u044f \u0438 \u043c\u044b \u0441\u0430\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34735","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/znakomstvo-s-helm-3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Helm 3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/znakomstvo-s-helm-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Iepaz\u012b\u0161an\u0101s ar Helm 3 | ProHoster","description":"Piez.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/znakomstvo-s-helm-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Helm 3 | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/znakomstvo-s-helm-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:06+00:00","article:modified_time":"2019-10-31T19:00:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34735","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:26:53","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 23:08:04","updated":"2026-01-21 20:26:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/34735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=34735"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/34735\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/26173"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=34735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=34735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=34735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}