# Partner

LLMS index: [llms.txt](/llms.txt)

---

<section id="users">
    <h5>Kubernetes collabora con i partner per creare per creare un codebase che supporti uno spettro di piattaforme complementari.</h5>
    <div class="col-container">
      <div class="col-nav">
        <center>
          <h5>
            <b>Fornitori Certificati di Servizi su Kubernetes</b>
          </h5>
          <br>Fornitori di servizi riconosciuti e con grande esperienza nell'aiutare le imprese ad adottare con successo Kubernetes.
          <br><br><br>
          <button class="button landscape-trigger landscape-default" data-landscape-types="special--kubernetes-certified-service-provider" id="kcsp">Guarda i Partners KCSP</button>
          <br><br>Interessato a diventare un partner
          <a href="https://www.cncf.io/certification/kcsp/">KCSP</a>?
        </center>
      </div>
      <div class="col-nav">
        <center>
          <h5>
            <b>Distribuzioni di Kubernetes Certificate, Certified Hosted Platforms and Software di installazione Certificati</b>
          </h5>La conformità del software assicura che le versioni di Kubernetes prodotte da ogni fornitore supportino coerentemente le API necessarie.
          <br><br><br>
          <button class="button landscape-trigger" data-landscape-types="platform" id="conformance">Guarda i Partner certificati</button>
          <br><br>Interessato a diventare un partner
          <a href="https://www.cncf.io/certification/software-conformance/">certificato Kubernetes</a>?
        </center>
      </div>
      <div class="col-nav">
        <center>
          <h5>
            <b>Partner per la Formazione su Kubernetes</b>
          </h5>
          <br>Professionisti riconosciuti e certificati, con solida esperienza nella formazione su tecnologie Cloud Native.
          <br><br><br>
          <button class="button landscape-trigger" data-landscape-types="special--kubernetes-training-partner" id="ktp">Guarda i KTP partner</button>
          <br><br>Interessato a diventare un partner
          <a href="https://www.cncf.io/certification/training/">KTP</a>?
        </center>
      </div>
    </div>
    
    
    
    
    
    <script>
    function updateLandscapeSource(button,shouldUpdateFragment) {
      console.log({button: button,shouldUpdateFragment: shouldUpdateFragment});
      try {
        if(shouldUpdateFragment) {
          window.location.hash = "#iframe-landscape-"+button.id;
          
        } else {
          var landscapeElements = document.querySelectorAll("#landscape");
          let categories=button.dataset.landscapeTypes;
          let link = `https://landscape.cncf.io/embed/embed.html?key=${encodeURIComponent(categories)}&headers=false&style=shadowed&size=md&bg-color=%23d95e00&fg-color=%23ffffff&iframe-resizer=true`
          landscapeElements[0].src = link;
        }
      }
      catch(err) {
        console.log({message: "error handling Landscape switch", error: err})
      }
    }
    
    
    document.addEventListener("DOMContentLoaded", function () {
      let hashChangeHandler = () => {
        if (window.location.hash) {
          let selectedTriggerElements = document.querySelectorAll(".landscape-trigger"+window.location.hash);
          if (selectedTriggerElements.length == 1) {
            landscapeSource = selectedTriggerElements[0];
            console.log("Updating Landscape source based on fragment:", window
              .location
              .hash
              .substring(1));
            updateLandscapeSource(landscapeSource,false);
          }
        }
      }
      var landscapeTriggerElements = document.querySelectorAll(".landscape-trigger");
      landscapeTriggerElements.forEach(element => {
        element.onclick = function() {
            updateLandscapeSource(element,true);
        };
      });
      var landscapeDefaultElements = document.querySelectorAll(".landscape-trigger.landscape-default");
      if (landscapeDefaultElements.length == 1) {
        let defaultLandscapeSource = landscapeDefaultElements[0];
        updateLandscapeSource(defaultLandscapeSource,false);
      }
      window.addEventListener("hashchange", hashChangeHandler, false);
       
      hashChangeHandler();
    });
    </script><div id="frameHolder">
      
      <style>
         
        #iframe-landscape-kcsp, #iframe-landscape-conformance, #iframe-landscape-kcntp {
          scroll-margin-top: 35px;
        }
      </style>
      <iframe id="iframe-landscape-kcsp" src="https://landscape.cncf.io/embed/embed.html?key=special--kubernetes-certified-service-provider&headers=true&style=shadowed&size=md&bg-color=%233371e3&fg-color=%23ffffff&iframe-resizer=true" style="width: 1px; min-width: 100%; min-height: 100px; border: 0;"></iframe>
      <iframe id="iframe-landscape-conformance" src="https://landscape.cncf.io/embed/embed.html?key=platform&headers=true&style=shadowed&size=md&bg-color=%233371e3&fg-color=%23ffffff&iframe-resizer=true" style="width: 1px; min-width: 100%; min-height: 100px; border: 0;"></iframe>
      <iframe id="iframe-landscape-kcntp" src="https://landscape.cncf.io/embed/embed.html?key=special--kubernetes-and-cloud-native-training-partner&headers=true&style=shadowed&size=md&bg-color=%233371e3&fg-color=%23ffffff&iframe-resizer=true" style="width: 1px; min-width: 100%; min-height: 100px; border: 0;"></iframe>
      <script>
        iFrameResize({ }, '#iframe-landscape-kcsp');
        iFrameResize({ }, '#iframe-landscape-conformance');
        iFrameResize({ }, '#iframe-landscape-kcntp');
      </script>
      
    </div>
