<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cluster Configuration and Management Guide on Cozystack</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/</link><description>Recent content in Cluster Configuration and Management Guide on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/index.xml" rel="self" type="application/rss+xml"/><item><title>Scheduling Classes</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/scheduling-classes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/scheduling-classes/</guid><description>&lt;p&gt;SchedulingClass is a cluster-scoped custom resource that lets administrators define
placement policies for tenant workloads. When a tenant is assigned a scheduling class,
all of its pods are automatically routed to the Cozystack custom scheduler, which
merges the class-defined constraints with any constraints already present on the pod.&lt;/p&gt;
&lt;p&gt;This allows platform operators to pin tenants to specific data centers, availability
zones, or node groups — without modifying individual application charts.&lt;/p&gt;</description></item><item><title>Running Containerized GPU Workloads</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/gpu-container-workloads/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/gpu-container-workloads/</guid><description>&lt;p&gt;This page covers running GPU workloads in regular Kubernetes pods (CUDA, ML training, inference) on Cozystack management cluster nodes. It targets the typical Linux GPU node shape — &lt;code&gt;apt&lt;/code&gt;-installed NVIDIA driver plus &lt;code&gt;nvidia-container-toolkit&lt;/code&gt; on Ubuntu/Debian — and uses the &lt;code&gt;container&lt;/code&gt; variant of the &lt;code&gt;cozystack.gpu-operator&lt;/code&gt; package. Other distros with an equivalent driver + toolkit package layout should work the same way but are not regularly tested.&lt;/p&gt;
&lt;p&gt;If instead you want to pass whole GPUs to KubeVirt VMs, see 
&lt;a href="https://deploy-preview-763--cozystack.netlify.app/docs/next/virtualization/gpu/"&gt;GPU Passthrough&lt;/a&gt; and 
&lt;a href="https://deploy-preview-763--cozystack.netlify.app/docs/next/kubernetes/gpu-sharing/"&gt;GPU Sharing with HAMi&lt;/a&gt; (HAMi provides fractional sharing in tenant Kubernetes clusters; stacking it directly on the &lt;code&gt;container&lt;/code&gt; variant on the management cluster is not a supported combination yet — see 
&lt;a href="#fractional-gpu-sharing"&gt;Fractional GPU sharing&lt;/a&gt; below).&lt;/p&gt;</description></item><item><title>storageClass is immutable after creation</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/storage-class-immutability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/storage-class-immutability/</guid><description>&lt;p&gt;Every stateful Cozystack application that exposes a &lt;code&gt;storageClass&lt;/code&gt; parameter declares it immutable in the chart schema (&lt;code&gt;x-kubernetes-validations: [{rule: &amp;quot;self == oldSelf&amp;quot;}]&lt;/code&gt;). This document explains the contract and where it is enforced.&lt;/p&gt;
&lt;h2 id="why"&gt;Why&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;storageClass&lt;/code&gt; binds the StatefulSet&amp;rsquo;s PVC template. Kubernetes fixes &lt;code&gt;PersistentVolumeClaim.spec.storageClassName&lt;/code&gt; at PVC creation time — editing &lt;code&gt;volumeClaimTemplates[].spec.storageClassName&lt;/code&gt; on an existing StatefulSet does not retroactively migrate any data. A user who edits &lt;code&gt;storageClass&lt;/code&gt; on an existing resource may believe their data is being moved to the new class; it is not. Locking the field at the schema layer makes that contract explicit.&lt;/p&gt;</description></item></channel></rss>