{"id":89143,"date":"2020-07-19T07:42:22","date_gmt":"2020-07-19T05:42:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm"},"modified":"2020-07-19T07:42:22","modified_gmt":"2020-07-19T05:42:22","slug":"avtogeneracziya-sekretov-v-helm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","title":{"rendered":"Autogener\u00e1cia tajomstiev v Helme","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Autogener\u00e1cia tajomstiev v Helme\" src=\"\/wp-content\/uploads\/2020\/07\/e2ba6ab1bf5b50c7cfcbf62d56ff15da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>T\u00edm <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/containers\/\">Kubernetes aaS od Mail.ru<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/workfloplus\/reusing-auto-generated-helm-secrets-a7426403d4bb\">prelo\u017eila kr\u00e1tku pozn\u00e1mku<\/a><\/noindex> o tom, ako automaticky generova\u0165 tajomstv\u00e1 Helm pri aktualiz\u00e1cii. \u010ealej text od autora \u010dl\u00e1nku \u2013 technick\u00e9ho riadite\u013ea spolo\u010dnosti Intoware, poskytovate\u013ea SaaS rie\u0161en\u00ed. <\/p>\n<p>Kontajnery s\u00fa skvel\u00e9. Na za\u010diatku som bol odporcom kontajnerov (je mi to tr\u00e1pne prizna\u0165), ale teraz plne podporujem pou\u017e\u00edvanie tejto technol\u00f3gie. Ak toto \u010d\u00edtate, d\u00fafam, \u017ee ste \u00faspe\u0161ne pl\u00e1vali po moriach Docker, uvedomili si v\u00fdhody Kubernetes a urobili svoj \u017eivot omnoho jednoduch\u0161\u00edm s Helm.<\/p>\n<p>Napriek tomu s\u00fa niektor\u00e9 veci zjavne zlo\u017eitej\u0161ie, ne\u017e by mali by\u0165.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAko automaticky generova\u0165 tajomstv\u00e1 pri aktualiz\u00e1cii?<\/p>\n<p>Tajomstvo Kubernetes je zdroj, ktor\u00fd obsahuje p\u00e1ry k\u013e\u00fa\u010d\/hodnota, ktor\u00e9 chcete pou\u017ei\u0165 vo svojom k\u00f3de. M\u00f4\u017eu to by\u0165 pripojenia k datab\u00e1ze, hesl\u00e1 k e-mailu a tak \u010falej. Pou\u017e\u00edvan\u00edm tajomstiev vytv\u00e1rate jasn\u00e9 rozdelenie medzi k\u00f3dom a nastaveniami, \u010do umo\u017e\u0148uje \u013eahko prisp\u00f4sobova\u0165 r\u00f4zne nasadenia bez zmeny k\u00f3dovej z\u00e1kladne.<\/p>\n<p>\u010casto sa vyskytuje situ\u00e1cia, ke\u010f mus\u00ed dva moduly komunikova\u0165 pomocou spolo\u010dn\u00e9ho k\u013e\u00fa\u010da. Nikto mimo klastrov by nemal pozna\u0165 tento k\u013e\u00fa\u010d, preto\u017ee je ur\u010den\u00fd na komunik\u00e1ciu \"od jedn\u00e9ho k druh\u00e9mu\" vn\u00fatri klastrovia.<\/p>\n<h2>Vytv\u00e1ranie tajomstiev<\/h2>\n<p>\nObvykle, aby ste vytvorili tajomstvo v Helme, potrebujete:<\/p>\n<ul>\n<li>op\u00edsa\u0165 tajomstvo v s\u00fabore hodn\u00f4t;<\/li>\n<li>predefinova\u0165 ho po\u010das nasadenia;<\/li>\n<li>odk\u00e1zat na\u0148 v r\u00e1mci nasadenia\/pod\u013ea;<\/li>\n<li>\u2026 profit !<\/li>\n<\/ul>\n<p>\nObvykle to vyzer\u00e1 asi takto:<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Secret\nmetadata:\n  name: my-super-awesome-api-key\ntype: Opaque\nstringData:\n  apiKey: {{ .Values.MyApiKeySecret | quote }}\n<\/code><\/pre>\n<p>\n<i>Jednoduch\u00e9 tajomstvo Kubernetes, vyu\u017e\u00edvaj\u00face hodnoty z values.yml<\/i><\/p>\n<p>Ale povedzme, \u017ee nechcete uv\u00e1dza\u0165 svoje tajomstvo v s\u00fabore hodn\u00f4t.<\/p>\n<p>Existuje ve\u013ea scen\u00e1rov, ke\u010f sa na nasadenie vy\u017eaduje spolo\u010dn\u00fd k\u013e\u00fa\u010d, ktor\u00fd mus\u00ed by\u0165 generovan\u00fd po\u010das in\u0161tal\u00e1cie.<\/p>\n<p>V uvedenom pr\u00edklade o komunik\u00e1cii medzi modulmi je ne\u017eiad\u00face zdie\u013ea\u0165 tajomstvo mimo nasadenia. Preto je ve\u013emi \u017eiaduce, aby Helm mal mechanizmy na automatick\u00e9 vytv\u00e1ranie tajomstva bez nutnosti jeho priameho uvedenia.<\/p>\n<h2>Hooky<\/h2>\n<p>\nHuky umo\u017e\u0148uj\u00fa sp\u00fa\u0161\u0165a\u0165 k\u00f3d na ur\u010dit\u00fdch miestach po\u010das in\u0161tal\u00e1cie. M\u00f4\u017ee existova\u0165 \u00faloha konfigur\u00e1cie, ktor\u00fa je potrebn\u00e9 vykona\u0165 po prvotnej in\u0161tal\u00e1cii, alebo mo\u017eno bude potrebn\u00e9 vykona\u0165 \u010distenie pred vykonan\u00edm ak\u00e9hoko\u013evek aktualiz\u00e1cie.<\/p>\n<p>Na vyrie\u0161enie n\u00e1\u0161ho probl\u00e9mu s pridan\u00edm k\u013e\u00fa\u010da, ktor\u00fd je generovan\u00fd pri in\u0161tal\u00e1cii, sa predin\u0161tala\u010dn\u00e9 huky hodia perfektne. Ale je tu jedna nev\u00fdhoda: nem\u00f4\u017eete automaticky vygenerova\u0165 tajn\u00fd k\u013e\u00fa\u010d raz pri aktualiz\u00e1cii. Huky bud\u00fa fungova\u0165 pri ka\u017edej aktualiz\u00e1cii.<\/p>\n<p>Ak ste vygenerovali svoj tajn\u00fd k\u013e\u00fa\u010d a va\u0161a prvotn\u00e1 in\u0161tal\u00e1cia sa e\u0161te neuskuto\u010dnila, potom prestante \u010d\u00edta\u0165, predin\u0161tala\u010dn\u00fd h\u00fak je pre v\u00e1s ide\u00e1lny.<\/p>\n<p>Ale ak je tajn\u00fd k\u013e\u00fa\u010d s\u00fa\u010das\u0165ou aktualiz\u00e1cie (mo\u017eno novej funkcie, ktor\u00e1 neexistovala po\u010das in\u0161tal\u00e1cie), je frustruj\u00face, \u017ee nie je mo\u017en\u00e9 vytvori\u0165 predin\u0161tala\u010dn\u00fd h\u00fak, ktor\u00fd by fungoval len raz.<\/p>\n<h2>Funkcie<\/h2>\n<p>\nFunkcie Helm umo\u017e\u0148uj\u00fa prid\u00e1va\u0165 r\u00f4zne prvky skriptov do nasadzovac\u00edch skriptov.<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Secret\nmetadata:\n  name: my-super-awesome-api-key\ntype: Opaque\nstringData:\n  apiKey: {{ uuidv4 | quote }} #Generova\u0165 nov\u00fd UUID a uvies\u0165 ho v \u00favodzovk\u00e1ch\n<\/code><\/pre>\n<p>\nV tomto pr\u00edklade je hodnota tajn\u00e9ho k\u013e\u00fa\u010da apiKey nov\u00fd UUID, vygenerovan\u00fd po\u010das in\u0161tal\u00e1cie.<\/p>\n<p>Helm obsahuje skuto\u010dne rozsiahlu kni\u017enicu funkci\u00ed, ktor\u00e1 vyu\u017e\u00edva \u00fa\u017easn\u00e9 funkcie \u0161abl\u00f3n GO a kni\u017enicu funkci\u00ed Sprig na vytv\u00e1ranie prisp\u00f4soben\u00fdch nasaden\u00ed.<\/p>\n<h3>Funkcia Lookup<\/h3>\n<p>\nV Helm 3.1 bola pridan\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/chart_template_guide\/functions_and_pipelines\/\">funkcia Lookup<\/a><\/noindex>, ktor\u00e1 umo\u017e\u0148uje dotazova\u0165 sa na existuj\u00face nasadenie a:<\/p>\n<ul>\n<li>overi\u0165 existenciu zdrojov;<\/li>\n<li>vr\u00e1ti\u0165 hodnotu existuj\u00faceho zdroja na \u010fal\u0161ie pou\u017eitie.<\/li>\n<\/ul>\n<p>\nPomocou t\u00fdchto dvoch mo\u017enost\u00ed m\u00f4\u017eeme vytvori\u0165 jednorazov\u00fd dynamicky generovan\u00fd tajn\u00fd k\u013e\u00fa\u010d!<\/p>\n<pre><code class=\"plaintext\"># 1. \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 $secret\n{{- $secret := (lookup &quot;v1&quot; &quot;Secret&quot; .Release.Namespace &quot;some-awesome-secret&quot; -}}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: some-awesome-secret\ntype: Opaque\n\n# 2. \u0415\u0441\u043b\u0438 \u0441\u0435\u043a\u0440\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a apiKey (\u0441\u0435\u043a\u0440\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Base64, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u044e\u0447 &quot;data&quot;)\n{{ if $secret -}}\ndata:\n  apiKey: {{ $secret.data.apiKey }}\n\n# 3. \u0415\u0441\u043b\u0438 \u0441\u0435\u043a\u0440\u0435\u0442 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e (\u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 &quot;stringData&quot;, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435)!\n{{ else -}}\nstringData:\n  apiKey: {{ uuidv4 | quote }}\n{{ end }}\n<\/code><\/pre>\n<p>\nKedyko\u013evek sa na server aplikuje nov\u00e9 aktualizovanie, Helm bu\u010f vygeneruje nov\u00fa hodnotu tajn\u00e9ho k\u013e\u00fa\u010da (ak tajn\u00fd k\u013e\u00fa\u010d e\u0161te neexistuje), alebo znovu pou\u017eije existuj\u00facu hodnotu.<\/p>\n<p>Ve\u013ea \u0161\u0165astia!<\/p>\n<p><strong>\u010co \u010fal\u0161ie si pre\u010d\u00edta\u0165 na t\u00fato t\u00e9mu<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/tri-urovnya-avtomasshtabirovaniya-v-kubernetes-kak-ikh-effektivno-ispolzovat\">Tri \u00farovne automatick\u00e9ho \u0161k\u00e1lovania v Kubernetes a ako ich efekt\u00edvne vyu\u017ei\u0165<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/490362\/\">Kubernetes v duchu pir\u00e1tstva s \u0161abl\u00f3nou na zavedenie<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tele.click\/k8s_mail\">N\u00e1\u0161 kan\u00e1l Okolo Kubernetes na Telegrame<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/507376\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 Kubernetes aaS \u043e\u0442 Mail.ru \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u043a\u0440\u0435\u0442\u044b Helm \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438. \u0414\u0430\u043b\u0435\u0435 \u0442\u0435\u043a\u0441\u0442 \u043e\u0442 \u0430\u0432\u0442\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 Intoware, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 SaaS-\u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u2014 \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0431\u044b\u043b \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 (\u0441\u0442\u044b\u0434\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f), \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u044d\u0442\u043e, \u0442\u043e, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043b\u0430\u0432\u0430\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89143","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=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430\" \/>\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\/sk\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\u0410\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0432 Helm | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u0430\u043d\u0434\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm\" \/>\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=\"2020-07-19T05:42:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-19T05:42:22+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\udd47Autogener\u00e1cia tajn\u00fdch k\u013e\u00fa\u010dov v Helme | ProHoster","description":"T\u00edm","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\u0410\u0432\u0442\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u0432 \u0432 Helm | ProHoster","og:description":"\u041a\u043e\u043c\u0430\u043d\u0434\u0430","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/avtogeneracziya-sekretov-v-helm","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":"2020-07-19T05:42:22+00:00","article:modified_time":"2020-07-19T05:42:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89143","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:15:24","updated":"2022-10-05 12:06:33","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/89143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=89143"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/89143\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/89144"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=89143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=89143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=89143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}