1"use strict";(self.webpackChunktigera_docs=self.webpackChunktigera_docs||[]).push([["4595"],{71288:function(e,t,r){r.r(t),r.d(t,{frontMatter:()=>s,toc:()=>d,default:()=>m,metadata:()=>n,assets:()=>u,contentTitle:()=>l});var n=JSON.parse('{"id":"reference/architecture/index","title":"Architecture","description":"Understand Calico components, network design, and the data path between workloads.","source":"@site/calico_versioned_docs/version-3.28/reference/architecture/index.mdx","sourceDirName":"reference/architecture","slug":"/reference/architecture/","permalink":"/calico/3.28/reference/architecture/","draft":false,"unlisted":false,"editUrl":"https://github.com/tigera/docs/edit/main/calico_versioned_docs/version-3.28/reference/architecture/index.mdx","tags":[],"version":"3.28","frontMatter":{"description":"Understand Calico components, network design, and the data path between workloads.","hide_table_of_contents":true},"sidebar":"calicoSidebar","previous":{"title":"Connection tracking","permalink":"/calico/3.28/reference/host-endpoints/conntrack"},"next":{"title":"Component architecture","permalink":"/calico/3.28/reference/architecture/overview"}}'),c=r(37937),i=r(17869),o=r(90923),a=r(67354);let s={description:"Understand Calico components, network design, and the data path between workloads.",hide_table_of_contents:!0},l="Architecture",u={},d=[];function h(e){let t={h1:"h1",header:"header",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(t.header,{children:(0,c.jsx)(t.h1,{id:"architecture",children:"Architecture"})}),"\n","\n",(0,c.jsx)(o.A,{items:(0,a.$S)().items})]})}function m(e={}){let{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},90923:function(e,t,r){r.d(t,{A:()=>w});var n=r(37937);r(82645);var c=r(71918),i=r(35694),o=r(55572),a=r(8919),s=r(38204),l=r(65912),u=r(51998);function d({className:e,href:t,children:r}){return(0,n.jsx)(o.A,{href:t,className:(0,c.A)("card padding--lg","cardContainer_eM0Y",e),children:r})}function h({className:e,href:t,icon:r,title:i,description:o}){return(0,n.jsxs)(d,{href:t,className:e,children:[(0,n.jsxs)(u.A,{as:"h2",className:(0,c.A)("text--truncate","cardTitle_bMrc"),title:i,children:[r," ",i]}),o&&(0,n.jsx)("p",{className:(0,c.A)("text--truncate","cardDescription_iDB1"),title:o,children:o})]})}function m({item:e}){let t=(0,i.Nr)(e),r=function(){let{selectMessage:e}=(0,a.W)();return t=>e(t,(0,l.T)({message:"1 item|{count} items",id:"theme.docs.DocCard.categoryDescription.plurals",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t}))}();return t?(0,n.jsx)(h,{className:e.className,href:t,icon:"\uD83D\uDDC3\uFE0F",title:e.label,description:e.description??r(e.items.length)}):null}function f({item:e}){let t=(0,s.A)(e.href)?"\u{1F4C4}\uFE0F":"\u{1F517}",r=(0,i.cC)(e.docId??void 0);return(0,n.jsx)(h,{className:e.className,href:e.href,icon:t,title:e.label,description:e.description??r?.description})}function p({item:e}){switch(e.type){case"link":return(0,n.jsx)(f,{item:e});case"category":return(0,n.jsx)(m,{item:e});default:throw Error(`unknown item type ${JSON.stringify(e)}`)}}function x({className:e}){let t=(0,i.a4)();return(0,n.jsx)(w,{items:t,className:e})}function g({item:e}){return(0,n.jsx)("article",{className:(0,c.A)("docCardListItem_YFFR","col col--6"),children:(0,n.jsx)(p,{item:e})})}function w(e){let{items:t,className:r}=e;if(!t)return(0,n.jsx)(x,{...e});let o=(0,i.d1)(t);return(0,n.jsx)("section",{className:(0,c.A)("row",r),children:o.map((e,t)=>(0,n.jsx)(g,{item:e},t))})}},67354:function(e,t,r){function n(...e){return r(9379).$S(...e)}r.d(t,{$S:()=>n}),r(7756)},8919:function(e,t,r){r.d(t,{W:()=>s});var n=r(82645),c=r(7756);let i=["zero","one","two","few","many","other"];function o(e){return i.filter(t=>e.includes(t))}let a={locale:"en",pluralForms:o(["one","other"]),select:e=>1===e?"one":"other"};function s(){let e=function(){let{i18n:{currentLocale:e}}=(0,c.A)();return(0,n.useMemo)(()=>{try{let t;return t=new Intl.PluralRules(e),{locale:e,pluralForms:o(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}". 2Docusaurus will fallback to the default (English) implementation. 3Error: ${t.message} 4`),a}},[e])}();return{selectMessage:(t,r)=>(function(e,t,r){let n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);let c=r.select(t);return n[Math.min(r.pluralForms.indexOf(c),n.length-1)]})(r,t,e)}}},17869:function(e,t,r){r.d(t,{R:()=>o,x:()=>a});var n=r(82645);let c={},i=n.createContext(c);function o(e){let t=n.useContext(i);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:o(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.