<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cluster Maintenance Guides on Cozystack</title><link>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/</link><description>Recent content in Cluster Maintenance Guides on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/index.xml" rel="self" type="application/rss+xml"/><item><title>Upgrading Cozystack and Post-upgrade Checks</title><link>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/upgrade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/upgrade/</guid><description>&lt;h2 id="about-cozystack-versions"&gt;About Cozystack Versions&lt;/h2&gt;
&lt;p&gt;Cozystack uses a staged release process to ensure stability and flexibility during development.&lt;/p&gt;
&lt;p&gt;There are three types of releases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alpha, Beta, and Release Candidates (RC)&lt;/strong&gt; – Preview versions (such as &lt;code&gt;v0.42.0-alpha.1&lt;/code&gt; or &lt;code&gt;v0.42.0-rc.1&lt;/code&gt;) used for final testing and validation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stable Releases&lt;/strong&gt; – Regular versions (e.g., &lt;code&gt;v0.42.0&lt;/code&gt;) that are feature-complete and thoroughly tested.
Such versions usually introduce new features, update dependencies, and may have API changes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Patch Releases&lt;/strong&gt; – Bugfix-only updates (e.g., &lt;code&gt;v0.42.1&lt;/code&gt;) made after a stable release, based on a dedicated release branch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s highly recommended to install only stable and patch releases in production environments.&lt;/p&gt;</description></item><item><title>Upgrading from v1.6 to v1.7</title><link>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/upgrade-to-v1.7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/upgrade-to-v1.7/</guid><description>&lt;p&gt;Cozystack v1.7 changes the behaviour of running clusters in several places. This page lists those changes for a cluster that runs v1.6.x, and the action each one needs. The upgrade itself follows the usual procedure in 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/upgrade/" target="_blank"&gt;Upgrading Cozystack&lt;/a&gt;. Read this page first: several actions have to be taken before the upgrade starts, because once it runs it is too late to act on them.&lt;/p&gt;


&lt;div class="alert alert-warning" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;Platform migrations do not run on the default variant&lt;/h4&gt;

 On every other variant the v1.7 platform release runs platform migrations 54 to 59 as a pre-upgrade hook, before any package moves to its new chart. The 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/configuration/variants/#default" target="_blank"&gt;&lt;code&gt;default&lt;/code&gt;&lt;/a&gt; variant runs none, so on such a cluster the steps those migrations would take for SeaweedFS, VM volume hotplug and HTTPCache are yours, before the upgrade.

&lt;/div&gt;

