<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Gorizond Blog</title>
        <link>https://gorizond.github.io/ru/blog</link>
        <description>Gorizond Blog</description>
        <lastBuildDate>Tue, 06 Jan 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ru</language>
        <item>
            <title><![CDATA[Release 0.5.x: HelmOp deployment, safer names, and full GitOps]]></title>
            <link>https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names</link>
            <guid>https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names</guid>
            <pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[0.5.x updates gorizond-cluster, and we rolled it out through our full GitOps stack. This post also explains how fleet-gitops bootstraps the whole platform.]]></description>
            <content:encoded><![CDATA[<p>0.5.x updates gorizond-cluster, and we rolled it out through our full GitOps stack. This post also explains how <code>fleet-gitops</code> bootstraps the whole platform.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-changed-in-gorizond-cluster-05x">What changed in gorizond-cluster 0.5.x<a href="https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names#what-changed-in-gorizond-cluster-05x" class="hash-link" aria-label="Прямая ссылка на What changed in gorizond-cluster 0.5.x" title="Прямая ссылка на What changed in gorizond-cluster 0.5.x" translate="no">​</a></h3>
<ul>
<li class="">Switched Fleet deployment to HelmOp for headscale/k3s with automatic namespace creation.</li>
<li class="">Hardened name handling for downstream resources to fit DNS-1123 (max 63 chars) and avoid invalid Rancher names.</li>
<li class="">Added validation for gorizond cluster names to prevent invalid provisioning clusters.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="compatibility-and-cleanup-notes">Compatibility and cleanup notes<a href="https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names#compatibility-and-cleanup-notes" class="hash-link" aria-label="Прямая ссылка на Compatibility and cleanup notes" title="Прямая ссылка на Compatibility and cleanup notes" translate="no">​</a></h3>
<ul>
<li class="">0.5.x is backward compatible with clusters provisioned via 0.4.x.</li>
<li class="">The headscale/k3s cleanup format changed: instead of a Fleet Bundle we now use HelmOp.</li>
<li class="">When deleting older clusters, manually clean up the legacy Fleet Bundle. Ideally, replace old clusters fully to avoid mixed cleanup paths.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gitops-backbone-fleet-gitops">GitOps backbone: fleet-gitops<a href="https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names#gitops-backbone-fleet-gitops" class="hash-link" aria-label="Прямая ссылка на GitOps backbone: fleet-gitops" title="Прямая ссылка на GitOps backbone: fleet-gitops" translate="no">​</a></h3>
<p>We use <a href="https://github.com/gorizond/fleet-gitops" target="_blank" rel="noopener noreferrer" class="">fleet-gitops</a> as a bootstrap repository for Fleet. It is a Helm chart that renders Fleet <code>GitRepo</code> and <code>HelmOp</code> resources from <code>values.yaml</code>, so one repo becomes the single source of truth for everything from the runtime cluster to core services and databases.</p>
<p>How it is structured today:</p>
<ul>
<li class=""><code>fleet-local</code> repos for platform control plane: <code>fleet-gorizond-cluster</code> (gorizond-cluster controller + charts), <code>fleet-workspace-controller</code>, <code>fleet-cert-manager</code>, <code>yookassa-url-generator</code>, <code>docusaurus</code>, <code>jspolicy-for-autoscaler</code>, and <code>fleet-clusters</code>.</li>
<li class=""><code>fleet-default</code> repos for shared runtime workloads: <code>fleet-cert-manager</code> and <code>fleet-gorizond-database</code>.</li>
<li class="">HelmOps for infra charts like <code>jspolicy</code> and <code>longhorn</code>.</li>
</ul>
<p>Operational details we rely on:</p>
<ul>
<li class="">Fleet targets clusters by labels like <code>&lt;name&gt;=enabled</code>, plus optional cluster selectors/groups for extra scoping.</li>
<li class=""><code>paths</code> allows pointing GitRepos directly at chart or policy subfolders.</li>
<li class="">Drift correction is enabled in the generated Fleet resources.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-upgrade">How to upgrade<a href="https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names#how-to-upgrade" class="hash-link" aria-label="Прямая ссылка на How to upgrade" title="Прямая ссылка на How to upgrade" translate="no">​</a></h3>
<ul>
<li class="">In your GitOps/Fleet bundle set <code>chartVersion</code> of <code>gorizond-cluster-controller</code> to <code>0.5.x</code> (tag <code>v0.5.x</code>).</li>
<li class="">If you manage infrastructure via <code>fleet-gitops</code>, update the controller bundle values there and let Fleet reconcile.</li>
<li class="">Roll out via Fleet/Helm and wait for <code>BundleDeployment</code> to reach <code>Ready</code> and controller pods to restart.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="how-to-verify">How to verify<a href="https://gorizond.github.io/ru/blog/release-0-5-x-helmop-names#how-to-verify" class="hash-link" aria-label="Прямая ссылка на How to verify" title="Прямая ссылка на How to verify" translate="no">​</a></h3>
<ul>
<li class="">New headscale/k3s namespaces are created automatically by HelmOp for fresh clusters.</li>
<li class="">Creating a cluster with an invalid name is rejected before provisioning.</li>
<li class="">Controller logs show clean reconcile and Rancher resources use DNS-1123-safe names.</li>
</ul>]]></content:encoded>
            <category>Gorizond</category>
        </item>
        <item>
            <title><![CDATA[Релиз 0.4.x: безопасное удаление биллинга и воркспейсов]]></title>
            <link>https://gorizond.github.io/ru/blog/release-0-4-x-data-safety</link>
            <guid>https://gorizond.github.io/ru/blog/release-0-4-x-data-safety</guid>
            <pubDate>Fri, 05 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[В релизе 0.3.0 мы предупреждали о риске: удаление Billing или всех Fleet workspaces могло навсегда унести баланс и даже отключить Fleet UI. В линейке 0.4.x эта проблема закрыта — добавлены финалайзеры и перенос баланса при удалении биллинга, а обработка ресурсов Fleet стала аккуратной.]]></description>
            <content:encoded><![CDATA[<p>В релизе 0.3.0 мы предупреждали о риске: удаление Billing или всех Fleet workspaces могло навсегда унести баланс и даже отключить Fleet UI. В линейке 0.4.x эта проблема закрыта — добавлены финалайзеры и перенос баланса при удалении биллинга, а обработка ресурсов Fleet стала аккуратной.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="что-изменилось">Что изменилось<a href="https://gorizond.github.io/ru/blog/release-0-4-x-data-safety#%D1%87%D1%82%D0%BE-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D0%BB%D0%BE%D1%81%D1%8C" class="hash-link" aria-label="Прямая ссылка на Что изменилось" title="Прямая ссылка на Что изменилось" translate="no">​</a></h3>
<ul>
<li class="">v0.4.0 — финалайзер Billing блокирует удаление, пока баланс не перенесён; контроллер переводит остаток и консистентно восстанавливает связанные Cluster ресурсы. Это устраняет потерю средств при удалении биллинга.</li>
<li class="">v0.4.1 — переработана reconcile-логика FleetBundle: обновляются только нужные объекты без перезаписи или удаления несвязанных ресурсов, чтобы Fleet UI/расширения не пропадали при чистке workspaces.</li>
<li class="">v0.4.2 — вынесены версии K3S/Headscale chart в конфигурацию окружения; рекомендуем обновляться до последнего патча 0.4.2.</li>
</ul>
<p>Полные детали: <a href="https://github.com/gorizond/gorizond-cluster/releases/tag/v0.4.0" target="_blank" rel="noopener noreferrer" class="">v0.4.0</a>, <a href="https://github.com/gorizond/gorizond-cluster/releases/tag/v0.4.1" target="_blank" rel="noopener noreferrer" class="">v0.4.1</a>, <a href="https://github.com/gorizond/gorizond-cluster/releases/tag/v0.4.2" target="_blank" rel="noopener noreferrer" class="">v0.4.2</a> и общий diff <a href="https://github.com/gorizond/gorizond-cluster/compare/v0.3.0...v0.4.2" target="_blank" rel="noopener noreferrer" class="">v0.3.0…v0.4.2</a>.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-обновиться">Как обновиться<a href="https://gorizond.github.io/ru/blog/release-0-4-x-data-safety#%D0%BA%D0%B0%D0%BA-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%D1%81%D1%8F" class="hash-link" aria-label="Прямая ссылка на Как обновиться" title="Прямая ссылка на Как обновиться" translate="no">​</a></h3>
<ul>
<li class="">В GitOps/Fleet bundle обновите chartVersion <code>gorizond-cluster-controller</code> до <code>0.4.2</code> (или тег <code>v0.4.2</code>).</li>
<li class="">Перекатите bundle через Fleet/Helm, дождитесь <code>BundleDeployment</code> в состоянии <code>Ready</code> и обновления подов контроллера.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="как-проверить">Как проверить<a href="https://gorizond.github.io/ru/blog/release-0-4-x-data-safety#%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C" class="hash-link" aria-label="Прямая ссылка на Как проверить" title="Прямая ссылка на Как проверить" translate="no">​</a></h3>
<ul>
<li class="">При попытке удалить Billing с балансом ресурс остаётся в <code>Terminating</code>, пока контроллер не перенесёт остаток; баланс не пропадает.</li>
<li class="">После удаления тестового Fleet workspace расширение Fleet в Rancher остаётся доступным, остальные workspaces можно продолжать создавать/удалять.</li>
<li class="">В логах контроллера нет ошибок reconcile для Billing/FleetBundle; метрики/пробы остаются зелёными.</li>
</ul>]]></content:encoded>
            <category>Gorizond</category>
        </item>
        <item>
            <title><![CDATA[Релиз 0.3.0]]></title>
            <link>https://gorizond.github.io/ru/blog/release-0.3.0</link>
            <guid>https://gorizond.github.io/ru/blog/release-0.3.0</guid>
            <pubDate>Mon, 07 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Простой биллинг]]></description>
            <content:encoded><![CDATA[<p>Простой биллинг</p>
<p>Добавили CRD и логику контроллера для биллинга: обработка событий и обновление статуса биллинга кластера. Входит:</p>
<ol>
<li class="">Новые CRD для ресурсов Billing и BillingEvent.</li>
<li class="">Логика контроллера:<!-- -->
<ul>
<li class="">отслеживание статуса биллинга кластера;</li>
<li class="">генерация периодических событий биллинга;</li>
<li class="">обработка событий и обновление балансов.</li>
</ul>
</li>
<li class="">Настройки для включения/отключения контроллера биллинга.</li>
<li class="">Обновление зависимостей и чистка.</li>
</ol>
<p>Известные проблемы:</p>
<ul>
<li class="">Можно удалить billing и потерять весь баланс (и положительный, и отрицательный).</li>
<li class="">Если удалить все workspaces Fleet, пользователь теряет Fleet UI и больше не может создавать/удалять workspaces.</li>
</ul>]]></content:encoded>
            <category>Gorizond</category>
        </item>
        <item>
            <title><![CDATA[Первый пост]]></title>
            <link>https://gorizond.github.io/ru/blog/first-blog-post</link>
            <guid>https://gorizond.github.io/ru/blog/first-blog-post</guid>
            <pubDate>Fri, 30 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Альфа-версия]]></description>
            <content:encoded><![CDATA[<p>Альфа-версия</p>
<p>Вышла первая альфа Gorizond. Доступно создание кластера и обновление версии; ошибок может быть много — это нормально :)</p>]]></content:encoded>
            <category>Gorizond</category>
        </item>
    </channel>
</rss>