</section>

<style>
    /*  SECTIONS  */
    .section {
    	clear: both;
    	padding: 0px;
    	margin-bottom: 2em;
    }
    
    .kcsp_section {
    	clear: both;
    	padding: 0px;
    	margin-bottom: 2em;
    }
    
    /*  COLUMN SETUP  */
    .col {
    	display: block;
    	float:left;
    	margin: 1% 0 1% 1.6%;
    	background-color: #f9f9f9;
    }
    .col:first-child { margin-left: 0; }
    
    
    /*  GROUPING  */
    .group:before,
    .group:after {
    	content:"";
    	display:table;
    }
    .group:after {
    	clear:both;
    }
    .group {
        zoom:1; /* For IE 6/7 */
    }
    
    /*  GRID OF THREE  */
    .span_3_of_3 {
    	width: 35%;
    	background-color: #f9f9f9;
    	padding: 20px;
    }
    .span_2_of_3 {
    	width: 35%;
    	background-color: #f9f9f9;
    	padding: 20px;
    }
    .span_1_of_3 {
    	width: 35%;
    	background-color: #f9f9f9;
    	padding: 20px;
    }
    
    .col-container {
        display: table; /* Make the container element behave like a table */
        width: 100%; /* Set full-width to expand the whole page */
    		padding-bottom: 30px;
    }
    
    .col-nav {
        display: table-cell; /* Make elements inside the container behave like table cells */
    		width: 18%;
    		background-color: #f9f9f9;
    		padding: 20px;
    		border: 5px solid white;
    }
    
    /*  GO FULL WIDTH AT LESS THAN 480 PIXELS */
    
    @media only screen and (max-width: 480px) {
    	.col { margin: 1% 0 1% 0%;}
    	.span_3_of_3, .span_2_of_3, .span_1_of_3 { width: 100%; }
    }
    
    @media only screen and (max-width: 650px) {
        .col-nav {
            display: block;
            width: 100%;
        }
    }
    
    .button{
      max-width: 100%;
    	box-sizing: border-box;
    	margin: 0;
    	display: inline-block;
    	border-radius: 6px;
    	padding: 0 20px;
    	line-height: 40px;
    	color: #ffffff;
    	font-size: 16px;
    	background-color: #3371e3;
    	text-decoration: none;
     }
    
    h5 {
    	font-size: 16px;
    	line-height: 1.5em;
    	margin-bottom: 2em;
    }
    
    #usersGrid a {
    	display: inline-block;
    	background-color: #f9f9f9;
    }
    
    #ktpContainer, #distContainer, #kcspContainer, #isvContainer, #servContainer {
    	position: relative;
    	width: 100%;
    	display: flex;
    	justify-content: space-between;
    	flex-wrap: wrap;
    }
    
    #isvContainer {
    	margin-bottom: 80px;
    }
    
    #kcspContainer {
    	margin-bottom: 80px;
    }
    
    #distContainer {
    	margin-bottom: 80px;
    }
    
    #ktpContainer {
    	margin-bottom: 80px;
    }
    
    .partner-box {
    	position: relative;
    	width: 47%;
    	max-width: 48%;
    	min-width: 48%;
    	margin-bottom: 20px;
    	padding: 20px;
    	flex: 1;
    	display: flex;
    	justify-content: left;
    	align-items: flex-start;
    }
    
    .partner-box img {
    	background-color: #f9f9f9;
    }
    
    .partner-box > div {
    	margin-left: 30px;
    }
    
    .partner-box a {
    	color: #3576E3;
    }
    
    @media screen and (max-width: 1024px) {
    	.partner-box {
    		flex-direction: column;
    		justify-content: flex-start;
    	}
    
    	.partner-box > div {
    		margin: 20px 0 0;
    	}
    }
    
    @media screen and (max-width: 568px) {
    	#ktpContainer, #distContainter, #kcspContainer, #isvContainer, #servContainer {
    		justify-content: center;
    	}
    
    	.partner-box {
    		flex-direction: column;
    		justify-content: flex-start;
    		width: 100%;
    		max-width: 100%;
    		min-width: 100%;
    	}
    
    	.partner-box > div {
    		margin: 20px 0 0;
    	}
    }
    
    @media screen and (max-width: 568px) {
    	#ktpContainer, #distContainer, #kcspContainer, #isvContainer, #servContainer {
    		justify-content: center;
    	}
    
    	.partner-box {
    		flex-direction: column;
    		justify-content: flex-start;
    		width: 100%;
    		max-width: 100%;
    		min-width: 100%;
    	}
    
    	.partner-box > div {
    		margin: 20px 0 0;
    	}
    }

</style>
