CINXE.COM
CNCF Annual Report 2018 | CNCF
<!DOCTYPE html> <html lang="en-US" class="no-focus-outline"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>CNCF Annual Report 2018 | CNCF</title> <!-- The SEO Framework by Sybre Waaijer --> <meta name="robots" content="max-snippet:-1,max-image-preview:standard,max-video-preview:-1" /> <link rel="canonical" href="https://www.cncf.io/reports/cncf-annual-report-2018/" /> <meta property="og:type" content="article" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="CNCF" /> <meta property="og:title" content="CNCF Annual Report 2018" /> <meta property="og:url" content="https://www.cncf.io/reports/cncf-annual-report-2018/" /> <meta property="og:image" content="https://www.cncf.io/wp-content/uploads/2018/12/Screen-Shot-2022-01-27-at-9.12.25-PM.jpg" /> <meta property="og:image:width" content="1858" /> <meta property="og:image:height" content="798" /> <meta property="article:published_time" content="2018-12-25T08:32:00+00:00" /> <meta property="article:modified_time" content="2022-05-07T10:06:40+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@cloudnativefdn" /> <meta name="twitter:title" content="CNCF Annual Report 2018" /> <meta name="twitter:image" content="https://www.cncf.io/wp-content/uploads/2018/12/Screen-Shot-2022-01-27-at-9.12.25-PM.jpg" /> <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://www.cncf.io/#/schema/WebSite","url":"https://www.cncf.io/","name":"CNCF","inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.cncf.io/search/{search_term_string}/"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","@id":"https://www.cncf.io/#/schema/Organization","name":"CNCF","url":"https://www.cncf.io/","sameAs":["https://www.facebook.com/CloudNativeComputingFoundation/","https://twitter.com/cloudnativefdn","https://www.instagram.com/humans.of.cloudnative/","https://www.youtube.com/c/cloudnativefdn","https://www.linkedin.com/company/cloud-native-computing-foundation/"],"logo":{"@type":"ImageObject","url":"https://www.cncf.io/wp-content/uploads/2022/11/cncf-logo-stacked.png","contentUrl":"https://www.cncf.io/wp-content/uploads/2022/11/cncf-logo-stacked.png","width":1293,"height":762,"contentSize":"12810"}}},{"@type":"WebPage","@id":"https://www.cncf.io/reports/cncf-annual-report-2018/","url":"https://www.cncf.io/reports/cncf-annual-report-2018/","name":"CNCF Annual Report 2018 | CNCF","inLanguage":"en-US","isPartOf":{"@id":"https://www.cncf.io/#/schema/WebSite"},"breadcrumb":{"@type":"BreadcrumbList","@id":"https://www.cncf.io/#/schema/BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":"https://www.cncf.io/","name":"CNCF"},{"@type":"ListItem","position":2,"name":"CNCF Annual Report 2018"}]},"potentialAction":{"@type":"ReadAction","target":"https://www.cncf.io/reports/cncf-annual-report-2018/"},"datePublished":"2018-12-25T08:32:00+00:00","dateModified":"2022-05-07T10:06:40+00:00"}]}</script> <!-- / The SEO Framework by Sybre Waaijer | 10.18ms meta | 0.41ms boot --> <link rel='dns-prefetch' href='//www.cncf.io' /> <link rel='dns-prefetch' href='//js.hs-scripts.com' /> <link rel='dns-prefetch' href='//cmp.osano.com' /> <link crossorigin='' href='//www.googletagmanager.com' rel='preconnect' /> <link crossorigin='' href='//www.gstatic.com' rel='preconnect' /> <link crossorigin href='//js.hscollectedforms.net' rel='preconnect' /> <link crossorigin href='//js.hs-banner.com' rel='preconnect' /> <link crossorigin href='//js.hs-analytics.net' rel='preconnect' /> <link crossorigin href='//js.hsforms.net' rel='preconnect' /> <link crossorigin href='//js.hs-scripts.com' rel='preconnect' /> <link crossorigin href='//landscape.cncf.io' rel='preconnect' /> <link crossorigin href='//cmp.osano.com' rel='preconnect' /> <link crossorigin href='//consent.api.osano.com' rel='preconnect' /> <style id='wp-block-library-inline-css'> :root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color)}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip:auto!important;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} </style> <link rel='stylesheet' id='main-css' href='https://www.cncf.io/wp-content/themes/cncf-twenty-two/build/styles.min.css?ver=1732368213' media='all' /> <style id='wp-block-button-inline-css'> .wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:initial;background-image:none} </style> <style id='wp-block-buttons-inline-css'> .wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter{text-align:center} </style> <script defer src="https://cmp.osano.com/16A0DbT9yDNIaQkvZ/c3494b1e-ff3a-436f-978d-842e9a0bed27/osano.js?ver=1" id="osano-js"></script> <link rel="https://api.w.org/" href="https://www.cncf.io/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.cncf.io/wp-json/wp/v2/lf_report/67021" /><!-- Google Tag Manager --> <script data-type="lazy" data-src="data:text/javascript;base64,KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOgpuZXcgRGF0ZSgpLmdldFRpbWUoKSxldmVudDonZ3RtLmpzJ30pO3ZhciBmPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF0sCmo9ZC5jcmVhdGVFbGVtZW50KHMpLGRsPWwhPSdkYXRhTGF5ZXInPycmbD0nK2w6Jyc7ai5hc3luYz10cnVlO2ouc3JjPQonaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7Cn0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnZGF0YUxheWVyJywnR1RNLUtOWEZXVicpOw=="></script> <!-- End Google Tag Manager --> <!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.1.65--> <script class="hsq-set-content-id" data-content-id="blog-post"> var _hsq = _hsq || []; _hsq.push(["setContentType", "blog-post"]); </script> <!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin --> <link rel="icon" href="https://www.cncf.io/wp-content/themes/cncf-twenty-two/images/favicon.ico" sizes="any"> <link rel="icon" href="https://www.cncf.io/wp-content/themes/cncf-twenty-two/images/favicon.svg" sizes="any" type="image/svg+xml"> <link rel="apple-touch-icon" href="https://www.cncf.io/wp-content/themes/cncf-twenty-two/images/apple-touch-icon.png"> <link rel="manifest" href="https://www.cncf.io/wp-content/themes/cncf-twenty-two/images/manifest.webmanifest"> <meta name="theme-color" content="#000000"> <meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"NRJS-97e2229449e282c1bef",applicationID:"643908501"};;/*! For license information please see nr-loader-rum-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.274.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);function R(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function E(){const e=(0,g.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function _(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var E="api-",_=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(E,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),R(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(E,e,!0,"api")})),h.addPageAction=j(E,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(E,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(E,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var N=r(9417),T=r(8122);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},j={};var k=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function P(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,N.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");j[e]=(0,T.a)(t,S);const r=(0,g.nY)(e);r&&(r.loader_config=j[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,N.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];O||(h.proxy.assets&&(I(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),E(),(0,g.US)("activatedFeatures",k.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=_(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.274.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-gkYkZDAwQ9PwaDXs2YM+rNIdRej1Ac1mupWobRJ8eahQcXz6/sunGZCKklrzi5kWxhOGRZr2tn0rEKuLTXzfAA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={840:0,374:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,T,j],loaderType:"lite"})})()})();</script> <style> html { visibility: hidden; } </style> </head> <body class="lf_report-template lf_report-template-templates lf_report-template-annual-report-2018 lf_report-template-templatesannual-report-2018-php single single-lf_report postid-67021 wp-embed-responsive"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KNXFWV" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <a class="skip-link" href="#maincontent">Skip to content</a> <a class="skip-link" href="https://www.cncf.io/accessibility-statement/">Accessibility help</a> <div class="hello-bar" role="banner" style="background-color: #0175e4; color: #ffffff"> <div class="container wrap"> <p>Meet us in Delhi for KubeCon + CloudNativeCon India · Dec 11-12 · <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-india/register/?utm_source=www&utm_medium=homepage&utm_campaign=KubeCon-India-2024&utm_content=hello-bar">REGISTER TODAY</a></p> </div> </div> <header class="header"> <div class="container wrap"> <div class="logo"> <a href="/" title="Cloud Native Computing Foundation"> <img loading="eager" src="https://www.cncf.io/wp-content/uploads/2023/04/cncf-main-site-logo.svg" width="210" height="40" alt="Cloud Native Computing Foundation"> </a> </div> <nav class="main-menu"> <ul class="main-menu__wrapper"> <li class="menu-item-has-children"> <a href="#"><span>About</span></a> <div class="sub-menu"> <div class="col-container"> <div class="col1"> <ul id="menu-about_01" class="menu"><li id="menu-item-71611" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71611 lf-menu-title">Discover CNCF</li> <li id="menu-item-112411" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112411"><a href="https://www.cncf.io/membership-hub/">Membership Hub<span class="lf-menu-description">Learn about all the benefits of being a CNCF Member</span></a></li> <li id="menu-item-71617" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71617"><a href="https://www.cncf.io/people/technical-oversight-committee/">Technical Oversight Committee<span class="lf-menu-description">The TOC defines CNCF’s technical vision and provides experienced technical leadership to the cloud native community</span></a></li> <li id="menu-item-71618" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71618"><a href="https://www.cncf.io/people/governing-board/">Governing Board<span class="lf-menu-description">The GB is responsible for marketing, business oversight, and budget decisions for CNCF</span></a></li> <li id="menu-item-102485" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-102485"><a href="https://www.cncf.io/people/end-user-technical-advisory-board/">End User Technical Advisory Board<span class="lf-menu-description">The End User TAB serves as the voice of the end users in CNCF community decisions</span></a></li> <li id="menu-item-72396" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72396"><a href="https://www.cncf.io/people/ambassadors/">Ambassadors<span class="lf-menu-description">Meet our Ambassadors—experienced practitioners passionate about helping others learn about cloud native technologies</span></a></li> </ul> </div> <div class="col2"> <ul id="menu-about_02" class="menu"><li id="menu-item-71619" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71619 lf-menu-title">Additional Info</li> <li id="menu-item-102486" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-102486"><a href="https://www.cncf.io/about/who-we-are/">Who We Are</a></li> <li id="menu-item-112412" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112412"><a href="https://www.cncf.io/about/members/">Member Listing</a></li> <li id="menu-item-74274" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-74274"><a href="https://www.cncf.io/conduct/">Code of Conduct</a></li> <li id="menu-item-118514" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-118514"><a href="https://www.cncf.io/policies/">Policies</a></li> <li id="menu-item-71620" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71620"><a href="https://www.cncf.io/people/staff/">Staff</a></li> <li id="menu-item-71621" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71621"><a href="https://www.cncf.io/about/faq/">FAQ</a></li> <li id="menu-item-71622" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71622"><a href="https://www.cncf.io/about/contact/">Contact Us</a></li> </ul> </div> <div class="col3"> <ul class="menu"> <li class="lf-menu-title">Featured Reads </li> </ul> <div class="columns-one"> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/reports/cncf-annual-report-2023/" title="CNCF Annual Report 2023" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-300x158.jpg 300w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-1024x538.jpg 1024w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-768x403.jpg 768w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-900x473.jpg 900w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-381x200.jpg 381w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-762x400.jpg 762w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner-1180x620.jpg 1180w, https://www.cncf.io/wp-content/uploads/2023/12/Annual-Report-2023_Share-Banner.jpg 1800w" sizes="(max-width: 200px) 100vw, 200px" alt="CNCF Annual Report 2023"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Annual category" href="https://www.cncf.io/reports/?_sft_lf-report-type=annual">Annual Report</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/reports/cncf-annual-report-2023/" title="CNCF Annual Report 2023">CNCF Annual Report 2023</a> </span> <span class="main-menu-item__date">January 23, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/reports/cncf-ecosystem-gaps/" title="CNCF Ecosystem Gaps" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/11/Screenshot-2024-11-14-at-7.40.10 AM-1180x620.jpg 1180w" sizes="(max-width: 200px) 100vw, 200px" alt="CNCF Ecosystem Gaps"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Survey category" href="https://www.cncf.io/reports/?_sft_lf-report-type=survey">Survey Report</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/reports/cncf-ecosystem-gaps/" title="CNCF Ecosystem Gaps">CNCF Ecosystem Gaps</a> </span> <span class="main-menu-item__date">November 14, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper"> <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-india/" title="KubeCon + CloudNativeCon India 2024" class="main-menu-item__link main-menu-item__event"> <!-- event start --> <div class="main-menu-item__event-overlay" style="background-color: rgb(173, 20, 87) "> </div> <figure class="main-menu-item__event-bg-figure"> <img width="194" height="102" loading="lazy" class="main-menu-item__event-bg-image" src="https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/03/Screenshot-2024-11-06-at-10.37.21 AM-1180x620.jpg 1180w" sizes="(max-width: 200px) 100vw, 200px" alt="KubeCon + CloudNativeCon India 2024"> </figure> <div class="main-menu-item__event-content"> <div> <img loading="lazy" class="main-menu-item__event-logo" src="https://www.cncf.io/wp-content/uploads/2024/03/kc_cnc_india24_white.svg" alt="KubeCon + CloudNativeCon India 2024" width="414" height="177"> <h4><span class="main-menu-item__event-city">Delhi, India</span> </h4> </div> </div> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Events" href="https://www.cncf.io/events">Next Event</a> <span class="main-menu-item__title"> <a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-india/" title="KubeCon + CloudNativeCon India 2024">KubeCon + CloudNativeCon India 2024</a> </span> <span class="main-menu-item__date"> December 11-12, 2024</span> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item-has-children"><a href="#"><span>Projects</span></a> <div class="sub-menu"> <div class="col-container"> <div class="col1"> <ul id="menu-projects_01" class="menu"><li id="menu-item-71623" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71623 lf-menu-title">CNCF Projects</li> <li id="menu-item-71624" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71624"><a href="https://www.cncf.io/projects/">Graduated<span class="lf-menu-description">Projects considered stable, widely adopted, and production ready, attracting thousands of contributors</span></a></li> <li id="menu-item-71625" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71625"><a href="https://www.cncf.io/projects/">Incubating<span class="lf-menu-description">Projects used successfully in production by a small number users with a healthy pool of contributors</span></a></li> <li id="menu-item-71626" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71626"><a href="https://www.cncf.io/sandbox-projects/">Sandbox<span class="lf-menu-description">Experimental projects not yet widely tested in production on the bleeding edge of technology</span></a></li> <li id="menu-item-71627" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71627"><a href="https://www.cncf.io/archived-projects/">Archived<span class="lf-menu-description">Projects that have reached the end of their lifecycle and have become inactive</span></a></li> <li id="menu-item-94549" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94549"><a href="https://www.cncf.io/project-metrics/">Project Metrics<span class="lf-menu-description">View metrics of CNCF projects moving through maturity levels</span></a></li> </ul> </div> <div class="col2"> <ul id="menu-projects_02" class="menu"><li id="menu-item-71628" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71628 lf-menu-title">Get Involved</li> <li id="menu-item-71629" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71629"><a href="https://contribute.cncf.io"><span class="lf-external-link">Contribute</span><span class="lf-menu-description">Join the 150K+ folx in #TeamCloudNative who’ve contributed their expertise to CNCF hosted projects</span></a></li> <li id="menu-item-103342" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-103342"><a href="https://contribute.cncf.io/resources/project-services/"><span class="lf-external-link">Services for CNCF Projects</span><span class="lf-menu-description">CNCF services for our open source projects – from marketing to legal services</span></a></li> <li id="menu-item-71632" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71632"><a href="https://landscape.cncf.io"><span class="lf-external-link">Cloud Native Landscape</span><span class="lf-menu-description">A comprehensive categorical overview of projects and product offerings in the cloud native space</span></a></li> <li id="menu-item-71631" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71631"><a href="/reports/?_sft_lf-report-type=project-journey">Project Journey Reports<span class="lf-menu-description">Showing how CNCF has impacted the progress and growth of various graduated projects</span></a></li> <li id="menu-item-71633" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71633"><a href="/project-tools/">Project Tools<span class="lf-menu-description">Quick links to tools and resources for your CNCF project</span></a></li> </ul> </div> <div class="col3"> <ul class="menu"> <li class="lf-menu-title">Latest Project Journey Reports </li> </ul> <div class="columns-one"> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/reports/cilium-project-journey-report/" title="Cilium Project Journey Report" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-300x158.jpg 300w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-1024x538.jpg 1024w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-768x404.jpg 768w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-900x473.jpg 900w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-1800x946.jpg 1800w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-381x200.jpg 381w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-761x400.jpg 761w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/11/Cilium-Project-Journey-1180x620.jpg 1180w" sizes="(max-width: 200px) 100vw, 200px" alt="Cilium Project Journey Report"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Project Journey category" href="https://www.cncf.io/reports/?_sft_lf-report-type=project-journey">Project Journey Report</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/reports/cilium-project-journey-report/" title="Cilium Project Journey Report">Cilium Project Journey Report</a> </span> <span class="main-menu-item__date">November 11, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/reports/etcd-project-journey-report/" title="etcd Project Journey Report" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-300x158.jpg 300w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-1024x538.jpg 1024w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-768x404.jpg 768w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-900x473.jpg 900w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-380x200.jpg 380w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-761x400.jpg 761w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1-1180x620.jpg 1180w, https://www.cncf.io/wp-content/uploads/2024/09/etcd-Project-Journey-590x310-1.jpg 1229w" sizes="(max-width: 200px) 100vw, 200px" alt="etcd Project Journey Report"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Project Journey category" href="https://www.cncf.io/reports/?_sft_lf-report-type=project-journey">Project Journey Report</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/reports/etcd-project-journey-report/" title="etcd Project Journey Report">etcd Project Journey Report</a> </span> <span class="main-menu-item__date">September 25, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/reports/etcd-project-journey-report-jp/" title="etcd Project Journey Report – Japanese translation" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/10/etcd-pjr-jp1-1180x620.jpg 1180w" sizes="(max-width: 200px) 100vw, 200px" alt="etcd Project Journey Report – Japanese translation"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Project Journey category" href="https://www.cncf.io/reports/?_sft_lf-report-type=project-journey">Project Journey Report</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/reports/etcd-project-journey-report-jp/" title="etcd Project Journey Report – Japanese translation">etcd Project Journey Report – Japanese translation</a> </span> <span class="main-menu-item__date">September 25, 2024</span> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item-has-children"><a href="#"><span>Training</span></a> <div class="sub-menu"> <div class="col-container"> <div class="col1"> <ul id="menu-certifications_01" class="menu"><li id="menu-item-71634" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71634 lf-menu-title">Become an expert</li> <li id="menu-item-97034" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97034"><a href="https://www.cncf.io/training/">Training Overview<span class="lf-menu-description">Find your path to cloud native success with training and certificates from the pioneer of cloud-native technology</span></a></li> <li id="menu-item-97032" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97032"><a href="https://www.cncf.io/training/certification/">Certifications<span class="lf-menu-description">Get certified by the only authoritative source for cloud-native certification accepted by industry</span></a></li> <li id="menu-item-97033" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97033"><a href="https://www.cncf.io/training/courses/">Courses<span class="lf-menu-description">Learn the basics of cloud native or train for a certification with training courses built in collaboration with the Linux Foundation</span></a></li> <li id="menu-item-104457" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-104457"><a href="https://www.cncf.io/training/kubestronaut/">Kubestronaut Program<span class="lf-menu-description">Uplevel your Kubernetes skills</span></a></li> </ul> </div> <div class="col2"> <ul id="menu-certifications_02" class="menu"><li id="menu-item-71638" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71638 lf-menu-title">Additional Resources</li> <li id="menu-item-71642" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71642"><a href="https://www.cncf.io/training/kubernetes-training-partners/">Kubernetes Training Partners<span class="lf-menu-description">Find a qualified KTP to prepare for your next certification</span></a></li> <li id="menu-item-104420" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-104420"><a href="https://www.cncf.io/training/cncf-endorsed-content/">CNCF Endorsed Content<span class="lf-menu-description">Training materials that match strict criteria</span></a></li> <li id="menu-item-71640" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71640"><a href="https://www.cncf.io/training/certification/software-conformance/">Certified Kubernetes<span class="lf-menu-description">Software conformance ensures your versions of CNCF projects support the required APIs</span></a></li> <li id="menu-item-72609" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72609"><a href="https://www.cncf.io/training/certification/cnf/">Cloud Native Network Function Certification (Beta)<span class="lf-menu-description">CNF Certification ensures applications demonstrate cloud native best practices</span></a></li> <li id="menu-item-71643" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71643"><a href="https://www.cncf.io/training/certification/kcsp/">Kubernetes Certified Service Provider<span class="lf-menu-description">KCSPs have deep experience helping enterprises successfully adopt cloud native technologies</span></a></li> </ul> </div> <div class="col3"> <ul class="menu"> <li class="lf-menu-title">Recommended Links </li> </ul> <div class="columns-one"> <div class="main-menu-item promotion-item"> <div class="main-menu-item__image-wrapper"> <a href="https://www.cncf.io/enduser/" title="Save $10K on Cloud Native" class="main-menu-item__link"> <img width="2048" height="1365" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k.jpg" srcset="https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k.jpg 2048w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-300x200.jpg 300w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-768x512.jpg 768w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-1024x683.jpg 1024w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-1536x1024.jpg 1536w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-900x600.jpg 900w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-1800x1200.jpg 1800w, https://www.cncf.io/wp-content/uploads/2022/05/45581516234_606446e424_k-600x400.jpg 600w" sizes="(max-width: 400px) 100vw, 400px" alt="Save $10K on Cloud Native"> </a> </div> <div class="main-menu-item__text-wrapper"> <span class="main-menu-item__title"> <a href="https://www.cncf.io/enduser/" title="Save $10K on Cloud Native">Save $10K on Cloud Native</a> </span> <p class="main-menu-item__body">Enroll your company as a CNCF End User and save more than $10K in training and conference costs</p> <p class="is-style-link-cta"><a href="https://www.cncf.io/enduser/">Become an End User</a></p> </div> </div> </div> </div> </div> </div> </li> <li class="menu-item-has-children"><a href="#"><span>Community</span></a> <div class="sub-menu"> <div class="col-container"> <div class="col1"> <ul id="menu-community_01" class="menu"><li id="menu-item-71644" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71644 lf-menu-title">Take Part</li> <li id="menu-item-71645" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71645"><a href="https://www.cncf.io/enduser/">End User Community<span class="lf-menu-description">Join our vendor-neutral community using cloud native technologies to build products and services</span></a></li> <li id="menu-item-71646" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71646"><a href="https://www.cncf.io/events/">Events<span class="lf-menu-description">Meet #TeamCloudNative and CNCF staff at events around the world</span></a></li> <li id="menu-item-71648" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71648"><a href="https://www.cncf.io/case-studies/">Case Studies<span class="lf-menu-description">Read real-world case studies about the impact cloud native projects are having on organizations around the world</span></a></li> <li id="menu-item-72634" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72634"><a href="https://www.cncf.io/humans-of-cloud-native/">Humans of Cloud Native<span class="lf-menu-description">Read stories of amazing individuals and their contributions</span></a></li> <li id="menu-item-120507" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-120507"><a href="https://www.cncf.io/heroes/">The Cloud Native Heroes Challenge<span class="lf-menu-description">Be a cloud native hero! Help us defeat patent trolls to earn swag and prizes</span></a></li> </ul> </div> <div class="col2"> <ul id="menu-community_02" class="menu"><li id="menu-item-71651" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71651 lf-menu-title">Community Content</li> <li id="menu-item-72395" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72395"><a href="https://www.cncf.io/online-programs/">Online Programs<span class="lf-menu-description">Watch our free online programs for the latest insights into cloud native technologies and projects</span></a></li> <li id="menu-item-71652" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71652"><a href="https://www.cncf.io/kubeweekly/">KubeWeekly<span class="lf-menu-description">Sign up for a weekly dose of all things Kubernetes, curated by #TeamCloudNative</span></a></li> <li id="menu-item-71653" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71653"><a href="https://community.cncf.io"><span class="lf-external-link">Community Groups</span><span class="lf-menu-description">Join #TeamCloudNative at events and meetups near you</span></a></li> <li id="menu-item-71654" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71654"><a href="https://www.cncf.io/phippy/">Phippy & Friends<span class="lf-menu-description">Phippy explains core cloud native concepts in simple terms through stories perfect for all ages</span></a></li> <li id="menu-item-71655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71655"><a href="https://glossary.cncf.io"><span class="lf-external-link">Cloud Native Glossary</span><span class="lf-menu-description">Explore cloud native concepts in clear and simple language – no technical knowledge required!</span></a></li> </ul> </div> <div class="col3"> <ul id="menu-community_03" class="menu"><li id="menu-item-71656" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71656 lf-menu-title">Additional Resources</li> <li id="menu-item-71657" class="has-icon icon-job menu-item menu-item-type-custom menu-item-object-custom menu-item-71657"><a href="https://jobs.cncf.io"><span class="lf-external-link">Job Board</span></a></li> <li id="menu-item-71658" class="has-icon icon-slack menu-item menu-item-type-custom menu-item-object-custom menu-item-71658"><a href="https://slack.cncf.io/"><span class="lf-external-link">Slack</span></a></li> <li id="menu-item-71659" class="has-icon icon-mailing menu-item menu-item-type-custom menu-item-object-custom menu-item-71659"><a href="https://lists.cncf.io/g/main/subgroups"><span class="lf-external-link">Mailing Lists</span></a></li> <li id="menu-item-71660" class="has-icon icon-store menu-item menu-item-type-custom menu-item-object-custom menu-item-71660"><a href="https://store.cncf.io"><span class="lf-external-link">Store</span></a></li> <li id="menu-item-71661" class="has-icon icon-calendar menu-item menu-item-type-post_type menu-item-object-page menu-item-71661"><a href="https://www.cncf.io/calendar/">Calendar</a></li> </ul> </div> </div> </div> </li> <li class="menu-item-has-children"><a href="#"><span>Blog & News</span></a> <div class="sub-menu"> <div class="col-container"> <div class="col1"> <ul id="menu-blog_01" class="menu"><li id="menu-item-71662" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71662 lf-menu-title">All the news</li> <li id="menu-item-71663" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71663"><a href="https://www.cncf.io/blog/">Blog<span class="lf-menu-description">Catch up on the latest happenings and technical insights from #TeamCloudNative</span></a></li> <li id="menu-item-71664" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71664"><a href="https://www.cncf.io/announcements/">Announcements<span class="lf-menu-description">Media releases and official CNCF announcements</span></a></li> <li id="menu-item-71665" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71665"><a href="https://www.cncf.io/news/">News<span class="lf-menu-description">CNCF projects and #TeamCloudNative in the media</span></a></li> <li id="menu-item-71666" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71666"><a href="https://www.cncf.io/reports/">Reports<span class="lf-menu-description">Read transparent, in-depth reports on our organization, events, and projects</span></a></li> </ul> </div> <div class="col2"> <ul id="menu-blog_02" class="menu"><li id="menu-item-71667" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71667 lf-menu-title">Media Resources</li> <li id="menu-item-75049" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75049"><a href="https://www.cncf.io/brand-guidelines/">Brand Guidelines</a></li> <li id="menu-item-71668" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71668"><a href="https://github.com/cncf/artwork"><span class="lf-external-link">Project Logos</span></a></li> <li id="menu-item-71669" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71669"><a href="https://www.youtube.com/c/cloudnativefdn"><span class="lf-external-link">Videos</span></a></li> <li id="menu-item-71670" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71670"><a href="https://www.flickr.com/photos/143247548@N03/albums/"><span class="lf-external-link">Pictures</span></a></li> </ul> </div> <div class="col3"> <ul class="menu"> <li class="lf-menu-title">Latest Blog Posts </li> </ul> <div class="columns-one"> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/blog/2024/11/22/open-source-spirit-elevating-team-collaboration-and-innovation/" title="Open source spirit: elevating team collaboration and innovation" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-194x102.png" srcset="https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-194x102.png 194w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-300x157.png 300w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-1024x537.png 1024w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-768x403.png 768w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-388x204.png 388w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-776x408.png 776w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-1552x816.png 1552w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-900x472.png 900w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40-381x200.png 381w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-2-40.png 1650w" sizes="(max-width: 200px) 100vw, 200px" alt="Open source spirit: elevating team collaboration and innovation"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Ambassador category" href="https://www.cncf.io/blog?_sft_lf-author-category=ambassador">Ambassador Post</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/blog/2024/11/22/open-source-spirit-elevating-team-collaboration-and-innovation/" title="Open source spirit: elevating team collaboration and innovation">Open source spirit: elevating team collaboration and innovation</a> </span> <span class="main-menu-item__date">November 22, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/blog/2024/11/22/konveyor-ai-supporting-application-modernization/" title="Konveyor AI: supporting application modernization" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-300x157.jpg 300w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-1024x537.jpg 1024w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-768x403.jpg 768w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-900x472.jpg 900w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-381x200.jpg 381w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-762x400.jpg 762w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32-1180x620.jpg 1180w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Template-4-32.jpg 1650w" sizes="(max-width: 200px) 100vw, 200px" alt="Konveyor AI: supporting application modernization"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Member category" href="https://www.cncf.io/blog?_sft_lf-author-category=member">Member Post</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/blog/2024/11/22/konveyor-ai-supporting-application-modernization/" title="Konveyor AI: supporting application modernization">Konveyor AI: supporting application modernization</a> </span> <span class="main-menu-item__date">November 22, 2024</span> </div> </div> <div class="main-menu-item"> <div class="main-menu-item__image-wrapper not-sticky"> <a href="https://www.cncf.io/blog/2024/11/21/unlock-growth-and-talent-why-maintainers-should-mentor-with-cncf/" title="Unlock growth and talent: why maintainers should mentor with CNCF" class="main-menu-item__link"> <img width="194" height="102" loading="lazy" class="main-menu-item__image" src="https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-194x102.jpg" srcset="https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-194x102.jpg 194w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-300x157.jpg 300w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-1024x537.jpg 1024w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-768x403.jpg 768w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-388x204.jpg 388w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-776x408.jpg 776w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-1552x816.jpg 1552w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-900x472.jpg 900w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-381x200.jpg 381w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-762x400.jpg 762w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-590x310.jpg 590w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33-1180x620.jpg 1180w, https://www.cncf.io/wp-content/uploads/2024/11/Single-Card-33.jpg 1650w" sizes="(max-width: 200px) 100vw, 200px" alt="Unlock growth and talent: why maintainers should mentor with CNCF"> </a> </div> <div class="main-menu-item__text-wrapper"> <a class="author-category" title="See more in Mentorship category" href="https://www.cncf.io/blog?_sft_lf-author-category=mentorship">Mentorship Post</a> <span class="main-menu-item__title"> <a href="https://www.cncf.io/blog/2024/11/21/unlock-growth-and-talent-why-maintainers-should-mentor-with-cncf/" title="Unlock growth and talent: why maintainers should mentor with CNCF">Unlock growth and talent: why maintainers should mentor with CNCF</a> </span> <span class="main-menu-item__date">November 21, 2024</span> </div> </div> </div> </div> </div> </div> </li> </ul> <div style="height:60px;" aria-hidden="true" class="wp-block-spacer show-upto-1000"> </div> <div class="header-cta"> <div class="wp-block-button"> <a href="https://www.cncf.io/about/join/" class="wp-block-button__link wp-element-button">Join</a> </div> </div> <div style="height:20px" aria-hidden="true" class="wp-block-spacer show-upto-1000"> </div> <!-- Button to open the search menu --> <button class="header__search_open search-toggle button-reset show-over-1000" type="button" aria-label="Search"> <svg fill="none" viewbox="0 0 29 27" width="29" height="27" xmlns="http://www.w3.org/2000/svg"><path d="M11.172 20.035c5.042 0 9.13-4.036 9.13-9.015s-4.088-9.015-9.13-9.015-9.129 4.036-9.129 9.015c0 4.98 4.087 9.015 9.13 9.015zm5.974-4.615L26.849 25" opacity=".893" stroke="#000" stroke-width="4"/></svg> </button> <div class="header__search_wrapper"> <div class="header__search_container"> <form class="search-form" method="get" autocomplete="off" action="https://www.cncf.io" role="search"> <label for="search-bar" class="screen-reader-text">Search CNCF</label> <input class="search-input" type="search" id="search-bar" value="" name="s" placeholder="I'm looking for..." title="Search CNCF site" autocapitalize="off" spellcheck="false" maxlength="98" required> <input class="search-input-button wp-block-button__link has-no-padding" type="submit" value="Search" /> </form> <div style="height:100px" aria-hidden="true" class="wp-block-spacer show-upto-1000"> </div> <button class="button-reset search-toggle show-over-1000" type="button" aria-label="Close"> <svg width="18" height="18" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.999 2.001L2 16M2 2l13.999 13.999" stroke="#fff" stroke-width="3" stroke-linecap="round"/></svg> </button> </div> </div> </nav> <button class="hamburger" type="button" aria-label="Toggle Menu"> <span class="hamburger-box"> <span class="hamburger-inner"></span> </span> </button> </div> </header> <div class="skip-link-target" id="maincontent"></div> <link rel="prefetch" href="https://www.cncf.io/wp-content/themes/cncf-twenty-two/build/annual-report-2018.min.css" as="style" crossorigin="anonymous" /> <div id="ajax-content-wrap"> <div class="home"> <div class="main annual-report-page annual-report-2018"> <section class="hero-banner-section"> <div class="hero-image-container" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/banner-home-low.jpg')"> </div> <div class="cloud-native-logo-strip"> <div class="container"> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cncf-logo.svg"> </div></div> <div class="hero-shade"> <div class="shade"></div> <div class="not-shade"></div> </div> <div class="hero-intro-text"> <div class="report-text"> <div class="report-text-wrapper"> <span>CNCF</span> <span class="strong">Annual</span> <span class="strong">Report</span> </div></div> <div class="eighteen"> <span>18</span> </div> </div> </section> <div class="container-wrap download-section"> <div class="container wrap"> <div> <div class="wp-block-buttons aligncenter is-style-button-pdf"> <div class="wp-block-button"><a class="wp-block-button__link" href="https://www.cncf.io/wp-content/uploads/2020/08/CNCF-Annual-Report-2018.pdf">DOWNLOAD THIS REPORT</a></div> </div> </div> </div> </div> <div class="container-wrap"> <div class="container"> <div class="row"> <div class="col-sm-4 col-md-3 sidebar-wrap"> <nav id="annual-report-sidebar" class="annual-report-sidebar"> <h2>Overview</h2> <ul class="nav-items nav"> <li> <a href="#welcome" target="_self" rel="noopener noreferrer">Welcome</a> </li> <li> <a href="#who-we-are" target="_self" rel="noopener noreferrer">Who We Are</a> </li> <li> <a href="#we-are-growing" target="_self" rel="noopener noreferrer">We Are Growing</a> </li> <li> <a href="#project-updates-and-satisfaction" target="_self" rel="noopener noreferrer">Project Updates and Satisfaction</a> </li> <li> <a href="#community-engagement" target="_self" rel="noopener noreferrer">Community Engagement </a> </li> <li> <a href="#ecosystem-tools" target="_self" rel="noopener noreferrer">Ecosystem Tools</a> </li> <li> <a href="#test-conformance-projects" target="_self" rel="noopener noreferrer">Test Conformance Projects</a> </li> <li> <a href="#international-china" target="_self" rel="noopener noreferrer">International: China </a> </li> <li> <a href="#looking-forward" target="_self" rel="noopener noreferrer">Looking Forward to 2019</a> </li> </ul> </nav> </div> <div class="col-sm-8 col-md-9 content-wrap"> <section id="welcome" class="welcome_section" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/welcome-banner.jpg')"> <div class="welcome_container white-links"> <h2>Welcome</h2> <p> Welcome to the 2018 Cloud Native Computing Foundation annual report. Comments and feedback are welcome at <a href="mailto:info@cncf.io">info@cncf.io</a> </p> </div> </section> <section id="who-we-are" class="who-we-are-section white-links"> <h2>Who We Are</h2> <div class="cols"> <p> <span style="font-weight: 400;">The Cloud Native Computing Foundation (CNCF) is an open source software foundation dedicated to making cloud native computing universal and sustainable. Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. </span> </p> <p> <span style="font-weight: 400;">We are a community of open source projects, including Kubernetes, Prometheus, Envoy, and </span> <a href="https://www.cncf.io/projects/"> <span style="font-weight: 400;">many others</span> </a> <span style="font-weight: 400;">. Kubernetes and other CNCF projects are some of the </span> <a href="https://www.cncf.io/blog/2017/06/05/30-highest-velocity-open-source-projects/"> <span style="font-weight: 400;">highest velocity projects</span> </a> <span style="font-weight: 400;"> in the history of open source.</span> </p> </div> <ul class="items widthcol3"> <li> <div class="content-wrap"> <div class="icon-wrap"> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_Annual_Report_2018_diagram-14.svg"> </div> <div class="text-wrap" data-mh="whoweare-text-wrap"> <div class="number">47,358</div> <h6># OF CONTRIBUTORS TO CNCF PROJECTS </h6> </div> </div> </li> <li> <div class="content-wrap"> <div class="icon-wrap"> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_Annual_Report_2018_diagram-15.svg"> </div> <div class="text-wrap" data-mh="whoweare-text-wrap"> <div class="number">89,112</div> <h6>CNCF MEETUP MEMBERS</h6> </div> </div> </li> <li> <div class="content-wrap"> <div class="icon-wrap"> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_Annual_Report_2018_diagram-16.svg"> </div> <div class="text-wrap" data-mh="whoweare-text-wrap"> <div class="number">54,255</div> <h6>REGISTERED FOR FREE KUBERNETES EDX COURSE </h6> </div> </div> </li> </ul> </section> <section id="" class="who-we-are-projects white-links"> <div class="container"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/diagram-revised-01.svg" alt=""> <div class="copy-wrp"> <p> A basic premise behind CNCF, our <a href="http://www.kubecon.io/">KubeCon + CloudNativeCon</a> conferences, and open source in general is that many interactions are positive sum – making everyone involved better off – rather than zero sum, where there would be winners and losers. There is not a fixed amount of investment, mindshare, or development contributions that gets allocated between projects. Just as open source development is based on the idea that collectively we are smarter than any one of us, open source foundations work to make the entire community better off. </p> <p>CNCF is committed to building sustainable ecosystems by hosting great open source projects. Companies use those projects and build commercial products and services, creating value in the form of profits. They can then reinvest a portion of the profits in the projects by funding developers, which results in more code, more improvements, and better products. This creates a virtuous cycle of investment, innovation, and economic activity.</p> </div> </div> </section> <section id="we-are-growing" class="we-are-growing"> <h2 class="bg-title pink-to-purple">We are Growing </h2> <div class="growing-container"> <div class="left-wrp"> <div class="new-members number">195 New Members </div> <div class="new-members percent"> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/arrow-up-01.svg" alt="" class="new-members-arrow"> 130% </div> <div class="china-members"> <span class="title-like new-members">China</span> <div class="content"> <strong>39 Members</strong> <p>3 Platinum, 3 Gold, 33 Silver, Academic + Nonprofit</p> <div class="china-members-mockup"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/china-mockup.png" alt=""> <p> <strong>10%</strong> of the CNCF total membership </p> </div> </div> </div> </div> <div class="right-wrp"> <h3 class="new-members-title platinum"> New Platinum Member </h3> <figure class="platinum-logo"> <span> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/jd.com-01-1-01.svg" alt=""> </span> <figcaption class="big-data"> <strong>17</strong> <span>Platinum Members in Total</span> </figcaption> </figure> <h3 class="new-members-title gold">New Gold Members </h3> <div class="members-logos-wrp"> <figure class="gold-logo"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/digital-ocean.svg" alt="cncf-annual-report-2018"> </figure> <figure class="gold-logo"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Logo_sumologic-2.svg" alt="cncf-annual-report-2018"> </figure> <figure class="gold-logo"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Hortonworks-2.svg" alt="cncf-annual-report-2018"> </figure> <figure class="gold-logo"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/capital-one.svg" alt="cncf-annual-report-2018"> </figure> </div> <h3 class="new-members-title silver">+ 157 New Silver Members </h3> <div class="silver-members-content"> <p>China is the third largest contributor to CNCF projects (in terms of contributors and committers) after the U.S. and Germany.</p> </div> </div> </div> </section> <section id="user_community-section" class="user-community-companies-section" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/end-user-bg.png')"> <div class="end-user-container white-links"> <h2>End User Community</h2> <div class="cols"> <p> <span style="font-weight: 400;">We offer multiple opportunities for end users to contribute and have their voices heard. Companies that use cloud native technologies internally, but do not sell any cloud native services externally, are eligible to join the </span> <a href="https://www.cncf.io/people/end-user-community/"> <span style="font-weight: 400;">End User Community</span> </a> <span style="font-weight: 400;">. </span> </p> <p> <span style="font-weight: 400;">Our End User Community is growing. We finished 2018 with 69 top companies and startups, which is the largest end-user community of any open source foundation. We published </span> <a href="https://www.cncf.io/people/end-user-community/"> <span style="font-weight: 400;">16 case studies</span> </a> <span style="font-weight: 400;"> last year about the learnings from end users committed to accelerating the adoption of cloud native technologies and improving the deployment experience.</span> </p> </div> <h4>69 COMPANIES IN THE END USER COMMUNITY </h4> </div> <ul class="items widthcol1"> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/adidas.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/amadeus-1.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/auditboard.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/bloomberg.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/box_blue.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/capital-one.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/comcast.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cruise.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/curve.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/denso.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/didi-1.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ebay.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/form3-1.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/github.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/goldman-sachs.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/indeed-01.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/intuit-1.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/jd.com-01-1-01.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/jp-morgan.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Kuelap_logo-1.png" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/la-mobiliere-1.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Layer-End-User-Supporter.png" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/mastercard.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/morgan-stanley.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/naic.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nasdaq.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ncsoft.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nipr.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/olark.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/pinterest.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/postfinance.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/PusherLogo.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/reddit.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ricardo.ch_.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/salesforce-01.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/sap-concur.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/shopify.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/showmax.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/simplenexus.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/spotify.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/spredfast.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/squarespace.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/statestreet.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Steelhouse.jpg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/stix.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/testfire-labs-01.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/textkernel.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/thredup.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/new-york-times.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ticketmaster.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/twilio.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/logo_twitter-1.png" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Two-Sigma.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/mufg-union-bank.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/walmart-labs.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/werkspot.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/wework.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/wikimedia-foundation.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/woorank.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/workday.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/wpengine.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/yahoojapan.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/zalando.svg" alt=""> </div> </li> <li> <div class="company"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/zendesk.svg" alt=""> </div> </li> </ul> <div class="end-user-container award white-links"> <div class="left-wrp"> <p class="text-larger">In May 2018, we were thrilled to grant our first Top End User Award to Bloomberg for their innovative use of cloud native technologies and unique contributions to the CNCF ecosystem.</p> <p>The End User Community meets monthly and advises the CNCF Governing Board and Technical Oversight Committee (TOC) members on key challenges, emerging use cases, and areas of opportunity and new growth for cloud native technologies.</p> <p class="margin-bottom">If you’re using CNCF projects in interesting ways, we urge you to join our official <a href="https://www.cncf.io/people/end-user-community/">End User Community</a> so you have an official voice, and more importantly, learn from other end users deploying CNCF projects. </p> </div> <div class="right-wrp"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_Annual_Report_2018_diagram-17.svg" alt=""> </div> </div> </section> <section id="conferences_events" class="conferences-and-events"> <div class="conferences-container"> <div class="left-wrp"> <h2>Conferences and Events</h2> <p> <a href="http://www.kubecon.io/"> <span style="font-weight: 400;">KubeCon + CloudNativeCon</span> </a> <span style="font-weight: 400;"> has expanded from its start with 500 attendees in 2015 to become one of the largest and most successful open source conferences ever. The </span> <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/"> <span style="font-weight: 400;">KubeCon + CloudNativeCon North America event in Seattle</span> </a> <span style="font-weight: 400;">, held December 10-13, 2018, was our biggest yet and was sold out several weeks ahead of time with 8,000 attendees.</span> </p> <p> <span style="font-weight: 400;">KubeCon + CloudNativeCon co-chair Liz Rice of Aqua Security gave a CNCF community update, alongside a number of our project maintainers, including a Helm update from Michelle Noorali of Microsoft and an Envoy update from Matt Klein of Lyft.</span> </p> <p> <span style="font-weight: 400;">KubeCon + CloudNativeCon Seattle attendance increased 90% from last year’s KubeCon + CloudNativeCon North America event in Austin. And while the attendee numbers grew, the great developer conference experience remained the same.</span> </p> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/event-chart-revised-01.svg" alt=""> </div> <div class="right-wrp"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/event-diagram-01.svg" alt=""> </div> </div> <hr class="pink-blue-line"> <div class="conferences-container"> <div class="full-wrp"> <div class="left-wrp"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/45635952904_aa691e4a51_k-1.jpg" alt=""> </div> <div class="right-wrp"> <p>KubeCon + CloudNativeCon co-chair Janet Kuo of Google explained that Kubernetes being boring was a good thing. As co-chair Liz Rice of Aqua Security said: “CNCF is not here to throw glitzy events, but to help us coordinate as a community and ensure we have proper governance in place.” Kelsey Hightower gave a shout out to the amazing real women of Hidden Figures, his mom, and the Queen of Motown, Diana Ross, in his serverless keynote.</p> </div> <div class="conference-additional"> <p> The co-chairs select a program committee of around 80 experts, including project maintainers, active community members, and highly-rated presenters from past events, to review the CFP submissions. The keynote speakers are selected by the conference co-chairs from highly-rated CFP submissions, or in rare cases, by invitation from the co-chairs. <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">KubeCon + CloudNativeCon Seattle</a> included 318 sessions: CFP tracks sessions, lightning talks, BoFs, tutorials, and maintainer track sessions, which were offered in ~10 rooms as well as ~90 maintainer sessions spread across ~5 rooms. </p> </div> </div> </div> </section> <section id="training_certification" class="training-certification-section white-links" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/training-and-certification-bg.png')"> <div class="training-container"> <h2>Training & Certification</h2> <div class="cols"> <p> <span style="font-weight: 400;">Adopting new technology can be challenging, especially when it’s hard to find qualified people. CNCF offers training and certification for key CNCF technologies such as Kubernetes to ensure that organizations can train their own employees or hire from a strong body of experienced talent. We offer the free </span> <a href="https://www.cncf.io/certification/training/"> <span style="font-weight: 400;">Kubernetes Massively Open Online Course (MOOC)</span> </a> <span style="font-weight: 400;"> through our partnership with edX, as well as self-paced and instructor-led Kubernetes training. The official </span> <a href="https://www.cncf.io/certification/expert/"> <span style="font-weight: 400;">Certified Kubernetes Administrator (CKA)</span> </a> <span style="font-weight: 400;"> certification ensures a high level of expertise in the ecosystem, and the </span> <a href="https://www.cncf.io/certification/kcsp/"> <span style="font-weight: 400;">Kubernetes Certified Service Provider (KCSP)</span> </a> <span style="font-weight: 400;"> program is a pre-qualified tier of vetted service providers that offer Kubernetes support, consulting, and professional services for organizations embarking on their Kubernetes journey. </span> </p> <p> <span style="font-weight: 400;">In May 2018, CNCF announced the availability of the </span> <a href="https://www.cncf.io/certification/training/"> <span style="font-weight: 400;">Kubernetes Training Partner (KTP)</span> </a> <span style="font-weight: 400;"> program, which offers qualified training providers with deep experience in cloud native technology training.</span> </p> </div> <h3>18 Kubernetes Training Partners (KTP) </h3> </div> <ul class="items widthcol5"> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Alauda_logo-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/boxboat.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Caicloud_Logo.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cloudops.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cloudyuga.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/component-soft.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/creationline.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/container-solutions-ktp.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/daocloud-stacked.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/doit-intl-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/easy-stack-svg.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/inwinstack.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/lf-training.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/loodse.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nebulaworks.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/prodyna.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/rx-m-.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/tenxcloud.svg" alt=""> </li> </ul> </section> <section id="" class="software-conformance"> <hr class="pink-blue-line"> <div class="software-conformance-container"> <h2>Software Conformance</h2> <div class="cols"> <p> It is unprecedented to get every cloud company, enterprise software provider, and startup in the industry to support a conformance program. CNCF has achieved this with the <a href="https://www.cncf.io/certification/software-conformance/">Certified Kubernetes Conformance Program</a> , which enables any Kubernetes implementation to demonstrate that it is conformant and interoperable. Nearly all of the world’s leading software vendors and cloud computing providers have <a href="https://www.cncf.io/certification/software-conformance/#logos">Certified Kubernetes</a> offerings. </p> <p>It is an extraordinary accomplishment that there are no forks in our industry, which speaks to the commitment that companies of all sizes have made to be good partners in the community. CNCF has certified offerings from 76 vendors.</p> </div> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/certified-kubernetes-03.svg" alt=""> </div> <h3>76 Certified Kubernetes Partners</h3> <ul class="items widthcol5"> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/agilestacks.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Alauda_logo-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/alibaba.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/amazon-elastic-container-service-for-kubernetes-eks-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/appscode.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/baidu-cloud-container-engine-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/bo-cloud-beyondcent-container-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cablelabs.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Caicloud_Logo.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/canonical-kcsp.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/catalyst-cloud.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cisco.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cloud-66-maestro-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cloud-foundry.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/containership-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/logo_coreos_cncf.png" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cstack.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/daocloud-stacked.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/diamanti.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/digital-ocean.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/docker.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/easy-stack-svg.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/e-bao-cloud-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/e-king-cloud-container-platform-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/elastx-private-kubernetes-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/enc-helium.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/giant-swarm-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/google.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/gravity-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/harmony-cloud.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/hasura-2.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/heptio.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/huawei.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ibm-cloud.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/inspur-in-cloud-open-platform.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/inwinstack.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/jd-com-tig-jingdong-datacenter-os-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/logo_joyent-1.png" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kinvolk.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kontena-pharos-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kops-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kubernetes-distribution-by-containerum-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kubernetes-the-easier-way-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kublr-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/loodse.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/magnum-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/mesosphere.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/metal-k8s-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/microsoft-azure.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/mirantis-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/navops.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/netease-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nirmata-stacked.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nutanix.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/oracle-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/ovh.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/pivotal.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/platform9.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/portworx.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/qiniu.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/rackspace.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/rancher.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/redhat-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/robin-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/samsung-sds.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/SAP-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/stack-point-cloud-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/supergiant.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/symplegma-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/telekube-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/tencent.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/tenxcloud.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/typhoon-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/vmware.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/weaveworks-1.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/wise2-c-kcsp.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/woqutech.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/zte-01.svg" alt=""> </li> </ul> </section> <section id="project-updates-and-satisfaction" class="project-updates-and-satisfaction"> <h2>Project Updates & Satisfaction</h2> <div class="project-container"> <p> 2018 was a very busy year for CNCF projects, including the graduations of Kubernetes, Prometheus, and Envoy. 7 CNCF projects were the winners out of the 13 awards in cloud computing in InfoWorld’s 2018 Best of Open Source Software ( <a href="https://www.infoworld.com/article/3306843/open-source-tools/bossies-2018-the-best-of-open-source-software-awards.html">BOSSIE</a> ) </p> <p>We are pleased to share the results from the maintainer surveys we do twice a year:</p> <h3>CNCF Project Maintainer Survey Results </h3> <div class="data-wrp"> <div class="big-data"> <strong>4.20</strong> <span>MAINTAINER SATISFACTION: 4.20/5</span> </div> <div class="big-data"> <strong>100%</strong> <span>100% OF PROJECTS ARE REPRESENTED IN THE MAINTAINER SURVEY RESULTS</span> </div> <div class="big-data"> <strong>4.22</strong> <span>A LARGE MAJORITY OF MAINTAINERS WOULD RECOMMEND CNCF TO OTHER PROJECTS: 4.22/5.0</span> </div> </div> <div class="recommend-chart wrp-chart"> <div class="chart"> <h4>Recommend Cncf To Other Projects? (4.22/5) </h4> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/recommend-chart.png" alt=""> </div> <p>The overall satisfaction with CNCF increased in 2018 and reflected a 100% response rate across projects. For the first time, we asked if maintainers would recommend CNCF to other projects. Responses were positive with a score of 4.22/5.</p> </div> </div> <hr class="pink-blue-line"> <div class="project-container"> <h3>CNCF Charter Revisions</h3> <p> <span style="font-weight: 400;">The CNCF </span> <a href="https://github.com/cncf/foundation/blob/master/charter.md"> <span style="font-weight: 400;">charter</span> </a> <span style="font-weight: 400;"> was revised in November 2018 to incorporate the </span> <a href="https://docs.google.com/document/d/1d9Ks3UvUV8sZj4ribAMwmq0MZwi1CwnOZWGtrCufOuk/edit"> <span style="font-weight: 400;">Cloud Native definition</span> </a> <span style="font-weight: 400;"> developed by the TOC. </span> </p> <div class="project-maturity-levels"> <h3>Project Maturity Levels</h3> <div class="copy-wrp"> <p> CNCF projects have a maturity level of sandbox, incubating, or graduated. CNCF uses these maturity levels to signal to enterprises which projects they should adopt. Graduated projects are suitable for the vast majority of all enterprises. Incubating projects are suitable for early adopters, and sandbox projects are for innovators. Projects increase their maturity level by demonstrating to the TOC that they have adoption, healthy rate of changes, and committers from multiple organizations as well as adopting the CNCF <a href="https://github.com/cncf/foundation/blob/master/code-of-conduct.md">Code of Conduct</a> and earning the Core Infrastructure Initiative <a href="https://bestpractices.coreinfrastructure.org/">Best Practices Badge</a> . Full details are listed in <a href="https://github.com/cncf/toc/blob/master/process/graduation_criteria.adoc">Graduation Criteria v1.1</a> . </p> <p> 2018 highlights include the addition of 16 new projects by the <a href="https://github.com/cncf/toc">CNCF TOC</a> , listed in order of date accepted: </p> </div> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/graphic-chasm-3-02-01.svg" alt=""> </div> <div class="incubating-sandbox-wrp"> <div class="project-incubating"> <h3>Incubating</h3> <ul class="items"> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/rook-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/vitess-stacked.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nats-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/helm-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/harbor-stacked.svg" alt=""> </li> </ul> </div> <div class="project-sandbox"> <h3>Sandbox</h3> <ul class="items"> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/spiffe-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/opa-stacked-color-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cloudevents-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/telepresence-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/openmetrics-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/tikv-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cortex-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/buildpacks-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/falco-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/dragonfly-01.svg" alt=""> </li> <li> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/virtualkubelet-stacked-color-01.svg" alt=""> </li> </ul> </div> </div> </div> </section> <section id="projects-updates-and-releases" class="projects-updates-and-releases"> <hr class="pink-blue-line"> <div class="project-container"> <h2>Project Updates And Releases</h2> <p>Many milestone releases demonstrated steady forward progress for each of these projects.</p> <figure> <span> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/kubernetes-stacked-color-01.svg"> </span> <figcaption> <p> <a href="https://kubernetes.io/blog/2018/12/03/kubernetes-1-13-release-announcement/">Kubernetes 1.13</a> was released in December 2018. New functionality included: simplified Kubernetes cluster management with kubeadm in GA and the <a href="https://github.com/container-storage-interface/spec">Container Storage Interface (CSI)</a> in GA. </p> </figcaption> </figure> <figure> <span> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/coredns-01.svg"> </span> <figcaption> <p> <a href="https://coredns.io/">CoreDNS</a> replaced kube-dns as the default DNS server for Kubernetes. </p> </figcaption> </figure> <figure> <span> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/fluentd-01.svg"> </span> <figcaption> <p> <a href="https://www.fluentd.org/">Fluentd</a> , the open source data collector for unified logging, added additional support for Splunk and Amazon Kinesis. </p> </figcaption> </figure> <figure> <span> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/opentracing-stacked-color.svg"> </span> <figcaption> <p>OpenTracing added Lua support, and the Jaeger platform saw the addition of a Jaeger Operator to reduce the operational overhead of running this on Kubernetes.</p> </figcaption> </figure> <figure> <span> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nats-01.svg"> </span> <figcaption> <p> The <a href="https://nats.io/">NATS</a> project, a simple, highperformance open source messaging system for cloud native applications, saw the inclusion of secure multitenancy and network topology optimizations over the past year. </p> </figcaption> </figure> <figure> <span> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/vitess-stacked.svg"> </span> <figcaption> <p> <a href="https://vitess.io/">Vitess</a> , a database clustering system for horizontal scaling of <a href="https://www.mysql.com/">MySQL</a> through the use of <a href="https://github.com/vitessio/vitess#vitess">generalized sharding</a> outside of application logic, released <a href="https://vitess.io/blog/2018-12-10-introducing-vitess-3.0/">v3</a> , which included functionality such as <a href="https://vitess.io/docs/reference/vitess-replication/">VReplication</a> , Prometheus monitoring integration, and a series of performance enhancements. </p> </figcaption> </figure> <figure> <span> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/linkerd-stacked-color.svg"> </span> <figcaption> <p> The Linkerd service mesh team released v2 (based on the previously <a href="https://www.cncf.io/blog/2018/09/18/linkerd-2-0-in-general-availability/">released</a> Conduit project), which enables execution in a service sidecar model. </p> </figcaption> </figure> <figure> <span> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/etcd-horizontal-1.svg"> </span> <figcaption> <p> Most recently, the TOC voted to accept <a href="https://github.com/coreos/etcd">etcd</a> as an incubation-level hosted project. That’s important because etcd plays a huge role in the Kubernetes ecosystem, serving as the “brain” of Kubernetes clusters. It’s a distributed keyvalue store, first developed by CoreOS and designed for reliability and scalability in distributed cluster environments. </p> </figcaption> </figure> </div> </section> <section id="services-and-assistance-for-projects" class="services-and-assistance-for-projects"> <hr class="pink-blue-line"> <div class="project-container"> <h2>Services And Assistance For Projects </h2> <p> CNCF provided a variety of <a href="https://github.com/cncf/servicedesk">services</a> to our projects to help make them more successful. </p> <h3>Security Audits</h3> <p>CNCF funded and orchestrated security audits for:</p> <figure class="small"> <a href="https://github.com/envoyproxy/envoy/blob/master/docs/SECURITY_AUDIT.pdf" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/envoy-stacked-color_BLACK.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <figure class="small"> <a href="https://github.com/prometheus/docs/pull/1065" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/prometheus-stacked-color.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <figure class="small"> <a href="https://coredns.io/2018/03/15/cure53-security-assessment/" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/coredns-01.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <figure class="small"> <a href="https://github.com/nats-io/nats-general/blob/master/reports/Cure53_NATS_Audit.pdf" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/nats-01.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <blockquote> <div> <div> <em>“In spite of eight security-relevant findings, the team responsible for this assessment of the Envoy compound can attest to the overall good state of security matters at the tested project. After spending twenty days on the Envoy test target in February 2018, the penetration testers concluded that the software was appropriately built and deployed. Similarly, </em> positive <em> impression concerned the Envoy code, which the auditors found to be well-written.”</em> </div> </div> </blockquote> <figure class="big"> <a href="https://github.com/open-policy-agent/opa/blob/master/SECURITY_AUDIT.pdf" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/opa-stacked-color-01.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <figure class="big"> <a href="https://github.com/theupdateframework/notary#security-audits" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/notary-stacked-color-01.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> <figure class="big"> <a href="https://github.com/containerd/containerd/#security-audit" rel="noopener noreferrer"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/containerd-stacked-black.svg" alt=""> </a> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/external-link-2.png" alt="" class="external-link"> </figure> </div> <hr class="pink-blue-line"> <div class="project-container"> <h3>Events</h3> <div class="left-wrp"> <ul> <li> CNCF has been investing in CNCF-hosted projects to hold their own specialized events, whether in conjunction with KubeCon + CloudNativeCon (including <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/co-located-events/#envoycon">EnvoyCon</a> and the <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/co-located-events/#observability-practitioners-summit">Observability Practitioner’s Summit</a> ) or standalone conferences (including <a href="https://promcon.io/">PromCon</a> ). </li> <li> The first-ever <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/co-located-events/#envoycon">EnvoyCon</a> , which was held on December 10, 2018, in Seattle as part of the KubeCon + CloudNativeCon <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">Community Events Day</a> , sold out weeks in advance with 350 attendees. </li> <li> CNCF hosted and gathered sponsors for <a href="https://promcon.io/">PromCon 2018</a> . </li> </ul> </div> <div class="right-wrp"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/46307731422_cfe0673716_k.jpg" alt=""> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/promcon-1.jpg" alt=""> </div> <hr class="pink-blue-line"> <h3 class="margin-top-large">Documentation, Websites And Blogs </h3> <div class="cols"> <ul> <li> Migrated Kubernetes community website <a href="https://github.com/kubernetes/website/pull/8316">infrastructure</a> from Jekyll to Hugo </li> <li> Added Kubernetes blog contribution <a href="https://github.com/kubernetes/website/pull/7646">guidelines</a> </li> <li>Contributed several guide-style documents to the Prometheus website regarding security (using Prometheus with SSL and basic auth, using Prometheus to monitor Docker containers, file-based service discovery, and more) </li> <li> Migrated the K8s blog to GitHub (from <a href="https://github.com/kubernetes/website/pull/7247">blogspot</a> ) </li> <li> Designed the <a href="https://www.jaegertracing.io/">Jaeger website</a> and docs from scratch </li> <li> Successfully migrated the current <a href="https://opentracing.io/">OpenTracing website</a> from GitBook to Hugo, with a revamped aesthetic and inclusion of the OpenTracing specification, and set up an OpenTracing + OpenCensus meeting to resolve conflicts amongst communities </li> <li> Designed the <a href="https://vitess.io/">TikV project</a> website and docs from scratch </li> <li> Authored a <a href="https://www.cncf.io/blog/2018/10/24/grpc-web-is-going-ga/">blog post</a> for the gRPC-Web GA release </li> <li> Modernized the <a href="https://github.com/containerd/containerd/pull/2342">website build process</a> for containerd </li> <li> Helped craft a new non-technical contributor’s guide for Kubernetes (see <a href="https://kubernetes.io/blog/2018/10/04/introducing-the-non-code-contributors-guide/">blog</a> ) </li> <li> <a href="https://kubernetes.cn/">kubernetes.cn</a> now offers a CDN of kubernetes.io content inside the Great Firewall </li> </ul> </div> </div> <hr class="pink-blue-line"> <div class="project-container"> <h3>Localization</h3> <ul> <li> Coordinated 3 new translation projects: <a href="https://github.com/kubernetes/kubernetes-docs-zh">Chinese</a> , <a href="https://github.com/kubernetes/kubernetes-docs-ja">Japanese</a> , and <a href="https://github.com/kubernetes/kubernetes-docs-ko">Korean</a> </li> <li> Established guidelines and standards for <a href="https://kubernetes.io/docs/contribute/localization/">localization</a> and branching strategy </li> </ul> <h3 class="margin-top-large">IT Support and Training </h3> <div class="cols"> <ul> <li> Onboarded <a href="https://github.com/kubernetes/website/blob/master/OWNERS">4 new maintainers and 2 new reviewers</a> for SIG Docs </li> <li> Organized site maintainers into <a href="https://github.com/kubernetes/website/wiki/PR-Wranglers">shifts for PR wrangling</a> to make sure that open PRs receive constant review for SIG Docs </li> <li>Trained a new SIG-PM subproject chair and a Kubernetes 1.12 features lead </li> <li>6 doc sprints (IBM Index, KubeCon + CloudNativeCon EU, Write the Docs Portland, Write the Docs Cincinnati, KubeCon + CloudNativeCon Shanghai, KubeCon + CloudNativeCon NA) </li> <li>Cost support for discuss.kubernetes.io </li> <li>Funded Kubernetes Storage SIG F2F </li> <li>Hired a documentation contractor to improve docs for Fluentd </li> <li>Supported the Github costs for NATS </li> <li>Supported sticker costs for Helm maintainers and at events </li> <li>Set up and supported PagerDuty costs for incident management </li> <li>Funded the KataCoda training course with an introduction course (NGINX > Envoy) </li> <li> Set up and funded <a href="https://github.com/kubernetes/steering/issues/72">OpsGenie</a> for incident management </li> </ul> </div> <div class="wrp-chart margin-top"> <div class="chart"> <h4>CNCF Service Desk Request Burn Up Chart </h4> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/burn-up-chart-02.svg" alt=""> </div> <p> To improve access to the above type of activities and services for projects, the <a href="https://servicedesk.cncf.io/">CNCF Service Desk</a> serves as a single access point for all CNCF services. If you’re a CNCF project maintainer, all you have to do is visit <a href="https://servicedesk.cncf.io">https://servicedesk.cncf.io</a> or email <a href="mailto:servicedesk@cncf.io">servicedesk@cncf.io</a> to request support. </p> </div> </div> </section> <section id="community-engagement" class="community-engagement"> <h2>Community Engagement</h2> <div class="community-container"> <div class="cols"> <p>Education, inclusion, and collaboration are vital to the future of the cloud native ecosystem.</p> <p> Part of supporting the continued development of this amazing community is making sure that everyone who wants to participate feels welcome to do so regardless of gender, gender identity, sexual orientation, disability, race, ethnicity, age, religion, or economic status. While having more female speakers at <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">KubeCon + CloudNativeCon Seattle</a> was an important step forward, there were a number of other activities that brought together the diversity of the cloud native community: speed networking and mentoring, the diversity lunch, sessions on building a community through Meetups, and KubeCon + CloudNativeCon diversity scholarships. </p> <p> CNCF’s diversity program offered scholarships to 147 recipients from traditionally underrepresented and/or marginalized groups to attend <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">KubeCon + CloudNativeCon Seattle</a> . These scholarships cover both the cost of the ticket as well as airfare and lodging. The $300,000 for Seattle, the largest investment made by a conference in diversity, was mainly contributed by CNCF, along with donations from Aspen Mesh, MongoDB, Twistlock, Two Sigma, and VMware. Including Seattle, CNCF has to date offered more than 485 diversity scholarships to attend KubeCon + CloudNativeCon events. </p> <p> CNCF collaborated with the Kubernetes mentoring program to offer networking opportunities for mentees at <a href="http://www.kubecon.io/">KubeCon + CloudNativeCon</a> . 66 mentors and 180 mentees participated in this program in Seattle. </p> </div> <div class="big-data"> <strong>147</strong> <span>Scholarship Recipients In Seattle From Traditionally Underrepresented Groups</span> </div> <div class="big-data"> <strong>485</strong> <span>Diversity Scholarships to attend Kubecon + CloudNativeCon Events To Date</span> </div> <div class="big-data bigger"> <div class="left-wrp"> <strong>$300,000</strong> <span>The Largest Investment Made By A Conference For Diversity</span> </div> <div class="right-wrp"> <span>Donated Mainly By:</span><br> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cncf-logo.png" alt="" class="main-logo"> <br> <span>Along With Donations From:</span> <span class="donators-wrp"> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/aspen-mesh.svg" alt=""> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/mongodb-01.svg" alt=""> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/twistlock.svg" alt=""> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/Two-Sigma.svg" alt=""> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/vmware.svg" alt=""> </figure> </span> </div> </div> </div> </section> <section id="community-awards" class="community-awards"> <hr class="pink-blue-line"> <div class="community-container"> <h2 class="margin-top-large">Community Awards </h2> <div class="left-wrp bigger"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/44488188240_3cde6a8338_k.jpg" alt=""> </div> <div class="right-wrp"> <p>For the third year in a row, the CNCF Community Awards, sponsored by VMware, highlighted the most active ambassador and top contributor across all CNCF projects.</p> <ul> <li> <strong>Top Cloud Native Committer</strong> – an individual with incredible technical skills and notable technical achievements in one or multiple CNCF projects. The 2018 recipient was Jordan Liggitt. </li> <li> <strong>Top Cloud Native Ambassador</strong> – an individual with incredible community-oriented skills, focused on spreading the word and sharing knowledge with the entire cloud native community or within a specific project. The 2018 recipient was Michael Hausenblas. </li> </ul> </div> <div class="left-wrp"> <p>It is essential not to overlook the individuals who give countless hours of their time to complete often mundane tasks, so CNCF created the Chop Wood/Carry Water awards. It was a proud moment for the cloud native community as CNCF recognized the tireless efforts of 14 individuals for their outstanding contributions from the past year: April Kyle Nassi, Babak “Bobby” Salamat, Christoph Blecker, Davanum Srinivas, Dianne Mueller, Jorge Castro, Kris Nova, Nikhita Raghunath, Paris Pittman, Reinhard Nagele, Richard Hartmann, Stephen Augustus, Tim Pepper, and Zach Arnold.</p> </div> <div class="right-wrp bigger"> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-1.jpg"> <figcaption>Davanum Srinivas </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-2.jpg"> <figcaption>Davanum Srinivas </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-3.jpg"> <figcaption>Christoph Blecker </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-4.jpg"> <figcaption>Nikhita Raghunath </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-5.jpg"> <figcaption>Paris Pittman </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-6.jpg"> <figcaption>Richard Hartmann </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-7.jpg"> <figcaption>Tim Pepper</figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-8.jpg"> <figcaption>Stephen Augustus </figcaption> </figure> <figure> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-9.jpg"> <figcaption>Kris Nova</figcaption> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-10.jpg"> <figcaption>Zach Arnold</figcaption> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-11.jpg"> <figcaption>Reinhard Nagele </figcaption> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-12.jpg"> <figcaption>Babak “Bobby” Salamat </figcaption> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-13.jpg"> <figcaption>Jorge Castro </figcaption> </figure> <figure> <img src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/community-14.jpg"> <figcaption>April Kyle Nassi </figcaption> </figure> </div> </div> </section> <section id="cncf-meetup" class="cncf-meetup" style="background-image:url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cncf-meetups-bg.png');"> <hr class="pink-blue-line"> <h2>CNCF MEETUPS</h2> <div class="meetup-container"> <p> CNCF supported more than 160 <a href="https://meetups.cncf.io/">meetup</a> groups in 38 countries, which have hosted more than 1,600 events and include more than 80,000 members. In 2018, we experienced a 60% increase in CNCF meetup members. </p> <div class="big-data"> <strong>160</strong> <span>Meetup Groups</span> </div> <div class="big-data"> <strong>1600</strong> <span>Events</span> </div> <div class="big-data"> <strong>80,000</strong> <span>Members</span> </div> <div class="big-data"> <strong>60%</strong> <span>Increase in 2018</span> </div> <div class="wrp-chart"> <div class="chart"> <h3>CNCF Meetup Member Growth</h3> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/meetup-chart-revised-01.svg" alt=""> </div> </div> </div> </section> <section id="cncf-ambassador-program" class="cncf-ambassador-program"> <div class="community-container"> <h2>CNCF Ambassador Program</h2> <div class="cols"> <p> The CNCF community spans the world through our contributors, members, meetups, and ambassadors. We boast more than <a href="https://all.devstats.cncf.io/d/8/dashboards?refresh=15m">45,000 contributors</a> to our CNCF projects, and we have 65 <a href="https://www.cncf.io/people/ambassadors/">CNCF Ambassadors</a> worldwide educating the world on cloud native technologies and best practices. </p> <p> We accepted 47 new CNCF ambassadors and provided financial support for ambassador-run meetups in 2018. Our vibrant community of successful ambassadors is comprised of developers, bloggers, influencers, and evangelists already engaged with a CNCF project in some way including contributing to development, online groups, and community events. We are excited to have this worldwide group of people with diverse interests, experiences, and technical backgrounds help drive local and global cloud native communities. Please check out the <a href="https://www.youtube.com/playlist?list=PLj6h78yzYM2OaNjjefJi5UnN9KQt8Q0qf">video interviews</a> with several of our CNCF ambassadors or <a href="https://www.cncf.io/blog/2018/09/07/meet-the-cncf-ambassadors/">read</a> about them. </p> </div> <div class="data-wrp"> <div class="big-data"> <strong>65</strong> <span>Number Of Ambassadors</span> </div> <div class="big-data"> <strong>50</strong> <span>Companies Represented</span> </div> <div class="big-data"> <strong>15</strong> <span>Countries Represented</span> </div> </div> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/cncf-ambassador-picture.png" alt=""> </div> </section> <section id="phippy-and-friends-joined-cncf-family" class="phippy-and-friends-joined-cncf-family"> <hr class="pink-blue-line"> <div class="community-container"> <h2>Phippy And Friends Joined CNCF Family </h2> <div class="cols"> <p> In 2016, <a href="http://deis.io/">Deis</a> (now part of Microsoft) Platform Architect Matt Butcher was looking for a way to explain Kubernetes to technical and non-technical people alike. Inspired by his daughter’s prolific stuffed animal collection, he came up with the idea of <em> <a href="https://www.cncf.io/phippy/the-childrens-illustrated-guide-to-kubernetes/">The Illustrated Children’s Guide to Kubernetes</a> </em> . Thus Phippy, the yellow giraffe and PHP application, along with her friends, were born. </p> <p> On the keynote stage during Day 1 of the <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2018/">KubeCon + CloudNativeCon Seattle</a> conference, Matt and co-author Karen Chu announced <a href="https://www.cncf.io/blog/2018/12/11/phippy-comes-to-cncf/">Microsoft’s donation of Phippy to CNCF</a> and presented the official sequel in their live reading of <em>Phippy Goes to the Zoo: A Kubernetes Story</em> . As part of Microsoft’s donation of both books and the characters, CNCF has licensed all of this material under the Creative Commons Attribution License (CC-BY), is available to remix, transform, and build upon the material for any purpose, even commercially. See <a href="https://phippy.io/">phippy.io</a> for more information. </p> </div> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/phippy-screenshot.png" alt="" class="screenshot"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/phippy-color-01.svg" alt="" class="illustration"> </div> </section> <section id="ecosystem-tools" class="ecosystem-tools"> <h2>Ecosystem Tools</h2> <div class="ecosystem-container"> <h3>DEVSTATS</h3> <p> CNCF developed <a href="https://k8s.devstats.cncf.io/">DevStats</a> starting in mid-2017 in response to requests from the Kubernetes Steering Committee and SIG-Contributor Experience to provide insight into how Kubernetes was dealing with nearly unprecedented growth. (It’s the second-largest community in open source, behind only Linux.) The tool, which is open source, downloads several terabytes of <a href="https://www.gharchive.org/">data</a> representing every public GitHub action of the last 5 years, throws out nearly all of it except for the ~100 repos of CNCF-hosted projects, processes the data and stores it in a <a href="https://www.postgresql.org/">Postgres</a> database, and then displays it using <a href="https://grafana.com/">Grafana</a> dashboards. DevStats now covers all CNCF-hosted projects and downloads updated data every hour. More recently, we have been iterating on several versions of a project status <a href="https://all.devstats.cncf.io/d/53/projects-health?orgId=1">dashboard</a> based on feedback from the TOC and project maintainers. </p> <div class="dev-stats-data"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/pastedImage0.png" alt=""> <p class="margin-top">DevStats is one of the most powerful visualization tools available for understanding contributions to open source software. It is also a testament to the power of open source development, as CNCF developer Lukasz Gryglicki remains very responsive to suggestions and pull requests that provide additional insights into the development of CNCF’s hosted projects.</p> </div> </div> </section> <section id="cncf-landscape-and-cloud-native-trail-map" class="cncf-landscape-and-cloud-native-trail-map"> <hr class="pink-blue-line"> <div class="ecosystem-container"> <h2>CNCF Landscape And Cloud Native Trail Map </h2> <p> The CNCF Cloud Native <a href="https://landscape.cncf.io/">Landscape</a> is intended as a map through the previously uncharted terrain of cloud native technologies. The landscape started in November 2016 as a static image of fewer than 100 projects and products. It has grown through the power of collaborative editing to track more than 600 items and now includes a <a href="https://landscape.cncf.io/serverless">serverless</a> landscape. The project has more than 4,000 stars on GitHub. </p> <p> In March 2018, CNCF released the Cloud Native <a href="https://landscape.cncf.io/">Landscape</a> 2.0, an interactive version that allows viewers to filter, obtain detailed information on a specific project or technology, and easily share via stateful URLs. The interactive landscape is open source with the data stored in a <a href="https://github.com/cncf/landscape/blob/master/landscape.yml">yaml</a> file. Every night, a server downloads updated GitHub data, financing information from Crunchbase, market cap data from Yahoo Finance, and CII <a href="https://bestpractices.coreinfrastructure.org/en">Best Practices</a> Badge information. </p> <div class="landscape-image"> <a href="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/landscape.png"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/landscape.png" alt="" width="1719" height="1025"></a> </div> <div class="trail-map margin-top-large"> <div> <a href="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_TrailMap_latest.png"> <img loading="lazy" class="" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/CNCF_TrailMap_latest.png" alt="" width="884" height="1025"></a> </div> <div> <p> In response to feedback that the landscape presents an overwhelming number of options, CNCF released the <a href="https://raw.githubusercontent.com/cncf/trailmap/master/CNCF_TrailMap_latest.png">Cloud Native Trail Map</a> , which provides an overview for enterprises starting their cloud native journey. While there are innumerable routes for deploying a cloud native application, CNCF projects represent a particularly well-traveled, tested, and trusted path. </p> <p>No matter the exact path each organization chooses to travel on its way to becoming cloud native, the goal of these new interactive and introductory guides is to help a company progress on its cloud native journey.</p> </div> </div> </div> </section> <section id="style-guide-and-logos" class="style-guide-and-logos"> <hr class="pink-blue-line"> <div class="ecosystem-container"> <h2>Style Guide And Logos</h2> <p> We are excited to share the <a href="https://github.com/cncf/foundation/blob/master/style-guide.md">CNCF Style Guide</a> with the community. We published the style guide last year to help establish a consistent format for writing about cloud native technologies. </p> <p> CNCF also maintains a <a href="https://github.com/cncf/artwork/">repository</a> of project logos in standard formats, shapes, and colors. There are 3 formats (PNG/SVG/AI), 3 layouts – horizontal (also known as landscape format), stacked (which is closer to square), and icon (which does not include the name and is square) – and 3 versions (color/black/white), which results in 27 versions of each logo. </p> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/project-logos-04.svg" alt=""> </div> </section> <section id="test-conformance-projects" class="test-conformance-projects"> <h2>Test Conformance Projects</h2> <div class="conformance-projects-container"> <p> The <a href="https://www.cncf.io/certification/software-conformance/">Certified Kubernetes</a> software conformance program relies on the open source conformance tests included in each version of Kubernetes. However, these tests are not as comprehensive as the community would like, as they don’t yet cover all stable APIs. CNCF has been investing in test development to add conformance tests, particularly for portions of the API that get heavily exercised by different Kubernetes implementations. Philosophically, CNCF generally avoids hiring engineers because we don’t want to compete with our members. We made an exception in this case to try to address some of the technical debt of having features in the stable API without corresponding conformance tests. </p> <p> In 2018, CNCF negotiated a software development contract with a well-regarded test development company, Globant, to have 2 engineers work full-time on conformance test development. All tests are submitted as PRs and approved through the normal SIG-Testing review process and with approval from SIG-Architecture. Additionally, after <a href="https://lists.cncf.io/g/cncf-k8s-conformance/message/358">consultation</a> with CNCF staff, SIGArchitecture promulgated a new <a href="https://github.com/kubernetes/community/pull/1806/files">requirement</a> that new features in Kubernetes require conformance tests before becoming part of the <a href="https://kubernetes.io/docs/reference/using-api/deprecation-policy/">stable API</a> . Thus, this test development is intended to focus on paying off the past technical debt rather than an indefinite, ongoing commitment of resources. </p> <div class="left-wrp"> <h3>Apisnoop</h3> <p> <a href="https://apisnoop.cncf.io/">APISnoop</a> is being developed by CNCF-funded contractors to help measure the usage of the Kubernetes API by different applications. An initial goal is to provide a useful indicator as to which Kubernetes APIs are used the most and don’t yet have conformance tests. This ensures we are testing APIs that are relevant. The output below is one visualization of how API groups’ endpoints and verbs are used today. </p> </div> <div class="right-wrp"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/diagram3-2-1.jpg" alt=""> </div> </div> </section> <section id="international-china" class="international-china" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/end-user-bg.png')"> <h2>International: China</h2> <div class="china-container"> <div class="left-wrp"> <div class="data-wrp"> <div class="big-data"> <strong>34,000+</strong> <span>Huawei Project Contributions</span> </div> <div class="big-data"> <strong>32,000+</strong> <span>Pingcap Project Contributions</span> </div> <div class="big-data"> <strong>3</strong> <span>CNCF Projects Were Born In China</span> </div> </div> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/pasted-image-0.jpg" alt=""> </div> <div class="right-wrp"> <p>CNCF’s first ever conference in China, KubeCon + CloudNativeCon Shanghai in November 2018, exceeded our expectations for serving as a bridge between open source developers in China and the rest of the world. More than 17% of attendees were from outside China, enabling two-way communication about new development and best practices for cloud native computing.</p> <p> Among Chinese contributors to CNCF-hosted projects, Huawei and PingCAP led the way with <a href="https://all.devstats.cncf.io/d/5/companies-summary?orgId=1">34,000 and 32,000</a> contributions, respectively, and are the fifth- and sixth-largest contributors overall. We also now host 3 CNCF projects that were born in China: <a href="https://github.com/dragonflyoss/Dragonfly">Dragonfly</a> (Alibaba), <a href="https://github.com/goharbor/harbor">Harbor</a> (VMware China), and <a href="https://github.com/tikv/tikv">TiKV</a> (PingCAP). </p> <p> We’re excited to build on this success by hosting <a href="https://www.cncf.io/community/kubecon-cloudnativecon-events/">KubeCon + CloudNativeCon + Open Source Summit</a> in Shanghai June 24-26, 2019. </p> </div> </div> </section> <section id="happy-birthday-cncf" class="happy-birthday-cncf"> <h2>Happy Birthday CNCF!</h2> <div class="birthday-container"> <blockquote>Happy Birthday CNCF! </blockquote> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/unnamed.png" alt=""> </div> </section> <section id="looking-forward" class="looking-forward"> <h2>Looking Forward To 2019</h2> <div class="looking-forward-container"> <p class="forward-larger">Quite possibly, no software foundation has ever had a more successful year than CNCF did in 2018. The success of CNCF is directly attributable to the contributions and support of member companies, developer community, and end users. We are very grateful for that. </p> <p> CNCF is committed to <strong>fostering and sustaining an ecosystem</strong> of open source, vendor-neutral projects by democratizing state-of-the-art patterns to make technology accessible for everyone. </p> <p> Through initiatives like conformance test development, documentation improvements, and security audits, we are reinvesting the proceeds from membership and conferences into making the <strong>cloud native platform more reliable</strong> . </p> <p> Our core strategy in 2019 is to stay focused on the <strong>developer community</strong> who are the heart and soul of the cloud native ecosystem. We are eager to assist developers, particularly from end user organizations, progress into new roles like contributor and maintainer. </p> <p> In 2019, we will also focus on <strong>increased engagement</strong> with end users to ensure their voices are represented, their feedback is acted upon, and their organizations are set up for successfully adopting cloud native. </p> <p> Our <strong>flagship events</strong> <a href="http://www.kubecon.io/">KubeCon + CloudNativeCon</a> will continue to bring together the community and create opportunities for collaboration. We expect our three events – <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019/">Barcelona </a> (May 20-23), <a href="https://events.linuxfoundation.cn/events/kubecon-cloudnativecon-china-2019/">Shanghai</a> (June 24-26), and <a href="https://events.linuxfoundation.org/events/kubecon-cloudnativecon-north-america-2019/">San Diego</a> (November 18-21) – to be the best yet. We will help CNCF projects accelerate to reach critical mass and achieve their maximum potential. We will also continue <strong>investing</strong> in new markets like <strong>China and India</strong> that are embracing cloud native and open source technologies at a phenomenal rate. Our first <a href="https://events.linuxfoundation.org/events/kubernetes-day-india-2019/">Kubernetes Day</a> event will be in Bengaluru on March 23. </p> <p> Another major focus of 2019 will be helping expand cloud native technologies to telcos. We will be demonstrating how they can evolve their Virtual Network Functions (VNFs) architectures into Cloud Native Network Functions (CNFs) running on Kubernetes. </p> <p> 2018 was a stellar year for CNCF. We are well-positioned both financially and organizationally to continue our <strong>mission</strong> to make <strong>cloud native computing ubiquitous</strong> . We look forward to having you join us on this journey as we plan for a blockbuster 2019. </p> <p> <em>Dee Kumar, Vice President, Marketing, CNCF</em> </p> </div> </section> <section id="contact_us" class="contact_us-section" style="background-image: url('/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/banner-home.jpg')"> <img loading="lazy" src="/wp-content/themes/cncf-twenty-two/images/annual-reports/2018/logo-CNCF.png"> <ul class="detail"> <li> <a href="https://www.cncf.io">cncf.io</a> </li> <li>415-723-9709</li> <li>1 Letterman Drive, Suite D4700</li> <li>San Francisco, CA 94129</li> <li>United States</li> </ul> </section> <hr class="pink-blue-line"> </div> </div> </div> </div> </div> </div> </div> <footer class="footer"> <div class="container wrap footer_container" id="inner-footer-container"> <div style="height:70px" aria-hidden="true" class="wp-block-spacer is-style-70-100"></div> <div class="newsletter" id="newsletter"> <p class="newsletter__title is-style-max-width-800"><strong>Subscribe</strong> for updates, event info, webinars, and the latest community news</p> <div style="height:60px" aria-hidden="true" class="wp-block-spacer is-style-20-60"></div> <script> window.hsFormsOnReady = window.hsFormsOnReady || []; window.hsFormsOnReady.push(()=>{ hbspt.forms.create({ portalId: 8112310, formId: "be1b038f-98de-43b5-b211-d5f7bf6510c9", target: "#hbspt-form-1732453297000-1199434833", region: "", })}); </script> <div class="hbspt-form" id="hbspt-form-1732453297000-1199434833"></div> <div style="height:30px" aria-hidden="true" class="wp-block-spacer is-style-30-40"></div> <p class="newsletter__privacy">By submitting this form, I consent to receive marketing emails from the LF and its projects regarding their events, training, research, developments, and related announcements. I understand that I can unsubscribe at any time using the links in the footers of the emails I receive. <a href="https://www.linuxfoundation.org/privacy/">Privacy Policy</a>.</p> <div style="height:60px" aria-hidden="true" class="wp-block-spacer is-style-30-60"></div> </div> <div class="horizontal-rule"></div> <div style="height:60px" aria-hidden="true" class="wp-block-spacer is-style-40-60"></div> <div class="lf-grid"> <nav class="width-10/12"> <div class="menu-footer_01-container"><ul id="menu-footer_01" class="menu"><li id="menu-item-71671" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71671 lf-menu-title">About Us</li> <li id="menu-item-112413" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-112413"><a href="https://www.cncf.io/membership-hub/">Membership Hub</a></li> <li id="menu-item-71674" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71674"><a href="https://www.cncf.io/people/technical-oversight-committee/">Technical Oversight Committee</a></li> <li id="menu-item-71675" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71675"><a href="https://www.cncf.io/people/governing-board/">Governing Board</a></li> <li id="menu-item-102487" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-102487"><a href="https://www.cncf.io/people/end-user-technical-advisory-board/">End User TAB</a></li> <li id="menu-item-72638" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72638"><a href="https://www.cncf.io/people/ambassadors/">Ambassadors</a></li> <li id="menu-item-71722" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71722"><div class="lf-menu-divider"></div></li> <li id="menu-item-71672" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71672"><a href="https://www.cncf.io/about/who-we-are/">Who We Are</a></li> <li id="menu-item-71673" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71673"><a href="https://www.cncf.io/about/members/">Member Listing</a></li> <li id="menu-item-74275" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-74275"><a href="https://www.cncf.io/conduct/">Code of Conduct</a></li> <li id="menu-item-118515" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-118515"><a href="https://www.cncf.io/policies/">Policies</a></li> <li id="menu-item-71676" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71676"><a href="https://www.cncf.io/people/staff/">Staff</a></li> <li id="menu-item-71677" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71677"><a href="https://www.cncf.io/about/faq/">FAQ</a></li> <li id="menu-item-71678" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71678"><a href="https://www.cncf.io/about/contact/">Contact Us</a></li> </ul></div><div class="menu-footer_02-container"><ul id="menu-footer_02" class="menu"><li id="menu-item-71679" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71679 lf-menu-title">Projects</li> <li id="menu-item-71680" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71680"><a href="https://contribute.cncf.io"><span class="lf-external-link">Contribute</span></a></li> <li id="menu-item-103343" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-103343"><a href="https://contribute.cncf.io/resources/project-services/"><span class="lf-external-link">Services for CNCF Projects</span></a></li> <li id="menu-item-71682" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71682"><a href="https://landscape.cncf.io"><span class="lf-external-link">Cloud Native Landscape</span></a></li> <li id="menu-item-71724" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71724"><a href="https://www.cncf.io/reports/?_sft_lf-report-type=project-journey">Project Journey Reports</a></li> <li id="menu-item-72639" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72639"><a href="https://www.cncf.io/project-tools/">Project Tools</a></li> <li id="menu-item-71723" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71723"><div class="lf-menu-divider"></div></li> <li id="menu-item-71684" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71684"><a href="https://www.cncf.io/projects/">Graduated</a></li> <li id="menu-item-71685" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71685"><a href="https://www.cncf.io/projects/">Incubating</a></li> <li id="menu-item-71686" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71686"><a href="https://www.cncf.io/sandbox-projects/">Sandbox</a></li> <li id="menu-item-71687" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71687"><a href="https://www.cncf.io/archived-projects/">Archive</a></li> <li id="menu-item-94550" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94550"><a href="https://www.cncf.io/project-metrics/">Project Metrics</a></li> </ul></div><div class="menu-footer_03-container"><ul id="menu-footer_03" class="menu"><li id="menu-item-71688" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71688 lf-menu-title">Training</li> <li id="menu-item-97055" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97055"><a href="https://www.cncf.io/training/">Training Overview</a></li> <li id="menu-item-97053" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97053"><a href="https://www.cncf.io/training/certification/">Certifications</a></li> <li id="menu-item-97054" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97054"><a href="https://www.cncf.io/training/courses/">Courses</a></li> <li id="menu-item-104458" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-104458"><a href="https://www.cncf.io/training/kubestronaut/">Kubestronaut Program</a></li> <li id="menu-item-71725" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71725"><div class="lf-menu-divider"></div></li> <li id="menu-item-71691" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71691"><a href="https://www.cncf.io/training/kubernetes-training-partners/">KTP</a></li> <li id="menu-item-104421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-104421"><a href="https://www.cncf.io/training/cncf-endorsed-content/">CNCF Endorsed Content</a></li> <li id="menu-item-71689" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71689"><a href="https://www.cncf.io/training/certification/software-conformance/">Certified Kubernetes</a></li> <li id="menu-item-72642" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72642"><a href="https://www.cncf.io/training/certification/cnf/">CNF</a></li> <li id="menu-item-72641" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72641"><a href="https://www.cncf.io/training/certification/kcsp/">KCSP</a></li> </ul></div><div class="menu-footer_04-container"><ul id="menu-footer_04" class="menu"><li id="menu-item-71697" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71697 lf-menu-title">Community</li> <li id="menu-item-71698" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71698"><a href="https://www.cncf.io/enduser/">End User Community</a></li> <li id="menu-item-71699" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71699"><a href="https://www.cncf.io/events/">Events We’ll Be At</a></li> <li id="menu-item-71701" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71701"><a href="https://www.cncf.io/case-studies/">Case Studies</a></li> <li id="menu-item-72643" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72643"><a href="https://www.cncf.io/humans-of-cloud-native/">Humans of Cloud Native</a></li> <li id="menu-item-120508" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-120508"><a href="https://www.cncf.io/heroes/">The Cloud Native Heroes Challenge</a></li> <li id="menu-item-71726" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71726"><div class="lf-menu-divider"></div></li> <li id="menu-item-71700" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71700"><a href="https://www.cncf.io/online-programs/">Online Programs</a></li> <li id="menu-item-71704" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71704"><a href="https://www.cncf.io/kubeweekly/">KubeWeekly</a></li> <li id="menu-item-71705" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71705"><a href="https://community.cncf.io"><span class="lf-external-link">Community Groups</span></a></li> <li id="menu-item-71706" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71706"><a href="https://www.cncf.io/phippy/">Phippy & Friends</a></li> <li id="menu-item-71707" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71707"><a href="https://glossary.cncf.io"><span class="lf-external-link">Cloud Native Glossary</span></a></li> <li id="menu-item-71727" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71727"><div class="lf-menu-divider"></div></li> <li id="menu-item-71708" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71708"><a href="https://jobs.cncf.io"><span class="lf-external-link">Job Board</span></a></li> <li id="menu-item-71709" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71709"><a href="https://slack.cncf.io/"><span class="lf-external-link">Slack</span></a></li> <li id="menu-item-71710" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71710"><a href="https://lists.cncf.io/g/main/subgroups"><span class="lf-external-link">Mailing Lists</span></a></li> <li id="menu-item-71711" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71711"><a href="https://store.cncf.io"><span class="lf-external-link">Store</span></a></li> <li id="menu-item-71712" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71712"><a href="https://www.cncf.io/calendar/">Calendar</a></li> </ul></div><div class="menu-footer_05-container"><ul id="menu-footer_05" class="menu"><li id="menu-item-71713" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71713 lf-menu-title">Blog & News</li> <li id="menu-item-71714" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71714"><a href="https://www.cncf.io/blog/">Blog</a></li> <li id="menu-item-71715" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71715"><a href="https://www.cncf.io/announcements/">Announcements</a></li> <li id="menu-item-71716" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-71716"><a href="https://www.cncf.io/news/">News</a></li> <li id="menu-item-71717" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-71717"><a href="https://www.cncf.io/reports/">Reports</a></li> <li id="menu-item-71728" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71728"><div class="lf-menu-divider"></div></li> <li id="menu-item-75050" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75050"><a href="https://www.cncf.io/brand-guidelines/">Brand Guidelines</a></li> <li id="menu-item-71719" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71719"><a href="https://github.com/cncf/artwork"><span class="lf-external-link">Project Logos</span></a></li> <li id="menu-item-71720" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71720"><a href="https://www.youtube.com/c/cloudnativefdn"><span class="lf-external-link">Videos</span></a></li> <li id="menu-item-71721" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71721"><a href="https://www.flickr.com/photos/143247548@N03/albums/"><span class="lf-external-link">Pictures</span></a></li> </ul></div> </nav> <div class="footer__cta"> <a href="https://www.cncf.io/about/join/" class="wp-block-button__link has-no-padding">Join Now</a> </div> </div> <div style="height:80px" aria-hidden="true" class="wp-block-spacer is-style-30-80"></div> <div class="lf-grid"> <div class="footer__logo-and-hub"> <a class="footer__logo show-over-1000" href="/" title="Cloud Native Computing Foundation"> <img src="https://www.cncf.io/wp-content/uploads/2022/05/CNCF_logo_white.svg" loading="lazy" width="210" height="40" alt="Cloud Native Computing Foundation"> </a> <!-- All CNCF button --> <div class="footer__hub wp-block-buttons"> <div class="wp-block-button"><a href="https://www.cncf.io/all-cncf/" class="wp-block-button__link wp-element-button">All CNCF Sites</a></div> </div> </div> <ul class="social-links"> <li class="social-twitter"><a title="Cloud Native Computing Foundation on X" href="https://twitter.com/cloudnativefdn"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 300 300" aria-label="X"><path fill="currentColor" d="M178.57 127.15 290.27 0h-26.46l-97.03 110.38L89.34 0H0l117.13 166.93L0 300.25h26.46l102.4-116.59 81.8 116.59h89.34M36.01 19.54H76.66l187.13 262.13h-40.66"/></svg> </a></li> <li class="social-github"><a title="Cloud Native Computing Foundation on Github" href="https://github.com/cncf"><svg xmlns="http://www.w3.org/2000/svg" viewbox="-0.1 0.21 24.7 24.14" aria-label="GitHub"><path fill="currentColor" d="M24.188 12.63A11.893 11.893 0 0 0 3.887 4.221a11.893 11.893 0 0 0-1.272 15.317 11.899 11.899 0 0 0 5.81 4.34 1.14 1.14 0 0 0 .612-.885c0-.654-.014-2.337-.014-2.337-.415.061-.834.09-1.253.088a2.692 2.692 0 0 1-2.722-1.837 3.22 3.22 0 0 0-1.336-1.585c-.308-.198-.379-.431-.023-.498 1.643-.308 2.064 1.853 3.16 2.198.76.236 1.58.17 2.293-.183.1-.614.44-1.165.943-1.531-2.791-.267-4.446-1.232-5.304-2.781l-.092-.174-.216-.492-.064-.176a8.34 8.34 0 0 1-.386-2.694A4.596 4.596 0 0 1 5.334 7.58a4.765 4.765 0 0 1 .207-3.43s1.208-.248 3.492 1.378c1.237-.528 4.538-.571 6.1-.117.957-.63 2.71-1.524 3.417-1.274.193.307.604 1.2.25 3.164a5.523 5.523 0 0 1 1.493 3.942 10.198 10.198 0 0 1-.305 2.444l-.103.349s-.06.165-.123.322l-.075.173c-.828 1.809-2.527 2.484-5.274 2.766.89.557 1.144 1.256 1.144 3.146s-.025 2.144-.02 2.578a1.199 1.199 0 0 0 .59.87 11.9 11.9 0 0 0 8.06-11.26z"/></svg></a></li> <li class="social-linkedin"><a title="Cloud Native Computing Foundation on LinkedIn" href="https://www.linkedin.com/company/cloud-native-computing-foundation/"><svg xmlns="http://www.w3.org/2000/svg" viewbox="-10.23 -10.23 531.96 531.96" aria-label="LinkedIn"><rect width="512" height="512" rx="0" fill="currentColor"/><circle fill="#000" cx="142" cy="138" r="37"/><path stroke="#000" stroke-width="66" d="M244 194v198M142 194v198"/><path fill="#000" d="M276 282c0-20 13-40 36-40 24 0 33 18 33 45v105h66V279c0-61-32-89-76-89-34 0-51 19-59 32"/></svg></a></li> <li class="social-instagram"><a title="Cloud Native Computing Foundation on Instagram" href="https://www.instagram.com/cloudnativecomputingfoundation/"><svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m12 0c-3.26 0-3.667.015-4.947.072-1.278.06-2.148.261-2.913.558-.789.306-1.459.717-2.126 1.384s-1.079 1.336-1.384 2.126c-.297.765-.499 1.635-.558 2.913-.06 1.28-.072 1.687-.072 4.947s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558 1.28.06 1.687.072 4.947.072s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126-.667-.667-1.335-1.079-2.126-1.384-.765-.297-1.636-.499-2.913-.558-1.28-.06-1.687-.072-4.947-.072zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zm0 10.162c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44s.646-1.439 1.44-1.439c.793-.001 1.44.645 1.44 1.439z"/></svg></a></li> <li class="social-wechat"><a title="Cloud Native Computing Foundation on WeChat" href="https://www.cncf.io/wechat/"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0.14 -0.17 38.02 33.02" aria-label="Wechat"><path fill="currentColor" d="M26.289 10.976a12.972 12.972 0 0 0-8.742 3.53 10.386 10.386 0 0 0-3.224 8.795c-1.326-.164-2.535-.345-3.75-.448a2.332 2.332 0 0 0-1.273.216c-1.18.666-2.311 1.418-3.652 2.255.246-1.112.405-2.087.687-3.024a1.15 1.15 0 0 0-.523-1.52C1.737 17.902.02 13.601 1.307 9.165c1.189-4.1 4.11-6.587 8.077-7.884A13.54 13.54 0 0 1 24.18 5.617a10.135 10.135 0 0 1 2.109 5.359zM10.668 9.594a1.564 1.564 0 0 0-2.095-1.472 1.52 1.52 0 0 0-.895 1.964 1.502 1.502 0 0 0 1.391.966 1.545 1.545 0 0 0 1.598-1.46v.002zm8.15-1.566a1.567 1.567 0 0 0-1.528 1.543 1.528 1.528 0 0 0 1.571 1.492 1.52 1.52 0 0 0 1.375-2.117 1.518 1.518 0 0 0-1.415-.919l-.003.001z"/><path fill="currentColor" d="M33.914 32.137c-1.075-.478-2.062-1.196-3.11-1.306-1.049-.11-2.145.494-3.24.605a10.821 10.821 0 0 1-8.781-2.864c-4.682-4.33-4.013-10.97 1.403-14.518 4.811-3.154 11.874-2.102 15.268 2.273a8.671 8.671 0 0 1-1.002 12.095c-1.046.929-1.422 1.693-.751 2.917.102.257.174.525.213.798zM21.68 20.292a1.264 1.264 0 1 0 .01-2.528 1.264 1.264 0 0 0-.01 2.528zm7.887-2.526a1.266 1.266 0 0 0-1.256 1.21 1.247 1.247 0 1 0 1.256-1.21z"/></svg></a></li> <li class="social-youtube"><a title="Cloud Native Computing Foundation on YouTube" href="https://www.youtube.com/c/cloudnativefdn"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0.21 0.27 34.45 25.07" aria-label="YouTube"><path fill="currentColor" d="M33.729 6.084s-.327-2.33-1.317-3.356a4.691 4.691 0 0 0-3.32-1.432c-4.634-.34-11.589-.34-11.589-.34h-.014s-6.954 0-11.59.342a4.692 4.692 0 0 0-3.32 1.432c-.993 1.025-1.315 3.354-1.315 3.354a52.189 52.189 0 0 0-.331 5.473v2.566c.014 1.829.125 3.656.331 5.472 0 0 .322 2.33 1.316 3.36 1.26 1.345 2.916 1.3 3.653 1.445 2.65.26 11.263.34 11.263.34s6.96-.01 11.597-.353a4.691 4.691 0 0 0 3.32-1.432c.993-1.026 1.316-3.356 1.316-3.356.206-1.817.316-3.644.33-5.473v-2.57a52.26 52.26 0 0 0-.33-5.472zM14.076 17.232V7.729l8.951 4.768-8.95 4.735z"/></svg></a></li> <li class="social-flickr"><a title="Cloud Native Computing Foundation on Flickr" href="https://www.flickr.com/photos/143247548@N03/albums"><svg xmlns="http://www.w3.org/2000/svg" viewbox="-0.35 0.34 27.82 13.45" aria-label="Flickr"><path fill="currentColor" fill-rule="evenodd" d="M12.599 7.083a6.181 6.181 0 1 1-12.363 0 6.181 6.181 0 0 1 12.363 0zm14.376 0a6.18 6.18 0 1 1-12.362 0 6.18 6.18 0 0 1 12.362 0z" clip-rule="evenodd"/></svg></a></li> <li class="social-facebook"><a title="Cloud Native Computing Foundation on Facebook" href="https://www.facebook.com/CloudNativeComputingFoundation/"><svg xmlns="http://www.w3.org/2000/svg" viewbox="-0.51 -0.26 26.45 26.45" aria-label="Facebook"><path fill="currentColor" d="M25.497 13.075c0-2.45-.698-4.848-2.011-6.911a12.765 12.765 0 0 0-5.398-4.73A12.671 12.671 0 0 0 11.008.38a12.705 12.705 0 0 0-6.529 2.95A12.827 12.827 0 0 0 .563 9.358a12.896 12.896 0 0 0-.07 7.201 12.831 12.831 0 0 0 3.801 6.103 12.709 12.709 0 0 0 6.471 3.078v-8.957H7.53v-3.708h3.235v-2.824c0-3.213 1.903-4.988 4.813-4.988.956.014 1.909.097 2.852.25V8.67h-1.607a1.83 1.83 0 0 0-1.518.497 1.854 1.854 0 0 0-.561 1.505v2.404h3.535l-.563 3.708h-2.97v8.957a12.725 12.725 0 0 0 7.697-4.337 12.87 12.87 0 0 0 3.054-8.328z"/></svg></a></li> <li class="social-bluesky"><a title="Cloud Native Computing Foundation on Bluesky" href="https://bsky.app/profile/cncf.io"><svg aria-label="Bluesky" fill="none" height="23" viewbox="0 0 26 23" width="26" xmlns="http://www.w3.org/2000/svg"><path d="m5.81085 1.81485c-2.0472-1.60851-5.410459-2.778339-5.410459 1.0236 0 .80426.438685 6.43406.658029 7.38455.95048 3.1439 4.16751 3.9482 7.09208 3.5095-5.04488.8042-6.36094 3.6557-3.5826 6.5072 5.26423 5.4835 7.6039-1.3161 8.1888-3.0708l.1462-.3656.1463.3656c.5849 1.7547 2.9245 8.5543 8.1888 3.0708 2.7783-2.8515 1.4622-5.703-3.5826-6.5072 2.9245.4387 6.1416-.3656 7.092-3.5095.2194-.95049.6581-6.58029.6581-7.38455 0-3.801939-3.3633-2.63211-5.4105-1.0236-2.8514 2.12032-5.9954 6.50717-7.0921 8.84685-1.0967-2.33968-4.2406-6.72653-7.09205-8.84685z" fill="currentColor"/></svg></a></li> <li class="social-slack"><a title="Cloud Native Computing Foundation Slack" href="https://slack.cncf.io/"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0.16 -0.03 21.19 21.19" aria-label="Slack"><path fill="currentColor" d="M4.896 13.27a2.147 2.147 0 0 1-2.141 2.142A2.147 2.147 0 0 1 .613 13.27c0-1.178.963-2.141 2.142-2.141h2.141v2.141zm1.08 0c0-1.178.962-2.141 2.141-2.141s2.142.963 2.142 2.141v5.363a2.147 2.147 0 0 1-2.142 2.141 2.147 2.147 0 0 1-2.141-2.142V13.27zm2.141-8.6a2.147 2.147 0 0 1-2.141-2.14c0-1.18.962-2.142 2.141-2.142s2.142.963 2.142 2.141v2.142H8.117zm0 1.08c1.179 0 2.141.962 2.141 2.141a2.147 2.147 0 0 1-2.141 2.142H2.755A2.147 2.147 0 0 1 .613 7.89c0-1.179.963-2.141 2.142-2.141h5.362zm8.599 2.141c0-1.179.963-2.141 2.141-2.141 1.179 0 2.143.962 2.143 2.14a2.147 2.147 0 0 1-2.142 2.142h-2.141V7.89zm-1.08 0a2.147 2.147 0 0 1-2.141 2.142 2.147 2.147 0 0 1-2.141-2.142V2.53c0-1.178.962-2.141 2.141-2.141s2.142.963 2.142 2.141v5.362zm-2.141 8.6c1.179 0 2.142.962 2.142 2.14a2.147 2.147 0 0 1-2.142 2.142 2.147 2.147 0 0 1-2.141-2.141V16.49h2.141zm0-1.08a2.147 2.147 0 0 1-2.141-2.141c0-1.179.962-2.142 2.141-2.142h5.362c1.179 0 2.142.963 2.142 2.142a2.147 2.147 0 0 1-2.142 2.142h-5.362z"/></svg></a></li> </ul> </div> <div style="height:40px" aria-hidden="true" class="wp-block-spacer show-over-1000"></div> <div class="horizontal-rule show-over-1000"></div> <div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div> <div class="lf-grid"> <div class="footer__copyright"> <p>Copyright © 2024 The Linux Foundation®. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our <a href="https://www.linuxfoundation.org/legal/trademark-usage">Trademark Usage</a> page. Linux is a registered trademark of Linus Torvalds. <a href="https://www.linuxfoundation.org/legal/privacy-policy">Privacy Policy</a> and <a href="https://www.linuxfoundation.org/legal/terms">Terms of Use</a>. </p> </div> <p class="footer__issue"> <a href="https://www.cncf.io/accessibility-statement/">Accessibility Statement</a><br> <a href="https://github.com/cncf/cncf.io/issues/new?title=Your+issue&projects=cncf/cncf.io/1&body=From+URL%3A+https%3A%2F%2Fwww.cncf.io%2Freports%2Fcncf-annual-report-2018%2F">Submit an issue with this page</a> </p> </div> <div style="height:90px" aria-hidden="true" class="wp-block-spacer"> </div> </div> </footer> <div class="back-to-top"> <span title="Go to top"> <svg width="40" height="27" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3 23.5l17-17 17 17" stroke="#fff" stroke-width="8"/></svg> </span> </div> <link rel='stylesheet' id='2018-css' href='https://www.cncf.io/wp-content/themes/cncf-twenty-two/build/annual-report-2018.min.css?ver=1732368213' media='all' /> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #FFFFFF;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--pink-400: #d62293;--wp--preset--color--tertiary-400: #62a1ff;--wp--preset--color--gray-700: #747474;--wp--preset--color--gray-500: #c4c4c4;--wp--preset--color--gray-400: #e6e6e6;--wp--preset--color--gray-300: #eeeeee;--wp--preset--color--gray-200: #f8f8f8;--wp--preset--color--gray-100: #fcfcfc;--wp--preset--color--gray-050: #fdfdfd;--wp--preset--color--purple: #4A23CC;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--medium: 18px;--wp--preset--font-size--large: 20px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--extra-small: 10px;--wp--preset--font-size--normal: 16px;--wp--preset--font-size--larger: 24px;--wp--preset--font-size--extra-large: 36px;--wp--preset--font-size--extra-extra-large: 46px;--wp--preset--font-family--primary: Clarity City,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Roboto,Ubuntu,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;--wp--preset--font-family--serif: Source Serif Pro, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}.wp-block-button .wp-block-button__link{--wp--preset--color--pink-400: #d62293;--wp--preset--color--black: #000000;}:root { --wp--style--global--content-size: 1200px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{background-color: var(--wp--preset--color--gray-050);color: var(--wp--preset--color--black);font-family: var(--wp--preset--font-family--primary);font-weight: 400;padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;text-decoration: none;}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--pink-400);font-weight: 700;text-decoration: none;}h1, h2, h3, h4, h5, h6{color: var(--wp--preset--color--black);font-weight: 700;}:root :where(.wp-element-button, .wp-block-button__link){background-color: var(--wp--preset--color--pink-400);border-radius: 5px;border-width: 0;color: var(--wp--preset--color--white);font-family: inherit;font-size: 16px;font-weight: 700;letter-spacing: 0.02em;line-height: 18px;padding-top: 11px;padding-right: 40px;padding-bottom: 11px;padding-left: 40px;text-decoration: none;text-transform: uppercase;}:root :where(.wp-element-button:visited, .wp-block-button__link:visited){color: var(--wp--preset--color--white);text-decoration: none;}:root :where(.wp-element-button:hover, .wp-block-button__link:hover){background-color: #c53490;color: var(--wp--preset--color--white);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-pink-400-color{color: var(--wp--preset--color--pink-400) !important;}.has-tertiary-400-color{color: var(--wp--preset--color--tertiary-400) !important;}.has-gray-700-color{color: var(--wp--preset--color--gray-700) !important;}.has-gray-500-color{color: var(--wp--preset--color--gray-500) !important;}.has-gray-400-color{color: var(--wp--preset--color--gray-400) !important;}.has-gray-300-color{color: var(--wp--preset--color--gray-300) !important;}.has-gray-200-color{color: var(--wp--preset--color--gray-200) !important;}.has-gray-100-color{color: var(--wp--preset--color--gray-100) !important;}.has-gray-050-color{color: var(--wp--preset--color--gray-050) !important;}.has-purple-color{color: var(--wp--preset--color--purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-pink-400-background-color{background-color: var(--wp--preset--color--pink-400) !important;}.has-tertiary-400-background-color{background-color: var(--wp--preset--color--tertiary-400) !important;}.has-gray-700-background-color{background-color: var(--wp--preset--color--gray-700) !important;}.has-gray-500-background-color{background-color: var(--wp--preset--color--gray-500) !important;}.has-gray-400-background-color{background-color: var(--wp--preset--color--gray-400) !important;}.has-gray-300-background-color{background-color: var(--wp--preset--color--gray-300) !important;}.has-gray-200-background-color{background-color: var(--wp--preset--color--gray-200) !important;}.has-gray-100-background-color{background-color: var(--wp--preset--color--gray-100) !important;}.has-gray-050-background-color{background-color: var(--wp--preset--color--gray-050) !important;}.has-purple-background-color{background-color: var(--wp--preset--color--purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-pink-400-border-color{border-color: var(--wp--preset--color--pink-400) !important;}.has-tertiary-400-border-color{border-color: var(--wp--preset--color--tertiary-400) !important;}.has-gray-700-border-color{border-color: var(--wp--preset--color--gray-700) !important;}.has-gray-500-border-color{border-color: var(--wp--preset--color--gray-500) !important;}.has-gray-400-border-color{border-color: var(--wp--preset--color--gray-400) !important;}.has-gray-300-border-color{border-color: var(--wp--preset--color--gray-300) !important;}.has-gray-200-border-color{border-color: var(--wp--preset--color--gray-200) !important;}.has-gray-100-border-color{border-color: var(--wp--preset--color--gray-100) !important;}.has-gray-050-border-color{border-color: var(--wp--preset--color--gray-050) !important;}.has-purple-border-color{border-color: var(--wp--preset--color--purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-extra-small-font-size{font-size: var(--wp--preset--font-size--extra-small) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-larger-font-size{font-size: var(--wp--preset--font-size--larger) !important;}.has-extra-large-font-size{font-size: var(--wp--preset--font-size--extra-large) !important;}.has-extra-extra-large-font-size{font-size: var(--wp--preset--font-size--extra-extra-large) !important;}.has-primary-font-family{font-family: var(--wp--preset--font-family--primary) !important;}.has-serif-font-family{font-family: var(--wp--preset--font-family--serif) !important;}.wp-block-button .wp-block-button__link.has-pink-400-color{color: var(--wp--preset--color--pink-400) !important;}.wp-block-button .wp-block-button__link.has-black-color{color: var(--wp--preset--color--black) !important;}.wp-block-button .wp-block-button__link.has-pink-400-background-color{background-color: var(--wp--preset--color--pink-400) !important;}.wp-block-button .wp-block-button__link.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.wp-block-button .wp-block-button__link.has-pink-400-border-color{border-color: var(--wp--preset--color--pink-400) !important;}.wp-block-button .wp-block-button__link.has-black-border-color{border-color: var(--wp--preset--color--black) !important;} </style> <script id="flying-pages-js-before"> window.FPConfig= { delay: 10, ignoreKeywords: ["\/wp-admin","\/wp-login.php","\/cart","add-to-cart","logout","#","?",".png",".jpeg",".jpg",".gif",".svg"], maxRPS: 3, hoverDelay: 50 }; </script> <script defer src="https://www.cncf.io/wp-content/plugins/flying-pages/flying-pages.min.js?ver=2.4.6" id="flying-pages-js"></script> <script id="leadin-script-loader-js-js-extra"> var leadin_wordpress = {"userRole":"visitor","pageType":"post","leadinPluginVersion":"11.1.65"}; </script> <script defer id="leadin-script-loader-js-js" data-type="lazy" data-src="https://js.hs-scripts.com/8112310.js?integration=WordPress&businessUnitId=983905&ver=11.1.65"></script> <script defer src="https://www.cncf.io/wp-content/themes/cncf-twenty-two/build/globals.min.js?ver=1732368213" id="global-scripts-js"></script> <script src="https://www.cncf.io/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script defer src="https://www.cncf.io/wp-content/themes/cncf-twenty-two/source/js/on-demand/annual-report-pre-2020.js?ver=1732368217" id="annual-report-js-js"></script> <script defer id="leadin-forms-v2-js" data-type="lazy" data-src="https://js.hsforms.net/forms/embed/v2.js?ver=11.1.65"></script> <script type="text/javascript" id="flying-scripts">const loadScriptsTimer=setTimeout(loadScripts,10*1000);const userInteractionEvents=["mouseover","keydown","touchstart","touchmove","wheel"];userInteractionEvents.forEach(function(event){window.addEventListener(event,triggerScriptLoader,{passive:!0})});function triggerScriptLoader(){loadScripts();clearTimeout(loadScriptsTimer);userInteractionEvents.forEach(function(event){window.removeEventListener(event,triggerScriptLoader,{passive:!0})})} function loadScripts(){document.querySelectorAll("script[data-type='lazy']").forEach(function(elem){elem.setAttribute("src",elem.getAttribute("data-src"))})}</script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-97e2229449e282c1bef","applicationID":"643908501","transactionName":"MVFSYxFWXhICUxdaXggbcVQXXl8PTFENXUQHWB1FBkdfExcdUQMAXg==","queueTime":0,"applicationTime":520,"atts":"HRZRFVlMTRw=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>