# Ecosystem

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

All entries on this page were added by people who worked on these and thus self-identified as being part of the Project Capsule Ecosystem.

## Integrations

Capsule works well with other [CNCF](https://landscape.cncf.io/) kubernetes based solutions. Below you can see the ones we have documented. In the end it can work with any solution, due to Capsule's kubernetes native approach:

<div class="row">
  
  
  
  
  
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/argocd/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://github.com/cncf/artwork/raw/main/projects/argo/icon/color/argo-icon-color.svg" alt="ArgoCD" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>ArgoCD</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/dashboard/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://avatars.githubusercontent.com/u/13629408?s=200&amp;v=4" alt="Dashboard" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Dashboard</h6>
      </div>
    </a>
  </div>
    
    
  
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/envoy-gateway/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://github.com/cncf/artwork/raw/main/projects/envoy/envoy-gateway/icon/color/envoy-gateway-icon-color.svg" alt="Envoy-Gateway" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Envoy-Gateway</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/eso/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://github.com/cncf/artwork/raw/main/projects/external-secrets-operator/icon/color/eso-icon-color.svg" alt="External Secrets Operator" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>External Secrets Operator</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/headlamp/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/headlamp/icon/color/headlamp-icon-color.svg" alt="Headlamp" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Headlamp</h6>
      </div>
    </a>
  </div>
    
    
  
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/kyverno/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://github.com/cncf/artwork/raw/refs/heads/main/projects/kyverno/icon/color/kyverno-icon-color.svg" alt="Kyverno" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Kyverno</h6>
      </div>
    </a>
  </div>
    
    
  
    
  
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/opencost/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://landscape.cncf.io/logos/ba27e92ddd22f942dde50f20b6d6d3f2ac7a0b78baf2471bdd89eb5d105c708f.svg" alt="OpenCost" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>OpenCost</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/opensearch/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://github.com/opensearch-project.png" alt="OpenSearch" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>OpenSearch</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="/docs/operating/setup/openshift/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="/images/logos/openshift.png" alt="Openshift" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Openshift</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="/docs/operating/setup/rancher/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://www.rancher.com/assets/img/logos/rancher-suse-logo-stacked-color.svg" alt="Rancher" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Rancher</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="https://projectcapsule.dev/ecosystem/integrations/teleport/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://avatars.githubusercontent.com/u/10781132?s=200&amp;v=4" alt="Teleport" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Teleport</h6>
      </div>
    </a>
  </div>
    
    
  
    
      
      
  <div class="col-12 col-md-2 py-1">
    <a href="/docs/operating/operations/backup-restore/" style="text-decoration: none; color: inherit;">
      <div class="integration-card"
           style="text-align: center;
        border: 1px solid #eee;
        border-radius: 6px;
        padding: 20px;
        size: 6px;
        transition: box-shadow 0.3s ease;">
        <div style="height: 125px;">
        
        <img src="https://velero.io/docs/main/img/velero.png" alt="Velero" style="
          max-height: 100px;
          margin-bottom: 15px;">
        
      </div>
        <h6>Velero</h6>
      </div>
    </a>
  </div>
    
    
  
</div>

## Addons

Addons are separate projects which interact with the core Capsule Project. Since [our commitment](/project/commitment) is, to have a stable core API we decided to push towards an addon based ecosystem. If you have a new addon, which interacts with the capsule core project, consider [adding the addon](/project/contributions/addons/).


    <div class="row">
      <div class="col">
        <div class="form-group">
          <h5><label class="d-block" for="search">Search</label></h5>
          <input type="search" placeholder="Search query" class="form-control" id="search" oninput="filterEnvironments()">
        </div>
      </div>
    </div>


    <div class="row mt-5">
        
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="proxy" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/capsule/icon/color/capsule-icon-color.svg') no-repeat center center;
                background-color: #00264d;
                background-size: 50%;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">Proxy</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="/docs/proxy/" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fa fa-book"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">core</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">ux</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFFFFF;
                  font-weight: 400;">Enhance the user experience by allowing users to query the Kubernetes API and only getting the results, they are supposed to get.</p>


              </div>
            </div>
        </div>
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="rancher" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://www.rancher.com/assets/img/logos/rancher-logo-cow-blue.svg') no-repeat center center;
                background-color: #00264d;
                background-size: 50%;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">Rancher</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="/ecosystem/integrations/rancher/" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fa fa-book"></i>
                  </a>
                  
                  <a href="https://github.com/clastix/capsule-addon-rancher" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fab fa-github"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">community</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">ux</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFFFFF;
                  font-weight: 400;">Integrate Capsule with Rancher to manage Capsule Tenants and their resources with Rancher Projects.</p>


              </div>
            </div>
        </div>
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="argocd" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://github.com/peak-scale/capsule-argo-addon/blob/main/docs/images/capsule-argo.png?raw=true') no-repeat center center;
                background-color: #FF5722;
                background-size: cover;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">ArgoCD</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="https://github.com/peak-scale/capsule-argo-addon" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fab fa-github"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">vendor</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">gitops</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFEBEE;
                  font-weight: 400;">This addon is designed for kubernetes administrators, to automatically translate their existing Capsule Tenants into Argo Appprojects.</p>


              </div>
            </div>
        </div>
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="sops operator" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/capsule/icon/color/capsule-icon-color.svg') no-repeat center center;
                background-color: #000000;
                background-size: 50%;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">Sops Operator</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="https://github.com/peak-scale/sops-operator" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fab fa-github"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">core</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">secrets</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">gitops</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFFFFF;
                  font-weight: 400;">Handle SOPS Secrets in a multi-tenant and kubernetes-native way.</p>


              </div>
            </div>
        </div>
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="fluxcd" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://raw.githubusercontent.com/cncf/artwork/refs/heads/main/projects/capsule/icon/color/capsule-icon-color.svg') no-repeat center center;
                background-color: #00264d;
                background-size: 50%;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">FluxCD</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="https://github.com/projectcapsule/capsule-addon-fluxcd" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fab fa-github"></i>
                  </a>
                  
                  <a href="https://fluxcd.io/flux/installation/configuration/multitenancy/" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fa fa-book"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">core</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">gitops</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFFFFF;
                  font-weight: 400;">In particular enables Tenants to manage their resources, including creating Namespaces.</p>


              </div>
            </div>
        </div>
        
        
        <div class="col-12 py-2 col-md-6 env-item" 
        data-name="cortex proxy" 
        data-repo="">
            <div style="
              height: 300px;
              border-radius: 10px;
              text-align: center;
              box-shadow: 2px 2px 16px rgba(49, 50, 58, 0.15);
              position: relative;
              overflow: hidden;">
              
              
              <div style="
                background: url('https://github.com/projectcapsule/cortex-proxy/raw/main/docs/images/logo.png') no-repeat center center;
                background-color: #802A78;
                background-size: cover;
                background-repeat: no-repeat;
                opacity: 1;
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 0;">
              </div>
    
              
              <div style="position: relative; z-index: 1; padding: 20px;">
                <h4 style="
                  margin-top: 15px;
                  font-size: 20px;
                  font-weight: 700;
                  color: #FFFFFF;">Cortex Proxy</h4>
    
                
                
                <div style="margin-top: 25px; display: flex; justify-content: center; gap: 10px;">
                  
                  <a href="https://github.com/projectcapsule/cortex-proxy" target="_blank" rel="noopener noreferrer"  style="
                    text-decoration: none;
                    color: white;
                    font-size: 50px;">
                    <i class="fab fa-github"></i>
                  </a>
                  
                </div>
                

                
                
                <div style="margin-top: 15px;">
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">core</span>
                  
                  <span style="
                    background-color: rgba(255, 255, 255, 0.2);
                    padding: 5px 10px;
                    border-radius: 12px;
                    color: white;
                    font-size: 12px;
                    margin-right: 5px;
                    display: inline-block;">observability</span>
                  
                </div>
                

                <p style="
                  margin-top: 10px;
                  font-size: 14px;
                  color: #FFFFFF;
                  font-weight: 400;">Route metrics to cortex organizations based on the relational of namespace metrics to capsule tenants.</p>


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

  <script>
    function filterEnvironments() {
      const searchQuery = document.getElementById('search').value.trim().toLowerCase();
      const envItems = document.querySelectorAll('.env-item');
  
      envItems.forEach(item => {
        const name = item.getAttribute('data-name');
        const repo = item.getAttribute('data-repo');
  
        if (name.includes(searchQuery) || repo.includes(searchQuery)) {
          item.style.display = 'block';
        } else {
          item.style.display = 'none';
        }
      });
    }
  </script>

---

Last modified June 4, 2026: feat: add prek as precommit (#92) (608bd1f)
