# Resources

> For the complete documentation index, see [llms.txt](https://projectcapsule.dev/llms.txt).
> The HTML version of this page is at https://projectcapsule.dev/project/resources/.

## Meet the community 📅

Join an upcoming event or catch up on what recently happened in the Capsule community.

<div class="events-calendar pe-md-3 pe-xl-4">
  <div class="mb-4">
    <p>
      Upcoming opportunities to meet the Project Capsule community. The list
      is sorted automatically from the shared event data.
    </p>
    
  </div>

  
    <details class="mb-4" open>
      <summary class="h4 mb-3">
        Upcoming events
        <span class="badge rounded-pill text-bg-light align-middle fs-6">
          2
        </span>
      </summary>
      <div>
        
          <article class="card mb-3" id="event-swiss-dev-confederation-2026">
  <div class="card-body">
    <div class="row g-3 align-items-start">
      <div class="col-12 col-sm-3 col-lg-2">
        <time class="d-block rounded border text-center px-2 py-2"
              datetime="2026-10-27">
          
            <span class="d-block small fw-semibold text-uppercase text-muted">
              Oct
            </span>
          
          <span class="d-block fs-4 fw-bold lh-sm">27</span>
          <span class="d-block small text-muted">2026</span>
        </time>
      </div>
      <div class="col-12 col-sm-9 col-lg-10">
        <h3 class="h5 mb-1">
          <a href="https://reg.experiences.redhat.com/flow/redhat/3624601/redhatfieldeventspreregnoappform/page/landingregistrationpage" rel="noopener">Swiss Dev Confederation</a>
          <span aria-hidden="true">🇨🇭</span>
        </h3>
        <p class="small fw-semibold text-muted mb-2">27 October 2026</p>
        <div class="mb-0">Together with a long-term adopter, we will demonstrate how Capsule can enhance the multi-tenancy experience with Red Hat OpenShift.</div>
        
      </div>
    </div>
  </div>
</article>

        
          <article class="card mb-3" id="event-kubecon-cloudnativecon-north-america-2026">
  <div class="card-body">
    <div class="row g-3 align-items-start">
      <div class="col-12 col-sm-3 col-lg-2">
        <time class="d-block rounded border text-center px-2 py-2"
              datetime="2026-11-09">
          
            <span class="d-block small fw-semibold text-uppercase text-muted">
              Nov
            </span>
          
          <span class="d-block fs-4 fw-bold lh-sm">9–12</span>
          <span class="d-block small text-muted">2026</span>
        </time>
      </div>
      <div class="col-12 col-sm-9 col-lg-10">
        <h3 class="h5 mb-1">
          <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" rel="noopener">KubeCon &#43; CloudNativeCon North America</a>
          <span aria-hidden="true">🇺🇸</span>
        </h3>
        <p class="small fw-semibold text-muted mb-2">9–12 November 2026</p>
        <div class="mb-0">Visit the Project Capsule kiosk in the Solutions Showcase.</div>
        
          <ul class="mb-0 mt-2">
            <li>Kiosk shift: Thursday, 10:15–11:55</li><li>Kiosk number: P-4B</li><li>Location: Level 1, Hall 5</li>
          </ul>
        
      </div>
    </div>
  </div>
</article>

        
      </div>
    </details>
  

  
    <details class="mt-4">
      <summary class="h4 mb-3">
        Past events
        <span class="badge rounded-pill text-bg-light align-middle fs-6">
          2
        </span>
      </summary>
      <div>
        
          <article class="card mb-3" id="event-kcd-sofia-2026">
  <div class="card-body">
    <div class="row g-3 align-items-start">
      <div class="col-12 col-sm-3 col-lg-2">
        <time class="d-block rounded border text-center px-2 py-2"
              datetime="2026-09-29">
          
            <span class="d-block small fw-semibold text-uppercase text-muted">
              Sep
            </span>
          
          <span class="d-block fs-4 fw-bold lh-sm">29</span>
          <span class="d-block small text-muted">2026</span>
        </time>
      </div>
      <div class="col-12 col-sm-9 col-lg-10">
        <h3 class="h5 mb-1">
          <a href="https://kcd.bg/agenda/" rel="noopener">KCD Sofia 2026</a>
          <span aria-hidden="true">🇧🇬</span>
        </h3>
        <p class="small fw-semibold text-muted mb-2">29 September 2026</p>
        <div class="mb-0">Hristo Hristov will speak about Capsule and why Namespaces alone do not provide multi-tenancy.</div>
        
      </div>
    </div>
  </div>
</article>

        
          <article class="card mb-3" id="event-swiss-cloud-native-day-2026">
  <div class="card-body">
    <div class="row g-3 align-items-start">
      <div class="col-12 col-sm-3 col-lg-2">
        <time class="d-block rounded border text-center px-2 py-2"
              datetime="2026-09-17">
          
            <span class="d-block small fw-semibold text-uppercase text-muted">
              Sep
            </span>
          
          <span class="d-block fs-4 fw-bold lh-sm">17</span>
          <span class="d-block small text-muted">2026</span>
        </time>
      </div>
      <div class="col-12 col-sm-9 col-lg-10">
        <h3 class="h5 mb-1">
          <a href="https://cloudnativeday.ch/" rel="noopener">Swiss Cloud Native Day</a>
          <span aria-hidden="true">🇨🇭</span>
        </h3>
        <p class="small fw-semibold text-muted mb-2">17 September 2026</p>
        <div class="mb-0">Meet the Capsule maintainers at Swiss Cloud Native Day 2026. We will be there with a booth sponsored by Peak Scale.</div>
        
      </div>
    </div>
  </div>
</article>

        
      </div>
    </details>
  
</div>


## Learn from the community

<div class="resource-browser" data-resource-browser>
  <div class="resource-browser__summary d-flex flex-column flex-md-row align-items-md-end justify-content-between gap-2 mb-4">
    <div>
      <p class="text-uppercase fw-semibold mb-1">Community library</p>
      <p class="lead mb-0">Browse videos, articles, and downloadable presentations from the Capsule community.</p>
    </div>
    <span class="resource-browser__total text-nowrap" data-resource-count aria-live="polite">16 resources</span>
  </div>

  <div class="resource-browser__toolbar mb-5" aria-label="Filter resources">
    <div class="row g-3 align-items-end">
      <div class="col-12 col-lg-5">
        <label class="form-label fw-semibold" for="resource-search">Search</label>
        <div class="input-group">
          <span class="input-group-text" aria-hidden="true"><i class="fa-solid fa-magnifying-glass"></i></span>
          <input
            id="resource-search"
            class="form-control"
            type="search"
            placeholder="Search by title, topic, or format"
            autocomplete="off"
            data-resource-search-input
          >
        </div>
      </div>

      <div class="col-12 col-md-7 col-lg-4">
        <span class="form-label fw-semibold d-block">Format</span>
        <div class="btn-group w-100" role="group" aria-label="Resource format">
          <button class="btn btn-primary" type="button" data-resource-type-filter="all" aria-pressed="true">All</button>
            <button class="btn btn-outline-secondary" type="button" data-resource-type-filter="video" aria-pressed="false">Videos</button>
            <button class="btn btn-outline-secondary" type="button" data-resource-type-filter="article" aria-pressed="false">Articles</button>
            <button class="btn btn-outline-secondary" type="button" data-resource-type-filter="presentation" aria-pressed="false">Presentations</button>
        </div>
      </div>

      <div class="col-8 col-md-3 col-lg-2">
        <label class="form-label fw-semibold" for="resource-year">Year</label>
        <select id="resource-year" class="form-select" data-resource-year-filter>
          <option value="all">All years</option>
            <option value="2026">2026</option>
            <option value="2025">2025</option>
            <option value="2024">2024</option>
            <option value="2023">2023</option>
            <option value="2021">2021</option>
        </select>
      </div>

      <div class="col-4 col-md-2 col-lg-1 d-grid">
        <button class="btn btn-link px-1" type="button" data-resource-reset>Reset</button>
      </div>
    </div>
  </div>

  <div data-resource-results><section class="resource-browser__year mb-5" data-resource-year-group="2026">
        <div class="resource-browser__year-heading d-flex align-items-center gap-3 mb-3">
          <h2 class="h3 mb-0">2026</h2>
          <span aria-hidden="true"></span>
        </div>
        <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4">
              <div
  class="col resource"
  data-resource-card
  data-resource-type="presentation"
  data-resource-year="2026"
  data-resource-search="project capsule overview presentation a 15-minute introduction to shared-cluster multi-tenancy, delegated ownership, and policy guardrails. overview multi-tenancy"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://raw.githubusercontent.com/cncf/artwork/master/projects/capsule/icon/color/capsule-icon-color.svg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-file-arrow-down" aria-hidden="true"></i><span>Presentation</span>
        </span>
        <time datetime="2026-09-03">Sep 3, 2026</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="/presentations/Project_Capsule_Overview.pptx" target="_blank" rel="noopener noreferrer" download>
            Project Capsule Overview
            <span class="visually-hidden"> (downloads presentation)</span>
          </a>
        </h3>
          <p class="card-text text-body-secondary mt-3 mb-0">A 15-minute introduction to shared-cluster multi-tenancy, delegated ownership, and policy guardrails.</p>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Overview</span>
            <span class="badge rounded-pill">Multi tenancy</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2026"
  data-resource-search="chatloopbackoff episode 79: capsule with thomas and oliver video  maintainer"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/a7yVjFFa0Eo/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2026-08-01">Aug 1, 2026</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=a7yVjFFa0Eo" target="_blank" rel="noopener noreferrer">
            ChatLoopBackOff Episode 79: Capsule with Thomas and Oliver
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Maintainer</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2026"
  data-resource-search="rex ubisoft - quand et comment partager un cluster : retour d&#39;expérience sur capsule chez ubisoft video  customer-journey"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/NAx2s_o1iuE/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2026-02-25">Feb 25, 2026</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=NAx2s_o1iuE" target="_blank" rel="noopener noreferrer">
            REX Ubisoft - Quand et comment partager un cluster : retour d&rsquo;expérience sur Capsule chez Ubisoft
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Customer journey</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2026"
  data-resource-search="rex dinum -les ingrédients multitenancy et authentification pour une distribution k8s open-source video  customer-journey"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/zWayprWXWVg/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2026-02-25">Feb 25, 2026</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=zWayprWXWVg" target="_blank" rel="noopener noreferrer">
            REX DINUM -Les ingrédients multitenancy et authentification pour une distribution k8s open-source
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Customer journey</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2026"
  data-resource-search="rex renault - kubernetes as a service : sécurité, innovation et self-service à grande échelle video  customer-journey"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/F8x6DBeNeqg/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2026-02-25">Feb 25, 2026</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=F8x6DBeNeqg" target="_blank" rel="noopener noreferrer">
            REX Renault - Kubernetes as a Service : sécurité, innovation et self-service à grande échelle
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Customer journey</span>
      </div>
    </div>
  </article>
</div>

        </div>
      </section><section class="resource-browser__year mb-5" data-resource-year-group="2025">
        <div class="resource-browser__year-heading d-flex align-items-center gap-3 mb-3">
          <h2 class="h3 mb-0">2025</h2>
          <span aria-hidden="true"></span>
        </div>
        <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4">
              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2025"
  data-resource-search="the state of multi-tenancy in kubernetes by loftlabs video  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="/images/content/multi-tenant-spectrum.png"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2025-02-27">Feb 27, 2025</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.linkedin.com/events/7297698298100936704/comments/" target="_blank" rel="noopener noreferrer">
            The State of Multi-tenancy in Kubernetes by LoftLabs
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="article"
  data-resource-year="2025"
  data-resource-search="kubernetes multi-tenancy spectrum by aniele polencic article  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="/images/content/multi-tenant-spectrum.png"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-newspaper" aria-hidden="true"></i><span>Article</span>
        </span>
        <time datetime="2025-02-10">Feb 10, 2025</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.linkedin.com/posts/danielepolencic_multi-tenancy-spectrum-in-kubernetes-ugcPost-7299773103826423809-logM?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAACmXYUUB8FmX69ABG0zyNMP4W0AhGgWpgNU" target="_blank" rel="noopener noreferrer">
            Kubernetes Multi-tenancy Spectrum by aniele Polencic
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

        </div>
      </section><section class="resource-browser__year mb-5" data-resource-year-group="2024">
        <div class="resource-browser__year-heading d-flex align-items-center gap-3 mb-3">
          <h2 class="h3 mb-0">2024</h2>
          <span aria-hidden="true"></span>
        </div>
        <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4">
              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2024"
  data-resource-search="taming the kube tenancy kraken (capsule with rancher) video  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/dEVeWXUNbxQ/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2024-12-12">Dec 12, 2024</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=dEVeWXUNbxQ" target="_blank" rel="noopener noreferrer">
            Taming the Kube tenancy kraken (Capsule with Rancher)
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2024"
  data-resource-search="nvidia case study: the many facets of building &#43; delivering ai in the cloud video  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/81A31kH6ZB4/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2024-11-14">Nov 14, 2024</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=81A31kH6ZB4" target="_blank" rel="noopener noreferrer">
            NVIDIA Case Study: The Many Facets of Building + Delivering AI in the Cloud
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2024"
  data-resource-search="painless multi-tenant kafka on kubernetes with istio at asml - thomas reichel &amp; dominique chanet video  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/qMkV5qeOnfg/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2024-10-07">Oct 7, 2024</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=qMkV5qeOnfg" target="_blank" rel="noopener noreferrer">
            Painless Multi-Tenant Kafka on Kubernetes with Istio at ASML - Thomas Reichel &amp; Dominique Chanet
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

        </div>
      </section><section class="resource-browser__year mb-5" data-resource-year-group="2023">
        <div class="resource-browser__year-heading d-flex align-items-center gap-3 mb-3">
          <h2 class="h3 mb-0">2023</h2>
          <span aria-hidden="true"></span>
        </div>
        <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4">
              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2023"
  data-resource-search="confused by kubernetes multi-tenancy? a workshop with dario tranchitella video  "
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/m5TAb6UWlwA/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2023-12-13">Dec 13, 2023</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=m5TAb6UWlwA" target="_blank" rel="noopener noreferrer">
            Confused by Kubernetes Multi-Tenancy? A Workshop with Dario Tranchitella
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-hidden="true">
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2023"
  data-resource-search="multi-tenant kubernetes cluster with capsule video  talk maintainer customer-journey"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/H8bzEJN7fj8/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2023-12-13">Dec 13, 2023</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=H8bzEJN7fj8" target="_blank" rel="noopener noreferrer">
            Multi-Tenant Kubernetes Cluster With Capsule
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Talk</span>
            <span class="badge rounded-pill">Maintainer</span>
            <span class="badge rounded-pill">Customer journey</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2023"
  data-resource-search="multi-tenant kubernetes cluster with capsule video  talk maintainer"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/1sVq8gzwyRU/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2023-12-13">Dec 13, 2023</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=1sVq8gzwyRU" target="_blank" rel="noopener noreferrer">
            Multi-Tenant Kubernetes Cluster With Capsule
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Talk</span>
            <span class="badge rounded-pill">Maintainer</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="article"
  data-resource-year="2023"
  data-resource-search="how tomtom achieves kubernetes multi-tenancy with capsule article  customer-journey"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://raw.githubusercontent.com/cncf/artwork/master/projects/capsule/icon/color/capsule-icon-color.svg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-newspaper" aria-hidden="true"></i><span>Article</span>
        </span>
        <time datetime="2023-10-13">Oct 13, 2023</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://engineering.tomtom.com/capsule-kubernetes-multitenancy/" target="_blank" rel="noopener noreferrer">
            How TomTom achieves Kubernetes multi-tenancy with Capsule
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Customer journey</span>
      </div>
    </div>
  </article>
</div>

        </div>
      </section><section class="resource-browser__year mb-5" data-resource-year-group="2021">
        <div class="resource-browser__year-heading d-flex align-items-center gap-3 mb-3">
          <h2 class="h3 mb-0">2021</h2>
          <span aria-hidden="true"></span>
        </div>
        <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4">
              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2021"
  data-resource-search="multi-tenancy in kubernetes: how we avoided clusters sprawl video  talk maintainer"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/WWKat7NP0NM/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2021-05-14">May 14, 2021</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=WWKat7NP0NM" target="_blank" rel="noopener noreferrer">
            Multi-Tenancy in Kubernetes: How We Avoided Clusters Sprawl
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Talk</span>
            <span class="badge rounded-pill">Maintainer</span>
      </div>
    </div>
  </article>
</div>

              <div
  class="col resource"
  data-resource-card
  data-resource-type="video"
  data-resource-year="2021"
  data-resource-search="how to address multi-tenancy in kubernetes: the capsule way, with dario tranchitella video  talk maintainer"
>
  <article class="card resource-card h-100">
    <div class="ratio ratio-16x9 resource-card__media">
      <img
        src="https://i3.ytimg.com/vi/jWvoFZOCUNY/0.jpg"
        class="card-img-top"
        alt=""
        loading="lazy"
        width="640"
        height="360"
      >
    </div>

    <div class="card-body d-flex flex-column text-start">
      <div class="resource-card__meta d-flex align-items-center justify-content-between gap-2 mb-3">
        <span class="badge resource-card__type"><i class="fa-solid fa-circle-play" aria-hidden="true"></i><span>Video</span>
        </span>
        <time datetime="2021-03-25">Mar 25, 2021</time>
      </div>

      <div class="resource-card__copy">
        <h3 class="h5 card-title mb-0">
          <a class="stretched-link" href="https://www.youtube.com/watch?v=jWvoFZOCUNY" target="_blank" rel="noopener noreferrer">
            How to address Multi-Tenancy in Kubernetes: the Capsule way, with Dario Tranchitella
            <span class="visually-hidden"> (opens in a new tab)</span>
          </a>
        </h3>
      </div>

      <div class="resource-card__tags d-flex flex-wrap gap-1" aria-label="Topics">
            <span class="badge rounded-pill">Talk</span>
            <span class="badge rounded-pill">Maintainer</span>
      </div>
    </div>
  </article>
</div>

        </div>
      </section>
  </div>

  <div class="resource-browser__empty text-center d-none" data-resource-empty>
    <i class="fa-solid fa-binoculars" aria-hidden="true"></i>
    <h2 class="h4 mt-3">No resources found</h2>
    <p class="text-body-secondary mb-3">Try another search term or broaden the filters.</p>
    <button class="btn btn-primary" type="button" data-resource-reset>Clear filters</button>
  </div>
</div>

<script>
  (() => {
    document.querySelectorAll("[data-resource-browser]:not([data-resource-ready])").forEach((root) => {
      root.setAttribute("data-resource-ready", "true");

      const cards = Array.from(root.querySelectorAll("[data-resource-card]"));
      const groups = Array.from(root.querySelectorAll("[data-resource-year-group]"));
      const typeButtons = Array.from(root.querySelectorAll("[data-resource-type-filter]"));
      const searchInput = root.querySelector("[data-resource-search-input]");
      const yearSelect = root.querySelector("[data-resource-year-filter]");
      const count = root.querySelector("[data-resource-count]");
      const empty = root.querySelector("[data-resource-empty]");
      const resetButtons = Array.from(root.querySelectorAll("[data-resource-reset]"));
      let selectedType = "all";

      const updateTypeParameter = () => {
        const url = new URL(window.location.href);

        if (selectedType === "all") {
          url.searchParams.delete("type");
        } else {
          url.searchParams.set("type", selectedType);
        }

        window.history.replaceState(null, "", `${url.pathname}${url.search}${url.hash}`);
      };

      const update = () => {
        const query = searchInput.value.trim().toLocaleLowerCase();
        const selectedYear = yearSelect.value;
        let visibleCount = 0;

        cards.forEach((card) => {
          const matchesSearch = !query || card.dataset.resourceSearch.includes(query);
          const matchesType = selectedType === "all" || card.dataset.resourceType === selectedType;
          const matchesYear = selectedYear === "all" || card.dataset.resourceYear === selectedYear;
          const visible = matchesSearch && matchesType && matchesYear;

          card.classList.toggle("d-none", !visible);
          if (visible) visibleCount += 1;
        });

        groups.forEach((group) => {
          const hasVisibleCard = Array.from(group.querySelectorAll("[data-resource-card]")).some(
            (card) => !card.classList.contains("d-none")
          );
          group.classList.toggle("d-none", !hasVisibleCard);
        });

        count.textContent = `${visibleCount} ${visibleCount === 1 ? "resource" : "resources"}`;
        empty.classList.toggle("d-none", visibleCount !== 0);
      };

      const selectType = (button, updateUrl = true) => {
        selectedType = button.dataset.resourceTypeFilter;
        typeButtons.forEach((candidate) => {
          const active = candidate === button;
          candidate.classList.toggle("btn-primary", active);
          candidate.classList.toggle("btn-outline-secondary", !active);
          candidate.setAttribute("aria-pressed", active ? "true" : "false");
        });

        if (updateUrl) updateTypeParameter();
        update();
      };

      typeButtons.forEach((button) => {
        button.addEventListener("click", () => selectType(button));
      });

      searchInput.addEventListener("input", update);
      yearSelect.addEventListener("change", update);
      resetButtons.forEach((button) => {
        button.addEventListener("click", () => {
          searchInput.value = "";
          yearSelect.value = "all";
          typeButtons[0].click();
          searchInput.focus();
        });
      });

      const requestedType = new URLSearchParams(window.location.search).get("type");
      const initialTypeButton = typeButtons.find(
        (button) => button.dataset.resourceTypeFilter === requestedType
      );
      selectType(initialTypeButton || typeButtons[0], false);
    });
  })();
</script>

---

Last modified August 21, 2026: feat: rewrite quickstart and refactor page ordering (#117) (#125) (040fb2a)