&lt;h2 id="before-you-upgrade"&gt;Before you upgrade&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Every node: add &lt;code&gt;drbd_transport_tcp&lt;/code&gt; to the Talos kernel modules before the node moves to Talos v1.14. See 
&lt;a href="#talos-v114"&gt;Talos v1.14&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isp-full&lt;/code&gt; and &lt;code&gt;isp-full-generic&lt;/code&gt;: check that &lt;code&gt;networking.podCIDR&lt;/code&gt; has a prefix of /20 or shorter. See 
&lt;a href="#cilium-address-block"&gt;Cilium address block&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Tenant Kubernetes clusters: remove &lt;code&gt;controlPlane.apiServer.extraArgs&lt;/code&gt; entries that name a flag the tenant control plane sets itself. See 
&lt;a href="#kamaji-and-tenant-control-planes"&gt;Kamaji and tenant control planes&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Tenant Kubernetes clusters: plan for the Talos workers of every pool to be replaced once. See 
&lt;a href="#worker-pools-become-kubernetesnodes-resources"&gt;Worker pools become KubernetesNodes resources&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Multus: decide whether the reference CNI plugins may be written to &lt;code&gt;/opt/cni/bin&lt;/code&gt; on every node. See 
&lt;a href="#multus-stages-cni-plugins"&gt;Multus stages CNI plugins&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;FoundationDB: upgrade every cluster that runs 7.1.x to 7.3. See 
&lt;a href="#foundationdb-71"&gt;FoundationDB 7.1&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;PostgreSQL with &lt;code&gt;external: true&lt;/code&gt;: find clients that disable TLS. See 
&lt;a href="#postgresql"&gt;PostgreSQL&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;OpenSearch with &lt;code&gt;external: true&lt;/code&gt; or Dashboards: see 
&lt;a href="#opensearch"&gt;OpenSearch&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Gateway API: check the certificate served on &lt;code&gt;api.&amp;lt;apex&amp;gt;&lt;/code&gt; and the hostnames of routes in tenant namespaces. See 
&lt;a href="#gateway-api"&gt;Gateway API&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;VM instances: fix &lt;code&gt;resources&lt;/code&gt; values that cannot size a VM. See 
&lt;a href="#smaller-changes"&gt;Smaller changes&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Kafka: plan a maintenance window for every instance. See 
&lt;a href="#kafka-moves-to-kraft"&gt;Kafka moves to KRaft&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;default&lt;/code&gt; variant only: pin the SeaweedFS volume size limit and look for volumes hotplugged on a VM instance only. See 
&lt;a href="#seaweedfs-volume-size-limit"&gt;SeaweedFS volume size limit&lt;/a&gt; and 
&lt;a href="#declarative-volume-hotplug"&gt;Declarative volume hotplug&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;While the platform upgrade runs, do not edit &lt;code&gt;Kubernetes&lt;/code&gt; resources. See 
&lt;a href="#worker-pools-become-kubernetesnodes-resources"&gt;Worker pools become KubernetesNodes resources&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="platform-migrations"&gt;Platform migrations&lt;/h2&gt;
&lt;p&gt;The platform migration version moves from 54, where v1.6 left it, to 60. On every variant except &lt;code&gt;default&lt;/code&gt;, the migrations below run once each, in order, as a pre-upgrade hook of the platform release:&lt;/p&gt;</description></item><item><title>Cluster Scaling: Adding and Removing Nodes</title><link>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/scaling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/scaling/</guid><description>&lt;h2 id="how-to-add-a-node-to-a-cozystack-cluster"&gt;How to add a node to a Cozystack cluster&lt;/h2&gt;
&lt;p&gt;Adding a node is done in a way similar to regular Cozystack installation.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/install/talos/" target="_blank"&gt;Install Talos on the node&lt;/a&gt;, using the Cozystack&amp;rsquo;s custom-built Talos image.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate the configuration for the new node, using the 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/install/kubernetes/talm/#3-generate-node-configuration-files" target="_blank"&gt;Talm&lt;/a&gt;
or 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/install/kubernetes/talosctl/#2-generate-node-configuration-files" target="_blank"&gt;talosctl&lt;/a&gt; guide.&lt;/p&gt;
&lt;p&gt;For example, configuring a control plane node:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;talm template -e 192.168.123.20 -n 192.168.123.20 -t templates/controlplane.yaml -i &amp;gt; nodes/nodeN.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and for a worker node:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;talm template -e 192.168.123.20 -n 192.168.123.20 -t templates/worker.yaml -i &amp;gt; nodes/nodeN.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply the generated configuration to the node, using the 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/install/kubernetes/talm/#41-apply-configuration-files" target="_blank"&gt;Talm&lt;/a&gt;
or 
&lt;a href="https://deploy-preview-757--cozystack.netlify.app/docs/next/install/kubernetes/talosctl/#3-apply-node-configuration" target="_blank"&gt;talosctl&lt;/a&gt; guide.
For example:&lt;/p&gt;</description></item><item><title>How to Rotate Certificate Authority</title><link>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/rotate-ca/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-757--cozystack.netlify.app/docs/next/operations/cluster/rotate-ca/</guid><description>&lt;p&gt;Talos sets up root certificate authorities with a lifetime of 10 years,
and all Talos and Kubernetes API certificates are issued by these root CAs.
In general, you almost never need to rotate the root CA certificate and key for the Talos API and Kubernetes API.&lt;/p&gt;
&lt;p&gt;Rotation of the root CA is only needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;when you suspect that the private key has been compromised;&lt;/li&gt;
&lt;li&gt;when you want to revoke access to the cluster for a leaked &lt;code&gt;talosconfig&lt;/code&gt; or &lt;code&gt;kubeconfig&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;once in 10 years.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rotate-ca-for-talos-api"&gt;Rotate CA for Talos API&lt;/h3&gt;
&lt;p&gt;To rotate the Talos CA for the management cluster, use the following command:&lt;/p&gt;</description></item></channel></rss>